bitsy-parser/README.md

1.6 KiB

bitsy-parser

Rust Crates.io

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};

const SYNTAX_ERROR: &str = "No input path specified. Usage: `bitsy-validate filepath`";

fn main() {
    let input = env::args().nth(1).expect(SYNTAX_ERROR);
    Game::from(fs::read_to_string(input).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 sprites, items etc. for deduplication
  • global dedupe function and dedupe functions for sprites, items etc.
  • tests for merge function
  • all sprites from the merged game get placed in their respective game's Room 0
  • 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