# 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 * check multi-line endings/dialogues * handle old out-of-bounds editor errors (extra image pixels, exits/endings with position -1,-0 etc.) * it's ok if the output of these does not match the input as we're fixing it ### tidy up * refactor the more shonky bits to idiomatic rust