# TrueGRF YAML to GRF compiler (CLI and NPM) TrueGRF is a project to make it more accessible for anyone to create NewGRFs for [OpenTTD](https://www.openttd.org). For more details on the project, please visit [here](https://github.com/TrueGRF/TrueGRF). This repository is the Rust part of the project, which offers a YAML to GRF compiler, both for the stand-alone tool and as npm library (via WASM). ## Installation / usage ### CLI ```bash cargo run --release -- --help ``` ### WASM Have latest rust installed, and install `wasm-pack` (with `cargo install wasm-pack`). ```bash wasm-pack build --release --target web ``` This gives you the required WASM files in the `pkg` folder. Check `wasm-pack` how to use it in your own project. PS: in some cases you want to replace in `pkg/package.json` the `module` key with `main` and add `"type": "module"`. ```bash sed -i 's/"module": "truegrf.js",/"main": "truegrf.js",\n "type": "module",/' pkg/package.json ``` ## Current support Currently TrueGRF only supports a small selection of the [GRF specifications](https://newgrf-specs.tt-wiki.net/wiki/Main_Page): - Cargoes - Industries - Industry tiles All other features are not (yet) supported. ## Filesystem layout In order for TrueGRF to compile the YAML to GRF, the YAML files need to be in a specific structure. - `truegrf.yaml`: the main file, to indicate it is a TrueGRF project. - `cargoes/.yaml`: one cargo definition. - `industries/.yaml`: one industry definition. Sprites can refer to PNG files based from the root-folder. The specific structure of the YAML can be deduced from the [source files](src/grf/mod.rs).