fix(client): create TabContainer children programmatically
Godot 4.6 TabContainer silently destroys children defined in .tscn
during scene instantiation ("Parent path has vanished"). Moving tab
shell creation to _ready() fixes the right-side settings panel.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -157,21 +157,7 @@ size_flags_vertical = 3
|
||||
theme_override_font_sizes/font_size = 12
|
||||
theme_override_colors/font_color = Color(0.784, 0.816, 0.878, 1.0)
|
||||
|
||||
; Five empty tab shells — content built programmatically in character_creation.gd
|
||||
[node name="Body" type="Control" parent="Layout/TabPanel/TabContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Head" type="Control" parent="Layout/TabPanel/TabContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Hair" type="Control" parent="Layout/TabPanel/TabContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Clothing" type="Control" parent="Layout/TabPanel/TabContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Accessories" type="Control" parent="Layout/TabPanel/TabContainer"]
|
||||
layout_mode = 2
|
||||
; Tab shells created programmatically in character_creation.gd _ready()
|
||||
|
||||
; ===========================================================================
|
||||
; Footer — full width, 48px tall, anchored to bottom
|
||||
|
||||
@@ -221,6 +221,13 @@ func _ready() -> void:
|
||||
_rotate_left_btn.text = UIStrings.get_text("character_creation.btn_rotate_left")
|
||||
_rotate_right_btn.text = UIStrings.get_text("character_creation.btn_rotate_right")
|
||||
|
||||
# Create tab shells programmatically (Godot 4.6 TabContainer requires runtime children)
|
||||
var tab_names: Array[String] = ["Body", "Head", "Hair", "Clothing", "Accessories"]
|
||||
for tab_name in tab_names:
|
||||
var tab := Control.new()
|
||||
tab.name = tab_name
|
||||
_tab_container.add_child(tab)
|
||||
|
||||
_build_body_tab(_tab_container.get_child(0))
|
||||
_build_head_tab(_tab_container.get_child(1))
|
||||
_build_hair_tab(_tab_container.get_child(2))
|
||||
|
||||
Reference in New Issue
Block a user