scopedvr-map-editor/src
Hermes godot-vr 87e7a96fd5 Fix GUI-Start-Fehler (Karte t_d3b93793): Terrain-Preset-Crash + command_pressed-Spam.
1. main.gd _build_right_panel: terrain_size_btn_medium.button_pressed=true
   feuerte toggled SOFORT synchron — der Handler griff auf
   terrain_radius_slider zu, der erst spaeter erzeugt wird → SCRIPT ERROR
   in _on_terrain_size_preset bei jedem GUI-Start. Fix:
   set_pressed_no_signal(true) (Slider startet unten passend mit 12 m) +
   Null-Check als Schutznetz im Handler.

2. main.gd _unhandled_key_input: event.command_pressed existiert an
   InputEventKey nicht (Godot-3-API-Relikt) → SCRIPT ERROR bei JEDER Taste,
   Shortcuts tot. Fix: is_command_or_control_pressed() (Ctrl auf
   Linux/Windows, Cmd auf macOS).

3. Neuer Regressionstest tests/test_gui_smoke.gd: instanziert die ECHTE
   Main-UI headless (deckt Runtime-UI-Pfade ab, die die logik-only-Suite
   nie sah): Panel-Bau ueberlebt _ready, Presets initial/klickbar
   (Slider+Label), Strg+Z/Strg+Y wirken end-to-end, leere History =
   freundliche Meldung. Suite: 334 + 20 Checks gruen.
2026-10-15 21:14:05 +00:00
..
editor M2-Karte t_d8be9ed7: Struktur-Objekte im Editor. Bibliothek +15 Objekte: bruecke_holz (Bruecke Holz), hoehleneingang, felsbogen — deutsche Namen, Gruppe 'bauwerke', Thumbnails gerendert. mesh_shapes: SHAPE_COMPOUND-Platzhalter — EIN Mesh aus allen Verbund-Teilen, in Fusspunkt-Koordinaten gebacken (pos-Versatz + rot_deg), so sind Rampe/Durchgaenge im Editor sichtbar wie die echte Kollision; neu center_height() fuer das Drehzentrum der Auswahl (map_view_builder nutzt es). test_library: 15 Objekte, Undo/Redo-Zaehler dynamisiert -> Suite 334 Checks gruen. 2026-10-15 19:21:25 +00:00
svmap M2-Karte t_603ec1a8: Terrain-Texturen (Gras/Sand/Fels) + Pinselgroessen. svmap v2: optionale Material-Schicht materials_r8_b64 (uint8/res², 0=Gras/1=Sand/2=Fels), V15-Validierung (Laenge+ID-Range), Legacy-v1 laedt mit Default Gras, gespeichert wird immer v2. TerrainField: Mode.PAINT + apply_material_brush (Kreis, crisp, Hoehe unangetastet). terrain_tool: 4. Pinsel-Modus Malen (Palette Gras/Sand/Fels, Rechtsklick malt Gras zurueck), Ring in Materialfarbe; ganzer Strich = EIN ActionHistory-Eintrag (terrain-Block-Snapshot deckt Hoehe+Material ab). main.gd: Palette-Panel (nur im Malen-Modus), drei Pinselgroessen-Presets Klein(4m)/Mittel(12m)/Gross(32m) + freier Slider, deutsche Labels. terrain_mesh: Vertex-Farben aus Material-Schicht x Hoehe-Shading (KEIN Custom-Shader, Quest-3-Perf-Vertrag — Entscheidung gegen Splattmap in DECISIONS.md). Tests: test_terrain +3 Gruppen (Material-Pinsel, Mal-Stroke-Undo byte-identisch, v2/V15+Legacy) -> 53 Checks; Suite 231 Checks gruen. 2026-10-15 15:42:05 +00:00
ui Fix GUI-Start-Fehler (Karte t_d3b93793): Terrain-Preset-Crash + command_pressed-Spam. 2026-10-15 21:14:05 +00:00
viewport M2-Karte t_d8be9ed7: Struktur-Objekte im Editor. Bibliothek +15 Objekte: bruecke_holz (Bruecke Holz), hoehleneingang, felsbogen — deutsche Namen, Gruppe 'bauwerke', Thumbnails gerendert. mesh_shapes: SHAPE_COMPOUND-Platzhalter — EIN Mesh aus allen Verbund-Teilen, in Fusspunkt-Koordinaten gebacken (pos-Versatz + rot_deg), so sind Rampe/Durchgaenge im Editor sichtbar wie die echte Kollision; neu center_height() fuer das Drehzentrum der Auswahl (map_view_builder nutzt es). test_library: 15 Objekte, Undo/Redo-Zaehler dynamisiert -> Suite 334 Checks gruen. 2026-10-15 19:21:25 +00:00