Max Bradbury 5f736cc653 | ||
---|---|---|
.github/workflows | ||
src | ||
.gitignore | ||
Cargo.toml | ||
LICENSE | ||
README.md |
README.md
bitsy-parser
a library for parsing Bitsy game data.
the version number follows Bitsy itself, so version 0.70.* targets Bitsy 7.0.
how to use
a simple example program:
extern crate bitsy_parser;
use bitsy_parser::game::Game;
use std::{env, fs};
fn main() {
let input_file = env::args()
.nth(1)
.expect("No input path specified. Usage: `bitsy-validate filepath`");
Game::from(fs::read_to_string(input_file).unwrap()).unwrap();
println!("OK!");
}
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
- implement Result return types on ::from functions so that we can handle errors
- replace Image with Vec or something. seems like a pointless abstraction.
- replace game avatar with helper functions to get and set the sprite with an ID of A
- implement PartialEq for tiles etc. for the sake of checking for duplicate tiles?
- dedupe functions for tiles, sprites, etc.
- tests for merge function
- merge function places merged avatar in room 0 instead of the merged room 0 with a new ID.
- actually - any sprites from the merged game are in game A's rooms
- merged rooms have the wrong palette IDs and tile IDs
- exits in merged rooms do not work - the on-screen position is correct, but the room ID is wrong
- add update function (i.e. migrate an old game version to the current one) - would this work?
tidy up
- refactor the more shonky bits to idiomatic rust