Skip to content

Extract world rendering to shared crate - #43

Merged
vanlueckn merged 1 commit into
mainfrom
t3code/a2850bc8
Aug 16, 2026
Merged

Extract world rendering to shared crate#43
vanlueckn merged 1 commit into
mainfrom
t3code/a2850bc8

Conversation

@vanlueckn

Copy link
Copy Markdown
Collaborator

Summary

  • Create new world-render crate with shared terrain, track, trees, and signal rendering logic
  • Move 1180+ lines of rendering code from app/render.rs, app/scenery.rs, and app/signals.rs
  • Update app and route-editor to depend on and use world-render
  • Consolidate terrain material, shader compilation, and asset loading into one place
  • Update localisation keys in both .ftl files for new terrain UI feature

Testing

  • cargo test --workspace passes: 383 tests green (was 379)
  • cargo clippy and cargo fmt pass cleanly
  • Both app and route-editor compile and link with new crate
  • Terrain display in route editor shows same ground layer as app runs
  • Not run: visual diff of rendered terrain/track/signals between before/after

Extract track, terrain, scenery, and signal rendering into `world-render`
crate so the simulator and route editor draw the same world.

- Move `spawn_track`, `spawn_terrain_tile`, `spawn_objects`, `spawn_signals`
  and their dependencies to shared `world-render` crate
- Route editor now shows live terrain, track, scenery, and signals at `T`
  (View ▸ Show terrain) — same mesh, shader, and glTF as the run
- Add `WorldRenderPlugin` to register splat shader and material
- Update documentation: editor world view is now complete
@vanlueckn
vanlueckn merged commit c152730 into main Aug 16, 2026
3 checks passed
@vanlueckn
vanlueckn deleted the t3code/a2850bc8 branch August 16, 2026 18:05
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.

1 participant