15 个版本
0.4.2 | 2023 年 11 月 1 日 |
---|---|
0.4.1 | 2022 年 10 月 1 日 |
0.4.0 | 2022 年 9 月 30 日 |
0.3.3 | 2022 年 3 月 26 日 |
0.3.0 | 2021 年 7 月 24 日 |
737 在 解析实现 中排名
每月 40 次下载
27KB
544 代码行
skyrim-cell-dump
用于解析 Skyrim 插件文件并提取 CELL 数据的库和二进制文件。
该库的主要目标是尽可能快地提取插件编辑的每个外部单元格的表单 ID 和 X 和 Y 坐标,忽略插件的其他部分。
安装
cargo install skyrim-cell-dump
或者,通过检出仓库并运行来构建自己的版本
cargo build --release --features build-binary
使用方法
Usage: skyrim-cell-dump.exe <plugin> [-f <format>] [-p]
Extracts cell edits from a TES5 Skyrim plugin file
Options:
-f, --format format of the output (json or text)
-p, --pretty pretty print json output
--help display usage information
美观的 JSON 格式看起来像这样
{
"header": {
"version": 1.0,
"num_records_and_groups": 792,
"next_object_id": 221145,
"author": "Critterman",
"description": "An example plugin",
"masters": [
"Skyrim.esm",
"Update.esm",
"Dawnguard.esm",
"HearthFires.esm",
"Dragonborn.esm"
]
},
"worlds": [
{
"form_id": 60,
"editor_id": "Tamriel"
}
],
"cells": [
{
"form_id": 100000001,
"editor_id": "SomeInterior",
"x": null,
"y": null,
"world_form_id": null,
"is_persistent": false
},
{
"form_id": 3444,
"editor_id": null,
"x": 0,
"y": 0,
"world_form_id": 60,
"is_persistent": true
},
{
"form_id": 46432,
"editor_id": "SomeExterior01",
"x": 32,
"y": 3,
"world_form_id": 60,
"is_persistent": false
},
{
"form_id": 46464,
"editor_id": "SomeExterior02",
"x": 33,
"y": 2,
"world_form_id": 60,
"is_persistent": false
},
{
"form_id": 46498,
"editor_id": null,
"x": 32,
"y": 1,
"world_form_id": 60,
"is_persistent": false
}
]
}
注意:我仅测试了解析 Skyrim 特别版的 .esp
,.esm
和 .esl
文件。
导入
您可以将此存储库包含在您的 Cargo.toml
中,并使用以下方式获取解析的 Plugin
结构
use skyrim_cell_dump::parse_plugin;
let plugin_contents = std::fs::read("Plugin.esp").unwrap();
let plugin = parse_plugin(&plugin_contents).unwrap();
依赖关系
~7MB
~197K SLoC