TrueGRF YAML to GRF compiler (CLI and NPM)

TrueGRF is a project to make it more accessible for anyone to create NewGRFs for OpenTTD. For more details on the project, please visit here.

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:

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.

Sprites can refer to PNG files based from the root-folder.

The specific structure of the YAML can be deduced from the source files.