islaApocalypse/Tools/Scenes/README.md
beezm a7e6c17422 docs: BLUEPRINT_FORMAT.md + README updates for the v2 container (terrain-water task 02)
Byte-accurate v2 contract (magic/version, tagged sections, registered
FourCC table, validation rules, re-encode sentinels, extension path)
plus the v1 legacy summary — v1 stays live per the safety-net plan.
READMEs updated additively: parser dispatch, dual-write outputs,
harness usage, server params cross-check, wire-format hazard rewording
(u8 on v2 path, range-checked; append-only rule unchanged).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 07:31:03 -04:00

2.3 KiB
Raw Permalink Blame History

/Tools/Scenes — developer environments

Standalone scenes used to run the offline generation scripts. Never add these to a game export.

MapPreview.tscn

The 2D map generator itself.

  • Root: TextureRect · Script: MapGenerator.cs
  • Runs the noise maths, builds the heightmap and biome map, plots the A* road network, writes the .dat, and draws the map via _Draw().

This is the project's main scene (project.godotrun/main_scene). That means pressing F5 anywhere in the project runs this, regenerating the world and overwriting your .dat — it does not start the game. To view the 3D world, open Scenes/Main.tscn and press F6 instead.

MapCaptureTool.tscn

(Lives in /Scenes, wraps this directory's scene.) A SubViewportContainerSubViewport (4096×4096) → MapPreview. It exists purely to render the map offscreen at full resolution: Godot's UI layout engine would otherwise scale a 4096-pixel render down to the editor window, producing a tiny or black PNG.

Note the generator writes the .dat on its own — the capture wrapper only matters for the full-resolution image.

RoundTripHarness.tscn

The blueprint format regression test (script: Tools/Scripts/RoundTripHarness.cs). Run it headless from a terminal — it never generates, it round-trips an existing blueprint through the real parser and v2 writer and asserts semantic equality:

Godot --headless --path <repo> res://Tools/Scenes/RoundTripHarness.tscn

Defaults to the preserved reference blueprint (user://reference_1409879727/); override with the HARNESS_V1_PATH / HARNESS_V2_PATH environment variables. Exit code 0 = pass.

Generating a new world

  1. Open MapPreview.tscn (or Scenes/MapCaptureTool.tscn for the full-resolution PNG).
  2. Press F6Play Current Scene.
  3. Expect minutes, not seconds, and expect the editor to be unresponsive. The A* road stage is the slow part and can stall long enough to be worth abandoning; watch the console for [A*] 1/4 … 4/4 progress. See /Tools/Scripts/README.md.
  4. On success the console prints the export path. Files land in user://~/.local/share/godot/app_userdata/islaApocolypse/.

Then update ServerConfig.json's WorldSeed to match the new .dat, or the 3D scene will fail to load it.