scopedvr-map-editor/tools/probe_gen_map.gd
scopedvr-operator ab173ac8aa T2 Ueberall installierbar (Operator-Push): Modelle aus mitgeliefertem models/-Ordner
Worker hatte die Arbeit fertig, aber NICHT committet/gepusht (3. Fall heute) —
aus dem Karten-Arbeitsordner gerettet und hier gepusht.

- GlbMeshStore.quellen(): Reihenfolge EINE Stelle — Setting -> Sibling-Repos ->
  mitgelieferter Ordner models/ direkt neben der App (dedupliziert, typisiert)
- Klartext-Meldung FEHLT_TEXT statt stillem Platzhalter; Notfall-Modus: Terrain
  und Bauteile laufen ohne GLBs
- neu: tools/sync_models.sh (fuellt models/, --check), utils/modelle_status.gd
  (Autoload ModelleStatus), tools/probe_gen_map.gd
- neu: README_INSTALL.md (85 Zeilen, Schritt fuer Schritt + §5 Lizenzhinweis:
  ITHappy-Rohdaten NICHT weitergeben, App fuer Slys eigene Rechner)
- export_presets.cfg (eigenstaendiger Linux-/Windows-Export), .gitignore:
  models/ + export/ bleiben draussen (Lizenz + Groesse)
- Tests: test_model_sources (26/27; die rote ist umgebungsabhaengig:
  'lager_ist_leer' erwartet fehlende Sibling-Repos)

Belegt: Import 0 Fehler, gui_smoke 92, ui_layout 71, playtest_spawn 56.
2026-10-20 09:43:05 +00:00

26 lines
1.3 KiB
GDScript

extends SceneTree
## Probe-Map-Generator (Karte t_12cf94fe): erstellt eine .svmap mit Objekten,
## die in der Bibliothek existieren, um den Eigenständigkeits-Beweis der
## exportierten App zu fahren.
## Aufruf: godot4 --headless --path . --script res://tools/probe_gen_map.gd \
## -- --out=/pfad/zu/probe_map.svmap
func _init() -> void:
var out := "/tmp/scopedvr_sandbox/probe_map.svmap"
for a in OS.get_cmdline_user_args():
if a.begins_with("--out="):
out = a.substr(6)
var doc := SvmapDocument.create_new("Probe-Map Eigenständig", 64.0, "mittag")
# baum_kiefer_1 und stein_mittel_1 existieren garantiert als flache GLBs in
# models/assets/objekte/ (kein crate_wood — das gibt es als GLB nicht).
(doc["objects"] as Array).append({"id": "baum_kiefer_1", "pos": [0.0, 0.6, 0.0], "rot_y_deg": 0.0, "scale": 1.0})
(doc["objects"] as Array).append({"id": "baum_kiefer_1", "pos": [4.0, 0.6, 2.0], "rot_y_deg": 45.0, "scale": 2.0})
(doc["objects"] as Array).append({"id": "stein_mittel_1", "pos": [8.0, 0.6, 4.0], "rot_y_deg": 90.0, "scale": 1.0})
var result := SvmapIO.save_to_file(out, doc)
if result.ok:
print("PROBE_MAP_GENERATED: ", out, " objects=", SvmapDocument.object_count(doc))
quit(0)
else:
print("PROBE_MAP_FEHLSCHLAG: ", str(result))
quit(1)