# 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 a simple example program: ```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 input path specified. Usage: `smiley infile outfile`"); let output_file = env::args().nth(2) .expect("No output path specified. Usage: `smiley 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 * test for bitsy 7.0 and implement new features * implement Result return types on ::from functions so we can handle errors * output sprites/avatar in such a way that ordering is preserved (avatar seems to be somewhere in the sprites, after any numeric-ID sprites and before any alphabetic-ID sprites...) * check multi-line endings/dialogues ### tidy up * refactor the more shonky bits to idiomatic rust