scopedvr-map-editor/tests/probe_t_efb3d022_repro.gd
2026-11-01 19:34:05 +01:00

36 lines
1.4 KiB
GDScript

extends SceneTree
## Beweis-Probe t_efb3d022: `[library]` enthält einen Array-Eintrag.
## Vor dem Fix: SCRIPT ERROR "Invalid call. Nonexistent 'bool' constructor"
## beim Laden der Klapp-Zustände (bool(<Array>) ist kein gültiger Konstruktor).
## Nach dem Fix: sauberes Laden, Zustände kommen zurück, keine Fehler.
##
## godot4 --headless --path . -s res://tests/probe_t_efb3d022_repro.gd
##
## Grep-Muster für den Gegenbeweis: "SCRIPT ERROR" + "Nonexistent 'bool' constructor"
func _initialize() -> void:
_run.call_deferred()
func _run() -> void:
# Kaputte cfg simulieren: Array-Eintrag (Nicht-Bool) neben echtem Bool,
# plus zuletzt_benutzt (U4 schreibt das Array in dieselbe Sektion).
var cfg := ConfigFile.new()
cfg.set_value("library", "zuletzt_benutzt", PackedStringArray(["box_002", "box_001"]))
cfg.set_value("library", "gruppen_kisten", true)
cfg.set_value("library", "gruppen_bauteile", false)
cfg.set_value("library", "array_gruppe", PackedStringArray(["a", "b"]))
cfg.save("user://scopedvr_editor.cfg")
var scene: PackedScene = load("res://core/scenes/main.tscn")
var main: Control = scene.instantiate()
root.add_child(main)
await process_frame
await process_frame
var assets = main.assets_mod
var states: Dictionary = assets._library_load_open_states()
print("STATES=", states)
print("PROBE_ENDE states=", states.size(), " kisten=", states.get("gruppen_kisten", "?"),
" bauteile=", states.get("gruppen_bauteile", "?"))
quit(0)