#bitsy #gamedev #utilities #tile #version #editor #room

bin+lib bitsy-parser

用于处理 Bitsy 游戏数据的解析器和工具

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 解析实现

MIT 许可证

3MB
4K SLoC

bitsy-parser

Crates.io

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 游戏编辑器

依赖关系