#save #heart #ironman #parser #binary #iron #hoi4

bin+lib hoi4save

人体工程学地处理 HOI4 保存

17 个版本

0.3.4 2023 年 5 月 14 日
0.3.3 2023 年 3 月 7 日
0.3.2 2022 年 10 月 24 日
0.2.1 2022 年 7 月 8 日
0.1.2 2021 年 3 月 14 日

#475 in 游戏开发

每月 50 次下载

MIT 许可证

26KB
567 代码行

ci Version

HOI4 Save

HOI4 Save 是一个库,用于人体工程学地处理《钢铁雄心 IV》的保存(纯文本 + 二进制)。

use hoi4save::{Hoi4File, Encoding, EnvTokens, models::Hoi4Save};
let data = std::fs::read("assets/saves/1.10-normal-text.hoi4")?;
let file = Hoi4File::from_slice(&data)?;
let parsed_file = file.parse()?;
let save: Hoi4Save = parsed_file.deserializer().build(&EnvTokens)?;
assert_eq!(file.encoding(), Encoding::Plaintext);
assert_eq!(save.player, String::from("FRA"));

HOI4 二进制格式可以转换为纯文本

use hoi4save::{Hoi4File, EnvTokens};

let data = std::fs::read("assets/saves/1.10-ironman.hoi4")?;
let file = Hoi4File::from_slice(&data)?;
let parsed_file = file.parse()?;
let binary = parsed_file.as_binary().unwrap();
let out = binary
    .melter()
    .on_failed_resolve(hoi4save::FailedResolveStrategy::Stringify)
    .melt(&EnvTokens)?;

二进制保存

默认情况下,二进制保存不会正确解码。

要启用支持,必须提供一个环境变量(HOI4_IRONMAN_TOKENS),它指向一个以换行符分隔的令牌描述文本文件。例如

0xffff my_test_token
0xeeee my_test_token2

为了遵守法律限制,我无法分享令牌列表。我也被限制不得透露如何推导令牌列表。

依赖关系

~1.3–2MB
~48K SLoC