diff --git a/DungeonShooting_Godot/prefab/ui/MapEditor.tscn b/DungeonShooting_Godot/prefab/ui/MapEditor.tscn
index 798c234..7655510 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditor.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditor.tscn
@@ -1,14 +1,13 @@
-[gd_scene load_steps=13 format=3 uid="uid://csbxfkdupsckv"]
+[gd_scene load_steps=12 format=3 uid="uid://csbxfkdupsckv"]
[ext_resource type="Script" path="res://src/game/ui/mapEditor/MapEditorPanel.cs" id="1_5s7a0"]
-[ext_resource type="Texture2D" uid="uid://cajcnlimvoxk" path="res://resource/sprite/ui/mapEditorProject/Back.png" id="2_s2w5x"]
-[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileset/TileSet1.tres" id="2_vrg60"]
-[ext_resource type="Script" path="res://src/game/ui/mapEditor/TileView/EditorTileMap.cs" id="4_21o43"]
+[ext_resource type="Texture2D" uid="uid://cajcnlimvoxk" path="res://resource/sprite/ui/commonIcon/Back.png" id="2_gkcw7"]
+[ext_resource type="TileSet" uid="uid://b00g22o1cqhe8" path="res://resource/map/tileSet/TileSet1.tres" id="2_vrg60"]
[ext_resource type="Texture2D" uid="uid://0878uloew5jo" path="res://resource/sprite/ui/mapEditor/ErrorCell.png" id="4_465u2"]
+[ext_resource type="Script" path="res://src/game/ui/mapEditor/tileView/EditorTileMap.cs" id="4_mhy1a"]
[ext_resource type="PackedScene" uid="uid://b4u66mxndxbrg" path="res://prefab/ui/MapEditorTools.tscn" id="6_7pvgu"]
-[ext_resource type="Texture2D" uid="uid://dmm8jw06bhffh" path="res://resource/sprite/ui/mapEditorTools/Lock.png" id="7_lli1g"]
-[ext_resource type="Texture2D" uid="uid://dqvg18aacx6db" path="res://resource/sprite/ui/mapEditorTools/Visible.png" id="8_gm7y5"]
-[ext_resource type="Texture2D" uid="uid://n4atvj5fkcpg" path="res://resource/sprite/ui/mapEditorProject/Add.png" id="9_id1w0"]
+[ext_resource type="PackedScene" uid="uid://bb2ekkpxifd7g" path="res://prefab/ui/MapEditorMapLayer.tscn" id="7_ychtn"]
+[ext_resource type="PackedScene" uid="uid://peo0n8bl15y5" path="res://prefab/ui/MapEditorMapMark.tscn" id="8_8tgeu"]
[sub_resource type="Animation" id="Animation_o3btm"]
length = 0.001
@@ -108,7 +107,7 @@
offset_right = 62.0
offset_bottom = 68.0
size_flags_horizontal = 0
-icon = ExtResource("2_s2w5x")
+icon = ExtResource("2_gkcw7")
icon_alignment = 1
[node name="HSplitContainer" type="HSplitContainer" parent="Bg/VBoxContainer"]
@@ -147,7 +146,7 @@
scale = Vector2(4, 4)
tile_set = ExtResource("2_vrg60")
format = 2
-script = ExtResource("4_21o43")
+script = ExtResource("4_mhy1a")
[node name="ErrorCell" type="Sprite2D" parent="Bg/VBoxContainer/HSplitContainer/Left/MarginContainer/MapView/SubViewport/TileMap"]
visible = false
@@ -193,75 +192,16 @@
size_flags_vertical = 3
[node name="MapLayer" type="MarginContainer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer"]
+layout_mode = 2
+theme_override_constants/margin_top = 10
+
+[node name="MapEditorMapLayer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MapLayer" instance=ExtResource("7_ychtn")]
+layout_mode = 2
+
+[node name="MapMark" type="MarginContainer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer"]
visible = false
layout_mode = 2
theme_override_constants/margin_top = 10
-[node name="VBoxContainer" type="VBoxContainer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MapLayer"]
+[node name="MapEditorMapMark" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MapMark" instance=ExtResource("8_8tgeu")]
layout_mode = 2
-
-[node name="LayerLabel" type="Label" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MapLayer/VBoxContainer"]
-layout_mode = 2
-text = "地图层级:"
-
-[node name="ScrollContainer" type="ScrollContainer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MapLayer/VBoxContainer"]
-layout_mode = 2
-size_flags_vertical = 3
-
-[node name="LayerButton" type="Button" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MapLayer/VBoxContainer/ScrollContainer"]
-custom_minimum_size = Vector2(0, 70)
-layout_mode = 2
-size_flags_horizontal = 3
-text = "layer1"
-icon = ExtResource("7_lli1g")
-alignment = 0
-
-[node name="VisibleButton" type="TextureButton" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MapLayer/VBoxContainer/ScrollContainer/LayerButton"]
-layout_mode = 1
-anchors_preset = 11
-anchor_left = 1.0
-anchor_right = 1.0
-anchor_bottom = 1.0
-offset_left = -55.0
-grow_horizontal = 0
-grow_vertical = 2
-texture_normal = ExtResource("8_gm7y5")
-stretch_mode = 3
-
-[node name="MarkLayer" type="MarginContainer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer"]
-layout_mode = 2
-theme_override_constants/margin_top = 10
-
-[node name="VBoxContainer" type="VBoxContainer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MarkLayer"]
-layout_mode = 2
-
-[node name="MarkLabel" type="Label" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MarkLayer/VBoxContainer"]
-layout_mode = 2
-text = "编辑预设"
-
-[node name="HBoxContainer" type="HBoxContainer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MarkLayer/VBoxContainer"]
-layout_mode = 2
-
-[node name="PreinstallOption" type="OptionButton" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MarkLayer/VBoxContainer/HBoxContainer"]
-layout_mode = 2
-size_flags_horizontal = 3
-item_count = 1
-selected = 0
-popup/item_0/text = "预设1 (100)"
-popup/item_0/id = 0
-
-[node name="AddPreinstall" type="Button" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MarkLayer/VBoxContainer/HBoxContainer"]
-layout_mode = 2
-icon = ExtResource("9_id1w0")
-
-[node name="EditPreinstall" type="Button" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MarkLayer/VBoxContainer/HBoxContainer"]
-layout_mode = 2
-icon = ExtResource("9_id1w0")
-
-[node name="DeletePreinstall" type="Button" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MarkLayer/VBoxContainer/HBoxContainer"]
-layout_mode = 2
-icon = ExtResource("9_id1w0")
-
-[node name="ScrollContainer" type="ScrollContainer" parent="Bg/VBoxContainer/HSplitContainer/Right/MarginContainer/TabContainer/MarkLayer/VBoxContainer"]
-layout_mode = 2
-size_flags_vertical = 3
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn
new file mode 100644
index 0000000..cce9a9a
--- /dev/null
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn
@@ -0,0 +1,48 @@
+[gd_scene load_steps=4 format=3 uid="uid://bb2ekkpxifd7g"]
+
+[ext_resource type="Script" path="res://src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs" id="1_3j05m"]
+[ext_resource type="Texture2D" uid="uid://dmm8jw06bhffh" path="res://resource/sprite/ui/commonIcon/Lock.png" id="2_pfhyj"]
+[ext_resource type="Texture2D" uid="uid://dqvg18aacx6db" path="res://resource/sprite/ui/commonIcon/Visible.png" id="3_rqjh4"]
+
+[node name="MapEditorMapLayer" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+script = ExtResource("1_3j05m")
+
+[node name="VBoxContainer" type="VBoxContainer" parent="."]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="LayerLabel" type="Label" parent="VBoxContainer"]
+layout_mode = 2
+text = "地图层级:"
+
+[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+
+[node name="LayerButton" type="Button" parent="VBoxContainer/ScrollContainer"]
+custom_minimum_size = Vector2(0, 70)
+layout_mode = 2
+size_flags_horizontal = 3
+text = "layer1"
+icon = ExtResource("2_pfhyj")
+alignment = 0
+
+[node name="VisibleButton" type="TextureButton" parent="VBoxContainer/ScrollContainer/LayerButton"]
+layout_mode = 1
+anchors_preset = 11
+anchor_left = 1.0
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = -55.0
+grow_horizontal = 0
+grow_vertical = 2
+texture_normal = ExtResource("3_rqjh4")
+stretch_mode = 3
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn
new file mode 100644
index 0000000..ea7c698
--- /dev/null
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn
@@ -0,0 +1,106 @@
+[gd_scene load_steps=6 format=3 uid="uid://peo0n8bl15y5"]
+
+[ext_resource type="Script" path="res://src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs" id="1_dudey"]
+[ext_resource type="Texture2D" uid="uid://n4atvj5fkcpg" path="res://resource/sprite/ui/commonIcon/Add.png" id="2_osya0"]
+[ext_resource type="Texture2D" uid="uid://dggb6p4sdmfry" path="res://resource/sprite/ui/commonIcon/Edit.png" id="3_wwaki"]
+[ext_resource type="Texture2D" uid="uid://c5778ntk2rdon" path="res://resource/sprite/ui/commonIcon/Delete.png" id="4_urq7y"]
+[ext_resource type="Texture2D" uid="uid://uhhfgdhpk7i4" path="res://icon.png" id="5_3tml0"]
+
+[node name="MapEditorMapMark" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+script = ExtResource("1_dudey")
+
+[node name="VBoxContainer" type="VBoxContainer" parent="."]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="MarkLabel" type="Label" parent="VBoxContainer"]
+layout_mode = 2
+text = "编辑预设:"
+
+[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
+layout_mode = 2
+
+[node name="PreinstallOption" type="OptionButton" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="AddPreinstall" type="Button" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+icon = ExtResource("2_osya0")
+
+[node name="EditPreinstall" type="Button" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+icon = ExtResource("3_wwaki")
+
+[node name="DeletePreinstall" type="Button" parent="VBoxContainer/HBoxContainer"]
+layout_mode = 2
+icon = ExtResource("4_urq7y")
+
+[node name="MarkLabel2" type="Label" parent="VBoxContainer"]
+layout_mode = 2
+text = "编辑对象:"
+
+[node name="DynamicTool" type="HBoxContainer" parent="VBoxContainer"]
+visible = false
+layout_mode = 2
+
+[node name="AddMark" type="Button" parent="VBoxContainer/DynamicTool"]
+layout_mode = 2
+icon = ExtResource("2_osya0")
+
+[node name="EditMark" type="Button" parent="VBoxContainer/DynamicTool"]
+layout_mode = 2
+icon = ExtResource("3_wwaki")
+
+[node name="DeleteMark" type="Button" parent="VBoxContainer/DynamicTool"]
+layout_mode = 2
+icon = ExtResource("4_urq7y")
+
+[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+
+[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+size_flags_vertical = 3
+
+[node name="WaveTemplate" type="VBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+
+[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveTemplate"]
+layout_mode = 2
+
+[node name="TextureButton" type="TextureButton" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveTemplate/HBoxContainer"]
+layout_mode = 2
+texture_normal = ExtResource("2_osya0")
+stretch_mode = 3
+
+[node name="WaveButton" type="Button" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveTemplate/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+text = "第1波"
+alignment = 0
+
+[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveTemplate"]
+layout_mode = 2
+theme_override_constants/margin_left = 36
+
+[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveTemplate/MarginContainer"]
+layout_mode = 2
+
+[node name="MarkButton" type="Button" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveTemplate/MarginContainer/HBoxContainer"]
+layout_mode = 2
+size_flags_horizontal = 3
+text = "敌人(1001)"
+icon = ExtResource("5_3tml0")
+alignment = 0
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorProject.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorProject.tscn
index ec9fd1e..6844475 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditorProject.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorProject.tscn
@@ -1,10 +1,10 @@
[gd_scene load_steps=6 format=3 uid="uid://dh7y03tq6v0a2"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorProject/MapEditorProjectPanel.cs" id="1_5aioo"]
-[ext_resource type="Texture2D" uid="uid://blfvsup876agh" path="res://resource/sprite/ui/mapEditorProject/Search.png" id="2_gi4tc"]
-[ext_resource type="Texture2D" uid="uid://cajcnlimvoxk" path="res://resource/sprite/ui/mapEditorProject/Back.png" id="2_whp38"]
+[ext_resource type="Texture2D" uid="uid://cajcnlimvoxk" path="res://resource/sprite/ui/commonIcon/Back.png" id="2_v0ry0"]
[ext_resource type="Texture2D" uid="uid://uhhfgdhpk7i4" path="res://icon.png" id="2_xh3iw"]
-[ext_resource type="Texture2D" uid="uid://n4atvj5fkcpg" path="res://resource/sprite/ui/mapEditorProject/Add.png" id="4_qc7mu"]
+[ext_resource type="Texture2D" uid="uid://blfvsup876agh" path="res://resource/sprite/ui/commonIcon/Search.png" id="3_f5h8c"]
+[ext_resource type="Texture2D" uid="uid://n4atvj5fkcpg" path="res://resource/sprite/ui/commonIcon/Add.png" id="4_okvq0"]
[node name="MapEditorProject" type="Control"]
layout_mode = 3
@@ -44,7 +44,7 @@
offset_right = 62.0
offset_bottom = 68.0
size_flags_horizontal = 0
-icon = ExtResource("2_whp38")
+icon = ExtResource("2_v0ry0")
icon_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Bg/VBoxContainer"]
@@ -83,11 +83,11 @@
[node name="GroupSearchButton" type="Button" parent="Bg/VBoxContainer/HBoxContainer/Panel/MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
-icon = ExtResource("2_gi4tc")
+icon = ExtResource("3_f5h8c")
[node name="GroupAddButton" type="Button" parent="Bg/VBoxContainer/HBoxContainer/Panel/MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
-icon = ExtResource("4_qc7mu")
+icon = ExtResource("4_okvq0")
[node name="ScrollContainer" type="ScrollContainer" parent="Bg/VBoxContainer/HBoxContainer/Panel/MarginContainer/VBoxContainer"]
layout_mode = 2
@@ -136,11 +136,11 @@
[node name="RoomSearchButton" type="Button" parent="Bg/VBoxContainer/HBoxContainer/Panel2/MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
-icon = ExtResource("2_gi4tc")
+icon = ExtResource("3_f5h8c")
[node name="RoomAddButton" type="Button" parent="Bg/VBoxContainer/HBoxContainer/Panel2/MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
-icon = ExtResource("4_qc7mu")
+icon = ExtResource("4_okvq0")
[node name="ScrollContainer" type="ScrollContainer" parent="Bg/VBoxContainer/HBoxContainer/Panel2/MarginContainer/VBoxContainer"]
layout_mode = 2
diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001.png.import
index b20c9a6..c36be94 100644
--- a/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://chd2vtesap5cf"
-path="res://.godot/imported/enemy0001.png-1247a3ddf8a1a163d812cad12c4340fd.ctex"
+path="res://.godot/imported/Enemy0001.png-148a38dfa95953b26d890356e8875de4.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/enemy0001/enemy0001.png"
-dest_files=["res://.godot/imported/enemy0001.png-1247a3ddf8a1a163d812cad12c4340fd.ctex"]
+source_file="res://resource/sprite/role/enemy0001/Enemy0001.png"
+dest_files=["res://.godot/imported/Enemy0001.png-148a38dfa95953b26d890356e8875de4.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001_Debris.png.import
index 56388a2..d563acf 100644
--- a/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001_Debris.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy0001/Enemy0001_Debris.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://d2f55lu60x64i"
-path="res://.godot/imported/enemy0001_Debris.png-297a2fb6680cb862a9a085cf58f8268c.ctex"
+path="res://.godot/imported/Enemy0001_Debris.png-ac416dc79cd3c1217b27e1ef1fbe0d0b.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/enemy0001/enemy0001_Debris.png"
-dest_files=["res://.godot/imported/enemy0001_Debris.png-297a2fb6680cb862a9a085cf58f8268c.ctex"]
+source_file="res://resource/sprite/role/enemy0001/Enemy0001_Debris.png"
+dest_files=["res://.godot/imported/Enemy0001_Debris.png-ac416dc79cd3c1217b27e1ef1fbe0d0b.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Add.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Add.png
new file mode 100644
index 0000000..280a25d
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Add.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Add.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Add.png.import
new file mode 100644
index 0000000..204a74a
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Add.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://n4atvj5fkcpg"
+path="res://.godot/imported/Add.png-8e6b3c843ee8b2c6e57d2915f8263c65.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Add.png"
+dest_files=["res://.godot/imported/Add.png-8e6b3c843ee8b2c6e57d2915f8263c65.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/AreaTool.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/AreaTool.png
new file mode 100644
index 0000000..b80b4ba
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/AreaTool.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/AreaTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/AreaTool.png.import
new file mode 100644
index 0000000..676160a
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/AreaTool.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b7w6pbk7aucee"
+path="res://.godot/imported/AreaTool.png-e5beed3b808469bfedf759308db4e539.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/AreaTool.png"
+dest_files=["res://.godot/imported/AreaTool.png-e5beed3b808469bfedf759308db4e539.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/Back.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Back.png
new file mode 100644
index 0000000..cd55ec2
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Back.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Back.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Back.png.import
new file mode 100644
index 0000000..0dab2e8
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Back.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cajcnlimvoxk"
+path="res://.godot/imported/Back.png-4f6c04af710e74226c20bed5c5343f81.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Back.png"
+dest_files=["res://.godot/imported/Back.png-4f6c04af710e74226c20bed5c5343f81.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/CenterTool.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/CenterTool.png
new file mode 100644
index 0000000..d980ce2
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/CenterTool.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/CenterTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/CenterTool.png.import
new file mode 100644
index 0000000..33c643f
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/CenterTool.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d2wslibovwv7w"
+path="res://.godot/imported/CenterTool.png-4576df0e7b33592ac2d1166b7a6dda09.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/CenterTool.png"
+dest_files=["res://.godot/imported/CenterTool.png-4576df0e7b33592ac2d1166b7a6dda09.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/Delete.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Delete.png
new file mode 100644
index 0000000..76da1c1
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Delete.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Delete.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Delete.png.import
new file mode 100644
index 0000000..05d379f
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Delete.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c5778ntk2rdon"
+path="res://.godot/imported/Delete.png-f48bfe3683bb202cd13fbd26db67c28c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Delete.png"
+dest_files=["res://.godot/imported/Delete.png-f48bfe3683bb202cd13fbd26db67c28c.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/DoorTool.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DoorTool.png
new file mode 100644
index 0000000..65fb793
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DoorTool.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DoorTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DoorTool.png.import
new file mode 100644
index 0000000..96b5824
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DoorTool.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dxpdjj1abmejh"
+path="res://.godot/imported/DoorTool.png-3f0fe4eba16e8f6c3cc329b330e301f8.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/DoorTool.png"
+dest_files=["res://.godot/imported/DoorTool.png-3f0fe4eba16e8f6c3cc329b330e301f8.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/DragTool.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DragTool.png
new file mode 100644
index 0000000..7d3f566
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DragTool.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DragTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DragTool.png.import
new file mode 100644
index 0000000..349723a
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/DragTool.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cf5jw35388hto"
+path="res://.godot/imported/DragTool.png-2f2a7cc185c6c4cb1014bbd422748bb0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/DragTool.png"
+dest_files=["res://.godot/imported/DragTool.png-2f2a7cc185c6c4cb1014bbd422748bb0.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/Edit.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Edit.png
new file mode 100644
index 0000000..8384af3
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Edit.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Edit.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Edit.png.import
new file mode 100644
index 0000000..2f56e27
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Edit.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dggb6p4sdmfry"
+path="res://.godot/imported/Edit.png-e197be1526d051ddb37fe0759e8310cb.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Edit.png"
+dest_files=["res://.godot/imported/Edit.png-e197be1526d051ddb37fe0759e8310cb.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/Hide.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Hide.png
new file mode 100644
index 0000000..1925305
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Hide.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Hide.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Hide.png.import
new file mode 100644
index 0000000..887aed6
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Hide.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://tx8ynskqa5ad"
+path="res://.godot/imported/Hide.png-cb345239a5a127cc3d7560e6ace35a17.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Hide.png"
+dest_files=["res://.godot/imported/Hide.png-cb345239a5a127cc3d7560e6ace35a17.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/Lock.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Lock.png
new file mode 100644
index 0000000..40f033f
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Lock.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Lock.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Lock.png.import
new file mode 100644
index 0000000..c1adc8e
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Lock.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dmm8jw06bhffh"
+path="res://.godot/imported/Lock.png-c8b444111d719776b02720e1b6dd7fc2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Lock.png"
+dest_files=["res://.godot/imported/Lock.png-c8b444111d719776b02720e1b6dd7fc2.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/PenTool.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/PenTool.png
new file mode 100644
index 0000000..d3bca0b
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/PenTool.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/PenTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/PenTool.png.import
new file mode 100644
index 0000000..082cc1f
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/PenTool.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c8yxnnif4j2ov"
+path="res://.godot/imported/PenTool.png-326aa47d1e7e4494c4775d687f19907d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/PenTool.png"
+dest_files=["res://.godot/imported/PenTool.png-326aa47d1e7e4494c4775d687f19907d.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/Search.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Search.png
new file mode 100644
index 0000000..cda7685
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Search.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Search.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Search.png.import
new file mode 100644
index 0000000..1eacfed
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Search.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://blfvsup876agh"
+path="res://.godot/imported/Search.png-22f8bee474045856c03cc0954c4df134.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Search.png"
+dest_files=["res://.godot/imported/Search.png-22f8bee474045856c03cc0954c4df134.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/Unlock.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Unlock.png
new file mode 100644
index 0000000..7244b37
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Unlock.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Unlock.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Unlock.png.import
new file mode 100644
index 0000000..5af6d90
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Unlock.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://jvcvtpvt2fid"
+path="res://.godot/imported/Unlock.png-a409c96a8ca571f75a60a5f09be5720c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Unlock.png"
+dest_files=["res://.godot/imported/Unlock.png-a409c96a8ca571f75a60a5f09be5720c.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/Visible.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Visible.png
new file mode 100644
index 0000000..9bbd5cb
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Visible.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Visible.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Visible.png.import
new file mode 100644
index 0000000..6618b5a
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Visible.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dqvg18aacx6db"
+path="res://.godot/imported/Visible.png-4c1ece1a99e6985ec91c751931e614c1.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/Visible.png"
+dest_files=["res://.godot/imported/Visible.png-4c1ece1a99e6985ec91c751931e614c1.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/mapEditorProject/Add.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Add.png
deleted file mode 100644
index 280a25d..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Add.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Add.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Add.png.import
deleted file mode 100644
index fc9192b..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Add.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://n4atvj5fkcpg"
-path="res://.godot/imported/Add.png-57ec68f80dc7c7f696876f36aff62168.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorProject/Add.png"
-dest_files=["res://.godot/imported/Add.png-57ec68f80dc7c7f696876f36aff62168.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/mapEditorProject/Back.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Back.png
deleted file mode 100644
index cd55ec2..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Back.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Back.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Back.png.import
deleted file mode 100644
index f75c7ea..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Back.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cajcnlimvoxk"
-path="res://.godot/imported/Back.png-3649f5132f7dd95cae3956c07c9f3b22.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorProject/Back.png"
-dest_files=["res://.godot/imported/Back.png-3649f5132f7dd95cae3956c07c9f3b22.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/mapEditorProject/Search.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Search.png
deleted file mode 100644
index cda7685..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Search.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Search.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Search.png.import
deleted file mode 100644
index 5c20431..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorProject/Search.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://blfvsup876agh"
-path="res://.godot/imported/Search.png-7b1bdb2c42361e1f1bcb3d4ffbc2cf9b.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorProject/Search.png"
-dest_files=["res://.godot/imported/Search.png-7b1bdb2c42361e1f1bcb3d4ffbc2cf9b.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/mapEditorTools/AreaTool.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/AreaTool.png
deleted file mode 100644
index b80b4ba..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/AreaTool.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/AreaTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/AreaTool.png.import
deleted file mode 100644
index 7410a6c..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/AreaTool.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://b7w6pbk7aucee"
-path="res://.godot/imported/AreaTool.png-3c7e64e3d5aded201fb8eb7fce2fc4c0.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/AreaTool.png"
-dest_files=["res://.godot/imported/AreaTool.png-3c7e64e3d5aded201fb8eb7fce2fc4c0.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/mapEditorTools/CenterTool.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/CenterTool.png
deleted file mode 100644
index d980ce2..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/CenterTool.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/CenterTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/CenterTool.png.import
deleted file mode 100644
index 94af517..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/CenterTool.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://d2wslibovwv7w"
-path="res://.godot/imported/CenterTool.png-79d25e576bc6161126fe504f63db716b.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/CenterTool.png"
-dest_files=["res://.godot/imported/CenterTool.png-79d25e576bc6161126fe504f63db716b.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/mapEditorTools/DoorTool.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DoorTool.png
deleted file mode 100644
index 65fb793..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DoorTool.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DoorTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DoorTool.png.import
deleted file mode 100644
index aa23d3f..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DoorTool.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dxpdjj1abmejh"
-path="res://.godot/imported/DoorTool.png-925b770373cff91f0d55e409d76d38c3.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/DoorTool.png"
-dest_files=["res://.godot/imported/DoorTool.png-925b770373cff91f0d55e409d76d38c3.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/mapEditorTools/DragTool.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DragTool.png
deleted file mode 100644
index 7d3f566..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DragTool.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DragTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DragTool.png.import
deleted file mode 100644
index 10dce0b..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/DragTool.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://cf5jw35388hto"
-path="res://.godot/imported/DragTool.png-75d0f0dea214f2697f192ec3abc85fff.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/DragTool.png"
-dest_files=["res://.godot/imported/DragTool.png-75d0f0dea214f2697f192ec3abc85fff.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/mapEditorTools/Hide.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Hide.png
deleted file mode 100644
index 1925305..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Hide.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Hide.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Hide.png.import
deleted file mode 100644
index 7ab915f..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Hide.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://tx8ynskqa5ad"
-path="res://.godot/imported/Hide.png-9e29fe6e5d5256a8bf655e87bfb1c514.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/Hide.png"
-dest_files=["res://.godot/imported/Hide.png-9e29fe6e5d5256a8bf655e87bfb1c514.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/mapEditorTools/Lock.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Lock.png
deleted file mode 100644
index 40f033f..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Lock.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Lock.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Lock.png.import
deleted file mode 100644
index b614d76..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Lock.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dmm8jw06bhffh"
-path="res://.godot/imported/Lock.png-04701e8ff332d79831f8e7e3966494e3.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/Lock.png"
-dest_files=["res://.godot/imported/Lock.png-04701e8ff332d79831f8e7e3966494e3.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/mapEditorTools/PenTool.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/PenTool.png
deleted file mode 100644
index d3bca0b..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/PenTool.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/PenTool.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/PenTool.png.import
deleted file mode 100644
index 3d50960..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/PenTool.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://c8yxnnif4j2ov"
-path="res://.godot/imported/PenTool.png-ff76effc9da04ac9923ff0b95925a1ab.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/PenTool.png"
-dest_files=["res://.godot/imported/PenTool.png-ff76effc9da04ac9923ff0b95925a1ab.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/mapEditorTools/Unlock.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Unlock.png
deleted file mode 100644
index 7244b37..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Unlock.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Unlock.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Unlock.png.import
deleted file mode 100644
index 107458b..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Unlock.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://jvcvtpvt2fid"
-path="res://.godot/imported/Unlock.png-ddcb534918f7b36b0aebe029c72635c5.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/Unlock.png"
-dest_files=["res://.godot/imported/Unlock.png-ddcb534918f7b36b0aebe029c72635c5.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/mapEditorTools/Visible.png b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Visible.png
deleted file mode 100644
index 9bbd5cb..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Visible.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Visible.png.import b/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Visible.png.import
deleted file mode 100644
index 4179b9e..0000000
--- a/DungeonShooting_Godot/resource/sprite/ui/mapEditorTools/Visible.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dqvg18aacx6db"
-path="res://.godot/imported/Visible.png-2ddbc06e87cdb9bc38126fec565ee66d.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://resource/sprite/ui/mapEditorTools/Visible.png"
-dest_files=["res://.godot/imported/Visible.png-2ddbc06e87cdb9bc38126fec565ee66d.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/UiBase.cs b/DungeonShooting_Godot/src/framework/ui/UiBase.cs
index 8117a47..7dbdeed 100644
--- a/DungeonShooting_Godot/src/framework/ui/UiBase.cs
+++ b/DungeonShooting_Godot/src/framework/ui/UiBase.cs
@@ -6,7 +6,6 @@
///
/// Ui 基类
///
-[Tool]
public abstract partial class UiBase : Control, IDestroy, ICoroutine
{
///
@@ -32,12 +31,16 @@
///
public UiBase PrevUi { get; set; }
+ ///
+ /// 所属父级Ui, 仅当通过 UiNode.OpenNestedUi() 打开时才会赋值
+ /// 注意: 如果是在预制体中放置的子 Ui, 那么子 Ui 的该属性会在 OnCreateUi() 之后赋值
+ ///
+ public UiBase ParentUi { get; private set; }
+
//开启的协程
private List _coroutineList;
//嵌套打开的Ui列表
private HashSet _nestedUiSet;
- //所属父级Ui, UiNode.RecordNestedUi() 嵌套打开的 Ui 将被赋予此值
- private UiBase _targetUi;
public UiBase(string uiName)
{
@@ -47,16 +50,16 @@
}
///
- /// 用于初始化打开的子Ui, 在 OnCreateUi() 之后调用
+ /// 创建当前ui时调用
///
- public virtual void OnInitNestedUi()
+ public virtual void OnCreateUi()
{
}
///
- /// 创建当前ui时调用
+ /// 用于初始化打开的子Ui, 在 OnCreateUi() 之后调用
///
- public virtual void OnCreateUi()
+ public virtual void OnInitNestedUi()
{
}
@@ -156,16 +159,16 @@
{
foreach (var uiBase in _nestedUiSet)
{
- uiBase._targetUi = null;
+ uiBase.ParentUi = null;
uiBase.Destroy();
}
_nestedUiSet.Clear();
}
//在父Ui中移除当前Ui
- if (_targetUi != null)
+ if (ParentUi != null)
{
- _targetUi.RecordNestedUi(this, UiManager.RecordType.Close);
+ ParentUi.RecordNestedUi(this, UiManager.RecordType.Close);
}
QueueFree();
@@ -194,24 +197,24 @@
{
if (type == UiManager.RecordType.Open)
{
- if (uiBase._targetUi != null && uiBase._targetUi != this)
+ if (uiBase.ParentUi != null && uiBase.ParentUi != this)
{
- GD.PrintErr($"子Ui:'{uiBase.UiName}'已经被其他Ui:'{uiBase._targetUi.UiName}'嵌套打开!");
- uiBase._targetUi.RecordNestedUi(uiBase, UiManager.RecordType.Close);
+ GD.PrintErr($"子Ui:'{uiBase.UiName}'已经被其他Ui:'{uiBase.ParentUi.UiName}'嵌套打开!");
+ uiBase.ParentUi.RecordNestedUi(uiBase, UiManager.RecordType.Close);
}
if (_nestedUiSet == null)
{
_nestedUiSet = new HashSet();
}
- uiBase._targetUi = this;
+ uiBase.ParentUi = this;
_nestedUiSet.Add(uiBase);
}
else
{
- if (uiBase._targetUi == this)
+ if (uiBase.ParentUi == this)
{
- uiBase._targetUi = null;
+ uiBase.ParentUi = null;
}
else
{
diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
index db5793c..ebc92e3 100644
--- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
+++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
@@ -56,6 +56,8 @@
public const string prefab_ui_MapEditor_tscn = "res://prefab/ui/MapEditor.tscn";
public const string prefab_ui_MapEditorCreateGroup_tscn = "res://prefab/ui/MapEditorCreateGroup.tscn";
public const string prefab_ui_MapEditorCreateRoom_tscn = "res://prefab/ui/MapEditorCreateRoom.tscn";
+ public const string prefab_ui_MapEditorMapLayer_tscn = "res://prefab/ui/MapEditorMapLayer.tscn";
+ public const string prefab_ui_MapEditorMapMark_tscn = "res://prefab/ui/MapEditorMapMark.tscn";
public const string prefab_ui_MapEditorProject_tscn = "res://prefab/ui/MapEditorProject.tscn";
public const string prefab_ui_MapEditorTools_tscn = "res://prefab/ui/MapEditorTools.tscn";
public const string prefab_ui_RoomUI_tscn = "res://prefab/ui/RoomUI.tscn";
@@ -170,25 +172,27 @@
public const string resource_sprite_shell_Shell0003_png = "res://resource/sprite/shell/Shell0003.png";
public const string resource_sprite_ui_font_bg_png = "res://resource/sprite/ui/font_bg.png";
public const string resource_sprite_ui_GUI_png = "res://resource/sprite/ui/GUI.png";
+ public const string resource_sprite_ui_commonIcon_Add_png = "res://resource/sprite/ui/commonIcon/Add.png";
+ public const string resource_sprite_ui_commonIcon_AreaTool_png = "res://resource/sprite/ui/commonIcon/AreaTool.png";
+ public const string resource_sprite_ui_commonIcon_Back_png = "res://resource/sprite/ui/commonIcon/Back.png";
+ public const string resource_sprite_ui_commonIcon_CenterTool_png = "res://resource/sprite/ui/commonIcon/CenterTool.png";
+ public const string resource_sprite_ui_commonIcon_Delete_png = "res://resource/sprite/ui/commonIcon/Delete.png";
+ public const string resource_sprite_ui_commonIcon_DoorTool_png = "res://resource/sprite/ui/commonIcon/DoorTool.png";
+ 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_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_Search_png = "res://resource/sprite/ui/commonIcon/Search.png";
+ public const string resource_sprite_ui_commonIcon_Unlock_png = "res://resource/sprite/ui/commonIcon/Unlock.png";
+ public const string resource_sprite_ui_commonIcon_Visible_png = "res://resource/sprite/ui/commonIcon/Visible.png";
public const string resource_sprite_ui_keyboard_e_png = "res://resource/sprite/ui/keyboard/e.png";
public const string resource_sprite_ui_mapEditor_ErrorCell_png = "res://resource/sprite/ui/mapEditor/ErrorCell.png";
- public const string resource_sprite_ui_mapEditorProject_Add_png = "res://resource/sprite/ui/mapEditorProject/Add.png";
- public const string resource_sprite_ui_mapEditorProject_Back_png = "res://resource/sprite/ui/mapEditorProject/Back.png";
public const string resource_sprite_ui_mapEditorProject_CellBg_png = "res://resource/sprite/ui/mapEditorProject/CellBg.png";
- public const string resource_sprite_ui_mapEditorProject_Search_png = "res://resource/sprite/ui/mapEditorProject/Search.png";
- public const string resource_sprite_ui_mapEditorTools_AreaTool_png = "res://resource/sprite/ui/mapEditorTools/AreaTool.png";
- public const string resource_sprite_ui_mapEditorTools_CenterTool_png = "res://resource/sprite/ui/mapEditorTools/CenterTool.png";
public const string resource_sprite_ui_mapEditorTools_DoorDragButton_png = "res://resource/sprite/ui/mapEditorTools/DoorDragButton.png";
public const string resource_sprite_ui_mapEditorTools_DoorDragButton_down_png = "res://resource/sprite/ui/mapEditorTools/DoorDragButton_down.png";
public const string resource_sprite_ui_mapEditorTools_DoorDragButton_hover_png = "res://resource/sprite/ui/mapEditorTools/DoorDragButton_hover.png";
- public const string resource_sprite_ui_mapEditorTools_DoorTool_png = "res://resource/sprite/ui/mapEditorTools/DoorTool.png";
- public const string resource_sprite_ui_mapEditorTools_DragTool_png = "res://resource/sprite/ui/mapEditorTools/DragTool.png";
- public const string resource_sprite_ui_mapEditorTools_Hide_png = "res://resource/sprite/ui/mapEditorTools/Hide.png";
- public const string resource_sprite_ui_mapEditorTools_Lock_png = "res://resource/sprite/ui/mapEditorTools/Lock.png";
- public const string resource_sprite_ui_mapEditorTools_PenTool_png = "res://resource/sprite/ui/mapEditorTools/PenTool.png";
public const string resource_sprite_ui_mapEditorTools_ToolSelect_png = "res://resource/sprite/ui/mapEditorTools/ToolSelect.png";
- public const string resource_sprite_ui_mapEditorTools_Unlock_png = "res://resource/sprite/ui/mapEditorTools/Unlock.png";
- public const string resource_sprite_ui_mapEditorTools_Visible_png = "res://resource/sprite/ui/mapEditorTools/Visible.png";
public const string resource_sprite_ui_roomUI_ChargeProgress_png = "res://resource/sprite/ui/roomUI/ChargeProgress.png";
public const string resource_sprite_ui_roomUI_ChargeProgressBar_png = "res://resource/sprite/ui/roomUI/ChargeProgressBar.png";
public const string resource_sprite_ui_roomUI_Cooldown_png = "res://resource/sprite/ui/roomUI/Cooldown.png";
diff --git a/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs b/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs
index 1315af1..13efd2e 100644
--- a/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs
+++ b/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs
@@ -15,6 +15,8 @@
public const string MapEditor = "MapEditor";
public const string MapEditorCreateGroup = "MapEditorCreateGroup";
public const string MapEditorCreateRoom = "MapEditorCreateRoom";
+ public const string MapEditorMapLayer = "MapEditorMapLayer";
+ public const string MapEditorMapMark = "MapEditorMapMark";
public const string MapEditorProject = "MapEditorProject";
public const string MapEditorTools = "MapEditorTools";
public const string RoomUI = "RoomUI";
@@ -454,6 +456,102 @@
}
///
+ /// 创建 MapEditorMapLayer, 并返回UI实例, 该函数不会打开 Ui
+ ///
+ public static UI.MapEditorMapLayer.MapEditorMapLayerPanel Create_MapEditorMapLayer()
+ {
+ return CreateUi(UiName.MapEditorMapLayer);
+ }
+
+ ///
+ /// 打开 MapEditorMapLayer, 并返回UI实例
+ ///
+ public static UI.MapEditorMapLayer.MapEditorMapLayerPanel Open_MapEditorMapLayer()
+ {
+ return OpenUi(UiName.MapEditorMapLayer);
+ }
+
+ ///
+ /// 隐藏 MapEditorMapLayer 的所有实例
+ ///
+ public static void Hide_MapEditorMapLayer()
+ {
+ var uiInstance = Get_MapEditorMapLayer_Instance();
+ foreach (var uiPanel in uiInstance)
+ {
+ uiPanel.HideUi();
+ }
+ }
+
+ ///
+ /// 销毁 MapEditorMapLayer 的所有实例
+ ///
+ public static void Destroy_MapEditorMapLayer()
+ {
+ var uiInstance = Get_MapEditorMapLayer_Instance();
+ foreach (var uiPanel in uiInstance)
+ {
+ uiPanel.Destroy();
+ }
+ }
+
+ ///
+ /// 获取所有 MapEditorMapLayer 的实例, 如果没有实例, 则返回一个空数组
+ ///
+ public static UI.MapEditorMapLayer.MapEditorMapLayerPanel[] Get_MapEditorMapLayer_Instance()
+ {
+ return GetUiInstance(nameof(UI.MapEditorMapLayer.MapEditorMapLayer));
+ }
+
+ ///
+ /// 创建 MapEditorMapMark, 并返回UI实例, 该函数不会打开 Ui
+ ///
+ public static UI.MapEditorMapMark.MapEditorMapMarkPanel Create_MapEditorMapMark()
+ {
+ return CreateUi(UiName.MapEditorMapMark);
+ }
+
+ ///
+ /// 打开 MapEditorMapMark, 并返回UI实例
+ ///
+ public static UI.MapEditorMapMark.MapEditorMapMarkPanel Open_MapEditorMapMark()
+ {
+ return OpenUi(UiName.MapEditorMapMark);
+ }
+
+ ///
+ /// 隐藏 MapEditorMapMark 的所有实例
+ ///
+ public static void Hide_MapEditorMapMark()
+ {
+ var uiInstance = Get_MapEditorMapMark_Instance();
+ foreach (var uiPanel in uiInstance)
+ {
+ uiPanel.HideUi();
+ }
+ }
+
+ ///
+ /// 销毁 MapEditorMapMark 的所有实例
+ ///
+ public static void Destroy_MapEditorMapMark()
+ {
+ var uiInstance = Get_MapEditorMapMark_Instance();
+ foreach (var uiPanel in uiInstance)
+ {
+ uiPanel.Destroy();
+ }
+ }
+
+ ///
+ /// 获取所有 MapEditorMapMark 的实例, 如果没有实例, 则返回一个空数组
+ ///
+ public static UI.MapEditorMapMark.MapEditorMapMarkPanel[] Get_MapEditorMapMark_Instance()
+ {
+ return GetUiInstance(nameof(UI.MapEditorMapMark.MapEditorMapMark));
+ }
+
+ ///
/// 创建 MapEditorProject, 并返回UI实例, 该函数不会打开 Ui
///
public static UI.MapEditorProject.MapEditorProjectPanel Create_MapEditorProject()
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditor/MapEditor.cs b/DungeonShooting_Godot/src/game/ui/mapEditor/MapEditor.cs
index e3c7e84..7503e68 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditor/MapEditor.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditor/MapEditor.cs
@@ -30,6 +30,16 @@
inst1.OnCreateUi();
inst1.OnInitNestedUi();
+ var inst2 = L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapLayer.L_MapEditorMapLayer.Instance;
+ RecordNestedUi(inst2, UiManager.RecordType.Open);
+ inst2.OnCreateUi();
+ inst2.OnInitNestedUi();
+
+ var inst3 = L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapMark.L_MapEditorMapMark.Instance;
+ RecordNestedUi(inst3, UiManager.RecordType.Open);
+ inst3.OnCreateUi();
+ inst3.OnInitNestedUi();
+
}
///
@@ -278,100 +288,19 @@
}
///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.LayerLabel
+ /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.MapEditorMapLayer
///
- public class LayerLabel : UiNode
+ public class MapEditorMapLayer : UiNode
{
- public LayerLabel(MapEditor uiPanel, Godot.Label node) : base(uiPanel, node) { }
- public override LayerLabel Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.ScrollContainer.LayerButton.VisibleButton
- ///
- public class VisibleButton : UiNode
- {
- public VisibleButton(MapEditor uiPanel, Godot.TextureButton node) : base(uiPanel, node) { }
- public override VisibleButton Clone() => new (UiPanel, (Godot.TextureButton)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.ScrollContainer.LayerButton
- ///
- public class LayerButton : UiNode
- {
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.ScrollContainer.VisibleButton
- ///
- public VisibleButton L_VisibleButton
+ public MapEditorMapLayer(MapEditor uiPanel, UI.MapEditorMapLayer.MapEditorMapLayerPanel node) : base(uiPanel, node) { }
+ public override MapEditorMapLayer Clone()
{
- get
- {
- if (_L_VisibleButton == null) _L_VisibleButton = new VisibleButton(UiPanel, Instance.GetNodeOrNull("VisibleButton"));
- return _L_VisibleButton;
- }
+ var uiNode = new MapEditorMapLayer(UiPanel, (UI.MapEditorMapLayer.MapEditorMapLayerPanel)Instance.Duplicate());
+ UiPanel.RecordNestedUi(uiNode.Instance, UiManager.RecordType.Open);
+ uiNode.Instance.OnCreateUi();
+ uiNode.Instance.OnInitNestedUi();
+ return uiNode;
}
- private VisibleButton _L_VisibleButton;
-
- public LayerButton(MapEditor uiPanel, Godot.Button node) : base(uiPanel, node) { }
- public override LayerButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.ScrollContainer
- ///
- public class ScrollContainer : UiNode
- {
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.LayerButton
- ///
- public LayerButton L_LayerButton
- {
- get
- {
- if (_L_LayerButton == null) _L_LayerButton = new LayerButton(UiPanel, Instance.GetNodeOrNull("LayerButton"));
- return _L_LayerButton;
- }
- }
- private LayerButton _L_LayerButton;
-
- public ScrollContainer(MapEditor uiPanel, Godot.ScrollContainer node) : base(uiPanel, node) { }
- public override ScrollContainer Clone() => new (UiPanel, (Godot.ScrollContainer)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer
- ///
- public class VBoxContainer_1 : UiNode
- {
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.LayerLabel
- ///
- public LayerLabel L_LayerLabel
- {
- get
- {
- if (_L_LayerLabel == null) _L_LayerLabel = new LayerLabel(UiPanel, Instance.GetNodeOrNull("LayerLabel"));
- return _L_LayerLabel;
- }
- }
- private LayerLabel _L_LayerLabel;
-
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.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(MapEditor uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { }
- public override VBoxContainer_1 Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate());
}
///
@@ -380,205 +309,58 @@
public class MapLayer : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.VBoxContainer
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapEditorMapLayer
///
- public VBoxContainer_1 L_VBoxContainer
+ public MapEditorMapLayer L_MapEditorMapLayer
{
get
{
- if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer_1(UiPanel, Instance.GetNodeOrNull("VBoxContainer"));
- return _L_VBoxContainer;
+ if (_L_MapEditorMapLayer == null) _L_MapEditorMapLayer = new MapEditorMapLayer(UiPanel, Instance.GetNodeOrNull("MapEditorMapLayer"));
+ return _L_MapEditorMapLayer;
}
}
- private VBoxContainer_1 _L_VBoxContainer;
+ private MapEditorMapLayer _L_MapEditorMapLayer;
public MapLayer(MapEditor uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { }
public override MapLayer Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate());
}
///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.MarkLabel
+ /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapMark.MapEditorMapMark
///
- public class MarkLabel : UiNode
+ public class MapEditorMapMark : UiNode
{
- public MarkLabel(MapEditor uiPanel, Godot.Label node) : base(uiPanel, node) { }
- public override MarkLabel Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ public MapEditorMapMark(MapEditor uiPanel, UI.MapEditorMapMark.MapEditorMapMarkPanel node) : base(uiPanel, node) { }
+ public override MapEditorMapMark Clone()
+ {
+ var uiNode = new MapEditorMapMark(UiPanel, (UI.MapEditorMapMark.MapEditorMapMarkPanel)Instance.Duplicate());
+ UiPanel.RecordNestedUi(uiNode.Instance, UiManager.RecordType.Open);
+ uiNode.Instance.OnCreateUi();
+ uiNode.Instance.OnInitNestedUi();
+ return uiNode;
+ }
}
///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer.PreinstallOption
+ /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapMark
///
- public class PreinstallOption : UiNode
- {
- public PreinstallOption(MapEditor uiPanel, Godot.OptionButton node) : base(uiPanel, node) { }
- public override PreinstallOption Clone() => new (UiPanel, (Godot.OptionButton)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer.AddPreinstall
- ///
- public class AddPreinstall : UiNode
- {
- public AddPreinstall(MapEditor uiPanel, Godot.Button node) : base(uiPanel, node) { }
- public override AddPreinstall Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer.EditPreinstall
- ///
- public class EditPreinstall : UiNode
- {
- public EditPreinstall(MapEditor uiPanel, Godot.Button node) : base(uiPanel, node) { }
- public override EditPreinstall Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer.DeletePreinstall
- ///
- public class DeletePreinstall : UiNode
- {
- public DeletePreinstall(MapEditor uiPanel, Godot.Button node) : base(uiPanel, node) { }
- public override DeletePreinstall Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer
- ///
- public class HBoxContainer : UiNode
+ public class MapMark : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.PreinstallOption
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapEditorMapMark
///
- public PreinstallOption L_PreinstallOption
+ public MapEditorMapMark L_MapEditorMapMark
{
get
{
- if (_L_PreinstallOption == null) _L_PreinstallOption = new PreinstallOption(UiPanel, Instance.GetNodeOrNull("PreinstallOption"));
- return _L_PreinstallOption;
+ if (_L_MapEditorMapMark == null) _L_MapEditorMapMark = new MapEditorMapMark(UiPanel, Instance.GetNodeOrNull("MapEditorMapMark"));
+ return _L_MapEditorMapMark;
}
}
- private PreinstallOption _L_PreinstallOption;
+ private MapEditorMapMark _L_MapEditorMapMark;
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.AddPreinstall
- ///
- public AddPreinstall L_AddPreinstall
- {
- get
- {
- if (_L_AddPreinstall == null) _L_AddPreinstall = new AddPreinstall(UiPanel, Instance.GetNodeOrNull("AddPreinstall"));
- return _L_AddPreinstall;
- }
- }
- private AddPreinstall _L_AddPreinstall;
-
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.EditPreinstall
- ///
- public EditPreinstall L_EditPreinstall
- {
- get
- {
- if (_L_EditPreinstall == null) _L_EditPreinstall = new EditPreinstall(UiPanel, Instance.GetNodeOrNull("EditPreinstall"));
- return _L_EditPreinstall;
- }
- }
- private EditPreinstall _L_EditPreinstall;
-
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.DeletePreinstall
- ///
- public DeletePreinstall L_DeletePreinstall
- {
- get
- {
- if (_L_DeletePreinstall == null) _L_DeletePreinstall = new DeletePreinstall(UiPanel, Instance.GetNodeOrNull("DeletePreinstall"));
- return _L_DeletePreinstall;
- }
- }
- private DeletePreinstall _L_DeletePreinstall;
-
- public HBoxContainer(MapEditor uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
- public override HBoxContainer Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.ScrollContainer
- ///
- public class ScrollContainer_1 : UiNode
- {
- public ScrollContainer_1(MapEditor uiPanel, Godot.ScrollContainer node) : base(uiPanel, node) { }
- public override ScrollContainer_1 Clone() => new (UiPanel, (Godot.ScrollContainer)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer
- ///
- public class VBoxContainer_2 : UiNode
- {
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.MarkLabel
- ///
- public MarkLabel L_MarkLabel
- {
- get
- {
- if (_L_MarkLabel == null) _L_MarkLabel = new MarkLabel(UiPanel, Instance.GetNodeOrNull("MarkLabel"));
- return _L_MarkLabel;
- }
- }
- private MarkLabel _L_MarkLabel;
-
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.HBoxContainer
- ///
- public HBoxContainer L_HBoxContainer
- {
- get
- {
- if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer(UiPanel, Instance.GetNodeOrNull("HBoxContainer"));
- return _L_HBoxContainer;
- }
- }
- private HBoxContainer _L_HBoxContainer;
-
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.ScrollContainer
- ///
- public ScrollContainer_1 L_ScrollContainer
- {
- get
- {
- if (_L_ScrollContainer == null) _L_ScrollContainer = new ScrollContainer_1(UiPanel, Instance.GetNodeOrNull("ScrollContainer"));
- return _L_ScrollContainer;
- }
- }
- private ScrollContainer_1 _L_ScrollContainer;
-
- public VBoxContainer_2(MapEditor uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { }
- public override VBoxContainer_2 Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer
- ///
- public class MarkLayer : UiNode
- {
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.VBoxContainer
- ///
- public VBoxContainer_2 L_VBoxContainer
- {
- get
- {
- if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer_2(UiPanel, Instance.GetNodeOrNull("VBoxContainer"));
- return _L_VBoxContainer;
- }
- }
- private VBoxContainer_2 _L_VBoxContainer;
-
- public MarkLayer(MapEditor uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { }
- public override MarkLayer Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate());
+ public MapMark(MapEditor uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { }
+ public override MapMark Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate());
}
///
@@ -600,17 +382,17 @@
private MapLayer _L_MapLayer;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.MarkLayer
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.MapMark
///
- public MarkLayer L_MarkLayer
+ public MapMark L_MapMark
{
get
{
- if (_L_MarkLayer == null) _L_MarkLayer = new MarkLayer(UiPanel, Instance.GetNodeOrNull("MarkLayer"));
- return _L_MarkLayer;
+ if (_L_MapMark == null) _L_MapMark = new MapMark(UiPanel, Instance.GetNodeOrNull("MapMark"));
+ return _L_MapMark;
}
}
- private MarkLayer _L_MarkLayer;
+ private MapMark _L_MapMark;
public TabContainer(MapEditor uiPanel, Godot.TabContainer node) : base(uiPanel, node) { }
public override TabContainer Clone() => new (UiPanel, (Godot.TabContainer)Instance.Duplicate());
@@ -809,19 +591,9 @@
public Left S_Left => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Left;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.LayerLabel
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.MapEditorMapLayer
///
- public LayerLabel S_LayerLabel => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapLayer.L_VBoxContainer.L_LayerLabel;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.ScrollContainer.LayerButton.VisibleButton
- ///
- public VisibleButton S_VisibleButton => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapLayer.L_VBoxContainer.L_ScrollContainer.L_LayerButton.L_VisibleButton;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer.VBoxContainer.ScrollContainer.LayerButton
- ///
- public LayerButton S_LayerButton => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapLayer.L_VBoxContainer.L_ScrollContainer.L_LayerButton;
+ public MapEditorMapLayer S_MapEditorMapLayer => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapLayer.L_MapEditorMapLayer;
///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapLayer
@@ -829,39 +601,14 @@
public MapLayer S_MapLayer => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapLayer;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.MarkLabel
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapMark.MapEditorMapMark
///
- public MarkLabel S_MarkLabel => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MarkLayer.L_VBoxContainer.L_MarkLabel;
+ public MapEditorMapMark S_MapEditorMapMark => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapMark.L_MapEditorMapMark;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer.PreinstallOption
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MapMark
///
- public PreinstallOption S_PreinstallOption => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MarkLayer.L_VBoxContainer.L_HBoxContainer.L_PreinstallOption;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer.AddPreinstall
- ///
- public AddPreinstall S_AddPreinstall => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MarkLayer.L_VBoxContainer.L_HBoxContainer.L_AddPreinstall;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer.EditPreinstall
- ///
- public EditPreinstall S_EditPreinstall => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MarkLayer.L_VBoxContainer.L_HBoxContainer.L_EditPreinstall;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer.DeletePreinstall
- ///
- public DeletePreinstall S_DeletePreinstall => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MarkLayer.L_VBoxContainer.L_HBoxContainer.L_DeletePreinstall;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer.VBoxContainer.HBoxContainer
- ///
- public HBoxContainer S_HBoxContainer => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MarkLayer.L_VBoxContainer.L_HBoxContainer;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer.MarkLayer
- ///
- public MarkLayer S_MarkLayer => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MarkLayer;
+ public MapMark S_MapMark => L_Bg.L_VBoxContainer.L_HSplitContainer.L_Right.L_MarginContainer.L_TabContainer.L_MapMark;
///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer.HSplitContainer.Right.MarginContainer.TabContainer
@@ -879,6 +626,11 @@
public HSplitContainer S_HSplitContainer => L_Bg.L_VBoxContainer.L_HSplitContainer;
///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg.VBoxContainer
+ ///
+ public VBoxContainer S_VBoxContainer => L_Bg.L_VBoxContainer;
+
+ ///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditor.Bg
///
public Bg S_Bg => L_Bg;
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditor/MapEditorPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditor/MapEditorPanel.cs
index 0bfd885..6d1e0cc 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditor/MapEditorPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditor/MapEditorPanel.cs
@@ -6,8 +6,6 @@
public partial class MapEditorPanel : MapEditor
{
private EditorTileMapBar _editorTileMapBar;
- private EditorLayerBar _editorLayerBar;
-
public override void OnCreateUi()
{
S_TabContainer.Instance.SetTabTitle(0, "地图");
@@ -15,7 +13,6 @@
//S_MapLayer.Instance.Init(S_MapLayer);
_editorTileMapBar = new EditorTileMapBar(this, S_TileMap);
- _editorLayerBar = new EditorLayerBar(this, S_MapLayer);
}
public override void OnShowUi()
@@ -25,7 +22,6 @@
OnMapViewResized();
_editorTileMapBar.OnShow();
- _editorLayerBar.OnShow();
}
public override void OnHideUi()
@@ -33,19 +29,16 @@
S_Left.Instance.Resized -= OnMapViewResized;
S_Back.Instance.Pressed -= OnBackClick;
_editorTileMapBar.OnHide();
- _editorLayerBar.OnHide();
}
public override void OnDestroyUi()
{
_editorTileMapBar.OnDestroy();
- _editorLayerBar.OnDestroy();
}
public override void Process(float delta)
{
_editorTileMapBar.Process(delta);
- _editorLayerBar.Process(delta);
}
///
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditor/tabView/layerTab/EditorLayerBar.cs b/DungeonShooting_Godot/src/game/ui/mapEditor/tabView/layerTab/EditorLayerBar.cs
deleted file mode 100644
index 8a820ff..0000000
--- a/DungeonShooting_Godot/src/game/ui/mapEditor/tabView/layerTab/EditorLayerBar.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using Godot;
-
-namespace UI.MapEditor;
-
-public class EditorLayerBar
-{
- public class LayerButtonData
- {
- ///
- /// 显示文本
- ///
- public string Title;
- ///
- /// 是否锁定
- ///
- public bool IsLock;
- ///
- /// Map层级
- ///
- public int Layer;
-
- public LayerButtonData(string title, bool isLock, int layer)
- {
- Title = title;
- IsLock = isLock;
- Layer = layer;
- }
- }
-
- private readonly MapEditorPanel _mapEditorPanel;
- private readonly MapEditor.MapLayer _mapLayer;
- private readonly UiGrid _grid;
-
- public EditorLayerBar(MapEditorPanel mapEditorPanel, MapEditor.MapLayer mapLayer)
- {
- _mapEditorPanel = mapEditorPanel;
- _mapLayer = mapLayer;
- _grid = new UiGrid(mapLayer.L_VBoxContainer.L_ScrollContainer.L_LayerButton, typeof(LayerButtonCell));
- _grid.SetCellOffset(new Vector2I(0, 2));
- _grid.SetHorizontalExpand(true);
-
- _grid.Add(new LayerButtonData("地面", false, EditorTileMap.AutoFloorLayer));
- _grid.Add(new LayerButtonData("自定义底层", false, EditorTileMap.CustomFloorLayer));
- _grid.Add(new LayerButtonData("中层自动图块", true, EditorTileMap.AutoMiddleLayer));
- _grid.Add(new LayerButtonData("自定义中层", false, EditorTileMap.CustomMiddleLayer));
- _grid.Add(new LayerButtonData("高层自动图块", true, EditorTileMap.AutoTopLayer));
- _grid.Add(new LayerButtonData("自定义高层", false, EditorTileMap.CustomTopLayer));
- }
-
- public void OnShow()
- {
-
- }
-
- public void OnHide()
- {
-
- }
-
- public void OnDestroy()
- {
- _grid.Destroy();
- }
-
- public void Process(float delta)
- {
-
- }
-}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditor/tabView/layerTab/LayerButtonCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditor/tabView/layerTab/LayerButtonCell.cs
deleted file mode 100644
index 60a740f..0000000
--- a/DungeonShooting_Godot/src/game/ui/mapEditor/tabView/layerTab/LayerButtonCell.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-namespace UI.MapEditor;
-
-public class LayerButtonCell : UiCell
-{
- private bool _visible;
-
- public override void OnInit()
- {
- CellNode.L_VisibleButton.Instance.Pressed += OnVisibleButtonClick;
- }
-
- public override void OnSetData(EditorLayerBar.LayerButtonData data)
- {
- if (data.IsLock)
- {
- CellNode.Instance.Icon = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_mapEditorTools_Lock_png);
- }
- else
- {
- CellNode.Instance.Icon = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_mapEditorTools_Unlock_png);
- }
-
- CellNode.Instance.Text = data.Title;
- var panel = (MapEditorPanel)CellNode.UiPanel;
- _visible = panel.S_TileMap.Instance.IsLayerEnabled(data.Layer);
- SetVisibleIcon(_visible);
- }
-
- private void OnVisibleButtonClick()
- {
- var panel = (MapEditorPanel)CellNode.UiPanel;
- _visible = !_visible;
- panel.S_TileMap.Instance.SetLayerEnabled(Data.Layer, _visible);
- SetVisibleIcon(_visible);
- }
-
- private void SetVisibleIcon(bool visible)
- {
- if (visible)
- {
- CellNode.L_VisibleButton.Instance.TextureNormal = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_mapEditorTools_Visible_png);
- }
- else
- {
- CellNode.L_VisibleButton.Instance.TextureNormal = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_mapEditorTools_Hide_png);
- }
- }
-}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/LayerButtonCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/LayerButtonCell.cs
new file mode 100644
index 0000000..257ca1c
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/LayerButtonCell.cs
@@ -0,0 +1,56 @@
+using UI.MapEditor;
+
+namespace UI.MapEditorMapLayer;
+
+public class LayerButtonCell : UiCell
+{
+ private bool _visible;
+
+ public override void OnInit()
+ {
+ CellNode.L_VisibleButton.Instance.Pressed += OnVisibleButtonClick;
+ }
+
+ public override void OnSetData(MapEditorMapLayerPanel.LayerButtonData data)
+ {
+ if (data.IsLock)
+ {
+ CellNode.Instance.Icon = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_Lock_png);
+ }
+ else
+ {
+ CellNode.Instance.Icon = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_Unlock_png);
+ }
+
+ CellNode.Instance.Text = data.Title;
+ var panel = CellNode.UiPanel.ParentUi as MapEditorPanel;
+ if (panel != null)
+ {
+ _visible = panel.S_TileMap.Instance.IsLayerEnabled(data.Layer);
+ SetVisibleIcon(_visible);
+ }
+ }
+
+ private void OnVisibleButtonClick()
+ {
+ var panel = CellNode.UiPanel.ParentUi as MapEditorPanel;
+ if (panel != null)
+ {
+ _visible = !_visible;
+ panel.S_TileMap.Instance.SetLayerEnabled(Data.Layer, _visible);
+ SetVisibleIcon(_visible);
+ }
+ }
+
+ private void SetVisibleIcon(bool visible)
+ {
+ if (visible)
+ {
+ CellNode.L_VisibleButton.Instance.TextureNormal = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_Visible_png);
+ }
+ else
+ {
+ CellNode.L_VisibleButton.Instance.TextureNormal = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_Hide_png);
+ }
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayer.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayer.cs
new file mode 100644
index 0000000..b21b499
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayer.cs
@@ -0,0 +1,153 @@
+namespace UI.MapEditorMapLayer;
+
+///
+/// Ui代码, 该类是根据ui场景自动生成的, 请不要手动编辑该类, 以免造成代码丢失
+///
+public abstract partial class MapEditorMapLayer : UiBase
+{
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer
+ ///
+ public VBoxContainer L_VBoxContainer
+ {
+ get
+ {
+ if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer(this, GetNodeOrNull("VBoxContainer"));
+ return _L_VBoxContainer;
+ }
+ }
+ private VBoxContainer _L_VBoxContainer;
+
+
+ public MapEditorMapLayer() : base(nameof(MapEditorMapLayer))
+ {
+ }
+
+ public sealed override void OnInitNestedUi()
+ {
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.LayerLabel
+ ///
+ public class LayerLabel : UiNode
+ {
+ public LayerLabel(MapEditorMapLayer uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override LayerLabel Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.ScrollContainer.LayerButton.VisibleButton
+ ///
+ public class VisibleButton : UiNode
+ {
+ public VisibleButton(MapEditorMapLayer uiPanel, Godot.TextureButton node) : base(uiPanel, node) { }
+ public override VisibleButton Clone() => new (UiPanel, (Godot.TextureButton)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.ScrollContainer.LayerButton
+ ///
+ public class LayerButton : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.ScrollContainer.VisibleButton
+ ///
+ public VisibleButton L_VisibleButton
+ {
+ get
+ {
+ if (_L_VisibleButton == null) _L_VisibleButton = new VisibleButton(UiPanel, Instance.GetNodeOrNull("VisibleButton"));
+ return _L_VisibleButton;
+ }
+ }
+ private VisibleButton _L_VisibleButton;
+
+ public LayerButton(MapEditorMapLayer uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override LayerButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.ScrollContainer
+ ///
+ public class ScrollContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.LayerButton
+ ///
+ public LayerButton L_LayerButton
+ {
+ get
+ {
+ if (_L_LayerButton == null) _L_LayerButton = new LayerButton(UiPanel, Instance.GetNodeOrNull("LayerButton"));
+ return _L_LayerButton;
+ }
+ }
+ private LayerButton _L_LayerButton;
+
+ public ScrollContainer(MapEditorMapLayer uiPanel, Godot.ScrollContainer node) : base(uiPanel, node) { }
+ public override ScrollContainer Clone() => new (UiPanel, (Godot.ScrollContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapLayer.VBoxContainer
+ ///
+ public class VBoxContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.LayerLabel
+ ///
+ public LayerLabel L_LayerLabel
+ {
+ get
+ {
+ if (_L_LayerLabel == null) _L_LayerLabel = new LayerLabel(UiPanel, Instance.GetNodeOrNull("LayerLabel"));
+ return _L_LayerLabel;
+ }
+ }
+ private LayerLabel _L_LayerLabel;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.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(MapEditorMapLayer uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { }
+ public override VBoxContainer Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate());
+ }
+
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.LayerLabel
+ ///
+ public LayerLabel S_LayerLabel => L_VBoxContainer.L_LayerLabel;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.ScrollContainer.LayerButton.VisibleButton
+ ///
+ public VisibleButton S_VisibleButton => L_VBoxContainer.L_ScrollContainer.L_LayerButton.L_VisibleButton;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.ScrollContainer.LayerButton
+ ///
+ public LayerButton S_LayerButton => L_VBoxContainer.L_ScrollContainer.L_LayerButton;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.ScrollContainer
+ ///
+ public ScrollContainer S_ScrollContainer => L_VBoxContainer.L_ScrollContainer;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer
+ ///
+ public VBoxContainer S_VBoxContainer => L_VBoxContainer;
+
+}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs
new file mode 100644
index 0000000..8b8837d
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs
@@ -0,0 +1,52 @@
+using Godot;
+using UI.MapEditor;
+
+namespace UI.MapEditorMapLayer;
+
+public partial class MapEditorMapLayerPanel : MapEditorMapLayer
+{
+ public class LayerButtonData
+ {
+ ///
+ /// 显示文本
+ ///
+ public string Title;
+ ///
+ /// 是否锁定
+ ///
+ public bool IsLock;
+ ///
+ /// Map层级
+ ///
+ public int Layer;
+
+ public LayerButtonData(string title, bool isLock, int layer)
+ {
+ Title = title;
+ IsLock = isLock;
+ Layer = layer;
+ }
+ }
+
+ private UiGrid _grid;
+
+ public override void OnCreateUi()
+ {
+ _grid = new UiGrid(S_LayerButton, typeof(LayerButtonCell));
+ _grid.SetCellOffset(new Vector2I(0, 2));
+ _grid.SetHorizontalExpand(true);
+
+ _grid.Add(new LayerButtonData("地面", false, EditorTileMap.AutoFloorLayer));
+ _grid.Add(new LayerButtonData("自定义底层", false, EditorTileMap.CustomFloorLayer));
+ _grid.Add(new LayerButtonData("中层自动图块", true, EditorTileMap.AutoMiddleLayer));
+ _grid.Add(new LayerButtonData("自定义中层", false, EditorTileMap.CustomMiddleLayer));
+ _grid.Add(new LayerButtonData("高层自动图块", true, EditorTileMap.AutoTopLayer));
+ _grid.Add(new LayerButtonData("自定义高层", false, EditorTileMap.CustomTopLayer));
+ }
+
+ public override void OnDestroyUi()
+ {
+
+ }
+
+}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMark.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMark.cs
new file mode 100644
index 0000000..7c24e26
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMark.cs
@@ -0,0 +1,560 @@
+namespace UI.MapEditorMapMark;
+
+///
+/// Ui代码, 该类是根据ui场景自动生成的, 请不要手动编辑该类, 以免造成代码丢失
+///
+public abstract partial class MapEditorMapMark : UiBase
+{
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer
+ ///
+ public VBoxContainer L_VBoxContainer
+ {
+ get
+ {
+ if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer(this, GetNodeOrNull("VBoxContainer"));
+ return _L_VBoxContainer;
+ }
+ }
+ private VBoxContainer _L_VBoxContainer;
+
+
+ public MapEditorMapMark() : base(nameof(MapEditorMapMark))
+ {
+ }
+
+ public sealed override void OnInitNestedUi()
+ {
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.MarkLabel
+ ///
+ public class MarkLabel : UiNode
+ {
+ public MarkLabel(MapEditorMapMark uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override MarkLabel Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.HBoxContainer.PreinstallOption
+ ///
+ public class PreinstallOption : UiNode
+ {
+ public PreinstallOption(MapEditorMapMark uiPanel, Godot.OptionButton node) : base(uiPanel, node) { }
+ public override PreinstallOption Clone() => new (UiPanel, (Godot.OptionButton)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.HBoxContainer.AddPreinstall
+ ///
+ public class AddPreinstall : UiNode
+ {
+ public AddPreinstall(MapEditorMapMark uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override AddPreinstall Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.HBoxContainer.EditPreinstall
+ ///
+ public class EditPreinstall : UiNode
+ {
+ public EditPreinstall(MapEditorMapMark uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override EditPreinstall Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.HBoxContainer.DeletePreinstall
+ ///
+ public class DeletePreinstall : UiNode
+ {
+ public DeletePreinstall(MapEditorMapMark uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override DeletePreinstall Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.HBoxContainer
+ ///
+ public class HBoxContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.PreinstallOption
+ ///
+ public PreinstallOption L_PreinstallOption
+ {
+ get
+ {
+ if (_L_PreinstallOption == null) _L_PreinstallOption = new PreinstallOption(UiPanel, Instance.GetNodeOrNull("PreinstallOption"));
+ return _L_PreinstallOption;
+ }
+ }
+ private PreinstallOption _L_PreinstallOption;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.AddPreinstall
+ ///
+ public AddPreinstall L_AddPreinstall
+ {
+ get
+ {
+ if (_L_AddPreinstall == null) _L_AddPreinstall = new AddPreinstall(UiPanel, Instance.GetNodeOrNull("AddPreinstall"));
+ return _L_AddPreinstall;
+ }
+ }
+ private AddPreinstall _L_AddPreinstall;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.EditPreinstall
+ ///
+ public EditPreinstall L_EditPreinstall
+ {
+ get
+ {
+ if (_L_EditPreinstall == null) _L_EditPreinstall = new EditPreinstall(UiPanel, Instance.GetNodeOrNull("EditPreinstall"));
+ return _L_EditPreinstall;
+ }
+ }
+ private EditPreinstall _L_EditPreinstall;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.DeletePreinstall
+ ///
+ public DeletePreinstall L_DeletePreinstall
+ {
+ get
+ {
+ if (_L_DeletePreinstall == null) _L_DeletePreinstall = new DeletePreinstall(UiPanel, Instance.GetNodeOrNull("DeletePreinstall"));
+ return _L_DeletePreinstall;
+ }
+ }
+ private DeletePreinstall _L_DeletePreinstall;
+
+ public HBoxContainer(MapEditorMapMark uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
+ public override HBoxContainer Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.MarkLabel2
+ ///
+ public class MarkLabel2 : UiNode
+ {
+ public MarkLabel2(MapEditorMapMark uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override MarkLabel2 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.DynamicTool.AddMark
+ ///
+ public class AddMark : UiNode
+ {
+ public AddMark(MapEditorMapMark uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override AddMark Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.DynamicTool.EditMark
+ ///
+ public class EditMark : UiNode
+ {
+ public EditMark(MapEditorMapMark uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override EditMark Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.DynamicTool.DeleteMark
+ ///
+ public class DeleteMark : UiNode
+ {
+ public DeleteMark(MapEditorMapMark uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override DeleteMark Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.DynamicTool
+ ///
+ public class DynamicTool : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.AddMark
+ ///
+ public AddMark L_AddMark
+ {
+ get
+ {
+ if (_L_AddMark == null) _L_AddMark = new AddMark(UiPanel, Instance.GetNodeOrNull("AddMark"));
+ return _L_AddMark;
+ }
+ }
+ private AddMark _L_AddMark;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.EditMark
+ ///
+ public EditMark L_EditMark
+ {
+ get
+ {
+ if (_L_EditMark == null) _L_EditMark = new EditMark(UiPanel, Instance.GetNodeOrNull("EditMark"));
+ return _L_EditMark;
+ }
+ }
+ private EditMark _L_EditMark;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.DeleteMark
+ ///
+ public DeleteMark L_DeleteMark
+ {
+ get
+ {
+ if (_L_DeleteMark == null) _L_DeleteMark = new DeleteMark(UiPanel, Instance.GetNodeOrNull("DeleteMark"));
+ return _L_DeleteMark;
+ }
+ }
+ private DeleteMark _L_DeleteMark;
+
+ public DynamicTool(MapEditorMapMark uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
+ public override DynamicTool Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.HBoxContainer.TextureButton
+ ///
+ public class TextureButton : UiNode
+ {
+ public TextureButton(MapEditorMapMark uiPanel, Godot.TextureButton node) : base(uiPanel, node) { }
+ public override TextureButton Clone() => new (UiPanel, (Godot.TextureButton)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.HBoxContainer.WaveButton
+ ///
+ public class WaveButton : UiNode
+ {
+ public WaveButton(MapEditorMapMark uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override WaveButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.HBoxContainer
+ ///
+ public class HBoxContainer_1 : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.TextureButton
+ ///
+ public TextureButton L_TextureButton
+ {
+ get
+ {
+ if (_L_TextureButton == null) _L_TextureButton = new TextureButton(UiPanel, Instance.GetNodeOrNull("TextureButton"));
+ return _L_TextureButton;
+ }
+ }
+ private TextureButton _L_TextureButton;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.WaveButton
+ ///
+ public WaveButton L_WaveButton
+ {
+ get
+ {
+ if (_L_WaveButton == null) _L_WaveButton = new WaveButton(UiPanel, Instance.GetNodeOrNull("WaveButton"));
+ return _L_WaveButton;
+ }
+ }
+ private WaveButton _L_WaveButton;
+
+ public HBoxContainer_1(MapEditorMapMark uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
+ public override HBoxContainer_1 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.MarginContainer.HBoxContainer.MarkButton
+ ///
+ public class MarkButton : UiNode
+ {
+ public MarkButton(MapEditorMapMark uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override MarkButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.MarginContainer.HBoxContainer
+ ///
+ public class HBoxContainer_2 : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.MarginContainer.MarkButton
+ ///
+ public MarkButton L_MarkButton
+ {
+ get
+ {
+ if (_L_MarkButton == null) _L_MarkButton = new MarkButton(UiPanel, Instance.GetNodeOrNull("MarkButton"));
+ return _L_MarkButton;
+ }
+ }
+ private MarkButton _L_MarkButton;
+
+ public HBoxContainer_2(MapEditorMapMark uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
+ public override HBoxContainer_2 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.MarginContainer
+ ///
+ public class MarginContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.HBoxContainer
+ ///
+ public HBoxContainer_2 L_HBoxContainer
+ {
+ get
+ {
+ if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer_2(UiPanel, Instance.GetNodeOrNull("HBoxContainer"));
+ return _L_HBoxContainer;
+ }
+ }
+ private HBoxContainer_2 _L_HBoxContainer;
+
+ public MarginContainer(MapEditorMapMark uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { }
+ public override MarginContainer Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate
+ ///
+ public class WaveTemplate : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.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 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.MarginContainer
+ ///
+ public MarginContainer L_MarginContainer
+ {
+ get
+ {
+ if (_L_MarginContainer == null) _L_MarginContainer = new MarginContainer(UiPanel, Instance.GetNodeOrNull("MarginContainer"));
+ return _L_MarginContainer;
+ }
+ }
+ private MarginContainer _L_MarginContainer;
+
+ public WaveTemplate(MapEditorMapMark uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { }
+ public override WaveTemplate Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer
+ ///
+ public class VBoxContainer_1 : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.WaveTemplate
+ ///
+ public WaveTemplate L_WaveTemplate
+ {
+ get
+ {
+ if (_L_WaveTemplate == null) _L_WaveTemplate = new WaveTemplate(UiPanel, Instance.GetNodeOrNull("WaveTemplate"));
+ return _L_WaveTemplate;
+ }
+ }
+ private WaveTemplate _L_WaveTemplate;
+
+ public VBoxContainer_1(MapEditorMapMark uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { }
+ public override VBoxContainer_1 Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer
+ ///
+ public class ScrollContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.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 ScrollContainer(MapEditorMapMark uiPanel, Godot.ScrollContainer node) : base(uiPanel, node) { }
+ public override ScrollContainer Clone() => new (UiPanel, (Godot.ScrollContainer)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer
+ ///
+ public class VBoxContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.MarkLabel
+ ///
+ public MarkLabel L_MarkLabel
+ {
+ get
+ {
+ if (_L_MarkLabel == null) _L_MarkLabel = new MarkLabel(UiPanel, Instance.GetNodeOrNull("MarkLabel"));
+ return _L_MarkLabel;
+ }
+ }
+ private MarkLabel _L_MarkLabel;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.HBoxContainer
+ ///
+ public HBoxContainer L_HBoxContainer
+ {
+ get
+ {
+ if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer(UiPanel, Instance.GetNodeOrNull("HBoxContainer"));
+ return _L_HBoxContainer;
+ }
+ }
+ private HBoxContainer _L_HBoxContainer;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.MarkLabel2
+ ///
+ public MarkLabel2 L_MarkLabel2
+ {
+ get
+ {
+ if (_L_MarkLabel2 == null) _L_MarkLabel2 = new MarkLabel2(UiPanel, Instance.GetNodeOrNull("MarkLabel2"));
+ return _L_MarkLabel2;
+ }
+ }
+ private MarkLabel2 _L_MarkLabel2;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.DynamicTool
+ ///
+ public DynamicTool L_DynamicTool
+ {
+ get
+ {
+ if (_L_DynamicTool == null) _L_DynamicTool = new DynamicTool(UiPanel, Instance.GetNodeOrNull("DynamicTool"));
+ return _L_DynamicTool;
+ }
+ }
+ private DynamicTool _L_DynamicTool;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.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(MapEditorMapMark uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { }
+ public override VBoxContainer Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate());
+ }
+
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.MarkLabel
+ ///
+ public MarkLabel S_MarkLabel => L_VBoxContainer.L_MarkLabel;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.HBoxContainer.PreinstallOption
+ ///
+ public PreinstallOption S_PreinstallOption => L_VBoxContainer.L_HBoxContainer.L_PreinstallOption;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.HBoxContainer.AddPreinstall
+ ///
+ public AddPreinstall S_AddPreinstall => L_VBoxContainer.L_HBoxContainer.L_AddPreinstall;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.HBoxContainer.EditPreinstall
+ ///
+ public EditPreinstall S_EditPreinstall => L_VBoxContainer.L_HBoxContainer.L_EditPreinstall;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.HBoxContainer.DeletePreinstall
+ ///
+ public DeletePreinstall S_DeletePreinstall => L_VBoxContainer.L_HBoxContainer.L_DeletePreinstall;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.MarkLabel2
+ ///
+ public MarkLabel2 S_MarkLabel2 => L_VBoxContainer.L_MarkLabel2;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.DynamicTool.AddMark
+ ///
+ public AddMark S_AddMark => L_VBoxContainer.L_DynamicTool.L_AddMark;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.DynamicTool.EditMark
+ ///
+ public EditMark S_EditMark => L_VBoxContainer.L_DynamicTool.L_EditMark;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.DynamicTool.DeleteMark
+ ///
+ public DeleteMark S_DeleteMark => L_VBoxContainer.L_DynamicTool.L_DeleteMark;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.DynamicTool
+ ///
+ public DynamicTool S_DynamicTool => L_VBoxContainer.L_DynamicTool;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.HBoxContainer.TextureButton
+ ///
+ public TextureButton S_TextureButton => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveTemplate.L_HBoxContainer.L_TextureButton;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.HBoxContainer.WaveButton
+ ///
+ public WaveButton S_WaveButton => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveTemplate.L_HBoxContainer.L_WaveButton;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.MarginContainer.HBoxContainer.MarkButton
+ ///
+ public MarkButton S_MarkButton => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveTemplate.L_MarginContainer.L_HBoxContainer.L_MarkButton;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate.MarginContainer
+ ///
+ public MarginContainer S_MarginContainer => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveTemplate.L_MarginContainer;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveTemplate
+ ///
+ public WaveTemplate S_WaveTemplate => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveTemplate;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer
+ ///
+ public ScrollContainer S_ScrollContainer => L_VBoxContainer.L_ScrollContainer;
+
+}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs
new file mode 100644
index 0000000..8e933b2
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs
@@ -0,0 +1,18 @@
+using Godot;
+
+namespace UI.MapEditorMapMark;
+
+public partial class MapEditorMapMarkPanel : MapEditorMapMark
+{
+
+ public override void OnCreateUi()
+ {
+
+ }
+
+ public override void OnDestroyUi()
+ {
+
+ }
+
+}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs
index 4d80f13..a6e4307 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorProject/MapEditorProjectPanel.cs
@@ -26,11 +26,11 @@
//初始化枚举选项
var roomTypes = Enum.GetValues();
var optionButton = S_RoomTypeButton.Instance;
- optionButton.AddItem("全部", -1);
+ optionButton.AddItem("全部", 0);
for (var i = 0; i < roomTypes.Length; i++)
{
var dungeonRoomType = roomTypes[i];
- optionButton.AddItem(DungeonManager.DungeonRoomTypeToDescribeString(dungeonRoomType), (int)dungeonRoomType);
+ optionButton.AddItem(DungeonManager.DungeonRoomTypeToDescribeString(dungeonRoomType), (int)dungeonRoomType + 1);
}
_groupGrid = new UiGrid(S_GroupButton, typeof(GroupButtonCell));
@@ -153,7 +153,7 @@
//类型搜索
if (roomType > 0)
{
- var type = (DungeonRoomType)roomType;
+ var type = (DungeonRoomType)(roomType - 1);
result = result.Where(split => split.RoomInfo.RoomType == type);
}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs
index 36a21a3..6a54fae 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs
@@ -45,27 +45,27 @@
_toolGrid = new UiGrid(S_ToolButton, typeof(ToolButtonCell));
_toolGrid.SetColumns(10);
//拖拽按钮
- _toolGrid.Add(new ToolBtnData(true, ResourcePath.resource_sprite_ui_mapEditorTools_DragTool_png, () =>
+ _toolGrid.Add(new ToolBtnData(true, ResourcePath.resource_sprite_ui_commonIcon_DragTool_png, () =>
{
EventManager.EmitEvent(EventEnum.OnSelectDragTool);
}));
//画笔按钮
- _toolGrid.Add(new ToolBtnData(true, ResourcePath.resource_sprite_ui_mapEditorTools_PenTool_png, () =>
+ _toolGrid.Add(new ToolBtnData(true, ResourcePath.resource_sprite_ui_commonIcon_PenTool_png, () =>
{
EventManager.EmitEvent(EventEnum.OnSelectPenTool);
}));
//绘制区域按钮
- _toolGrid.Add(new ToolBtnData(true, ResourcePath.resource_sprite_ui_mapEditorTools_AreaTool_png, () =>
+ _toolGrid.Add(new ToolBtnData(true, ResourcePath.resource_sprite_ui_commonIcon_AreaTool_png, () =>
{
EventManager.EmitEvent(EventEnum.OnSelectRectTool);
}));
//编辑门区域按钮
- _toolGrid.Add(new ToolBtnData(true, ResourcePath.resource_sprite_ui_mapEditorTools_DoorTool_png, () =>
+ _toolGrid.Add(new ToolBtnData(true, ResourcePath.resource_sprite_ui_commonIcon_DoorTool_png, () =>
{
EventManager.EmitEvent(EventEnum.OnSelectDoorTool);
}));
//聚焦按钮
- _toolGrid.Add(new ToolBtnData(false, ResourcePath.resource_sprite_ui_mapEditorTools_CenterTool_png, () =>
+ _toolGrid.Add(new ToolBtnData(false, ResourcePath.resource_sprite_ui_commonIcon_CenterTool_png, () =>
{
EventManager.EmitEvent(EventEnum.OnClickCenterTool);
}));