From f0ff5c9d770608ea1cf674aa5f71e6c701c69293 Mon Sep 17 00:00:00 2001 From: VinPropane Date: Fri, 10 Apr 2026 22:20:51 -0400 Subject: [PATCH] NEON-28: fix occluder key check order for freed instances --- client/scripts/isometric_follow_camera.gd | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/scripts/isometric_follow_camera.gd b/client/scripts/isometric_follow_camera.gd index 3760af8..be9f128 100644 --- a/client/scripts/isometric_follow_camera.gd +++ b/client/scripts/isometric_follow_camera.gd @@ -227,8 +227,11 @@ static func occlusion_policy_is_valid(policy: Resource) -> bool: ## True if [param body] is a live [Node3D] suitable as an [member _occluder_overrides] key. ## Used before occlusion ray work and from tests (NEON-28). +## [code]is_instance_valid[/code] first: [code]is Node3D[/code] on a freed reference errors at runtime. static func occluder_override_key_is_valid(body: Variant) -> bool: - return body is Node3D and is_instance_valid(body) + if not is_instance_valid(body): + return false + return body is Node3D func _restore_occluder_overrides_list(overrides: Array) -> void: