Commit graph

162 commits

Author SHA1 Message Date
Hermes (godot-vr)
30379bcc7b M2-Karte t_9aba04f1: Terrain-Werkzeug — Höhenfeld heben/senken/glätten (Pinsel + Undo)
TerrainField (src/svmap/terrain_field.gd): Höhenfeld-Mathematik auf dekodiertem
PackedFloat32Array — Pinsel mit Kosinus-Falloff (RAISE/LOWER/SMOOTH, zweiphasiges
3x3-Glättung), R16-Encode (uint16 LE row-major), ray-march+Bisektion-Cursor auf
dem GELÄNDE (nicht Basis-Ebene). EDITOR_MAX_RESOLUTION=129 (Editor-MVP-Perf-Limit,
Format bleibt 17-513 für Interop).

TerrainMeshView (src/viewport/terrain_mesh.gd): Höhenfeld als ArrayMesh mit
Höhen-Farbverlauf (Vertex-Farben); update_heights schreibt Vertices live neu
während des Strichs (res 129 = 16,6k Punkte, flott). Ersetzt die flache
Boden-Plane in map_view_builder (rebuild + rebuild_terrain_from_doc + update_terrain).

TerrainTool (src/editor/terrain_tool.gd): Pinsel-Modus im Viewport — Linksklick-
Ziehen formt (Heben/Senken/Glättten nach Panel-Wahl), Rechtsklick-Ziehen das
Gegenteil (kein Umschalten nötig). Pinsel-Ring (Torus) folgt dem Cursor auf dem
Terrain, farbcodiert pro Modus. GANZER Strich = EIN ActionHistory-Eintrag
(snapshot terrain VOR dem Strich, commit NACH dem Encode). Range-Expansion:
min/max_height_m weiten sich automatisch auf, wenn der Pinsel drüber hinaus will
(sonst wäre Senken auf flacher Map unmöglich) — Spannweite ≤ 500 m (V6), Undo
stellt die Range mit zurück. Doc wird nur ZUM Strich-Ende verändert.

main.gd: Werkzeug-Button 'Terrain formen' (groß, deutsch), Terrain-Panel mit
Heben/Senken/Glättten-Buttons + Pinsel-Größe/Stärke-Slider mit Live-Werten,
Modus-Wechsel objects<->terrain (Bibliothek-Klick wechselt zurück, ESC beendet),
interaction.gd ruht im Terrain-Modus. Performance-Zähler in der Statusleiste:
Terrain-Grid + Dreiecke (+ % vom Quest-3-Budget 524.288) + Editor-FPS.
Demo-Hook --terrain-demo [ordner]: 5 Szenarien inkl. Undo-Roundtrip als PNGs.

Neue Maps: res 129 (vorher 257) — erfüllt das Editor-MVP-Perf-Limit automatisch.
2026-10-15 10:30:42 +00:00
Hermes (godot-vr)
9b377a7720 README: Falle dokumentiert — nach Pull mit neuen class_name-Skripten erst --import (Klassen-Cache), sonst startet die GUI ohne UI 2026-10-15 09:58:43 +00:00
Hermes (godot-vr)
a11fdf7ab3 UX: Demo-Hook setzt Demo-Objekte + Auswahl-Markierung für den Smoke-Screenshot 2026-10-15 09:51:46 +00:00
Hermes (godot-vr)
eb2da3a5d1 UX: Ghost-Demo-Hook zoomt Kamera heran (Smoke-Screenshot) 2026-10-15 09:50:43 +00:00
Hermes (godot-vr)
d628e766ab UX: Variant-Inferenz-Warnungen as Error vermeiden (interaction.gd) 2026-10-15 09:49:14 +00:00
Hermes (godot-vr)
1f2ca0179a UX-Tests: Alias-Gegenprobe ohne History-Mutation 2026-10-15 09:47:55 +00:00
Hermes (godot-vr)
ccf595de30 UX: ActionHistory restored Blöcke in-place (Alias-Sicherheit), Terrain-Test Koordinaten korrigiert 2026-10-15 09:47:26 +00:00
Hermes (godot-vr)
602cbc3402 M2: Map-Editor UX-Fundament — Undo/Redo-History, Ghost-Preview, Auswahl-Anfassen, helfende Meldungen (t_40d855d0) 2026-10-15 09:45:48 +00:00
slyphax
84bc08145b M2: Map-Editor MVP App-Skelett — svmap laden/speichern (V1-V14), Viewport-Grundgeruest, Neue-Map-Dialog (t_5badf371) 2026-10-15 11:34:32 +02:00
Hermes (godot-vr)
259e135fb8 Chef-Grundsatz: MAXIMALE NUTZERFREUNDLICHKEIT (Sly 15.10.) — konkrete UX-Regeln für alle Editor-Karten + Test-Benchmark 2026-10-15 09:23:05 +00:00
Hermes (godot-vr)
be926fcaf7 README ausgebaut: MVP-Werkzeug-Kette, Architektur (svmap 1:1), M2-Zuordnung (E14/E20, Wetter-Presets) 2026-10-15 09:11:44 +00:00
82d63df95a init README 2026-10-14 23:43:57 +02:00