diff --git a/doc/UI界面.md b/doc/UI界面.md new file mode 100644 index 0000000..67d5406 --- /dev/null +++ b/doc/UI界面.md @@ -0,0 +1,105 @@ +# UI 界面清单 + +本文档按"前端只管显示,数据从后端 Manager 获取"原则(见 `doc/P1模块拆分.md`)整理全部界面规划。已有界面标注现状,规划界面按 P1 与中后期分列。 + +## 1. 目录结构约定 + +``` +src/UI/ +├── HUD/ 顶栏/底部条状 HUD(常驻) +│ ├── MainSceneHud.tscn +│ └── MainGameButtomHud.tscn +└── Panels/ 全屏/大面积面板(弹层式) + ├── MainMenu/ 主菜单(已有) + ├── Management/ 管理主操作面板(P1 新增) + │ ├── DisciplePanel/ 弟子面板 + │ ├── FieldPanel/ 建筑/灵田面板 + │ ├── AlchemyPanel/ 炼丹面板 + │ ├── OrderPanel/ 订单面板 + │ └── InventoryPanel/ 库存面板 + └── SavePannel.tscn 存档面板(已有,+SaveGroup/SaveSlot) +``` + +约定:HUD 放常驻条状 UI;面板一律进 `Panels/`,同组面板建子文件夹(参照 MainMenu 先例)。弹窗类(事件/确认/通知)后续放 `Panels/` 下或单独 `Popups/`。 + +## 2. 已有界面(现状) + +| 界面 | 文件 | 状态 | +| --- | --- | --- | +| 主菜单 | `src/UI/Panels/MainMenu/MainMenu.tscn` | 已有:新游戏/读档 | +| 存档面板 | `src/UI/Panels/SavePannel.tscn`(+ SaveGroup/SaveSlot) | 已有:两级存档列表 | +| 顶栏 HUD | `src/UI/HUD/MainSceneHud.tscn` | 已有:时间/灵石/声望/灵气 + 管理/保存/返回/下一回合按钮 | +| 底部 HUD | `src/UI/HUD/MainGameButtomHud.tscn` | 已有但**未接入 MainGame 场景**(仅"继续"按钮) | + +## 3. 主场景布局结构 + +``` +MainGame(场景) +├── 顶栏 HUD(全局信息 + 入口按钮) +│ ├── 时间 / 灵石 / 声望 / 灵气 +│ ├── 管理按钮(打开主操作面板) [灵田/炼丹/弟子/订单/库存 入口] +│ └── 保存 / 返回 +├── 主操作区(当前主面板,全屏覆盖) ← 弹层式切换 +└── 弹窗层(事件/确认/通知,最高层) +``` + +原则:一次只显示一个主操作面板,面板间通过顶栏"管理"按钮切换;弹窗层供事件、确认框、提示用。 + +## 4. P1 界面清单(对应各 Manager) + +| 界面 | 数据源(后端) | 内容 | 操作 | +| --- | --- | --- | --- | +| 弟子面板 | DiscipleManager | 弟子列表:姓名/境界/技艺/忠诚/修为进度;详情区 | 查看;分配劳作类型(种田/炼丹/空闲) | +| 灵田面板 | FieldManager | 内外田地块网格:作物/生长进度/品质 | 种植(选作物+分配弟子)、收获 | +| 炼丹面板 | AlchemyManager | 丹方列表(材料需求/技艺要求)+ 可选炼丹弟子 | 炼制(扣材料→入库存) | +| 订单面板 | OrderManager | 当前订单:客户/物品/数量/品质要求/期限/奖励 | 交货(校验库存→加灵石) | +| 库存面板 | InventoryManager | 物品列表:灵药/丹药/凡粮 数量与品质 | 只读展示(可并入其他面板) | +| 顶栏灵石/口粮 | EconomyManager / FoodManager | 灵石余额、口粮结余 | 只读 | + +P1 简化:库存并入炼丹/订单面板分栏显示,不单开面板;弟子劳作分配暂只影响生产(对应弟子技艺),不做单独"空闲/忙碌"状态 UI。 + +## 5. 中后期界面规划(P2~P5) + +### P2 经营深度 + +| 界面 | 数据源 | 内容 | +| --- | --- | --- | +| 收徒面板 | DiscipleManager(工厂) | 可收弟子候选:资质/拜师礼 | +| 委托面板 | 委托系统 | 随机委托列表:奖励/风险,派遣弟子执行 | +| 忠诚度视图 | DiscipleManager | 弟子忠诚/满意度,抽成政策调节(并入弟子面板) | +| 香火/供奉 | 声望系统 | 村庄供奉信息 | + +### P3 外交层 + +| 界面 | 数据源 | 内容 | +| --- | --- | --- | +| 外交面板 | 客户/宗门关系系统 | 大宗门列表:好感/附庸等级/订单偏好 | +| 附庸管理 | 附庸系统 | 当前附庸等级、义务、宗主裁决记录 | + +### P4 秘境事件 + +| 界面 | 数据源 | 内容 | +| --- | --- | --- | +| 勘探/发掘面板 | 秘境系统 | 后山勘探按钮、秘境层进度、功法获取 | +| 警戒/封锁 | 走漏系统 | 消息封锁操作、泄露风险提示 | +| 战报 | 冲突系统 | 小规模冲突事件、战斗自动结算结果 | + +### P5 终局 + +| 界面 | 数据源 | 内容 | +| --- | --- | --- | +| 宗门史记/结算 | 评分系统 | 传奇度评分、结局文本、自由沙盒入口 | +| 天灾面板 | 天灾系统 | 天灾进度、各方势力动态 | + +## 6. UI 与后端绑定规则 + +1. 每个面板对应一个 Manager 或一组 Manager 的只读视图 + 操作方法。 +2. 面板 `_ready()` 时调 Manager getter 拉全量数据渲染,再连接信号增量刷新(观察者)。 +3. 玩家操作 → 调 Manager 方法 → Manager 发信号 → 面板刷新(UI 不写数据)。 +4. 弹窗(事件/确认)由事件系统驱动,可复用通用弹窗场景(标题/正文/按钮组)。 + +## 7. 待补充 + +- 通用弹窗场景、面板切换容器(P1 起步时实现) +- 具体面板视觉风格(沿用现有 theme 体系:`resources/` 下按钮/Label theme) +- 中后期面板在各自里程碑实现时细化(本文档只列清单) diff --git a/doc/主世界与建筑.md b/doc/主世界与建筑.md new file mode 100644 index 0000000..6869772 --- /dev/null +++ b/doc/主世界与建筑.md @@ -0,0 +1,88 @@ +# 主世界与建筑模块设计 + +本文档定义主世界(hex 地块)、建筑与弟子派工的关系。背景见 `doc/WorldDesign.md`、`doc/P1模块拆分.md`。 + +## 1. 主世界方案(已定) + +**正六边形单元格地图**,玩家在单元格上建设建筑/灵田(类似文明的领地经营 + 模拟经营的指派产出)。 + +### 1.1 设计咬合点(为什么用 hex) + +- **灵石矿是地块资源**:哪块地有灵脉 → 占矿/买矿成为位置决策 +- **秘境"在后山"是空间概念**:勘探发掘做成地图行为 +- **后期地盘争夺需要地图**:从 P1 引入空间维度,后期不返工 +- **成长可视化**:"从小宗门到大宗门"= 地图从一小块山头扩大的过程 + +### 1.2 落地节奏(已定:坐标预留,渲染后置) + +| 阶段 | 数据层 | UI 层 | +| --- | --- | --- | +| P1 | 建筑数据带 hex 坐标(axial) | 卡片/列表渲染,不做地图 | +| P2/P3 | 不变(存档天然带位置) | hex 主世界渲染(tile 美术 + 放置交互) | + +前端后端分离下,UI 切换只影响显示层,后端零返工。 + +### 1.3 hex 成立的前提 + +1. **格子有位置价值**——灵脉格/水源格/肥沃地/岩石地,不同地块加成不同(纯装饰的格子不做)。 +2. **地图随机生成**——每局资源分布不同,防止最优布局模板一劳永逸,保证复玩性。 +3. **面积跟随成长**——开局只有山头几格,扩张需买地/开荒,地图与宗门成长绑定。 + +### 1.4 弟子与建筑的绑定深度(已定:派工单式) + +- 弟子**指派**给建筑,月底结算产出,弟子不在地图上行走。 +- 位置只影响加成(如灵田靠近水源产量+)。 +- 明确不做实体行走式(寻路/队列/行程),与月回合结算节奏冲突,成本高。 + +## 2. 建筑实体模型 + +建筑(含灵田)是 hex 上的实体,**必须有弟子指派才有产出**: + +```gdscript +## BuildingData.gd(RefCounted,纯数据) +var id: int +var cell: Vector2i # hex axial 坐标(q, r) +var building_type: int # 建筑类型枚举 +var assigned_disciple_id: int = -1 # 指派弟子,-1 = 无 +var progress: float = 0.0 # 生产/生长进度 +var level: int = 1 # 建筑等级(预留) +``` + +## 3. 建筑类型 + +| 建筑 | 产出 | 指派要求 | 备注 | +| --- | --- | --- | --- | +| 外田(凡粮) | 灵稻 | 种植技艺 | 口粮来源 | +| 内田(灵药) | 聚气草/凝神花 | 种植技艺 | 炼丹原料 | +| 丹房 | 聚气丹/凝神丹 | 炼丹技艺 | 消耗灵药原料 | +| 仓库(预留) | — | — | 存粮/存料上限,后期 | +| 洞府/居所(预留) | — | — | 弟子数量上限,后期 | + +P1 只做前三种(对应原 FieldManager + AlchemyManager 的职责,统一进建筑框架)。 + +## 4. 数据模型演进 + +原 `FieldData`(灵田)泛化为 `BuildingData`(建筑),灵田是建筑类型之一: + +- 原 FieldManager → 建筑管理:地块放置、指派弟子、月度结算(生长/产出入库存) +- 种植类建筑带"作物"字段(作物类型/生长月数/品质),收获式产出 +- 丹房是"即时加工"类建筑:有原料时弟子炼制入库存(也可保留 AlchemyManager 独立接口,两者皆可) + +## 5. 月度结算信号流(不变) + +``` +settle_month() + → 每个有弟子指派的建筑结算产出 + → 收获/成品入 InventoryManager + → inventory_changed +``` + +## 6. 简化决策 + +| 完整愿景 | P1 取舍 | 后续 | +| --- | --- | --- | +| hex 地图渲染 | 不做,卡片/列表 | P2/P3 | +| 地图随机生成 | 固定初始地图(几块田+一丹房) | P3 | +| 地块地形差异 | 初始全默认,无加成 | P3 引入水源/灵脉 | +| 建筑多类型 | 只做外田/内田/丹房 | 逐里程碑加 | +| 弟子行走 | 不做(派工单式) | 不评估升级 | diff --git a/resources/disciple_info_label_settings.tres b/resources/disciple_info_label_settings.tres new file mode 100644 index 0000000..1926078 --- /dev/null +++ b/resources/disciple_info_label_settings.tres @@ -0,0 +1,10 @@ +[gd_resource type="LabelSettings" format=3 uid="uid://dur4uye3m0ffd"] + +[ext_resource type="FontFile" uid="uid://dv0mnlx0fqjad" path="res://assets/fonts/lxgw-wenkai-v1.522/LXGWWenKaiMono-Light.ttf" id="1_f7lwv"] + +[resource] +line_spacing = 5.0 +paragraph_spacing = 1.0 +font = ExtResource("1_f7lwv") +font_size = 24 +font_color = Color(0, 0, 0, 1) diff --git a/resources/disciple_info_style_box_flat.tres b/resources/disciple_info_style_box_flat.tres new file mode 100644 index 0000000..ff6a96e --- /dev/null +++ b/resources/disciple_info_style_box_flat.tres @@ -0,0 +1,9 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://kxc0y8146vlk"] + +[resource] +bg_color = Color(0.3552159, 0.6357343, 0.60719687, 0.60784316) +border_width_left = 10 +border_width_top = 10 +border_width_right = 10 +border_width_bottom = 10 +border_color = Color(0, 0.6212424, 0.9274143, 0.24705882) diff --git a/src/UI/HUD/MainGameButtomHud.tscn b/src/UI/HUD/MainGameButtomHud.tscn deleted file mode 100644 index c09de08..0000000 --- a/src/UI/HUD/MainGameButtomHud.tscn +++ /dev/null @@ -1,36 +0,0 @@ -[gd_scene format=3 uid="uid://xecv3j1wfxmv"] - -[ext_resource type="Theme" uid="uid://bse6imt1ab1rx" path="res://resources/top_bar_hud_theme.tres" id="1_o3gra"] - -[node name="MainGameButtomHud" type="Control" unique_id=12078477] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 - -[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1423942750] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer" unique_id=1433002269] -layout_mode = 2 -size_flags_vertical = 10 - -[node name="Spacer" type="Control" parent="VBoxContainer/HBoxContainer" unique_id=990599719] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_stretch_ratio = 8.0 - -[node name="Button" type="Button" parent="VBoxContainer/HBoxContainer" unique_id=1159144698] -layout_mode = 2 -size_flags_horizontal = 3 -theme = ExtResource("1_o3gra") -text = "继续" diff --git a/src/UI/Panels/Manager/DisciplePanel/DiscipleInformationPanel.tscn b/src/UI/Panels/Manager/DisciplePanel/DiscipleInformationPanel.tscn new file mode 100644 index 0000000..f183185 --- /dev/null +++ b/src/UI/Panels/Manager/DisciplePanel/DiscipleInformationPanel.tscn @@ -0,0 +1,154 @@ +[gd_scene format=3 uid="uid://swa7gtddn6fj"] + +[ext_resource type="LabelSettings" uid="uid://dur4uye3m0ffd" path="res://resources/disciple_info_label_settings.tres" id="1_abpqa"] +[ext_resource type="StyleBox" uid="uid://kxc0y8146vlk" path="res://resources/disciple_info_style_box_flat.tres" id="1_po3i5"] + +[node name="DiscipleInformationPanel" type="PanelContainer" unique_id=2024414593] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_override_styles/panel = ExtResource("1_po3i5") + +[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1066350214] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer" unique_id=528093249] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer" unique_id=2078348112] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "姓名" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Name" type="Label" parent="VBoxContainer/HBoxContainer" unique_id=1124761822] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +label_settings = ExtResource("1_abpqa") + +[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer" unique_id=1255356167] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer2" unique_id=233829191] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "境界" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Level" type="Label" parent="VBoxContainer/HBoxContainer2" unique_id=913472455] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +label_settings = ExtResource("1_abpqa") + +[node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer" unique_id=1358402714] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3" unique_id=1781987484] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "属性" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="VBoxContainer2" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3" unique_id=251442021] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="Metal" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer2" unique_id=395220991] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "金" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Wood" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer2" unique_id=1852801128] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "木" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Water" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer2" unique_id=1864946709] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "水" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Fire" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer2" unique_id=1916838020] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "火" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Earth" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer2" unique_id=2106256122] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "土" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3" unique_id=565242402] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="Metal" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer" unique_id=334471189] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "1" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Wood" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer" unique_id=1099683329] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "1" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Water" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer" unique_id=1520779703] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "1" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Fire" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer" unique_id=66098798] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "1" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 + +[node name="Earth" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer" unique_id=170833691] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "1" +label_settings = ExtResource("1_abpqa") +vertical_alignment = 1 diff --git a/src/UI/Panels/Manager/DisciplePanel/DisciplePanel.tscn b/src/UI/Panels/Manager/DisciplePanel/DisciplePanel.tscn new file mode 100644 index 0000000..30374d7 --- /dev/null +++ b/src/UI/Panels/Manager/DisciplePanel/DisciplePanel.tscn @@ -0,0 +1,170 @@ +[gd_scene format=3 uid="uid://bcaiw3oyukljd"] + +[ext_resource type="PackedScene" uid="uid://swa7gtddn6fj" path="res://src/UI/Panels/Manager/DisciplePanel/DiscipleInformationPanel.tscn" id="1_ieo5l"] + +[node name="DisciplePanel" type="Control" unique_id=1161780936] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="ScrollContainer" type="ScrollContainer" parent="." unique_id=1114464724] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HFlowContainer" type="HFlowContainer" parent="ScrollContainer" unique_id=1296331534] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +alignment = 1 + +[node name="DiscipleInformationPanel" parent="ScrollContainer/HFlowContainer" unique_id=1463617991 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel2" parent="ScrollContainer/HFlowContainer" unique_id=1021323045 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel3" parent="ScrollContainer/HFlowContainer" unique_id=1532684529 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel4" parent="ScrollContainer/HFlowContainer" unique_id=826017646 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel5" parent="ScrollContainer/HFlowContainer" unique_id=1801973105 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel6" parent="ScrollContainer/HFlowContainer" unique_id=26512172 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel7" parent="ScrollContainer/HFlowContainer" unique_id=1604914915 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel8" parent="ScrollContainer/HFlowContainer" unique_id=1175961950 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel9" parent="ScrollContainer/HFlowContainer" unique_id=1658128381 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel10" parent="ScrollContainer/HFlowContainer" unique_id=1118637884 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel11" parent="ScrollContainer/HFlowContainer" unique_id=225536606 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel12" parent="ScrollContainer/HFlowContainer" unique_id=1224947823 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel13" parent="ScrollContainer/HFlowContainer" unique_id=698054001 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel14" parent="ScrollContainer/HFlowContainer" unique_id=1708799158 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel15" parent="ScrollContainer/HFlowContainer" unique_id=348109606 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel16" parent="ScrollContainer/HFlowContainer" unique_id=936882381 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel17" parent="ScrollContainer/HFlowContainer" unique_id=1754732536 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel18" parent="ScrollContainer/HFlowContainer" unique_id=486904672 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel19" parent="ScrollContainer/HFlowContainer" unique_id=863088248 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel20" parent="ScrollContainer/HFlowContainer" unique_id=112208330 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel21" parent="ScrollContainer/HFlowContainer" unique_id=764132510 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel22" parent="ScrollContainer/HFlowContainer" unique_id=383792042 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel23" parent="ScrollContainer/HFlowContainer" unique_id=1542342367 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel24" parent="ScrollContainer/HFlowContainer" unique_id=2011703115 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel25" parent="ScrollContainer/HFlowContainer" unique_id=773318379 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel26" parent="ScrollContainer/HFlowContainer" unique_id=813275380 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel27" parent="ScrollContainer/HFlowContainer" unique_id=1059743893 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel28" parent="ScrollContainer/HFlowContainer" unique_id=1500396674 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 + +[node name="DiscipleInformationPanel29" parent="ScrollContainer/HFlowContainer" unique_id=175683662 instance=ExtResource("1_ieo5l")] +custom_minimum_size = Vector2(160, 200) +custom_maximum_size = Vector2(160, 200) +layout_mode = 2 diff --git a/src/UI/Panels/Manager/Manager.gd b/src/UI/Panels/Manager/Manager.gd new file mode 100644 index 0000000..bf2fe8a --- /dev/null +++ b/src/UI/Panels/Manager/Manager.gd @@ -0,0 +1,6 @@ +extends Control + + + +func _ready() -> void: + pass diff --git a/src/UI/Panels/Manager/Manager.gd.uid b/src/UI/Panels/Manager/Manager.gd.uid new file mode 100644 index 0000000..44974d5 --- /dev/null +++ b/src/UI/Panels/Manager/Manager.gd.uid @@ -0,0 +1 @@ +uid://qjqb0jaqxuu2 diff --git a/src/UI/Panels/Manager/Manager.tscn b/src/UI/Panels/Manager/Manager.tscn new file mode 100644 index 0000000..5c28215 --- /dev/null +++ b/src/UI/Panels/Manager/Manager.tscn @@ -0,0 +1,28 @@ +[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="PackedScene" uid="uid://bcaiw3oyukljd" path="res://src/UI/Panels/Manager/DisciplePanel/DisciplePanel.tscn" id="2_cese4"] + +[node name="Manager" type="Control" unique_id=360636457] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource("1_qdh6a") + +[node name="TabContainer" type="TabContainer" parent="." unique_id=915058536] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +current_tab = 0 + +[node name="DisciplePanel" parent="TabContainer" unique_id=1161780936 instance=ExtResource("2_cese4")] +layout_mode = 2 +metadata/_tab_index = 0