Skip to content

Claude/identify legacy visual fields gl0mv#1059

Merged
braedonsaunders merged 4 commits into
mainfrom
claude/identify-legacy-visual-fields-Gl0mv
Jan 26, 2026
Merged

Claude/identify legacy visual fields gl0mv#1059
braedonsaunders merged 4 commits into
mainfrom
claude/identify-legacy-visual-fields-Gl0mv

Conversation

@braedonsaunders

Copy link
Copy Markdown
Owner

No description provided.

Dead code removed:
- Delete unused pathfinding/Grid.ts (162 lines)
- Remove TSLWaterPlane legacy water implementation (116 lines)
- Remove createTemporalAOBlendNode (33 lines) - unused with any types
- Remove legacy world-space selection handlers (220+ lines)
- Remove procedural decoration generation from MapDecorations (120+ lines)
- Remove legacy visual fields from MapData (skyboxColor, ambientColor, etc.)

Ramp elevation migration:
- Change Ramp interface from ElevationLevel (0|1|2) to Elevation (0-255)
- Update JSON schema to use number instead of 0|1|2
- Add backward compatibility in deserialize.ts for old maps
- Update ElevationMapGenerator and ConnectivityFixer to use 256-scale

Documentation:
- Update networking.md to mark connection code as complete

This removes ~700 lines of dead/legacy code and consolidates the decoration
pipeline to use instanced decorations exclusively for procedural generation.
All decorations must now come from explicit map data. Procedural generation
should only occur in the map editor where decorations are placed and then
saved to the map file.

Removed from EnvironmentManager:
- InstancedTrees (procedural trees)
- InstancedRocks (procedural rocks)
- InstancedGrass (procedural grass)
- InstancedPebbles (procedural pebbles)
- CrystalField (procedural crystals)

Kept:
- Water system (terrain feature)
- Map border fog (visual effect)
- Particles (environmental effect)
- MapDecorations (handles explicit decorations, watch towers, destructibles)
Trees, rocks, and crystals are now:
- Loaded from explicit mapData.decorations (no procedural generation)
- Rendered using InstancedMesh (single draw call per model type)
- Per-instance frustum culled for performance
- Shadow-optimized (playable area casts, border doesn't)

Grass and pebbles remain as procedural environmental ground detail
(not placed via map decorations, just ambient terrain texture).

This correctly separates:
- Explicit decorations (from map editor) -> instanced rendering
- Environmental detail (procedural) -> ground cover only
@braedonsaunders braedonsaunders merged commit afa4d05 into main Jan 26, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants