From 51bfd1718b2bab6c2c43986e868e7c7ef6ba18fe Mon Sep 17 00:00:00 2001 From: Steven Wroblewski Date: Fri, 17 Apr 2026 13:11:30 +0200 Subject: [PATCH] fix(core): enforce CharacterData compile order and remove ClassDB type lookup on export character.gd referenced CharacterData.State as a compile-time constant dict, causing export to fail when character.gd was compiled before character_data.gd (alphabetical order). The preload forces character_data.gd to be compiled first. Changing SubResource type to "Resource" removes the ClassDB lookup for the custom class name during scene export, relying on the explicit script reference instead. Co-Authored-By: Claude Sonnet 4.6 --- scenes/main/Main.tscn | 2 +- scripts/characters/character.gd | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/scenes/main/Main.tscn b/scenes/main/Main.tscn index 1561acb..37649be 100644 --- a/scenes/main/Main.tscn +++ b/scenes/main/Main.tscn @@ -8,7 +8,7 @@ [ext_resource type="PackedScene" path="res://scenes/objects/ElevatorButton.tscn" id="6_elevbtn"] [ext_resource type="Script" path="res://scripts/characters/character_data.gd" id="7_chardata"] -[sub_resource type="CharacterData" id="CharacterData_bunny1"] +[sub_resource type="Resource" id="CharacterData_bunny1"] script = ExtResource("7_chardata") id = "bunny_01" display_name = "Bunny" diff --git a/scripts/characters/character.gd b/scripts/characters/character.gd index bbf6e85..7a95646 100644 --- a/scripts/characters/character.gd +++ b/scripts/characters/character.gd @@ -1,6 +1,8 @@ ## Character — base class for all playable figures (bunny, cat, etc.). class_name Character extends Node2D +const _CharacterData = preload("res://scripts/characters/character_data.gd") + signal character_picked_up(character: Character) signal character_placed(character: Character, position: Vector2) signal state_changed(new_state: CharacterData.State)