diff --git a/Core/Scripts/ConfigManager.cs b/Core/Scripts/ConfigManager.cs index a9de115..36800e9 100644 --- a/Core/Scripts/ConfigManager.cs +++ b/Core/Scripts/ConfigManager.cs @@ -14,6 +14,11 @@ namespace IslaApocalypse.Core // Change this if your namespace is different public static float DensityMultiplier = 1.0f; // <-- Replaces TownCount public static int ChunkRadius = 24; // Default chunk size, can be overridden by config + // Iteration toggle: skip the ~25-min A* road pass entirely. The blueprint is + // still exported (road sections present but empty) — an iteration artifact, + // not a shippable world. Default false. + public static bool SkipRoads = false; + public static void LoadConfig() { string path = "res://ServerConfig.json"; @@ -61,7 +66,13 @@ namespace IslaApocalypse.Core // Change this if your namespace is different // Extract the ChunkRadius if (data.ContainsKey("ChunkRadius")) { ChunkRadius = (int)data["ChunkRadius"]; - } + } + + // Extract the SkipRoads iteration toggle + if (data.ContainsKey("SkipRoads")) + { + SkipRoads = (bool)data["SkipRoads"]; + } switch (profile) { diff --git a/Tools/Scripts/MapGenerator.cs b/Tools/Scripts/MapGenerator.cs index cd75452..d0cceca 100644 --- a/Tools/Scripts/MapGenerator.cs +++ b/Tools/Scripts/MapGenerator.cs @@ -92,13 +92,28 @@ public partial class MapGenerator : TextureRect GD.Print($"{T()} Towns placed: {_towns.Count}."); await CaptureStage("2_towns"); - // NEW: We await the roads so the engine doesn't freeze! - await GenerateRoadsAsync(); + if (ConfigManager.SkipRoads) + { + // Iteration toggle (terrain-water task 03): the road pass is ~25 min of a + // ~26-min generation. Skipping it leaves all four road lists empty, so the + // export writes present-but-empty road sections. + GD.Print("=========================================================="); + GD.Print($"{T()} ⚠⚠ SKIPROADS IS ON — ROAD GENERATION SKIPPED ENTIRELY."); + GD.Print($"{T()} ⚠⚠ This blueprint has NO ROADS. It is an ITERATION"); + GD.Print($"{T()} ⚠⚠ ARTIFACT, not a world. Do not judge or ship it."); + GD.Print("=========================================================="); + } + else + { + // NEW: We await the roads so the engine doesn't freeze! + await GenerateRoadsAsync(); + } ExportMapData(); GD.Print($"{T()} Blueprint exported."); - await CaptureStage("3_roads"); + if (!ConfigManager.SkipRoads) + await CaptureStage("3_roads"); GD.Print($"{T()} GENERATION COMPLETE."); }