Phase 5: Atmosphere, Water, Voxel, Grass aus EditorApp extrahiert (-1.170 Z.)
- AtmosphereController: Licht- + Emitter-Panel, updateLight/Emitter, onFrame()
- WaterController: Wasser- + Wasserfall-Panel, updateWater/Waterfall, onFrame()
- VoxelController: VoxelMerged- + Klippen-Panel; sculptPanelSupplier-Injection
für showToolParameters-Delegation; onCliffGenerateKeyPressed() für Keyboard
- GrassController: Gras-Panel + GrassTextureUI; viewport/showToolParams/
normalMapLoader injiziert; buildGrassTextureUI() auch von showToolParameters
in EditorApp aufgerufen
- EditorApp: controller.onFrame()-Aufrufe im AnimationTimer; Toolbar-Buttons
delegieren an controller.buildPanel(); Timer-Blöcke für Selection-Changes
aus EditorApp entfernt (→ onFrame); Felder lightDynamic, waterDynamic,
voxelCliff*, grassSub*, lightBtn/emitterBtn/waterBtn/riverBtn/voxelBtn entfernt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>