All four road tiers now carve into the 3D world. Rugged and Trail were generated, exported and parsed all along, but nothing ever consumed them — which is why county roads visible on the 2D map did not exist in 3D. Tier identity is now carried into the carve via a RoadSegment struct, so each tier gets its own width, shoulder and grade-smoothing from one tunable block in Constants: highways widest and holding a grade, trails narrow and hugging the land. Rugged and Trail surface as dirt rather than asphalt. Because tiers now have different reach, nearest-by-distance was no longer a sound way to pick the governing road — a nearby footpath could shadow a highway whose shoulder still covered the column. The carve now considers only roads whose shoulder actually reaches, and takes the closest of those. The per-chunk cull pad is derived from the widest shoulder plus a margin, so widening a road cannot silently truncate it at chunk edges. Untouched: density field, Marching Cubes interpolation/welding, chunk dims, the .dat contract, the 2D A* generation, and mesher normals. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 lines
737 B
C#
15 lines
737 B
C#
namespace IslaApocalypse.Core
|
|
{
|
|
// The master list of shared identifiers for the game
|
|
public enum Biome { Ocean, Lake, Beach, Paradise, Tropical, Jungle, Wasteland, Crater, Mountain, Snow }
|
|
public enum TownTier { Village, Hub, Capitol, Outpost, IslandLoot, MiniPOI }
|
|
public enum MapHalf { Any, Left, Right }
|
|
|
|
// How "built" a road is, most engineered first. Drives how wide and how
|
|
// smooth it gets carved into the 3D world (see D-022).
|
|
//
|
|
// NOTE: unlike Biome and TownTier above, this one is NOT written into the
|
|
// .dat file — the blueprint stores each tier in its own section, so this
|
|
// enum never becomes a serialized number. It is safe to reorder or extend.
|
|
public enum RoadTier { Highway, Branch, Rugged, Trail }
|
|
}
|