Skip to content

TrueGRF YAML to GRF compiler in Rust

License

Notifications You must be signed in to change notification settings

TrueGRF/TrueGRF-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.