From e4a2f31de9416788fbffddbd814bc0ddafb7610d Mon Sep 17 00:00:00 2001 From: Rob Kelly Date: Tue, 22 Apr 2025 14:21:32 -0600 Subject: [PATCH] Bulkhead & wall switch defer state initialization until after loading --- src/props/bulkhead/bulkhead.gd | 9 +++++---- src/props/retinal_scanner/retinal_scanner.gd | 7 +++++-- src/props/wall_switch/wall_switch.gd | 15 ++++++++++----- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/props/bulkhead/bulkhead.gd b/src/props/bulkhead/bulkhead.gd index bf4c8f8..3b7fbb6 100644 --- a/src/props/bulkhead/bulkhead.gd +++ b/src/props/bulkhead/bulkhead.gd @@ -19,6 +19,10 @@ extends Node3D func _ready() -> void: + _deferred_init.call_deferred() + + +func _deferred_init() -> void: if start_open: _instant_open() @@ -59,7 +63,4 @@ func serialize() -> Dictionary: func deserialize(state: Dictionary) -> void: - if state["open"]: - _instant_open() - else: - _instant_close() # unneccessary? + start_open = state["open"] diff --git a/src/props/retinal_scanner/retinal_scanner.gd b/src/props/retinal_scanner/retinal_scanner.gd index 4044eee..42c2b47 100644 --- a/src/props/retinal_scanner/retinal_scanner.gd +++ b/src/props/retinal_scanner/retinal_scanner.gd @@ -8,6 +8,10 @@ signal activated func _ready() -> void: + _deferred_init.call_deferred() + + +func _deferred_init() -> void: if enabled: enable() else: @@ -47,5 +51,4 @@ func serialize() -> Dictionary: func deserialize(state: Dictionary) -> void: - if state["enabled"]: - enable() + enabled = state["enabled"] diff --git a/src/props/wall_switch/wall_switch.gd b/src/props/wall_switch/wall_switch.gd index 839ec8a..8bf39c9 100644 --- a/src/props/wall_switch/wall_switch.gd +++ b/src/props/wall_switch/wall_switch.gd @@ -22,6 +22,10 @@ const CLEAN_THRESHOLD := 1400 func _ready() -> void: interactive.label = label + _deferred_init.call_deferred() + + +func _deferred_init() -> void: if clean: gunk_body.clear_all() _on_clean() @@ -88,11 +92,12 @@ func _on_action_delay_timeout() -> void: func serialize() -> Dictionary: - return {"enabled": enabled} + return { + "clean": clean, + "enabled": enabled, + } func deserialize(state: Dictionary) -> void: - if state["enabled"]: - enable() - else: - disable() + clean = state["clean"] + enabled = state["enabled"]