Commit graph

  • e664d09666 Map Builder Inspektor Teil 2 (t_e0120dc2): Achsen-Gizmo — drei farbige Pfeile (X rot / Y gruen / Z blau) am einzeln markierten Objekt, ziehbar; Zieh-Werte rasten auf die Schrittweite (Mausrad waehrend des Zugs blaettert fein 0.1 / normal 0.5 / grob 2.0, SpinBox 'Schrittweite' im rechten Panel, ueberlebt UI-Rebuilds); Inspektor-Zahlen folgen live; Y-Zug klemmt am Terrain, X/Z folgen dem Boden; Esc rollt exakt auf die Startposition zurueck (kein History-Eintrag), Loslassen committet EINEN Undo-Schritt; nur Einzelauswahl. Neues src/viewport/gizmo.gd haengt als Kind von interaction.gd (Input-Prioritaet), interaction.gd unveraendert. OPERATOR-NACHTRAG: dieser Stand lag nur als Karten-Anhang vor (nie committet) — vom Operator uebernommen und verifiziert: --import 0 Parse-Fehler, test_gui_smoke 89 OK, test_inspector 33 OK, test_ui_scale 51/0, test_library 101 OK. Hermes (Operator) 2026-10-19 21:29:09 +0000
  • 9fa8029910 Farbe je Objekt (t_b0edb807): Inspektor-Abschnitt 'Farbe / Material' mit 7er-Palette (Wüstensand/Oliv/Tarn-Grün/Stahlgrau/Holzbraun/Dunkelbraun/Weiß) + 'Zurücksetzen (Pack-Farbe)'; Mehrfachauswahl = EIN Undo-Schritt; Speichern als OPTIONALES Objekt-Feld tint:[r,g,b] (Anzeige-sRGB, 4 Stellen — Rückwärtskompatibel, Karten ohne Feld unverändert). Neuer Helfer src/svmap/svmap_tint.gd (1:1-Spiegel im Client, gemeinsame Semantik Editor+Spiel): albedo_color-ERSATZ via Surface-Override-Kopien — Original-Materialien bleiben unangetastet, Auswahl-Orange (material_override) gewinnt weiter; set_selected_multi re-synced Tint beim Abwählen, tint_refresh für Inspector-Änderungen ohne Rebuild. Map-View-Bauer wendet tint beim Aufbau an (echte GLBs UND Platzhalter). tests/test_map_tint.gd neu (31 Checks grün), Editor-Gesamtsuite 18/18 (gui_smoke-F5-Artefakt per Gegenprobe entkräftet, updater falsch-rot im Sammel-Filter). Rauheit/Metallisch bewusst weggelassen (Begründung im Handoff/BEWEIS.md). Hermes (scopedvr-dev) 2026-10-19 20:54:34 +0000
  • c8b9c59fda Objekt-Inspektor rechts (t_bb0d11c9): Position/Drehung/Größe tippbar+ziehbar (Godot-Konvention: am Label ziehen), Mehrfachauswahl mit „—“ bei ungleichen Werten, JEDE Änderung = 1 Undo-Schritt (Tippen beim Bestätigen, Ziehen beim Loslassen), live im 3D (Marker-Sync ohne Rebuild, Rescale inkl. Pick-Metas), Auf-Boden-Setzen über vorhandene Logik, Info-Block (Fußpunkt/Kollision/echtes Modell), Kopf mit N von M + Poly. Scale via UIScale (alle 3 Stufen layout-geprüft @2328x1310). Drive-by-Fixes (Vorbestand): Tree.ensure_visible → Tree.scroll_to_item (SCRIPT ERROR bei jeder Auswahl) + sel_label füllt jetzt bei select_object/select_many. tests/test_inspector.gd neu (35 Checks), Suiten grün. Hermes (scopedvr-dev) 2026-10-19 20:02:11 +0000
  • 366d482a1a A6-Aufraeum (t_a6a96e4c): Beispiel-Faesser entfernt — Thumbs + .import geloescht, Registry-Sync (345 Objekte, note erhalten), probe_store_a6 auf barrel_001 umgezogen Hermes (scopedvr-dev) 2026-10-19 20:00:52 +0000
  • c8a41c0794 UI-Größe: zentrale Skalierung Klein/Mittel/Groß (t_297221b5) — Top-Bar-Menü, sofort wirksam (Rebuild), gespeichert in user://scopedvr_editor.cfg [ui]; Fenster startet maximiert + merkt Lage; Panel-Min-Maße/Schrift an einen Faktor gekoppelt; Layout-Überlauf-Fixes (Hilfe-Hinweis Umbruch+Grow-up, Statuszeile/Top-Bar-Ellipsis, linkes Panel scrollbar) Hermes (scopedvr-dev) 2026-10-19 19:21:45 +0000
  • f4748af371 D9 (t_9962eba7): 293 Bibliotheks-Thumbs neu gerendert — Kategorie-Farbe statt ausgewaschen Hermes (scopedvr-dev) 2026-10-19 19:08:59 +0000
  • ccf1c43f2e D8 (t_ba4278f8): Thumbs neu gerendert (347 Objekte, 27 Bilder neu) nach dem Alt-Bestand-Fusspunkt-Bake Hermes (scopedvr-dev) 2026-10-19 19:04:34 +0000
  • 43636c840f Bibliothek: 96-px-Kacheln, Kategorie-Gruppen, klappbar + gemerkt, Suche (t_59fc0f21) Hermes (scopedvr-dev) 2026-10-19 18:49:21 +0000
  • 91e2b03843 PROBE entfernt (t_f73a1cc5): Nachweis abgeschlossen Hermes (scopedvr-dev) 2026-10-19 18:41:56 +0000
  • 2bd1e671e4 PROBE (t_f73a1cc5): lose-Datei-Kollision nachstellen — wird nach dem Beweis entfernt Hermes (scopedvr-dev) 2026-10-19 18:41:27 +0000
  • 90c3c7fdc7 Selbst-Update: lose/geänderte Dateien werden automatisch beiseitegelegt (t_f73a1cc5) Hermes (scopedvr-dev) 2026-10-19 18:41:19 +0000
  • 3e07e91f5a Revert "Pack-Texturen (t_9675e48d): Editor-Viewport + Thumbs texturiert" Hermes (scopedvr-dev) 2026-10-19 18:33:15 +0000
  • 785a858ae0 Thumb-.import vervollstaendigt (30 Fahrzeug-Thumbs, t_9675e48d Nachziehen) Hermes (godot-vr) 2026-10-19 18:31:42 +0000
  • c0cbe4bb0c Pack-Texturen (t_9675e48d): Editor-Viewport + Thumbs texturiert Hermes (godot-vr) 2026-10-19 18:26:08 +0000
  • e1e07e57b0 D6 (t_31e800f2): Editor-Sync — 30 Fahrzeug-Thumbs + Map-Builder-Nachweis Hermes (scopedvr-dev) 2026-10-19 18:25:15 +0000
  • 8f598dc67d Test-Fix (t_03d0f442): test_library-Katalog-Check datengetrieben statt harte 54 scopedvr-dev 2026-10-19 18:23:56 +0000
  • 6572f1e10c D0 (t_47f05319): 317 Thumbs mit Kategorie-Farben neu gerendert + Thumb-Licht entschärft Hermes (scopedvr-dev) 2026-10-19 18:22:32 +0000
  • 6f81add8f4 D7 (t_f77bc681): Editor-Notiz wiederhergestellt + .import-Dateien der Thumbs vervollstaendigt Hermes (scopedvr-dev) 2026-10-19 18:15:22 +0000
  • 6c65b13a8f D4 (t_691b51ce): Editor-Sync — 59 neue Prop-Thumbs + Map-Builder-Probe (3 Props mit Kollisionsboxen) Hermes (scopedvr-dev) 2026-10-19 18:10:41 +0000
  • b288e8a1e8 D3 (t_6690c59c): .uid der Render-Probe nachgezogen Hermes (scopedvr-dev) 2026-10-19 18:09:34 +0000
  • c92d35dca2 D3 (t_6690c59c): Render-Probe — Gebaeude in einer Reihe, Kamera naeher (Sichtpruefung Fusspunkt/Groesse) Hermes (scopedvr-dev) 2026-10-19 18:08:40 +0000
  • 29b1668f57 D3 (t_6690c59c): Gebaeude in der Editor-Bibliothek (93 Objekte, 37 neue Thumbs) + Map-Builder-Render-Probe Hermes (scopedvr-dev) 2026-10-19 18:07:12 +0000
  • 56a808f052 D1 (t_78746c97): Waende in der Editor-Bibliothek (Registry-Kopie + 50 Thumbs) + Render-Probe Hermes (scopedvr-dev) 2026-10-19 18:07:02 +0000
  • c0d426152e D2 (t_33250710): Editor-Bibliothek 83 Objekte + 27 Absperrungs-Thumbs + Renderprobe Hermes (scopedvr-dev) 2026-10-19 18:06:48 +0000
  • ebe3dd276b D5 (t_e81aed01): Render-Nachweis tools/probe_d5_render.gd (Fels/Kaktus/Stein/Decal platziert) Hermes (scopedvr-dev) 2026-10-19 18:06:39 +0000
  • 0f86182a2c D5 (t_e81aed01): Editor-Sync — Bibliothek 144 Objekte + 88 Natur-Thumbs (gen_thumbs) Hermes (scopedvr-dev) 2026-10-19 18:05:41 +0000
  • 310aa695e6 A6 (t_c5a27ca7): Editor loest Kategorie-GLBs aus der Registry auf (GlbMeshStore + gen_thumbs), Thumbs fuer Beispiel-Objekte Hermes (scopedvr-dev) 2026-10-19 18:02:12 +0000
  • 76f8143540 A6 (t_c5a27ca7): Merge-Script ortsunabhaengig, Editor-Sync importiert vor Thumbs, Client-Probe belegt Registry-GLB Hermes (scopedvr-dev) 2026-10-19 18:01:08 +0000
  • 9dca88e10e A6 Fundament (t_c5a27ca7): Fragment-System + Merge + Editor-Sync fuer Baukasten-Objekte Hermes (scopedvr-dev) 2026-10-19 18:00:24 +0000
  • 1cfc4e8c3a Update-Test-Zeile aus dem H-Overlay entfernt — Selbst-Update-Kette und Restart-Fix live verifiziert (17.10., 2 Zyklen) Slyphax-Hermes 2026-10-17 21:56:43 +0000
  • f6f5ef6c90 Selbst-Update-Test Zyklus 2: Restart-Verifikation — soll die APP selbst neu öffnen (Fix f99d1e2 im Speicher) Slyphax-Hermes 2026-10-17 21:54:23 +0000
  • f99d1e2a28 Fix Selbst-Restart (Live-Befund 17.10.): Update-Restart ging auf den Godot-Editor statt die Map-Editor-APP — self_restart_args ohne --editor (die App startet über main.tscn mit nacktem --path), Kommentar + test_updater angepasst Slyphax-Hermes 2026-10-17 21:53:37 +0000
  • 23f7e1d39c Selbst-Update-Test 17.10: sichtbare Test-Zeile im H-Overlay — Sly soll Update-Check + Jetzt-updaten live ziehen Slyphax-Hermes 2026-10-17 21:50:40 +0000
  • 4c960e2587 test_testrun: Stale-Export-Falle behoben (t_2a90ceab): _cleanup purgt user://testrun KOMPLETT statt nur Testmap.svmap — eine Stale-Export-Datei fremden Owners (Root-Testlauf mit HOME=/home/slyphax erzeugt root-gehoerige Dateien in slyphax-Appdata; ein slyphax-Lauf kann sie nicht ueberschreiben) liess save_to_file still mit Datei-nicht-schreibbar (Fehler 12) scheitern, waehrend Temp-Datei-existiert + Roundtrip dank der alten Datei faelschlich gruen blieben — darum wirkte der 1/14-FAIL pre-existing ohne jeden Code-Bezug. Der Ordner-Owner darf unlinken, der Purge raeumt darum auch root-Dateien weg; zusaetzlich druckt der Export-Check jetzt die save-Fehlerliste (Diagnose ohne Probe-Script). Verifikation: Suite als slyphax UND root je 14/14 ALL OK; Fehlermeldung per Probe als slyphax bestaetigt. Hermes (godot-vr) 2026-10-17 22:55:05 +0200
  • 73847ed1ce Map-Editor Selbst-Update gehärtet (t_1457e935): KEIN Credential-Dialog mehr — git-Läufe nie interaktiv — Root-Cause: der systemd-User-Manager exportiert SSH_ASKPASS (ksshaskpass); ein nackter git-Spawn im Editor hat damit mitten in der Update-Prüfung das KDE-Login-Fenster geöffnet, und der Credential-Store (~/.git-credentials) war leer (0 Bytes). Fix (Belt AND Braces, EditorUpdater.spawn_argv): JEDE git-Ausführung läuft über /usr/bin/env mit GIT_TERMINAL_PROMPT=0 + GIT_ASKPASS=/bin/true + HOME aus der eigenen Umgebung (kein Hardcode), dazu -c credential.helper= (Helper-Reset, sonst öffnet z. B. der Windows-Credential-Manager sein GUI) + -c credential.helper=store + core.askPass=/bin/true (Askpass-Fallback tot, auch ohne env-Wrapper). Askpass-Präzedenz am PC verifiziert: core.askPass/GIT_ASKPASS schlagen geerbtes SSH_ASKPASS — Fake-Askpass startet nicht, sauberes Authentication failed Exit 128 statt GUI. Neuer Status auth_failed mit klarem UI-Text („Updates nicht prüfbar — Zugangsdaten fehlen (kein Login-Dialog geöffnet)“), Auth-Erkennung pure (looks_like_auth_error: could-not-read-Username / Authentication failed / terminal prompts disabled / Unauthorized — Connection refused ist KEIN Auth-Fehler); pull-Fehler bekommen denselben Zusatz-Hinweis. Credential-Store am PC befüllt (Forgejo-Token für 127.0.0.1:13020, chmod 600) — ls-remote/pull/ls-remote-push laufen stimmlos. Tests: test_updater +10 Checks (auth-Erkennung 4, spawn_argv-Zusammensetzung 6) → 47/47 ALL OK; komplette Suite 12/13 grün (test_testrun: 1/14 FAILED — PRE-EXISTING, per git-stash-Verfahren verifiziert, Ursache unabhängig von diesem Diff, Follow-up-Karte folgt). docs/tasten.md: Abschnitt Updates um „Zugangsdaten fehlen“ ergänzt. slyphax 2026-10-17 22:49:42 +0200
  • f2b4f6a824 Map-Editor Selbst-Update (t_d95f087a): Start-Check + Banner + Jetzt-updaten + Pruef-Button — EditorUpdater (src/editor/updater.gd): stiller Check beim Start (git ls-remote origin/main vs. lokaler HEAD, keep-alive-leicht), Bernstei-Banner „🔄 Update verfügbar: alt → neu“ mit Knopf „Jetzt updaten“, Datei-Menü-ID 7 „🔄 Updates prüfen“ mit Statuszeilen-Ergebnis (Update verfügbar / auf dem neusten Stand / Nicht erreichbar). Update-Ausführung: Dirty-Schutz via _request_lossy (derselbe deutsche Dialog wie Strg+O/N, Abbrechen bricht ab), dann git pull --ff-only (Tunnel + credential store) → Godot-Import-Lauf (--headless --import) → Neustart. Import-Ausgabe wird geparst: Parse-/SCRIPT-Fehler trotz Exit-Code 0 = Abbruch mit Meldung, KEIN Neustart (Lektion 17.10. class_name-Cache). Restart plattformneutral: cfg [update] restart_command > systemd-User-Unit map-editor auto-erkennung (systemd-run --on-active=3s Kick im eigenen Scope, überlebt den Unit-Neustart) > Selbst-Restart (dieselbe Godot-Binary, --editor --path). Keine Linux-Pfade hartkodiert; git_command aus cfg möglich. Offline: kein Banner, kein Fehler-Geballer. Ein-Hintergrund-Thread je Richtung (check/update) mit Busy-Guard, Thread-join über call_deferred-Ordnung. Tests: neue Suite test_updater (37 Checks: Check divergiert/gleich/unreachable/kein-Repo, Banner-Texte, Pull gegen echte Temp-Klone, Import-Abbruch-Pfad inkl. Exit-0-Falle, Restart-Auflösung), Suite 13/13 ALL OK (997 Checks). docs/tasten.md: Abschnitt „Updates“; H-Overlay-Zeile. Hermes (godot-vr) 2026-10-17 19:38:07 +0000
  • 2065ef2252 Map-Editor R3 (t_c863b93b): Kartengröße-Dialog + Menü + Undo-Verdrahtung — neuer Dialog „Kartengröße ändern“ (Datei-Menü, Stil wie new_map_dialog): aktuelle Größe/Auflösung, Freifelder X/Z (256–4096 clamp) + Preset-Buttons 256/512/1024/2048, Live-Preview aus resize_preview (R2): Verlust-Liste beim Verkleinern (Objekte/Bauteile/Spawn-Punkte draußen) mit Entfernen-Schalter, V9-Warnung (Drop aus = Map nicht speicherbar), Spawn-Speicher-Warnung (< 4 Punkte/Team, V11), Warnband beim Vergrößern über ~1024 m (Dichte-Deckel 513 → m/Punkt, Quest-Perf). Ausführen: resize_apply → doc IN-PLACE ersetzt (History-Referenz bleibt gültig) als EINE Undo-Einheit (kompletter doc-Snapshot), Dirty-Flag, Terrain/Viewport-Rebuild + Kamera-Refit. ActionHistory: snapshot/_restore_block vertragen jetzt skalare Ober-Keys (format_version/weather) → Ganz-doc-Snapshots möglich. Tests: neue Suite test_resize_dialog (40 Checks: Dialog-Aufbau/Clamp/Preview-Texte, Menü-Verdrahtung, Undo-Roundtrip BYTE-IDENTISCH, Redo, Drop-aus-Pfad), komplette Suite 12/12 ALL OK (960 Checks). docs/tasten.md: Abschnitt „Kartengröße ändern“. Hermes (godot-vr) 2026-10-17 19:01:15 +0000
  • 116acd63ed Map-Editor R2 (t_27ba6c37): Verkleinern + Out-of-Bounds-Liste + Filter — resize_preview() listet je Kategorie (Objekte nach Anker-Regel, Bauteile nach Fußabdruck-"punkte" mit Rotation, Spawn-Punkte nach Punkt-Regel; Kante exakt = drin, Rand-Überlapper bleiben unange tastet), resize_apply(doc, x, z, drop_outside) resampelt wie R1 und entfernt bei Bedarf genau die gelisteten Einträge (Eingabe-doc bleibt rein). Shrink 512→256: Terrain an Weltposition 1:1 (±0.05 m), res bleibt 129 (2 m/Punkt). Tests: 19 neue Checks in test_terrain (Preview/Filter/Roundtrip), 11 Suiten ALL OK (920 Checks). Hermes (godot-vr) 2026-10-17 18:56:10 +0000
  • 2d8b9822f0 Map-Editor R1 (t_0d436687): Resize-Kern + Vergrößern — SvmapDocument.resize_terrain(), Anker Mitte/Rand flach, Dichte-Leiter 129→257→513. Hermes (godot-vr) 2026-10-17 18:48:21 +0000
  • b85e3bed52 Map-Editor: Höhenlinien nur im Terrain-Werkzeug (t_89c0ec95) Hermes godot-vr 2026-10-17 18:24:45 +0000
  • d6a0fe2196 Relief-Nachreich (t_3ebe4086): relief_color klammaert Kanaele auf 0..1 — der Mesh-Speicher ARRAY_COLOR/RGBA8 clamp't genauso, der Helfer muss die Render-Wahrheit liefern, sonst liegt der Probe-Vergleich um >0.05 daneben. Live-Material-Test t_55ed041a erwartet jetzt dieselbe relief_color-Formel statt der alten 0.72..1.15-Konstanten. Suite: test_terrain 112/112, 11 Suiten ALL OK. Hermes (godot-vr) 2026-10-17 18:06:39 +0000
  • ffb27645d4 Terrain-Relief lesbar machen (t_3ebe4086) — Sly-Befund 17.10. "Erhoehungen/Vertiefungen kaum erkennbar, alles knallgruen und hell". Hermes (godot-vr) 2026-10-17 18:05:01 +0000
  • e1c737df61 Terrain: Material-Farben bleiben LIVE während Heben/Senk-Stroke (t_55ed041a) — Live-Rebuild bekommt die Material-Schicht mit Hermes (godot-vr) 2026-10-17 17:51:07 +0000
  • db6bcec971 Flugmodus-Tasten: Leertaste=hoch, Shift=runter, Strg=schneller (Sly 17.10., Shooter-Konvention) Hermes (godot-vr) 2026-10-17 17:45:37 +0000
  • d6c472603f Build-Tool: ray_pick ohne 500-m-Cap (t_555e33da) — Umschalt+Klick/Baustapel-Pick funktioniert jetzt auch im Default-Framing (~614 m Kamera-Distanz); Workaround-Zoom im RMB-Test entfernt. Hermes (godot-vr) 2026-10-17 17:39:30 +0000
  • 7521db7f8d Map-Editor: RMB = Flug mit absolutem Vorrang (t_2470de89) — Terrain-Senken auf Strg+LMB, Hand-Objekt-Abwurf auf Esc. Hermes (godot-vr) 2026-10-17 17:36:57 +0000
  • cda6f48b01 GLB-View (t_9b50b231): echte Modelle im Editor-Viewport — Platzhalter nur als Fallback. slyphax 2026-10-17 17:23:56 +0000
  • afcbda8dd0 Shortcuts 3/3 (t_11b5c25b): Strg+O/N/Umschalt+S + Redo-Wege dokumentiert, F1-F4 Werkzeugwechsel, H-Kurzhilfe-Overlay, F5 Karte testen, Dirty-Schutz vor Neu/Oeffnen, permanente Werkzeug-Anzeige in der Statuszeile. Hermes (godot-vr) 2026-10-16 17:58:34 +0000
  • 08a75ac430 Shortcuts 2/3 (t_55257792): R-Drehen + Pfeil-Raster + PgUp/Down + Strg+Bild↑ + Greifen + Terrain-Pinsel-Tasten. Hermes (godot-vr) 2026-10-16 17:53:10 +0000
  • 095af5ff3c Shortcuts 1/3 (t_c46d31c2): Freelook-Flug + F-Focus + Esc-Policy + Entf-Mehrfachauswahl + Strg+D (+2 m X) + Strg+LMB-Mehrfachauswahl. Hermes (godot-vr) 2026-10-16 17:43:17 +0000
  • b20dff2b5d Terrain C (t_4092e3a0): Objekt-Platzierung == Ghost-Preview — EIN Platzier-Pfad, Fusspunkt auf Terrainhoehe. Hermes (godot-vr) 2026-10-16 17:36:30 +0000
  • e505329a42 Terrain B (t_234490cf): Pinsel-Position == Cursor-Position — Ray→Terrain-Mapping gefixt Hermes (godot-vr) 2026-10-16 17:27:19 +0000
  • b7b160d3bc Terrain-Darstellung (t_7ac70014): Winding-Order geflippt — Terrain bei h=0 sofort als Rasen-Platte sichtbar. Hermes (godot-vr) 2026-10-16 17:14:54 +0000
  • adb585d30e Vereinigung main+feature/builder-export (t_695d57ee): Bauen-Modus + Bibliothek-Export, EIN Vendor-Verzeichnis addons/modular_builder. Hermes (godot-vr) 2026-10-16 16:49:45 +0000
  • b3fcb355d6 Map-Builder-Export (t_82d2a8dd): Modular-Builder v0.2.0 vendored (addons/modular_builder_en, self-contained) + ScopedVR-Bibliothek-Export im Bauen-Modus. scopedvr_export.gd (Kern, statisch testbar): slugify (Umlaute aufgeloest, fuehrende Ziffern/Unterstriche weg, max. 48 Zeichen), normalisiere (Fusspunkt y=0, XZ zentriert, Material bleibt), trimesh_vertices (Dreiecks-Suppe, Doppel-Dreieck-Dedup + 1-mm-Quantisierung — Achtung: ARRAY_INDEX ist NULL bei nicht-indizierten Oberflaechen, direkter Cast bricht die Funktion ab), glb_bytes (GLTFDocument, Texturen eingebettet, null-Mesh → leere Bytes). scopedvr_export_ui.gd: Name-Dialog → Pipeline (mesh --budget 20000 → registry trimesh --vertices → client → editor) → Thumbnail aus dem ECHTEN Mesh (await, 128 px). editor_actions: „Struktur exportieren" im Dock. project.godot: Plugin enabled. gen_thumbs: Trimesh-Objekte mit vorhandenem Thumbnail ueberspringen. tests/test_builder_export.gd 21/0. --import ohne Parse-/Script-Error (Klassen-Kollision der Root-Duplikate beseitigt — nur modular_builder_en bleibt); Editor-Suite 354 Checks gruen. feature/builder-export godot-vr (Hermes) 2026-10-15 23:22:43 +0000
  • e2954a38ed M2-Karte t_97ea59c5: Modular Builder fest integriert — Bauen-Modus im App-Skelett. Addon CC0-Code unter addons/modular_builder (Demo + nicht-CC0-Texturen entfernt, ADDON_LIZENZ.txt), Plugin im Godot-Editor aktivierbar; App bekommt eigenen Bauen-Modus (build_tool.gd) auf derselben Runtime-Geometrie (modular_piece_geometry/_detail) — keine Godot-Editor-API im App-UI. 10 Bauteile (Fundament/Boden/Wand/Tür/Fenster/Giebel×2/Dach×2/Treppe), 2-m-Raster (ecke/mitte), Klicken zum Stapeln (Ray-Pick auf gebackenen Flächen), 90°-Drehen, Anheben 0,2 m. UNDO: 1 ActionHistory-Eintrag pro Bauteil (Snapshot Block gebaeude). Speichern: Bauteile als optionale Sektion gebaeude in .svmap (checksum-neutral, Legacy-Maps laden weiter); Baken deterministisch aus Teilen (Editor-Ansicht + Match-Export in Karte 2). Statuszeile clip_text (langer Text sprengte Layout → rechtes Panel weg). Tests: test_bauen.gd 87 Checks (Katalog, Meshes, Snap, Baken/Ray, Undo, Save/Laden, Legacy), Suite 421 Checks grün; GUI-Smoke --bauen-demo (Screenshots + Save/Laden-Flow). Hermes 2026-10-15 23:09:45 +0000
  • 905edc021a M2 Natur-Update t_7cf80244: Bibliothek 54 Objekte in Gruppen bäume/felsen/pflanzen/gras/pilze. library_browser: 39 deutsche Namen, alte Gruppe 'natur' thematisch aufgelöst (tree_pine->bäume, rock_large/boulder_small->felsen, bush_small->pflanzen). mesh_shapes: 'none' = flache Fußpunkt-Scheibe (Deko ohne Kollider bleibt sichtbar/wählbar). gen_thumbs: rendert jetzt ECHTE GLB-Meshes aus dem Mesh-Lager (Sibling-Repo, GLTFDocument ohne Import-System), Fallback weiter Platzhalter — alle 54 Thumbnails neu gerendert. test_library: 15->54 + Gruppen-Checks, Suite 56 Checks grün (alle 6 Editor-Suiten OK). Slyphax 2026-10-15 23:08:24 +0000
  • 87e7a96fd5 Fix GUI-Start-Fehler (Karte t_d3b93793): Terrain-Preset-Crash + command_pressed-Spam. Hermes godot-vr 2026-10-15 21:14:05 +0000
  • 5dd37e32d7 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. Slyphax 2026-10-15 19:21:25 +0000
  • cddebb8c26 M2-Karte t_9117ee32: Objekt-Pipeline 'Fass' — Registry-Sync + Thumbnail; Tests: 12 Objekte, Namens-Fallback ohne Quellcode-Touch Hermes godot-vr 2026-10-15 16:07:03 +0000
  • 23ede45efd 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. Hermes godot-vr 2026-10-15 15:41:53 +0000
  • 423b223454 Tree-Auswahl: content_tree.get_root() statt .root — Godot 4.7 hat kein root-Property (Karte t_f6f29d86) Hermes godot-vr 2026-10-15 15:37:24 +0000
  • 0eae5f56ad M2-Karte t_b84af40f: '▶ Karte testen' (Editor-Seite). Großer deutsch beschrifteter Button oben + Menü-Eintrag: exportiert die AKTUELLE Map (auch ungespeichert) nach user://testrun/<name>.svmap über dieselbe SvmapIO-Validierung wie das Speichern, sucht den scopedvr-client (Klon neben dem Editor ODER client_dir in user://scopedvr_editor.cfg, dokumentiert im README-Abschnitt 'Karte testen') und startet ihn als EIGENEN Prozess (godot --path <client> -- --testmap <map> --mock-master) — Editor bleibt offen, Spiel beendet sich selbst sauber per ESC. Ungültige Map → Klartext-Block statt Start. TestRun-Klasse komplett static + headless testbar. Tests: tests/test_testrun.gd (14 Checks: Temp-Export-Roundtrip, ungültige Map blockiert, Client-Suche inkl. Konfig-Vorrang, Godot-Findung, exakte Argumentliste); run_tests.sh + parse_check.sh um test_testrun/test_run.gd erweitert — volle Suite 220 Checks grün. GODOT-Pfad-Default in tests/run_testmap_e2e.sh des Clients jetzt auto-erkennend (Sly-PC-Pfad → ~/bin/godot4 → PATH). hermes-godot-vr 2026-10-15 15:36:06 +0000
  • 595d1217d9 test_ux: Undo-Ketten-Zählung korrigiert — 4 Commits brauchen 4 Undos (Karte t_f6f29d86) Hermes godot-vr 2026-10-15 15:33:13 +0000
  • 849129d67f Auswahl-System: Mehrfachauswahl (Umschalt+Klick, Rubberband) + Gruppieren + Gruppen-Verschieben (Karte t_f6f29d86) Hermes godot-vr 2026-10-15 15:31:19 +0000
  • eca11bbf83 Objekt-Ops: Duplizieren (Strg+D) + Anheben/Absenken (Bild hoch/runter) + Spiegeln (X/Z) Hermes (godot-vr) 2026-10-15 15:32:24 +0000
  • ce1dc4130d run_tests.sh: test_spawns in Regression-Liste (nach Merge t_c4162c5d) Hermes godot-vr 2026-10-15 13:37:36 +0000
  • 684b4cfd08 M2-Karte t_c4162c5d: Spawn-Zonen malen + Live-Validierung + Map-Fertig-Check (Export-Signierung unverändert über SvmapIO) m2-spawn-zones slyphax 2026-10-15 12:45:54 +0000
  • 3a5c9d44bb Objekt-Bibliothek: Gruppen-Browser mit Thumbnails, Snap-to-Ground, Raster-Snap, Tests m2-object-library Hermes (godot-vr) 2026-10-15 12:18:11 +0000
  • 82269acfbb Terrain: Godot .uid-Dateien der Terrain-Module committed (deterministischer Import) m2-terrain-tool Hermes (godot-vr) 2026-10-15 12:01:17 +0000
  • 12022d1f05 Demo: AABB/Camera-Debugprints in _demo_shot Hermes (godot-vr) 2026-10-15 11:08:38 +0000
  • ada7e449c2 test_terrain: SMOOTH-Test-Pinsel aufs Karten-Zentrum gelegt (Koordinaten-Konvention: 0 m = Mitte) — Test traf vorher außerhalb der Radius-Fläche Hermes (godot-vr) 2026-10-15 10:59:58 +0000
  • 0a0ca65846 Terrain: apply_brush — fehlender z += 1 im äußeren Loop ergänzt (Endlosschleife beim Pinsel-Auftrag, 3 hängende Headless-Runs) Hermes (godot-vr) 2026-10-15 10:58:53 +0000
  • 10fdb4914c Terrain: Parse-Fixes — PackedFloat32Array hat kein .min()/.max() (_min_h/_max_h), stray y += 1 in apply_brush entfernt, Default-Resolution 129 (Editor-MVP-Limit) Hermes (godot-vr) 2026-10-15 10:36:06 +0000
  • 30379bcc7b M2-Karte t_9aba04f1: Terrain-Werkzeug — Höhenfeld heben/senken/glätten (Pinsel + Undo) Hermes (godot-vr) 2026-10-15 10:30:42 +0000
  • 9b377a7720 README: Falle dokumentiert — nach Pull mit neuen class_name-Skripten erst --import (Klassen-Cache), sonst startet die GUI ohne UI Hermes (godot-vr) 2026-10-15 09:58:43 +0000
  • a11fdf7ab3 UX: Demo-Hook setzt Demo-Objekte + Auswahl-Markierung für den Smoke-Screenshot m2-ux-fundament Hermes (godot-vr) 2026-10-15 09:51:46 +0000
  • eb2da3a5d1 UX: Ghost-Demo-Hook zoomt Kamera heran (Smoke-Screenshot) Hermes (godot-vr) 2026-10-15 09:50:43 +0000
  • d628e766ab UX: Variant-Inferenz-Warnungen as Error vermeiden (interaction.gd) Hermes (godot-vr) 2026-10-15 09:49:14 +0000
  • 1f2ca0179a UX-Tests: Alias-Gegenprobe ohne History-Mutation Hermes (godot-vr) 2026-10-15 09:47:55 +0000
  • ccf595de30 UX: ActionHistory restored Blöcke in-place (Alias-Sicherheit), Terrain-Test Koordinaten korrigiert Hermes (godot-vr) 2026-10-15 09:47:26 +0000
  • 602cbc3402 M2: Map-Editor UX-Fundament — Undo/Redo-History, Ghost-Preview, Auswahl-Anfassen, helfende Meldungen (t_40d855d0) Hermes (godot-vr) 2026-10-15 09:45:48 +0000
  • 84bc08145b M2: Map-Editor MVP App-Skelett — svmap laden/speichern (V1-V14), Viewport-Grundgeruest, Neue-Map-Dialog (t_5badf371) slyphax 2026-10-15 11:34:32 +0200
  • 259e135fb8 Chef-Grundsatz: MAXIMALE NUTZERFREUNDLICHKEIT (Sly 15.10.) — konkrete UX-Regeln für alle Editor-Karten + Test-Benchmark Hermes (godot-vr) 2026-10-15 09:23:05 +0000
  • be926fcaf7 README ausgebaut: MVP-Werkzeug-Kette, Architektur (svmap 1:1), M2-Zuordnung (E14/E20, Wetter-Presets) Hermes (godot-vr) 2026-10-15 09:11:44 +0000
  • 82d63df95a init README slyphax 2026-10-14 23:43:57 +0200