bitsy-parser/README.md

58 lines
2.2 KiB
Markdown
Raw Normal View History

2020-04-11 15:08:57 +00:00
# bitsy-parser
2020-04-05 17:58:04 +00:00
2020-04-18 16:00:03 +00:00
![Rust](https://github.com/synth-ruiner/bitsy-parser/workflows/Rust/badge.svg)
2020-04-18 16:05:37 +00:00
![](https://img.shields.io/badge/license-MIT-blueviolet.svg)
[![Crates.io](https://img.shields.io/crates/v/bitsy-parser.svg)](https://crates.io/crates/bitsy-parser)
2020-04-18 16:00:03 +00:00
2020-07-01 15:24:32 +00:00
[Bitsy](http://ledoux.io/bitsy/editor.html) is a small game editor created by [Adam Le Doux](http://ledoux.io).
this crate provides a library and command-line utilities for working with Bitsy game data.
2020-04-30 21:18:43 +00:00
the version number follows Bitsy itself, so version 0.70.* targets Bitsy 7.0.
2020-04-12 13:48:43 +00:00
2020-07-01 15:24:32 +00:00
`bitsy-parser` is minimally invasive; unless you make any changes,
an exported game should be identical to the imported game. however, this assumes your game data is valid.
most minor errors will simply be corrected on import (e.g. extraneous tiles in a room)
but bigger problems may cause `bitsy-parser` to crash or fail.
I have tested `bitsy-parser` on a dataset of over 1500 Bitsy games ranging from Bitsy 1.0 to Bitsy 7.1
and have found that the vast majority of games can be imported without any problems.
so, I can almost guarantee that a Bitsy game will not be mangled by the parser,
but I still recommend making backups of your game data periodically.
## utilities
this crate provides some command-line tools for working with Bitsy game data.
* `bitsy-dedupe`
* `bitsy-merge`
* `bitsy-validate`
the source for these can be found in `src/bin`.
if you have Cargo installed, you can install/update these utilities with `cargo install --force bitsy-parser`.
if your `.cargo/bin` directory is in your PATH, you will be able to use these utilities anywhere on your computer.
## library
for use in your own Rust applications. can both parse and export Bitsy game data.
2020-04-13 18:28:22 +00:00
a simple example program:
```rust
extern crate bitsy_parser;
use bitsy_parser::game::Game;
2020-06-18 18:55:28 +00:00
use std::{env, fs};
2020-07-01 15:23:28 +00:00
const SYNTAX_ERROR: &str = "No input path specified. Usage: `bitsy-validate filepath`";
2020-07-01 15:23:28 +00:00
fn main() {
let input = env::args().nth(1).expect(SYNTAX_ERROR);
Game::from(fs::read_to_string(input).unwrap()).unwrap();
2020-06-18 18:55:28 +00:00
println!("OK!");
}
```
some more practical uses would be things like:
2020-07-01 15:24:32 +00:00
* convert images or other file formats to Bitsy assets
* programmatically create Bitsy games
* a Bitsy game editor