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 游戏开发
545KB
12K SLoC
brawllib_rs
基于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