diff --git a/DungeonShooting_Godot/prefab/ui/EditorWindow.tscn b/DungeonShooting_Godot/prefab/ui/EditorWindow.tscn
index 6a7aa6a..1a8f5bb 100644
--- a/DungeonShooting_Godot/prefab/ui/EditorWindow.tscn
+++ b/DungeonShooting_Godot/prefab/ui/EditorWindow.tscn
@@ -27,7 +27,7 @@
initial_position = 1
size = Vector2i(500, 350)
visible = false
-exclusive = true
+transient = true
min_size = Vector2i(500, 350)
theme_override_constants/title_height = 33
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn
index 2680a5b..88a77b3 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn
@@ -1,6 +1,9 @@
-[gd_scene load_steps=2 format=3 uid="uid://bt4xo2lb4h4rx"]
+[gd_scene load_steps=5 format=3 uid="uid://bt4xo2lb4h4rx"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs" id="1_cjivg"]
+[ext_resource type="Material" uid="uid://cces3bhds7jyi" path="res://resource/material/Blend.tres" id="2_xb40b"]
+[ext_resource type="Texture2D" uid="uid://c5778ntk2rdon" path="res://resource/sprite/ui/commonIcon/Delete.png" id="3_7xihk"]
+[ext_resource type="Texture2D" uid="uid://dligpyhp72sg7" path="res://resource/sprite/ui/commonIcon/Right.png" id="3_v5clf"]
[node name="MapEditorCreateMark" type="Control"]
layout_mode = 3
@@ -25,37 +28,42 @@
layout_mode = 2
theme_override_constants/separation = 20
-[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
+[node name="HBoxContainer3" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
-[node name="WaveNameLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
+[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer3"]
layout_mode = 2
size_flags_horizontal = 3
-size_flags_stretch_ratio = 20.0
+
+[node name="WaveNameLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer3/HBoxContainer2"]
+layout_mode = 2
+size_flags_horizontal = 3
+size_flags_stretch_ratio = 30.0
text = "所属波数:"
horizontal_alignment = 2
vertical_alignment = 1
-[node name="WaveOption" type="OptionButton" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
+[node name="WaveOption" type="OptionButton" parent="MarginContainer/VBoxContainer/HBoxContainer3/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
-size_flags_stretch_ratio = 80.0
+size_flags_stretch_ratio = 70.0
-[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
-layout_mode = 2
-
-[node name="DelayNameLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer"]
+[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer3"]
layout_mode = 2
size_flags_horizontal = 3
-size_flags_stretch_ratio = 20.0
+
+[node name="DelayNameLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer3/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+size_flags_stretch_ratio = 30.0
text = "延时时间:"
horizontal_alignment = 2
vertical_alignment = 1
-[node name="DelayInput" type="SpinBox" parent="MarginContainer/VBoxContainer/HBoxContainer"]
+[node name="DelayInput" type="SpinBox" parent="MarginContainer/VBoxContainer/HBoxContainer3/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
-size_flags_stretch_ratio = 80.0
+size_flags_stretch_ratio = 70.0
max_value = 30.0
step = 0.01
custom_arrow_step = 0.1
@@ -69,15 +77,114 @@
layout_mode = 2
size_flags_vertical = 3
-[node name="MarkObject" type="HBoxContainer" parent="MarginContainer/VBoxContainer/Panel"]
+[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/Panel"]
layout_mode = 1
-anchors_preset = 10
+anchors_preset = 15
anchor_right = 1.0
-offset_bottom = 43.0
+anchor_bottom = 1.0
grow_horizontal = 2
+grow_vertical = 2
-[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/Panel/MarkObject"]
+[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer"]
+custom_minimum_size = Vector2(0, 60)
+layout_mode = 2
+
+[node name="Control" type="Control" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/HBoxContainer"]
+custom_minimum_size = Vector2(80, 0)
+layout_mode = 2
+
+[node name="IconTitle" type="Label" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/HBoxContainer"]
+custom_minimum_size = Vector2(80, 0)
+layout_mode = 2
+text = "图标"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="IdTitle" type="Label" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/HBoxContainer"]
+custom_minimum_size = Vector2(250, 0)
+layout_mode = 2
+text = "物体Id"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="NameTitle" type="Label" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/HBoxContainer"]
+custom_minimum_size = Vector2(350, 0)
+layout_mode = 2
+text = "物体名称"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="WeightTitle" type="Label" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/HBoxContainer"]
+custom_minimum_size = Vector2(250, 0)
+layout_mode = 2
+text = "权重"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="ExtraTitle" type="Label" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/HBoxContainer"]
+visible = false
+custom_minimum_size = Vector2(250, 0)
layout_mode = 2
size_flags_horizontal = 3
-text = "123456"
-horizontal_alignment = 2
+text = "额外属性"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+
+[node name="MarkObject" type="HBoxContainer" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/ScrollContainer"]
+custom_minimum_size = Vector2(0, 100)
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="ExpandButton" type="Button" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/ScrollContainer/MarkObject"]
+custom_minimum_size = Vector2(80, 80)
+layout_mode = 2
+size_flags_vertical = 4
+icon = ExtResource("3_v5clf")
+flat = true
+icon_alignment = 1
+
+[node name="Icon" type="TextureRect" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/ScrollContainer/MarkObject"]
+material = ExtResource("2_xb40b")
+custom_minimum_size = Vector2(80, 80)
+layout_mode = 2
+stretch_mode = 5
+
+[node name="IdLabel" type="Label" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/ScrollContainer/MarkObject"]
+custom_minimum_size = Vector2(250, 0)
+layout_mode = 2
+size_flags_vertical = 1
+text = "1001"
+horizontal_alignment = 1
+vertical_alignment = 1
+autowrap_mode = 3
+
+[node name="NameLabel" type="Label" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/ScrollContainer/MarkObject"]
+custom_minimum_size = Vector2(350, 0)
+layout_mode = 2
+size_flags_vertical = 1
+text = "名称"
+horizontal_alignment = 1
+vertical_alignment = 1
+autowrap_mode = 3
+
+[node name="LineEdit" type="SpinBox" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/ScrollContainer/MarkObject"]
+custom_minimum_size = Vector2(250, 43)
+layout_mode = 2
+size_flags_vertical = 4
+max_value = 1000.0
+value = 100.0
+custom_arrow_step = 1.0
+
+[node name="CenterContainer" type="CenterContainer" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/ScrollContainer/MarkObject"]
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="DeleteButton" type="Button" parent="MarginContainer/VBoxContainer/Panel/VBoxContainer/ScrollContainer/MarkObject/CenterContainer"]
+custom_minimum_size = Vector2(43, 43)
+layout_mode = 2
+size_flags_vertical = 4
+icon = ExtResource("3_7xihk")
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Left.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Left.png
deleted file mode 100644
index da0ce73..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Left.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Left.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Left.png.import
deleted file mode 100644
index 4bfb312..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Left.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dligpyhp72sg7"
-path="res://.godot/imported/Left.png-378d8dc69fe2734c1201d2a52875a630.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/commonIcon/Left.png"
-dest_files=["res://.godot/imported/Left.png-378d8dc69fe2734c1201d2a52875a630.ctex"]
-
-[params]
-
-compress/mode=0
-compress/high_quality=false
-compress/lossy_quality=0.7
-compress/hdr_compression=1
-compress/normal_map=0
-compress/channel_pack=0
-mipmaps/generate=false
-mipmaps/limit=-1
-roughness/mode=0
-roughness/src_normal=""
-process/fix_alpha_border=true
-process/premult_alpha=false
-process/normal_map_invert_y=false
-process/hdr_as_srgb=false
-process/hdr_clamp_exposure=false
-process/size_limit=0
-detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Right.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Right.png
new file mode 100644
index 0000000..da0ce73
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Right.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Right.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Right.png.import
new file mode 100644
index 0000000..5fb9488
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Right.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dligpyhp72sg7"
+path="res://.godot/imported/Right.png-22242f6b1f2c41dacc2876dc0a629574.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Right.png"
+dest_files=["res://.godot/imported/Right.png-22242f6b1f2c41dacc2876dc0a629574.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs b/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs
index 0f1cdd3..ed18bc2 100644
--- a/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs
+++ b/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs
@@ -50,6 +50,11 @@
}
}
}
+
+ ///
+ /// 选中的 Cell 包含的数据
+ ///
+ public TData SelectData => _selectIndex >= 0 ? _cellList[_selectIndex].Data : default;
public bool Visible
{
@@ -64,9 +69,9 @@
//cell逻辑处理类
private Type _cellType;
//当前活动的cell池
- private Stack> _cellPool = new Stack>();
- //当前已被回收的cell池
private List> _cellList = new List>();
+ //当前已被回收的cell池
+ private Stack> _cellPool = new Stack>();
//godot原生网格组件
private UiGridContainer _gridContainer;
//单个cell偏移
diff --git a/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs b/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs
index 0378d43..5538db5 100644
--- a/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs
+++ b/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
+using Config;
using Godot;
using UI.EditorTips;
using UI.EditorWindow;
@@ -8,6 +9,7 @@
using UI.MapEditorCreateMark;
using UI.MapEditorCreatePreinstall;
using UI.MapEditorCreateRoom;
+using UI.MapEditorSelectObject;
public static class EditorWindowManager
{
@@ -17,9 +19,10 @@
/// 标题
/// 显示内容
/// 关闭时的回调
- public static void ShowTips(string title, string message, Action onClose = null)
+ /// 所属父级Ui
+ public static void ShowTips(string title, string message, Action onClose = null, UiBase parentUi = null)
{
- var window = UiManager.Open_EditorWindow();
+ var window = CreateWindowInstance(parentUi);
window.SetWindowTitle(title);
if (onClose != null)
{
@@ -41,9 +44,10 @@
/// 标题
/// 显示内容
/// 关闭时的回调, 参数如果为 true 表示点击了确定
- public static void ShowConfirm(string title, string message, Action onClose)
+ /// 所属父级Ui
+ public static void ShowConfirm(string title, string message, Action onClose, UiBase parentUi = null)
{
- var window = UiManager.Open_EditorWindow();
+ var window = CreateWindowInstance(parentUi);
window.SetWindowTitle(title);
window.CloseEvent += () =>
{
@@ -69,9 +73,10 @@
/// 打开创建地牢组弹窗
///
/// 创建成功时回调
- public static void ShowCreateGroup(Action onCreateGroup)
+ /// 所属父级Ui
+ public static void ShowCreateGroup(Action onCreateGroup, UiBase parentUi = null)
{
- var window = UiManager.Open_EditorWindow();
+ var window = CreateWindowInstance(parentUi);
window.SetWindowTitle("创建地牢组");
window.SetWindowSize(new Vector2I(700, 500));
var body = window.OpenBody(UiManager.UiName.MapEditorCreateGroup);
@@ -157,12 +162,18 @@
);
}
- public static void ShowCreateMark()
+ ///
+ /// 打开创建标记页面
+ ///
+ /// 房间预设信息
+ /// 当前波数据
+ public static void ShowCreateMark(RoomPreinstall preinstall, int waveIndex)
{
var window = UiManager.Open_EditorWindow();
window.SetWindowTitle("创建标记");
- window.SetWindowSize(new Vector2I(1200, 900));
+ window.SetWindowSize(new Vector2I(1400, 900));
var body = window.OpenBody(UiManager.UiName.MapEditorCreateMark);
+ body.InitData(preinstall, waveIndex);
window.SetButtonList(
new EditorWindowPanel.ButtonData("确定", () =>
{
@@ -180,30 +191,51 @@
);
}
- public static void ShowSelectObject(string title, UiBase parentUi = null)
+ ///
+ /// 打开选中的物体
+ ///
+ /// 选中物体时回调
+ /// 所属父级Ui
+ public static void ShowSelectObject(Action onSelectObject, UiBase parentUi = null)
{
- EditorWindowPanel window;
- if (parentUi != null)
- {
- window = parentUi.OpenNestedUi(UiManager.UiName.EditorWindow);
- }
- else
- {
- window = UiManager.Open_EditorWindow();
- }
-
+ var window = CreateWindowInstance(parentUi);
window.S_Window.Instance.Size = new Vector2I(1000, 700);
- window.SetWindowTitle(title);
- window.OpenBody(UiManager.UiName.MapEditorSelectObject);
+ window.SetWindowTitle("选择物体");
+ var body = window.OpenBody(UiManager.UiName.MapEditorSelectObject);
window.SetButtonList(
new EditorWindowPanel.ButtonData("确定", () =>
{
- window.CloseWindow();
+ var selectObject = body.GetSelectData();
+ if (selectObject == null)
+ {
+ ShowTips("提示", "您未选择任何物体");
+ }
+ else
+ {
+ window.CloseWindow();
+ onSelectObject(selectObject);
+ }
}),
new EditorWindowPanel.ButtonData("取消", () =>
{
window.CloseWindow();
})
);
+ //绑定双击选中物体事件
+ body.SelectObjectEvent += selectObject =>
+ {
+ window.CloseWindow();
+ onSelectObject(selectObject);
+ };
+ }
+
+ private static EditorWindowPanel CreateWindowInstance(UiBase parentUi)
+ {
+ if (parentUi != null)
+ {
+ return parentUi.OpenNestedUi(UiManager.UiName.EditorWindow);
+ }
+
+ return UiManager.Open_EditorWindow();
}
}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
index 460803b..8b1794c 100644
--- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
+++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
@@ -184,9 +184,9 @@
public const string resource_sprite_ui_commonIcon_DragTool_png = "res://resource/sprite/ui/commonIcon/DragTool.png";
public const string resource_sprite_ui_commonIcon_Edit_png = "res://resource/sprite/ui/commonIcon/Edit.png";
public const string resource_sprite_ui_commonIcon_Hide_png = "res://resource/sprite/ui/commonIcon/Hide.png";
- public const string resource_sprite_ui_commonIcon_Left_png = "res://resource/sprite/ui/commonIcon/Left.png";
public const string resource_sprite_ui_commonIcon_Lock_png = "res://resource/sprite/ui/commonIcon/Lock.png";
public const string resource_sprite_ui_commonIcon_PenTool_png = "res://resource/sprite/ui/commonIcon/PenTool.png";
+ public const string resource_sprite_ui_commonIcon_Right_png = "res://resource/sprite/ui/commonIcon/Right.png";
public const string resource_sprite_ui_commonIcon_Search_png = "res://resource/sprite/ui/commonIcon/Search.png";
public const string resource_sprite_ui_commonIcon_Select_png = "res://resource/sprite/ui/commonIcon/Select.png";
public const string resource_sprite_ui_commonIcon_Select2_png = "res://resource/sprite/ui/commonIcon/Select2.png";
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMark.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMark.cs
index ddfacca..43b6dc5 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMark.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMark.cs
@@ -28,7 +28,7 @@
}
///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer2.WaveNameLabel
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer2.WaveNameLabel
///
public class WaveNameLabel : UiNode
{
@@ -37,7 +37,7 @@
}
///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer2.WaveOption
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer2.WaveOption
///
public class WaveOption : UiNode
{
@@ -46,12 +46,12 @@
}
///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer2
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer2
///
public class HBoxContainer2 : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.WaveNameLabel
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.WaveNameLabel
///
public WaveNameLabel L_WaveNameLabel
{
@@ -64,7 +64,7 @@
private WaveNameLabel _L_WaveNameLabel;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.WaveOption
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.WaveOption
///
public WaveOption L_WaveOption
{
@@ -81,7 +81,7 @@
}
///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer.DelayNameLabel
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer.DelayNameLabel
///
public class DelayNameLabel : UiNode
{
@@ -90,7 +90,7 @@
}
///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer.DelayInput
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer.DelayInput
///
public class DelayInput : UiNode
{
@@ -99,12 +99,12 @@
}
///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer
///
public class HBoxContainer : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.DelayNameLabel
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.DelayNameLabel
///
public DelayNameLabel L_DelayNameLabel
{
@@ -117,7 +117,7 @@
private DelayNameLabel _L_DelayNameLabel;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.DelayInput
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.DelayInput
///
public DelayInput L_DelayInput
{
@@ -134,74 +134,12 @@
}
///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.AddMark
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3
///
- public class AddMark : UiNode
- {
- public AddMark(MapEditorCreateMarkPanel uiPanel, Godot.Button node) : base(uiPanel, node) { }
- public override AddMark Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.MarkObject.Label
- ///
- public class Label : UiNode
- {
- public Label(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { }
- public override Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.MarkObject
- ///
- public class MarkObject : UiNode
+ public class HBoxContainer3 : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.Label
- ///
- public Label L_Label
- {
- get
- {
- if (_L_Label == null) _L_Label = new Label(UiPanel, Instance.GetNodeOrNull("Label"));
- return _L_Label;
- }
- }
- private Label _L_Label;
-
- public MarkObject(MapEditorCreateMarkPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
- public override MarkObject Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel
- ///
- public class Panel : UiNode
- {
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.MarkObject
- ///
- public MarkObject L_MarkObject
- {
- get
- {
- if (_L_MarkObject == null) _L_MarkObject = new MarkObject(UiPanel, Instance.GetNodeOrNull("MarkObject"));
- return _L_MarkObject;
- }
- }
- private MarkObject _L_MarkObject;
-
- public Panel(MapEditorCreateMarkPanel uiPanel, Godot.Panel node) : base(uiPanel, node) { }
- public override Panel Clone() => new (UiPanel, (Godot.Panel)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer
- ///
- public class VBoxContainer : UiNode
- {
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.HBoxContainer2
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer2
///
public HBoxContainer2 L_HBoxContainer2
{
@@ -214,7 +152,7 @@
private HBoxContainer2 _L_HBoxContainer2;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.HBoxContainer
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer
///
public HBoxContainer L_HBoxContainer
{
@@ -226,6 +164,420 @@
}
private HBoxContainer _L_HBoxContainer;
+ public HBoxContainer3(MapEditorCreateMarkPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
+ public override HBoxContainer3 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.AddMark
+ ///
+ public class AddMark : UiNode
+ {
+ public AddMark(MapEditorCreateMarkPanel uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override AddMark Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.Control
+ ///
+ public class Control : UiNode
+ {
+ public Control(MapEditorCreateMarkPanel uiPanel, Godot.Control node) : base(uiPanel, node) { }
+ public override Control Clone() => new (UiPanel, (Godot.Control)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.IconTitle
+ ///
+ public class IconTitle : UiNode
+ {
+ public IconTitle(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override IconTitle Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.IdTitle
+ ///
+ public class IdTitle : UiNode
+ {
+ public IdTitle(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override IdTitle Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.NameTitle
+ ///
+ public class NameTitle : UiNode
+ {
+ public NameTitle(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override NameTitle Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.WeightTitle
+ ///
+ public class WeightTitle : UiNode
+ {
+ public WeightTitle(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override WeightTitle Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.ExtraTitle
+ ///
+ public class ExtraTitle : UiNode
+ {
+ public ExtraTitle(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override ExtraTitle Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer
+ ///
+ public class HBoxContainer_1 : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.Control
+ ///
+ public Control L_Control
+ {
+ get
+ {
+ if (_L_Control == null) _L_Control = new Control(UiPanel, Instance.GetNodeOrNull("Control"));
+ return _L_Control;
+ }
+ }
+ private Control _L_Control;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.IconTitle
+ ///
+ public IconTitle L_IconTitle
+ {
+ get
+ {
+ if (_L_IconTitle == null) _L_IconTitle = new IconTitle(UiPanel, Instance.GetNodeOrNull("IconTitle"));
+ return _L_IconTitle;
+ }
+ }
+ private IconTitle _L_IconTitle;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.IdTitle
+ ///
+ public IdTitle L_IdTitle
+ {
+ get
+ {
+ if (_L_IdTitle == null) _L_IdTitle = new IdTitle(UiPanel, Instance.GetNodeOrNull("IdTitle"));
+ return _L_IdTitle;
+ }
+ }
+ private IdTitle _L_IdTitle;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.NameTitle
+ ///
+ public NameTitle L_NameTitle
+ {
+ get
+ {
+ if (_L_NameTitle == null) _L_NameTitle = new NameTitle(UiPanel, Instance.GetNodeOrNull("NameTitle"));
+ return _L_NameTitle;
+ }
+ }
+ private NameTitle _L_NameTitle;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.WeightTitle
+ ///
+ public WeightTitle L_WeightTitle
+ {
+ get
+ {
+ if (_L_WeightTitle == null) _L_WeightTitle = new WeightTitle(UiPanel, Instance.GetNodeOrNull("WeightTitle"));
+ return _L_WeightTitle;
+ }
+ }
+ private WeightTitle _L_WeightTitle;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ExtraTitle
+ ///
+ public ExtraTitle L_ExtraTitle
+ {
+ get
+ {
+ if (_L_ExtraTitle == null) _L_ExtraTitle = new ExtraTitle(UiPanel, Instance.GetNodeOrNull("ExtraTitle"));
+ return _L_ExtraTitle;
+ }
+ }
+ private ExtraTitle _L_ExtraTitle;
+
+ public HBoxContainer_1(MapEditorCreateMarkPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
+ public override HBoxContainer_1 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.ExpandButton
+ ///
+ public class ExpandButton : UiNode
+ {
+ public ExpandButton(MapEditorCreateMarkPanel uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override ExpandButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.Icon
+ ///
+ public class Icon : UiNode
+ {
+ public Icon(MapEditorCreateMarkPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { }
+ public override Icon Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.IdLabel
+ ///
+ public class IdLabel : UiNode
+ {
+ public IdLabel(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override IdLabel Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.NameLabel
+ ///
+ public class NameLabel : UiNode
+ {
+ public NameLabel(MapEditorCreateMarkPanel uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override NameLabel Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.LineEdit
+ ///
+ public class LineEdit : UiNode
+ {
+ public LineEdit(MapEditorCreateMarkPanel uiPanel, Godot.SpinBox node) : base(uiPanel, node) { }
+ public override LineEdit Clone() => new (UiPanel, (Godot.SpinBox)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.CenterContainer.DeleteButton
+ ///
+ public class DeleteButton : UiNode
+ {
+ public DeleteButton(MapEditorCreateMarkPanel uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override DeleteButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.CenterContainer
+ ///
+ public class CenterContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.DeleteButton
+ ///
+ public DeleteButton L_DeleteButton
+ {
+ get
+ {
+ if (_L_DeleteButton == null) _L_DeleteButton = new DeleteButton(UiPanel, Instance.GetNodeOrNull("DeleteButton"));
+ return _L_DeleteButton;
+ }
+ }
+ private DeleteButton _L_DeleteButton;
+
+ public CenterContainer(MapEditorCreateMarkPanel uiPanel, Godot.CenterContainer node) : base(uiPanel, node) { }
+ public override CenterContainer Clone() => new (UiPanel, (Godot.CenterContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject
+ ///
+ public class MarkObject : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.ExpandButton
+ ///
+ public ExpandButton L_ExpandButton
+ {
+ get
+ {
+ if (_L_ExpandButton == null) _L_ExpandButton = new ExpandButton(UiPanel, Instance.GetNodeOrNull("ExpandButton"));
+ return _L_ExpandButton;
+ }
+ }
+ private ExpandButton _L_ExpandButton;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.Icon
+ ///
+ public Icon L_Icon
+ {
+ get
+ {
+ if (_L_Icon == null) _L_Icon = new Icon(UiPanel, Instance.GetNodeOrNull("Icon"));
+ return _L_Icon;
+ }
+ }
+ private Icon _L_Icon;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.IdLabel
+ ///
+ public IdLabel L_IdLabel
+ {
+ get
+ {
+ if (_L_IdLabel == null) _L_IdLabel = new IdLabel(UiPanel, Instance.GetNodeOrNull("IdLabel"));
+ return _L_IdLabel;
+ }
+ }
+ private IdLabel _L_IdLabel;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.NameLabel
+ ///
+ public NameLabel L_NameLabel
+ {
+ get
+ {
+ if (_L_NameLabel == null) _L_NameLabel = new NameLabel(UiPanel, Instance.GetNodeOrNull("NameLabel"));
+ return _L_NameLabel;
+ }
+ }
+ private NameLabel _L_NameLabel;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.LineEdit
+ ///
+ public LineEdit L_LineEdit
+ {
+ get
+ {
+ if (_L_LineEdit == null) _L_LineEdit = new LineEdit(UiPanel, Instance.GetNodeOrNull("LineEdit"));
+ return _L_LineEdit;
+ }
+ }
+ private LineEdit _L_LineEdit;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.CenterContainer
+ ///
+ public CenterContainer L_CenterContainer
+ {
+ get
+ {
+ if (_L_CenterContainer == null) _L_CenterContainer = new CenterContainer(UiPanel, Instance.GetNodeOrNull("CenterContainer"));
+ return _L_CenterContainer;
+ }
+ }
+ private CenterContainer _L_CenterContainer;
+
+ public MarkObject(MapEditorCreateMarkPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
+ public override MarkObject Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer
+ ///
+ public class ScrollContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.MarkObject
+ ///
+ public MarkObject L_MarkObject
+ {
+ get
+ {
+ if (_L_MarkObject == null) _L_MarkObject = new MarkObject(UiPanel, Instance.GetNodeOrNull("MarkObject"));
+ return _L_MarkObject;
+ }
+ }
+ private MarkObject _L_MarkObject;
+
+ public ScrollContainer(MapEditorCreateMarkPanel uiPanel, Godot.ScrollContainer node) : base(uiPanel, node) { }
+ public override ScrollContainer Clone() => new (UiPanel, (Godot.ScrollContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer
+ ///
+ public class VBoxContainer_1 : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.HBoxContainer
+ ///
+ public HBoxContainer_1 L_HBoxContainer
+ {
+ get
+ {
+ if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer_1(UiPanel, Instance.GetNodeOrNull("HBoxContainer"));
+ return _L_HBoxContainer;
+ }
+ }
+ private HBoxContainer_1 _L_HBoxContainer;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.ScrollContainer
+ ///
+ public ScrollContainer L_ScrollContainer
+ {
+ get
+ {
+ if (_L_ScrollContainer == null) _L_ScrollContainer = new ScrollContainer(UiPanel, Instance.GetNodeOrNull("ScrollContainer"));
+ return _L_ScrollContainer;
+ }
+ }
+ private ScrollContainer _L_ScrollContainer;
+
+ public VBoxContainer_1(MapEditorCreateMarkPanel uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { }
+ public override VBoxContainer_1 Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel
+ ///
+ public class Panel : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.VBoxContainer
+ ///
+ public VBoxContainer_1 L_VBoxContainer
+ {
+ get
+ {
+ if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer_1(UiPanel, Instance.GetNodeOrNull("VBoxContainer"));
+ return _L_VBoxContainer;
+ }
+ }
+ private VBoxContainer_1 _L_VBoxContainer;
+
+ public Panel(MapEditorCreateMarkPanel uiPanel, Godot.Panel node) : base(uiPanel, node) { }
+ public override Panel Clone() => new (UiPanel, (Godot.Panel)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorCreateMark.MarginContainer.VBoxContainer
+ ///
+ public class VBoxContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.HBoxContainer3
+ ///
+ public HBoxContainer3 L_HBoxContainer3
+ {
+ get
+ {
+ if (_L_HBoxContainer3 == null) _L_HBoxContainer3 = new HBoxContainer3(UiPanel, Instance.GetNodeOrNull("HBoxContainer3"));
+ return _L_HBoxContainer3;
+ }
+ }
+ private HBoxContainer3 _L_HBoxContainer3;
+
///
/// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.AddMark
///
@@ -280,34 +632,34 @@
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer2.WaveNameLabel
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer2.WaveNameLabel
///
- public WaveNameLabel S_WaveNameLabel => L_MarginContainer.L_VBoxContainer.L_HBoxContainer2.L_WaveNameLabel;
+ public WaveNameLabel S_WaveNameLabel => L_MarginContainer.L_VBoxContainer.L_HBoxContainer3.L_HBoxContainer2.L_WaveNameLabel;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer2.WaveOption
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer2.WaveOption
///
- public WaveOption S_WaveOption => L_MarginContainer.L_VBoxContainer.L_HBoxContainer2.L_WaveOption;
+ public WaveOption S_WaveOption => L_MarginContainer.L_VBoxContainer.L_HBoxContainer3.L_HBoxContainer2.L_WaveOption;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer2
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer2
///
- public HBoxContainer2 S_HBoxContainer2 => L_MarginContainer.L_VBoxContainer.L_HBoxContainer2;
+ public HBoxContainer2 S_HBoxContainer2 => L_MarginContainer.L_VBoxContainer.L_HBoxContainer3.L_HBoxContainer2;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer.DelayNameLabel
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer.DelayNameLabel
///
- public DelayNameLabel S_DelayNameLabel => L_MarginContainer.L_VBoxContainer.L_HBoxContainer.L_DelayNameLabel;
+ public DelayNameLabel S_DelayNameLabel => L_MarginContainer.L_VBoxContainer.L_HBoxContainer3.L_HBoxContainer.L_DelayNameLabel;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer.DelayInput
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3.HBoxContainer.DelayInput
///
- public DelayInput S_DelayInput => L_MarginContainer.L_VBoxContainer.L_HBoxContainer.L_DelayInput;
+ public DelayInput S_DelayInput => L_MarginContainer.L_VBoxContainer.L_HBoxContainer3.L_HBoxContainer.L_DelayInput;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.HBoxContainer3
///
- public HBoxContainer S_HBoxContainer => L_MarginContainer.L_VBoxContainer.L_HBoxContainer;
+ public HBoxContainer3 S_HBoxContainer3 => L_MarginContainer.L_VBoxContainer.L_HBoxContainer3;
///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.AddMark
@@ -315,14 +667,79 @@
public AddMark S_AddMark => L_MarginContainer.L_VBoxContainer.L_AddMark;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.MarkObject.Label
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.Control
///
- public Label S_Label => L_MarginContainer.L_VBoxContainer.L_Panel.L_MarkObject.L_Label;
+ public Control S_Control => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_HBoxContainer.L_Control;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.MarkObject
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.IconTitle
///
- public MarkObject S_MarkObject => L_MarginContainer.L_VBoxContainer.L_Panel.L_MarkObject;
+ public IconTitle S_IconTitle => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_HBoxContainer.L_IconTitle;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.IdTitle
+ ///
+ public IdTitle S_IdTitle => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_HBoxContainer.L_IdTitle;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.NameTitle
+ ///
+ public NameTitle S_NameTitle => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_HBoxContainer.L_NameTitle;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.WeightTitle
+ ///
+ public WeightTitle S_WeightTitle => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_HBoxContainer.L_WeightTitle;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.HBoxContainer.ExtraTitle
+ ///
+ public ExtraTitle S_ExtraTitle => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_HBoxContainer.L_ExtraTitle;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.ExpandButton
+ ///
+ public ExpandButton S_ExpandButton => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer.L_MarkObject.L_ExpandButton;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.Icon
+ ///
+ public Icon S_Icon => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer.L_MarkObject.L_Icon;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.IdLabel
+ ///
+ public IdLabel S_IdLabel => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer.L_MarkObject.L_IdLabel;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.NameLabel
+ ///
+ public NameLabel S_NameLabel => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer.L_MarkObject.L_NameLabel;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.LineEdit
+ ///
+ public LineEdit S_LineEdit => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer.L_MarkObject.L_LineEdit;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.CenterContainer.DeleteButton
+ ///
+ public DeleteButton S_DeleteButton => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer.L_MarkObject.L_CenterContainer.L_DeleteButton;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject.CenterContainer
+ ///
+ public CenterContainer S_CenterContainer => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer.L_MarkObject.L_CenterContainer;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer.MarkObject
+ ///
+ public MarkObject S_MarkObject => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer.L_MarkObject;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel.VBoxContainer.ScrollContainer
+ ///
+ public ScrollContainer S_ScrollContainer => L_MarginContainer.L_VBoxContainer.L_Panel.L_VBoxContainer.L_ScrollContainer;
///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer.Panel
@@ -330,11 +747,6 @@
public Panel S_Panel => L_MarginContainer.L_VBoxContainer.L_Panel;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer.VBoxContainer
- ///
- public VBoxContainer S_VBoxContainer => L_MarginContainer.L_VBoxContainer;
-
- ///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorCreateMark.MarginContainer
///
public MarginContainer S_MarginContainer => L_MarginContainer;
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs
index fbaaf66..1f5d47f 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs
@@ -1,3 +1,5 @@
+using System.Collections.Generic;
+using Config;
using Godot;
namespace UI.MapEditorCreateMark;
@@ -5,18 +7,46 @@
public partial class MapEditorCreateMarkPanel : MapEditorCreateMark
{
+ private UiGrid _grid;
+
public override void OnCreateUi()
{
S_AddMark.Instance.Pressed += OnAddMark;
+
+ _grid = new UiGrid(S_MarkObject, typeof(MarkObjectCell));
+ _grid.SetColumns(1);
+ _grid.SetHorizontalExpand(true);
+ _grid.SetCellOffset(new Vector2I(0, 5));
}
public override void OnDestroyUi()
{
}
+
+ ///
+ /// 初始化数据
+ ///
+ public void InitData(RoomPreinstall preinstall, int waveIndex)
+ {
+ var optionButton = S_WaveOption.Instance;
+ for (var i = 0; i < preinstall.WaveList.Count; i++)
+ {
+ optionButton.AddItem($"第{i + 1}波");
+ }
+ optionButton.Selected = waveIndex;
+ }
+
+ //点击添加标记按钮
private void OnAddMark()
{
- EditorWindowManager.ShowSelectObject("选择物体", this);
+ EditorWindowManager.ShowSelectObject(OnSelectObject, this);
+ }
+
+ //选中物体回调
+ private void OnSelectObject(ExcelConfig.ActivityObject activityObject)
+ {
+ _grid.Add(activityObject);
}
}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs
new file mode 100644
index 0000000..2281d91
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateMark/MarkObjectCell.cs
@@ -0,0 +1,33 @@
+using Config;
+
+namespace UI.MapEditorCreateMark;
+
+public class MarkObjectCell : UiCell
+{
+ public override void OnInit()
+ {
+ CellNode.L_CenterContainer.L_DeleteButton.Instance.Pressed += OnDeleteClick;
+ }
+
+ public override void OnSetData(ExcelConfig.ActivityObject data)
+ {
+ if (string.IsNullOrEmpty(data.Icon))
+ {
+ CellNode.L_Icon.Instance.Visible = false;
+ }
+ else
+ {
+ CellNode.L_Icon.Instance.Visible = true;
+ CellNode.L_Icon.Instance.Texture = ResourceManager.LoadTexture2D(data.Icon);
+ }
+
+ CellNode.L_IdLabel.Instance.Text = data.Id;
+ CellNode.L_NameLabel.Instance.Text = data.Name;
+ }
+
+ //点击删除按钮
+ private void OnDeleteClick()
+ {
+ Grid.RemoveByIndex(Index);
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorWaveCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorWaveCell.cs
index 5224a77..49af210 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorWaveCell.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorWaveCell.cs
@@ -35,9 +35,13 @@
_grid.Destroy();
}
+ //添加标记
private void OnAddMark()
{
- EditorWindowManager.ShowCreateMark();
+ //当前选中的预设
+ var preinstall = CellNode.UiPanel.GetSelectPreinstall();
+ //打开添加标记页面
+ EditorWindowManager.ShowCreateMark(preinstall, Index);
// var info = new MarkInfo();
// Data.Add(info);
// _grid.Add(info);
@@ -57,7 +61,7 @@
}
else
{
- textureButton.TextureNormal = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_Left_png);
+ textureButton.TextureNormal = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_Right_png);
}
}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs
index ed3a59e..c08b525 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs
@@ -60,6 +60,20 @@
}
///
+ /// 获取当前选中的预设
+ ///
+ public RoomPreinstall GetSelectPreinstall()
+ {
+ var index = S_PreinstallOption.Instance.Selected;
+ var preinstall = EditorTileMap.RoomSplit.Preinstall;
+ if (index >= preinstall.Count)
+ {
+ return null;
+ }
+ return preinstall[index];
+ }
+
+ ///
/// 刷新预设下拉框
///
public void RefreshPreinstallSelect(int index = -1)
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs
index 3cb597a..eac5a69 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs
@@ -2,9 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using Godot;
-using UI.EditorWindow;
-using UI.MapEditorCreateGroup;
-using UI.MapEditorCreateRoom;
namespace UI.MapEditorProject;
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorProject/RoomButtonCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorProject/RoomButtonCell.cs
index 8fdb45e..551f33a 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorProject/RoomButtonCell.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorProject/RoomButtonCell.cs
@@ -4,43 +4,16 @@
public class RoomButtonCell : UiCell
{
- private bool _focus = false;
-
- public override void OnInit()
- {
- CellNode.Instance.FocusExited += OnFocusExited;
- }
-
public override void OnSetData(DungeonRoomSplit data)
{
- _focus = false;
CellNode.L_RoomName.Instance.Text = data.RoomInfo.RoomName;
CellNode.L_RoomType.Instance.Text = DungeonManager.DungeonRoomTypeToDescribeString(data.RoomInfo.RoomType);
CellNode.Instance.TooltipText = "路径: " + data.RoomPath;
- CellNode.Instance.ReleaseFocus();
}
- public override void OnDestroy()
+ public override void OnDoubleClick()
{
- CellNode.Instance.FocusExited -= OnFocusExited;
- }
-
- public override void OnClick()
- {
- if (_focus)
- {
- //打开房间编辑器
- CellNode.UiPanel.SelectRoom(Data);
- CellNode.Instance.ReleaseFocus();
- }
- else
- {
- _focus = true;
- }
- }
-
- private void OnFocusExited()
- {
- _focus = false;
+ //打开房间编辑器
+ CellNode.UiPanel.SelectRoom(Data);
}
}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs
index 718b5e0..fa7b5b9 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs
@@ -1,3 +1,4 @@
+using System;
using System.Linq;
using Config;
using Godot;
@@ -6,6 +7,11 @@
public partial class MapEditorSelectObjectPanel : MapEditorSelectObject
{
+ ///
+ /// 双击选中物体事件
+ ///
+ public event Action SelectObjectEvent;
+
public class TypeButtonData
{
///
@@ -86,4 +92,23 @@
).ToArray();
_objectGrid.SetDataList(arr);
}
+
+ ///
+ /// 选中对象
+ ///
+ public void SelectCell(ExcelConfig.ActivityObject activityObject)
+ {
+ if (SelectObjectEvent != null)
+ {
+ SelectObjectEvent(activityObject);
+ }
+ }
+
+ ///
+ /// 获取选中的数据
+ ///
+ public ExcelConfig.ActivityObject GetSelectData()
+ {
+ return _objectGrid.SelectData;
+ }
}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/ObjectButtonCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/ObjectButtonCell.cs
index 60c1fbe..9c4e03f 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/ObjectButtonCell.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/ObjectButtonCell.cs
@@ -23,6 +23,12 @@
CellNode.L_PreviewImage.Instance.Visible = false;
}
}
+
+ public override void OnDoubleClick()
+ {
+ //双击选择该对象
+ CellNode.UiPanel.SelectCell(Data);
+ }
public override void OnSelect()
{