36 releases (breaking)
0.26.0 | Jun 25, 2024 |
---|---|
0.25.1 | Dec 30, 2023 |
0.24.1 | Mar 13, 2022 |
0.23.0 | Dec 23, 2021 |
0.13.0 | Mar 28, 2019 |
#226 in Game dev
545KB
12K
SLoC
brawllib_rs
A brawl file parser, based on brawlbox/brawllib, written in rust.
Doesn't support modifying files, only reading, processing and rendering them.
Example
In this example we:
- Create a
BrawlMod
from a brawl mod sd card folder and a brawl dump folder. - Load
Fighter
s from the brawl_mod. This is the raw data from the fighter folder, stored in a tree of structs. - Create a
HighLevelFighter
from an exported brawl fighter directory. This contains processed data from theFighter
struct, stored in a tree of structs.
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);
}
Dependencies
~26–64MB
~1M SLoC