#smash #super #brawl #lib #high-level #sdcard #bros

brawllib_rs

Brawl人物文件解析器,基于brawlbox/brawllib

36个版本 (破坏性)

0.26.0 2024年6月25日
0.25.1 2023年12月30日
0.24.1 2022年3月13日
0.23.0 2021年12月23日
0.13.0 2019年3月28日

#231 in 游戏开发

MIT许可证

545KB
12K SLoC

brawllib_rs

dependency status Crates.io Released API docs

基于brawlbox/brawllib编写的brawl文件解析器,使用Rust语言。

不支持修改文件,仅支持读取、处理和渲染。

示例

在这个示例中我们

  • 从一个brawl mod sd卡文件夹和一个brawl导出文件夹中创建一个BrawlMod
  • 从brawl_mod中加载Fighter。这是来自fighter文件夹的原始数据,存储在一个结构树中。
  • 从一个导出的brawl fighter目录中创建一个HighLevelFighter。这包含来自Fighter结构的处理数据,存储在一个结构树中。
use brawllib_rs::brawl_mod::BrawlMod;
use brawllib_rs::high_level_fighter::HighLevelFighter;
use std::path::PathBuf;

let brawl_path = PathBuf::from("path/to/a/brawl/dump/folder");
let mod_path = PathBuf::from("path/to/a/brawl/mod/sd/card/folder");
let brawl_mod = BrawlMod::new(&brawl_path, Some(&mod_path));

for fighter in brawl_mod.load_fighters(false).unwrap() {
    println!("Fighter name: {}", fighter.cased_name);
    println!("The name of the first model file name: {}", fighter.models[0].name);

    let hl_fighter = HighLevelFighter::new(&fighter);
    println!("Hurtboxes on the 4th frame of 'Run' action {:#?}", hl_fighter.subactions.iter().find(|x| x.name == "Run").unwrap().frames[4].hurt_boxes);
}

依赖项

~25–60MB
~1M SLoC