bitsy-parser/README.md

61 lines
1.5 KiB
Markdown

# bitsy-parser
a library for parsing Bitsy game data.
the version number follows Bitsy itself, so version 0.65.* targets Bitsy 6.5.
## how to use
this sample program converts the player avatar to a smiley face.
```rust
extern crate bitsy_parser;
use std::{env, fs};
use bitsy_parser::game::Game;
use bitsy_parser::image::Image;
/// replaces the player avatar with a smiley face.
fn main() {
let input_file = env::args().nth(1)
.expect("No game data specified. Usage: `invert infile outfile`");
let output_file = env::args().nth(2)
.expect("No game data specified. Usage: `invert infile outfile`");
let mut game = Game::from(fs::read_to_string(input_file).unwrap());
game.avatar.animation_frames = vec![
Image {
pixels: vec![
0,0,1,1,1,1,0,0,
0,1,1,1,1,1,1,0,
1,1,0,1,1,0,1,1,
1,1,0,1,1,0,1,1,
1,1,1,1,1,1,1,1,
1,1,0,1,1,0,1,1,
0,1,1,0,0,1,1,0,
0,0,1,1,1,1,0,0,
]
}
];
fs::write(output_file, &game.to_string())
.expect("Failed to write to output file");
}
```
some more practical uses would be things like:
* remove duplicate tiles
* merge two Bitsy games together
* programmatically create Bitsy games
* a Bitsy game editor
## todo
### failing tests
test_room_from_string shows an unexpected ordering for the items in the output of room::to_string
### tidy up
* refactor the more shonky bits to idiomatic rust