管理界面改为动态创建页签并注册各页面板

This commit is contained in:
2026-09-09 21:08:50 +08:00
parent 257aeccd2a
commit 4d1e4d8248
5 changed files with 137 additions and 27 deletions
+125
View File
@@ -1,6 +1,131 @@
extends Control extends Control
var test_disciple_table : Array[Dictionary] = [] # 弟子
var test_field_table : Array[Dictionary] = [] # 建筑
var test_order_table : Array[Dictionary] = [] # 订单
var test_alchemy_table : Array[Dictionary] = [] # 炼丹配方
var test_inventory : Array[Dictionary] = [] # 库存
var test_sub_inventory1 : Array[Dictionary] = [] # 库存
var test_sub_inventory2 : Array[Dictionary] = [] # 库存
var test_sub_inventory3 : Array[Dictionary] = [] # 库存
var sect_resources : Dictionary;
var disciple_info_scene := preload("res://src/UI/Panels/Manager/DisciplePanel/DiscipleInformationPanel.tscn")
var field_info_scene := preload("res://src/UI/Panels/Manager/FieldPanel/FieldInformationPanel.tscn")
var order_info_scene := preload("res://src/UI/Panels/Manager/OrderPanel/OrderInformationPanel.tscn")
var alchemy_info_scene := preload("res://src/UI/Panels/Manager/AlchemyPanel/AlchemyPanel.tscn")
func _ready() -> void: func _ready() -> void:
init_test_data();
var manager_panel_scene := load("res://src/UI/Panels/Manager/ManagerPanel.tscn") as PackedScene
var inventory_panel_scene := load("res://src/UI/Panels/Manager/InventoryPanel/InventoryPanel.tscn") as PackedScene
sect_resources["弟子"] = manager_panel_scene.instantiate();
sect_resources["弟子"].name = "弟子";
$TabContainer.add_child(sect_resources["弟子"]);
sect_resources["建筑"] = manager_panel_scene.instantiate();
sect_resources["建筑"].name = "建筑";
$TabContainer.add_child(sect_resources["建筑"]);
sect_resources["订单"] = manager_panel_scene.instantiate();
sect_resources["订单"].name = "订单";
$TabContainer.add_child(sect_resources["订单"]);
sect_resources["炼丹"] = manager_panel_scene.instantiate();
sect_resources["炼丹"].name = "炼丹";
$TabContainer.add_child(sect_resources["炼丹"]);
sect_resources["库房"] = inventory_panel_scene.instantiate();
sect_resources["库房"].name = "库房";
$TabContainer.add_child(sect_resources["库房"]);
for e in test_disciple_table:
var d := disciple_info_scene.instantiate()
d.set_info(e)
sect_resources["弟子"].add_info_card(d)
pass
for e in test_field_table:
var d := field_info_scene.instantiate()
d.set_field_info(e)
sect_resources["建筑"].add_info_card(d)
pass
for e in test_order_table:
var d := order_info_scene.instantiate()
d.set_order_info(e)
sect_resources['订单'].add_info_card(d)
pass
for e in test_alchemy_table:
var d := alchemy_info_scene.instantiate()
d.set_alchemy_info(e)
sect_resources['炼丹'].add_info_card(d)
pass
pass
func init_test_data() -> void:
test_disciple_table.append_array([
{"name": "赵一", "gender": "", "level": "练气一层", "metal": 0.5, "wood": 0.9, "water": 0.1, "fire": 0.2, "earth": 0.15},
{"name": "钱二", "gender": "", "level": "练气一层", "metal": 0.5, "wood": 0.9, "water": 0.1, "fire": 0.2, "earth": 0.15},
{"name": "孙三", "gender": "", "level": "练气一层", "metal": 0.5, "wood": 0.9, "water": 0.1, "fire": 0.2, "earth": 0.15},
{"name": "李四", "gender": "", "level": "练气一层", "metal": 0.5, "wood": 0.9, "water": 0.1, "fire": 0.2, "earth": 0.15},
{"name": "周五", "gender": "", "level": "练气一层", "metal": 0.5, "wood": 0.9, "water": 0.1, "fire": 0.2, "earth": 0.15},
{"name": "吴六", "gender": "", "level": "练气一层", "metal": 0.5, "wood": 0.9, "water": 0.1, "fire": 0.2, "earth": 0.15},
{"name": "郑七", "gender": "", "level": "练气一层", "metal": 0.5, "wood": 0.9, "water": 0.1, "fire": 0.2, "earth": 0.15}
])
test_field_table.append_array([
{"name": "灵田", "弟子": 0},
{"name": "灵田", "弟子": 1},
{"name": "灵药园", "弟子": 2},
{"name": "灵药园", "弟子": 3},
{"name": "灵药园", "弟子": 4},
{"name": "炼丹房", "弟子": 0}
])
test_order_table.append_array([
{"title": "炼制灵丹", "type": "炼丹", "level": 1, "reward": 100, "time": 10, "status": 0},
{"title": "炼制灵丹", "type": "炼丹", "level": 2, "reward": 200, "time": 20, "status": 0},
{"title": "炼制灵丹", "type": "炼丹", "level": 3, "reward": 300, "time": 30, "status": 0},
{"title": "炼制灵丹", "type": "炼丹", "level": 4, "reward": 400, "time": 40, "status": 0},
{"title": "炼制灵丹", "type": "炼丹", "level": 5, "reward": 500, "time": 50, "status": 0}
])
test_alchemy_table.append_array([
{"name": "灵丹", "herb_1": 0, "herb_2": 0, "herb_3": 0, "herb_4": 0, "herb_5": 0, "herb_6": 0, "herb_7": 0, "herb_8": 0, "herb_9": 0},
{"name": "灵丹", "herb_1": 0, "herb_2": 0, "herb_3": 0, "herb_4": 0, "herb_5": 0, "herb_6": 0, "herb_7": 0, "herb_8": 0, "herb_9": 0},
{"name": "灵丹", "herb_1": 0, "herb_2": 0, "herb_3": 0, "herb_4": 0, "herb_5": 0, "herb_6": 0, "herb_7": 0, "herb_8": 0, "herb_9": 0},
{"name": "灵丹", "herb_1": 0, "herb_2": 0, "herb_3": 0, "herb_4": 0, "herb_5": 0, "herb_6": 0, "herb_7": 0, "herb_8": 0, "herb_9": 0},
{"name": "灵丹", "herb_1": 0, "herb_2": 0, "herb_3": 0, "herb_4": 0, "herb_5": 0, "herb_6": 0, "herb_7": 0, "herb_8": 0, "herb_9": 0}
])
test_sub_inventory1.append_array([
{"name": "A", "type": "草药", "quantity": 10},
{"name": "B", "type": "草药", "quantity": 20},
{"name": "C", "type": "草药", "quantity": 30},
{"name": "D", "type": "草药", "quantity": 40},
{"name": "E", "type": "草药", "quantity": 50}
])
test_sub_inventory2.append_array([
{"name": "", "type": "粮食", "quantity": 10},
{"name": "蔬菜", "type": "粮食", "quantity": 20},
])
test_sub_inventory3.append_array([
{"name": "聚气丹", "type": "丹药", "quantity": 10},
{"name": "筑基丹", "type": "丹药", "quantity": 20},
])
test_inventory.append_array([{"草药": test_sub_inventory1}, {"粮食": test_sub_inventory2}, {"丹药": test_sub_inventory3}]);
pass pass
+1 -27
View File
@@ -1,8 +1,6 @@
[gd_scene format=3 uid="uid://d1mbwdtarjqof"] [gd_scene format=3 uid="uid://d1mbwdtarjqof"]
[ext_resource type="Script" uid="uid://qjqb0jaqxuu2" path="res://src/UI/Panels/Manager/Manager.gd" id="1_qdh6a"] [ext_resource type="Script" uid="uid://qjqb0jaqxuu2" path="res://src/UI/Panels/Manager/Manager.gd" id="1_qdh6a"]
[ext_resource type="PackedScene" uid="uid://cbqydw1lerumr" path="res://src/UI/Panels/Manager/ManagerPanel.tscn" id="2_ieenf"]
[ext_resource type="PackedScene" uid="uid://dxij6vexu5m1q" path="res://src/UI/Panels/Manager/InventoryPanel/InventoryPanel.tscn" id="3_k3wlu"]
[node name="Manager" type="Control" unique_id=360636457] [node name="Manager" type="Control" unique_id=360636457]
layout_mode = 3 layout_mode = 3
@@ -22,28 +20,4 @@ anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
current_tab = 4 tab_focus_mode = 1
[node name="ManagerPanel" parent="TabContainer" unique_id=1475562434 instance=ExtResource("2_ieenf")]
visible = false
layout_mode = 2
metadata/_tab_index = 0
[node name="ManagerPanel2" parent="TabContainer" unique_id=393118788 instance=ExtResource("2_ieenf")]
visible = false
layout_mode = 2
metadata/_tab_index = 1
[node name="ManagerPanel3" parent="TabContainer" unique_id=609733971 instance=ExtResource("2_ieenf")]
visible = false
layout_mode = 2
metadata/_tab_index = 2
[node name="ManagerPanel4" parent="TabContainer" unique_id=780944038 instance=ExtResource("2_ieenf")]
visible = false
layout_mode = 2
metadata/_tab_index = 3
[node name="InventoryPanel" parent="TabContainer" unique_id=735363118 instance=ExtResource("3_k3wlu")]
layout_mode = 2
metadata/_tab_index = 4
+5
View File
@@ -0,0 +1,5 @@
extends Control
func add_info_card(card : Control) -> bool:
$ScrollContainer/HFlowContainer.add_child(card)
return true;
@@ -0,0 +1 @@
uid://beiiusgimt3s1
+5
View File
@@ -1,5 +1,7 @@
[gd_scene format=3 uid="uid://cbqydw1lerumr"] [gd_scene format=3 uid="uid://cbqydw1lerumr"]
[ext_resource type="Script" uid="uid://beiiusgimt3s1" path="res://src/UI/Panels/Manager/ManagerPanel.gd" id="1_1bkxy"]
[node name="ManagerPanel" type="Control" unique_id=1475562434] [node name="ManagerPanel" type="Control" unique_id=1475562434]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
@@ -7,6 +9,7 @@ anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_1bkxy")
[node name="ScrollContainer" type="ScrollContainer" parent="." unique_id=129376527] [node name="ScrollContainer" type="ScrollContainer" parent="." unique_id=129376527]
layout_mode = 1 layout_mode = 1
@@ -18,4 +21,6 @@ grow_vertical = 2
[node name="HFlowContainer" type="HFlowContainer" parent="ScrollContainer" unique_id=836450693] [node name="HFlowContainer" type="HFlowContainer" parent="ScrollContainer" unique_id=836450693]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
alignment = 1 alignment = 1