Commit Graph

2 Commits

Author SHA1 Message Date
Steve Biedermann 028d5219c5 update defaults 2026-10-11 21:37:12 +02:00
Steve Biedermann 9285df4d7b feat(sim)!: move simulation settings and behaviours into config.rn
Starting values and tuning constants are now `pub const` items in a
single Rune file, config.rn, alongside the `person`, `rabbit` and `wolf`
behaviour functions. The behaviours read the constants directly. At
startup the server loads the file from SIM_CONFIG (default: config.rn),
reads and checks every constant, and test-runs each behaviour, so a bad
or missing value stops startup with an error that names it.

- Map width and height can now be configured and are stored in
  snapshots.
- The UI's edit limits (max speed, stock, inventory, hunger, energy,
  resource amounts) come from the config.
- The in-browser script editor now edits config.rn. Applied edits update
  behaviours and tuning values immediately; map size, initial population
  and calendar defaults apply on reset.
- The Docker image includes config.rn, and Compose mounts the
  repository's copy read-only.
- Documents the config file and how it works in the README.

BREAKING CHANGE: src/behavior.rn has been removed; behaviours now live
in config.rn. The server will not start without a valid config file.
Snapshots no longer store the behaviour script: on restart, config.rn
from disk replaces any edits made in the browser editor.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-11 20:42:29 +02:00