scopedvr-map-editor/tools/probe_gen_map.gd
scopedvr-operator a62357dad8 tools/probe_gen_map.gd: OIDs per --oid= waehlbar
Damit lassen sich auch VERSCHACHTELTE Pack-Modelle pruefen
(models/military_desert/<kategorie>/<oid>.glb) — noetig, weil der erste
Eigenstaendigkeits-Beweis nur flache Modelle abdeckte.
2026-10-20 10:00:29 +00:00

37 lines
1.5 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")
# Vorgabe: baum_kiefer_1 und stein_mittel_1 — die existieren garantiert als
# flache GLBs in models/ (kein crate_wood — das gibt es als GLB nicht).
# Operator-Erweiterung 20.10.: --oid=a,b,c prüft beliebige OIDs, damit auch
# VERSCHACHTELTE Pack-Modelle belegt werden können
# (models/military_desert/<kategorie>/<oid>.glb).
var ids: Array = ["baum_kiefer_1", "stein_mittel_1"]
for a in OS.get_cmdline_user_args():
if a.begins_with("--oid="):
ids = []
for x in a.substr(6).split(",", false):
if not x.strip_edges().is_empty():
ids.append(x.strip_edges())
for i in ids.size():
(doc["objects"] as Array).append({
"id": ids[i], "pos": [float(i) * 4.0, 0.6, 0.0], "rot_y_deg": 0.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)