UX: Demo-Hook setzt Demo-Objekte + Auswahl-Markierung für den Smoke-Screenshot

This commit is contained in:
Hermes (godot-vr) 2026-10-15 09:51:46 +00:00
parent eb2da3a5d1
commit a11fdf7ab3

View file

@ -858,9 +858,21 @@ func _maybe_start_demo_mode() -> void:
oid = args[i + 3] oid = args[i + 3]
var pos := Vector3(x, SvmapDocument.terrain_height_at(doc, x, z), z) var pos := Vector3(x, SvmapDocument.terrain_height_at(doc, x, z), z)
interaction.demo_park_ghost(pos, oid) interaction.demo_park_ghost(pos, oid)
# Demo-Aufbau: zwei Objekte setzen und eins orange auswählen — zeigt
# Ghost-Preview UND Auswahl-Markierung in einem Smoke-Screenshot.
if args.has("--ghost-demo-select"):
var before: Dictionary = history.snapshot(["objects"])
(doc["objects"] as Array).append({"id": "watchtower_wood", "pos": [6.0, 0.0, 0.0], "scale": 1.0, "rot_y_deg": 0.0})
(doc["objects"] as Array).append({"id": "crate_wood", "pos": [0.0, 0.0, 0.0], "scale": 1.0, "rot_y_deg": 0.0})
history.commit("Demo: Objekte gesetzt", before, history.snapshot(["objects"]))
interaction.call("clear_selection", true)
_refresh_all()
interaction.select_object(1, true)
else:
_refresh_history_buttons()
# Kamera nah heran, damit die Vorschau im Screenshot gut sichtbar ist. # Kamera nah heran, damit die Vorschau im Screenshot gut sichtbar ist.
camera.target = pos + Vector3(0.0, 0.6, 0.0) camera.target = pos + Vector3(0.0, 0.6, 0.0)
camera.distance = 26.0 camera.distance = 14.0
camera.pitch_deg = 32.0 camera.pitch_deg = 32.0
camera.yaw_deg = 40.0 camera.yaw_deg = 40.0
camera.call("_apply") camera.call("_apply")