5 stable releases

2.1.0 Jun 5, 2022
2.0.1 Jun 5, 2022
2.0.0 Jun 4, 2022
1.0.1 Jun 1, 2022
1.0.0 May 29, 2022

#1665 in Development tools

GPL-2.0-only

175KB
3.5K SLoC

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

cargo run --release -- --help

WASM

Have latest rust installed, and install wasm-pack (with cargo install wasm-pack).

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".

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:

  • 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/<name>.yaml: one cargo definition.
  • industries/<name>.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.

Dependencies

~9MB
~150K SLoC