33 个版本
0.710.1 | 2021 年 11 月 10 日 |
---|---|
0.75.0 | 2021 年 7 月 3 日 |
0.72.5 | 2020 年 11 月 7 日 |
0.71.7 | 2020 年 7 月 26 日 |
#1855 in 解析实现
3MB
4K SLoC
bitsy-parser
Bitsy 是由 Adam Le Doux 创建的一个小型游戏编辑器。这个 crate 提供了一个库和命令行工具,用于处理 Bitsy 游戏数据。版本号遵循 Bitsy 本身,因此 0.70.* 版本针对 Bitsy 7.0。
bitsy-parser
是最小侵入性的;除非你做了任何更改,导出的游戏应该与导入的游戏相同。然而,这假设你的游戏数据是有效的。大多数小错误将在导入时简单地纠正(例如,房间中多余的瓷砖),但更大的问题可能导致 bitsy-parser
崩溃或失败。
我已经在超过 1500 个 Bitsy 游戏的数据集上测试了 bitsy-parser
,这些游戏从 Bitsy 1.0 到 Bitsy 7.1 不等,并发现绝大多数游戏可以无问题导入。因此,我可以几乎保证 Bitsy 游戏不会被解析器破坏,但我仍然建议定期备份你的游戏数据。
工具
这个 crate 提供了一些用于处理 Bitsy 游戏数据的命令行工具。
bitsy-dedupe
bitsy-merge
bitsy-validate
这些工具的源代码可以在 src/bin
中找到。如果你已经安装了 Cargo,你可以使用 cargo install --force bitsy-parser
安装/更新这些工具。如果你的 .cargo/bin
目录在 PATH 中,你将能够在电脑上的任何地方使用这些工具。
库
用于你的 Rust 应用程序。可以解析和导出 Bitsy 游戏数据。
一个简单的示例程序
use bitsy_parser::Game;
use std::{env, fs};
const SYNTAX_ERROR: &str = "No input path specified. Usage: `bitsy-validate filepath`";
fn main() {
let input = env::args().nth(1).expect(SYNTAX_ERROR);
Game::from(fs::read_to_string(input).unwrap()).unwrap();
println!("OK!");
}
一些更实用的用途可能包括
- 将图像或其他文件格式转换为 Bitsy 资产
- 以编程方式创建 Bitsy 游戏
- 一个 Bitsy 游戏编辑器