#json-parser #dwarf-fortress #json #parser #directory

dfraw_json_parser

将矮人要塞原始文件解析为 JSON 的库

38 个版本 (15 个重大更新)

0.17.5 2024 年 5 月 12 日
0.16.0 2023 年 12 月 9 日
0.15.1 2023 年 11 月 29 日
0.12.0 2023 年 1 月 24 日
0.2.1 2022 年 8 月 9 日

#2 in #dwarf-fortress

Download history 613/week @ 2024-05-06 102/week @ 2024-05-13 50/week @ 2024-05-20 31/week @ 2024-05-27 41/week @ 2024-06-03 30/week @ 2024-06-10 36/week @ 2024-06-17 53/week @ 2024-06-24 10/week @ 2024-07-01 282/week @ 2024-07-08 9/week @ 2024-07-22 18/week @ 2024-07-29 8/week @ 2024-08-05 27/week @ 2024-08-12

62 每月下载量
用于 dfraw_json_parser-cli

MIT 许可协议

1MB
20K SLoC

Rust 18K SLoC // 0.0% comments TypeScript 2K SLoC // 0.1% comments

dfraw_json_parser

bindings 目录中有生成的 TypeScript 类型定义。

现有项目

这些是使用此库的项目。


lib.rs:

dfraw_json_parser 提供了一种将矮人要塞的原始文件转换为 JSON 的方法。它目前适用于从有限的原始类型中获取一些基本信息

  • 生物
  • 植物
  • 无机物(岩石、矿石等)
  • 材料
  • 综合症
  • 图形(精灵和瓦片页面,一些图层支持)
  • 有限模板支持、生物变化支持,以及选择 XX 支持

工作原理

它使用正则表达式来分解令牌,然后检查令牌中的键是否与它所知道的长列表中的任何一个匹配。任何匹配都将被用来构建它自己的原始表示。您还可以使用 serde_json 库将此结果转换为 JSON。或者,我想将其转换为 serde 支持的任何内容。

Tauri 支持

此库是为了为另一个项目“监督者参考手册”提供原始解析而构建的,该项目创建了一个 tauri 应用程序,允许用户以可搜索和可过滤的方式查看他们机器上的原始文件。“tauri”功能标志启用了将解析进度发送回 tauri 窗口的函数。

术语表

原始

原始是矮人要塞用来创建世界中生物、物品和对象定义的。它们还可以用来定义事物如何相互作用。它们由一个原始文件内的各种令牌组成,从标识令牌 [#type#:#identifier#] 开始。原始还可以使用 [SELECT:#identifier#] 令牌选择和修改其他原始。

原始文件

原始文件是一个以.txt扩展名的单个文本文件,其第一行作为原始文件标识符,然后使用[OBJECT:#type#]令牌来定义原始文件的类型。该文件可以包含任意数量的该类型的原始数据。

原始文件模块,原始模块

自Dwarf Fortress 50版本以来,原始数据被组织到目录中。(以前它们是扁平结构。)这样做是为了方便蒸汽工坊。

原始模块位置,模块位置

原始文件模块文件夹位于本库认识的3个位置

  • $df_game_dir/data/vanilla:默认原始文件在这里
  • $df_game_dir/data/installed_mods:用于生成世界的工坊模组在这里。它们被认为是已安装的,因为至少有一个世界正在使用它们。(注意:即使删除了使用它们的所有世界,这些模组也永远不会被删除。)
  • $df_game_dir/mods:工坊模组存储在这里,以便在创建世界时可用

信息文本文件

在每一个原始模块中,都有一个info.txt文件,其中包含有关该模块的信息,如作者、版本、最早兼容版本(用于更新现有存档),以及如果是从蒸汽工坊下载的模组,还包含蒸汽工坊的信息。

依赖项

~9–51MB
~790K SLoC