diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn
index 739291c..4423491 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn
@@ -1,12 +1,9 @@
-[gd_scene load_steps=8 format=3 uid="uid://bb2ekkpxifd7g"]
+[gd_scene load_steps=5 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://n4atvj5fkcpg" path="res://resource/sprite/ui/commonIcon/Add.png" id="2_f2gp6"]
[ext_resource type="Texture2D" uid="uid://dmm8jw06bhffh" path="res://resource/sprite/ui/commonIcon/Lock.png" id="2_pfhyj"]
-[ext_resource type="Texture2D" uid="uid://dggb6p4sdmfry" path="res://resource/sprite/ui/commonIcon/Edit.png" id="3_8g3vb"]
[ext_resource type="Texture2D" uid="uid://bn47bmilcw4x0" path="res://resource/sprite/ui/commonIcon/Select2.png" id="3_k8b5h"]
[ext_resource type="Texture2D" uid="uid://dqvg18aacx6db" path="res://resource/sprite/ui/commonIcon/Visible.png" id="3_rqjh4"]
-[ext_resource type="Texture2D" uid="uid://c5778ntk2rdon" path="res://resource/sprite/ui/commonIcon/Delete.png" id="4_h0gio"]
[node name="MapEditorMapLayer" type="Control"]
layout_mode = 3
@@ -25,26 +22,10 @@
grow_horizontal = 2
grow_vertical = 2
-[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
-layout_mode = 2
-
-[node name="LayerLabel" type="Label" parent="VBoxContainer/HBoxContainer"]
+[node name="LayerLabel" type="Label" parent="VBoxContainer"]
layout_mode = 2
text = "地图层级:"
-[node name="AddButton" type="Button" parent="VBoxContainer/HBoxContainer"]
-layout_mode = 2
-size_flags_horizontal = 10
-icon = ExtResource("2_f2gp6")
-
-[node name="EditButton" type="Button" parent="VBoxContainer/HBoxContainer"]
-layout_mode = 2
-icon = ExtResource("3_8g3vb")
-
-[node name="DeleteButton" type="Button" parent="VBoxContainer/HBoxContainer"]
-layout_mode = 2
-icon = ExtResource("4_h0gio")
-
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle1/TileInfo.json
index 181ef20..1c4664d 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle1/TileInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/battle/Battle1/TileInfo.json
@@ -1 +1 @@
-{"NavigationVertices":[{"X":154,"Y":6},{"X":154,"Y":66},{"X":134,"Y":38},{"X":138,"Y":6},{"X":134,"Y":-30},{"X":138,"Y":-58},{"X":90,"Y":-58},{"X":74,"Y":-30},{"X":118,"Y":54},{"X":118,"Y":38},{"X":54,"Y":66},{"X":74,"Y":54},{"X":54,"Y":50},{"X":-10,"Y":50},{"X":-10,"Y":-14},{"X":-26,"Y":-14},{"X":-26,"Y":-74},{"X":90,"Y":-74}],"NavigationPolygon":[[0,1,2,3],[3,2,4,5],[6,5,4,7],[8,9,2,1],[8,1,10,11],[11,10,12,7],[12,13,14,7],[7,14,15,16,17,6]],"Floor":[-1,-1,0,3,3,-1,0,3,3,0,0,3,2,0,0,3,2,-1,0,3,1,-1,0,3,0,-1,0,3,0,0,0,3,-1,0,0,3,1,0,0,3,-1,1,0,3,0,1,0,3,1,1,0,3,2,1,0,3,3,1,0,3,4,1,0,3,4,2,0,3,3,2,0,3,2,2,0,3,1,2,0,3,0,2,0,3,-1,2,0,3,4,0,0,3,4,-1,0,3,4,-2,0,3,3,-2,0,3,2,-2,0,3,1,-2,0,3,0,-2,0,3,-1,-2,0,3,-1,-3,0,3,0,-3,0,3,1,-3,0,3,2,-3,0,3,3,-3,0,3,4,-3,0,3,5,-3,0,3,5,-4,0,3,5,-5,0,3,4,-5,0,3,3,-5,0,3,2,-5,0,3,1,-5,0,3,0,-5,0,3,-1,-5,0,3,-2,-5,0,3,-2,-4,0,3,-1,-4,0,3,0,-4,0,3,1,-4,0,3,2,-4,0,3,3,-4,0,3,4,-4,0,3,6,-4,0,3,7,-4,0,3,8,-4,0,3,8,-3,0,3,8,-2,0,3,7,-3,0,3,6,-3,0,3,8,-1,0,3,8,0,0,3,8,1,0,3,8,2,0,3,7,2,0,3,7,3,0,3,6,3,0,3,5,3,0,3,4,3,0,3,3,3,0,3,8,3,0,3,9,3,0,3,9,2,0,3,-2,-3,0,3,-2,-2,0,3,9,0,0,3,9,1,0,3],"Middle":[-2,-7,63,1,-2,-6,2,2,-1,-7,63,1,-1,-6,2,2,0,-7,63,1,0,-6,2,2,1,-7,63,1,1,-6,2,2,2,-7,63,1,2,-6,2,2,3,-7,63,1,3,-6,2,2,4,-7,63,1,4,-6,2,2,5,-7,63,1,5,-6,2,2,5,1,54,1,5,2,1,2,6,-6,54,1,6,-5,1,2,6,1,27,1,6,2,3,2,7,-6,63,1,7,-5,2,2,7,0,27,1,7,1,3,2,8,-6,63,1,8,-5,2,2,9,-2,54,1,9,-1,1,2],"Top":[-4,-8,511,1,-4,-7,511,1,-4,-6,511,1,-4,-5,511,1,-4,-4,511,1,-4,-3,511,1,-4,-2,511,1,-4,-1,511,1,-4,0,511,1,-3,-8,511,1,-3,-7,255,1,-3,-6,219,1,-3,-5,219,1,-3,-4,219,1,-3,-3,219,1,-3,-2,219,1,-3,-1,507,1,-3,0,511,1,-3,1,511,1,-3,2,511,1,-3,3,511,1,-3,4,511,1,-2,-8,511,1,-2,-1,216,1,-2,0,219,1,-2,1,219,1,-2,2,219,1,-2,3,507,1,-2,4,511,1,-1,-8,511,1,-1,3,504,1,-1,4,511,1,0,-8,511,1,0,3,504,1,0,4,511,1,1,-8,511,1,1,3,504,1,1,4,511,1,1,5,511,1,2,-8,511,1,2,3,216,1,2,4,507,1,2,5,511,1,3,-8,511,1,3,4,504,1,3,5,511,1,4,-8,511,1,4,4,504,1,4,5,511,1,5,-8,511,1,5,-2,432,1,5,-1,438,1,5,0,438,1,5,4,504,1,5,5,511,1,6,-8,511,1,6,-7,447,1,6,-2,504,1,6,-1,511,1,6,0,255,1,6,4,504,1,6,5,511,1,7,-8,511,1,7,-7,511,1,7,-2,216,1,7,-1,219,1,7,4,504,1,7,5,511,1,8,-7,511,1,8,4,504,1,8,5,511,1,9,-7,511,1,9,-6,447,1,9,-5,438,1,9,-4,438,1,9,-3,438,1,9,4,504,1,9,5,511,1,10,-7,511,1,10,-6,511,1,10,-5,511,1,10,-4,511,1,10,-3,511,1,10,-2,447,1,10,-1,438,1,10,0,438,1,10,1,438,1,10,2,438,1,10,3,438,1,10,4,510,1,10,5,511,1,11,-3,511,1,11,-2,511,1,11,-1,511,1,11,0,511,1,11,1,511,1,11,2,511,1,11,3,511,1,11,4,511,1,11,5,511,1],"CustomLayers":[]}
\ No newline at end of file
+{"NavigationVertices":[{"X":154,"Y":6},{"X":154,"Y":66},{"X":134,"Y":38},{"X":138,"Y":6},{"X":134,"Y":-30},{"X":138,"Y":-58},{"X":90,"Y":-58},{"X":74,"Y":-30},{"X":118,"Y":54},{"X":118,"Y":38},{"X":54,"Y":66},{"X":74,"Y":54},{"X":54,"Y":50},{"X":-10,"Y":50},{"X":-10,"Y":-14},{"X":-26,"Y":-14},{"X":-26,"Y":-74},{"X":90,"Y":-74}],"NavigationPolygon":[[0,1,2,3],[3,2,4,5],[6,5,4,7],[8,9,2,1],[8,1,10,11],[11,10,12,7],[12,13,14,7],[7,14,15,16,17,6]],"Floor":[-1,-1,0,3,3,-1,0,3,3,0,0,3,2,0,0,3,2,-1,0,3,1,-1,0,3,0,-1,0,3,0,0,0,3,-1,0,0,3,1,0,0,3,-1,1,0,3,0,1,0,3,1,1,0,3,2,1,0,3,3,1,0,3,4,1,0,3,4,2,0,3,3,2,0,3,2,2,0,3,1,2,0,3,0,2,0,3,-1,2,0,3,4,0,0,3,4,-1,0,3,4,-2,0,3,3,-2,0,3,2,-2,0,3,1,-2,0,3,0,-2,0,3,-1,-2,0,3,-1,-3,0,3,0,-3,0,3,1,-3,0,3,2,-3,0,3,3,-3,0,3,4,-3,0,3,5,-3,0,3,5,-4,0,3,5,-5,0,3,4,-5,0,3,3,-5,0,3,2,-5,0,3,1,-5,0,3,0,-5,0,3,-1,-5,0,3,-2,-5,0,3,-2,-4,0,3,-1,-4,0,3,0,-4,0,3,1,-4,0,3,2,-4,0,3,3,-4,0,3,4,-4,0,3,6,-4,0,3,7,-4,0,3,8,-4,0,3,8,-3,0,3,8,-2,0,3,7,-3,0,3,6,-3,0,3,8,-1,0,3,8,0,0,3,8,1,0,3,8,2,0,3,7,2,0,3,7,3,0,3,6,3,0,3,5,3,0,3,4,3,0,3,3,3,0,3,8,3,0,3,9,3,0,3,9,2,0,3,-2,-3,0,3,-2,-2,0,3,9,0,0,3,9,1,0,3],"Middle":[-2,-7,63,1,-2,-6,2,2,-1,-7,63,1,-1,-6,2,2,0,-7,63,1,0,-6,2,2,1,-7,63,1,1,-6,2,2,2,-7,63,1,2,-6,2,2,3,-7,63,1,3,-6,2,2,4,-7,63,1,4,-6,2,2,5,-7,63,1,5,-6,2,2,5,1,54,1,5,2,1,2,6,-6,54,1,6,-5,1,2,6,1,27,1,6,2,3,2,7,-6,63,1,7,-5,2,2,7,0,27,1,7,1,3,2,8,-6,63,1,8,-5,2,2,9,-2,54,1,9,-1,1,2],"Top":[-4,-8,511,1,-4,-7,511,1,-4,-6,511,1,-4,-5,511,1,-4,-4,511,1,-4,-3,511,1,-4,-2,511,1,-4,-1,511,1,-4,0,511,1,-3,-8,511,1,-3,-7,255,1,-3,-6,219,1,-3,-5,219,1,-3,-4,219,1,-3,-3,219,1,-3,-2,219,1,-3,-1,507,1,-3,0,511,1,-3,1,511,1,-3,2,511,1,-3,3,511,1,-3,4,511,1,-2,-8,511,1,-2,-1,216,1,-2,0,219,1,-2,1,219,1,-2,2,219,1,-2,3,507,1,-2,4,511,1,-1,-8,511,1,-1,3,504,1,-1,4,511,1,0,-8,511,1,0,3,504,1,0,4,511,1,1,-8,511,1,1,3,504,1,1,4,511,1,1,5,511,1,2,-8,511,1,2,3,216,1,2,4,507,1,2,5,511,1,3,-8,511,1,3,4,504,1,3,5,511,1,4,-8,511,1,4,4,504,1,4,5,511,1,5,-8,511,1,5,-2,432,1,5,-1,438,1,5,0,438,1,5,4,504,1,5,5,511,1,6,-8,511,1,6,-7,447,1,6,-2,504,1,6,-1,511,1,6,0,255,1,6,4,504,1,6,5,511,1,7,-8,511,1,7,-7,511,1,7,-2,216,1,7,-1,219,1,7,4,504,1,7,5,511,1,8,-7,511,1,8,4,504,1,8,5,511,1,9,-7,511,1,9,-6,447,1,9,-5,438,1,9,-4,438,1,9,-3,438,1,9,4,504,1,9,5,511,1,10,-7,511,1,10,-6,511,1,10,-5,511,1,10,-4,511,1,10,-3,511,1,10,-2,447,1,10,-1,438,1,10,0,438,1,10,1,438,1,10,2,438,1,10,3,438,1,10,4,510,1,10,5,511,1,11,-3,511,1,11,-2,511,1,11,-1,511,1,11,0,511,1,11,1,511,1,11,2,511,1,11,3,511,1,11,4,511,1,11,5,511,1],"CustomFloor1":[],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start1/TileInfo.json
index 73fa1b4..62143da 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start1/TileInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start1/TileInfo.json
@@ -1 +1 @@
-{"NavigationVertices":[{"X":58,"Y":34},{"X":-26,"Y":34},{"X":-26,"Y":-42},{"X":58,"Y":-42}],"NavigationPolygon":[[0,1,2,3]],"Floor":[3,-2,0,3,2,-2,0,3,1,-2,0,3,0,-2,0,3,-1,-2,0,3,-2,-2,0,3,-2,-1,0,3,-1,-1,0,3,0,-1,0,3,1,-1,0,3,2,-1,0,3,3,-1,0,3,3,0,0,3,2,0,0,3,1,0,0,3,0,0,0,3,-1,0,0,3,-2,0,0,3,-2,1,0,3,-1,1,0,3,0,1,0,3,1,1,0,3,2,1,0,3,3,1,0,3,3,-3,0,3,2,-3,0,3,1,-3,0,3,0,-3,0,3,-1,-3,0,3,-2,-3,0,3],"Middle":[-2,-5,63,1,-2,-4,2,2,-1,-5,63,1,-1,-4,2,2,0,-5,63,1,0,-4,2,2,1,-5,63,1,1,-4,2,2,2,-5,63,1,2,-4,2,2,3,-5,63,1,3,-4,2,2],"Top":[-4,-6,511,1,-4,-5,511,1,-4,-4,511,1,-4,-3,511,1,-4,-2,511,1,-4,-1,511,1,-4,0,511,1,-4,1,511,1,-4,2,511,1,-4,3,511,1,-3,-6,511,1,-3,-5,255,1,-3,-4,219,1,-3,-3,219,1,-3,-2,219,1,-3,-1,219,1,-3,0,219,1,-3,1,219,1,-3,2,507,1,-3,3,511,1,-2,-6,511,1,-2,2,504,1,-2,3,511,1,-1,-6,511,1,-1,2,504,1,-1,3,511,1,0,-6,511,1,0,2,504,1,0,3,511,1,1,-6,511,1,1,2,504,1,1,3,511,1,2,-6,511,1,2,2,504,1,2,3,511,1,3,-6,511,1,3,2,504,1,3,3,511,1,4,-6,511,1,4,-5,447,1,4,-4,438,1,4,-3,438,1,4,-2,438,1,4,-1,438,1,4,0,438,1,4,1,438,1,4,2,510,1,4,3,511,1,5,-6,511,1,5,-5,511,1,5,-4,511,1,5,-3,511,1,5,-2,511,1,5,-1,511,1,5,0,511,1,5,1,511,1,5,2,511,1,5,3,511,1],"CustomLayers":[]}
\ No newline at end of file
+{"NavigationVertices":[{"X":58,"Y":34},{"X":-26,"Y":34},{"X":-26,"Y":-42},{"X":58,"Y":-42}],"NavigationPolygon":[[0,1,2,3]],"Floor":[3,-2,0,3,2,-2,0,3,1,-2,0,3,0,-2,0,3,-1,-2,0,3,-2,-2,0,3,-2,-1,0,3,-1,-1,0,3,0,-1,0,3,1,-1,0,3,2,-1,0,3,3,-1,0,3,3,0,0,3,2,0,0,3,1,0,0,3,0,0,0,3,-1,0,0,3,-2,0,0,3,-2,1,0,3,-1,1,0,3,0,1,0,3,1,1,0,3,2,1,0,3,3,1,0,3,3,-3,0,3,2,-3,0,3,1,-3,0,3,0,-3,0,3,-1,-3,0,3,-2,-3,0,3],"Middle":[-2,-5,63,1,-2,-4,2,2,-1,-5,63,1,-1,-4,2,2,0,-5,63,1,0,-4,2,2,1,-5,63,1,1,-4,2,2,2,-5,63,1,2,-4,2,2,3,-5,63,1,3,-4,2,2],"Top":[-4,-6,511,1,-4,-5,511,1,-4,-4,511,1,-4,-3,511,1,-4,-2,511,1,-4,-1,511,1,-4,0,511,1,-4,1,511,1,-4,2,511,1,-4,3,511,1,-3,-6,511,1,-3,-5,255,1,-3,-4,219,1,-3,-3,219,1,-3,-2,219,1,-3,-1,219,1,-3,0,219,1,-3,1,219,1,-3,2,507,1,-3,3,511,1,-2,-6,511,1,-2,2,504,1,-2,3,511,1,-1,-6,511,1,-1,2,504,1,-1,3,511,1,0,-6,511,1,0,2,504,1,0,3,511,1,1,-6,511,1,1,2,504,1,1,3,511,1,2,-6,511,1,2,2,504,1,2,3,511,1,3,-6,511,1,3,2,504,1,3,3,511,1,4,-6,511,1,4,-5,447,1,4,-4,438,1,4,-3,438,1,4,-2,438,1,4,-1,438,1,4,0,438,1,4,1,438,1,4,2,510,1,4,3,511,1,5,-6,511,1,5,-5,511,1,5,-4,511,1,5,-3,511,1,5,-2,511,1,5,-1,511,1,5,0,511,1,5,1,511,1,5,2,511,1,5,3,511,1],"CustomFloor1":[],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json
index 2187435..e59f6a9 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/outlet/End1/TileInfo.json
@@ -1 +1 @@
-{"NavigationVertices":[{"X":42,"Y":-42},{"X":42,"Y":34},{"X":22,"Y":6},{"X":22,"Y":-30},{"X":-26,"Y":-42},{"X":-6,"Y":-30},{"X":-26,"Y":34},{"X":-6,"Y":6}],"NavigationPolygon":[[0,1,2,3],[4,0,3,5],[2,1,6,7],[7,6,4,5]],"Floor":[-2,-1,0,3,-2,-2,0,3,-1,-2,0,3,1,-2,0,3,1,-1,0,3,2,-1,0,3,-1,-1,0,3,-2,0,0,3,-2,1,0,3,-1,1,0,3,0,1,0,3,1,1,0,3,2,1,0,3,2,0,0,3,1,0,0,3,0,0,0,3,-1,0,0,3,2,-2,0,3,2,-3,0,3,1,-3,0,3,0,-3,0,3,-1,-3,0,3,-2,-3,0,3],"Middle":[-2,-5,63,1,-2,-4,2,2,-1,-5,63,1,-1,-4,2,2,0,-5,63,1,0,-4,2,2,0,-2,16,1,0,-1,0,2,1,-5,63,1,1,-4,2,2,2,-5,63,1,2,-4,2,2],"Top":[-4,-6,511,1,-4,-5,511,1,-4,-4,511,1,-4,-3,511,1,-4,-2,511,1,-4,-1,511,1,-4,0,511,1,-4,1,511,1,-4,2,511,1,-4,3,511,1,-3,-6,511,1,-3,-5,255,1,-3,-4,219,1,-3,-3,219,1,-3,-2,219,1,-3,-1,219,1,-3,0,219,1,-3,1,219,1,-3,2,507,1,-3,3,511,1,-2,-6,511,1,-2,2,504,1,-2,3,511,1,-1,-6,511,1,-1,2,504,1,-1,3,511,1,0,-6,511,1,0,2,504,1,0,3,511,1,1,-6,511,1,1,2,504,1,1,3,511,1,2,-6,511,1,2,2,504,1,2,3,511,1,3,-6,511,1,3,-5,447,1,3,-4,438,1,3,-3,438,1,3,-2,438,1,3,-1,438,1,3,0,438,1,3,1,438,1,3,2,510,1,3,3,511,1,4,-6,511,1,4,-5,511,1,4,-4,511,1,4,-3,511,1,4,-2,511,1,4,-1,511,1,4,0,511,1,4,1,511,1,4,2,511,1,4,3,511,1],"CustomLayers":[]}
\ No newline at end of file
+{"NavigationVertices":[{"X":42,"Y":-42},{"X":42,"Y":34},{"X":22,"Y":6},{"X":22,"Y":-30},{"X":-26,"Y":-42},{"X":-6,"Y":-30},{"X":-26,"Y":34},{"X":-6,"Y":6}],"NavigationPolygon":[[0,1,2,3],[4,0,3,5],[2,1,6,7],[7,6,4,5]],"Floor":[-2,-1,0,3,-2,-2,0,3,-1,-2,0,3,1,-2,0,3,1,-1,0,3,2,-1,0,3,-1,-1,0,3,-2,0,0,3,-2,1,0,3,-1,1,0,3,0,1,0,3,1,1,0,3,2,1,0,3,2,0,0,3,1,0,0,3,0,0,0,3,-1,0,0,3,2,-2,0,3,2,-3,0,3,1,-3,0,3,0,-3,0,3,-1,-3,0,3,-2,-3,0,3],"Middle":[-2,-5,63,1,-2,-4,2,2,-1,-5,63,1,-1,-4,2,2,0,-5,63,1,0,-4,2,2,0,-2,16,1,0,-1,0,2,1,-5,63,1,1,-4,2,2,2,-5,63,1,2,-4,2,2],"Top":[-4,-6,511,1,-4,-5,511,1,-4,-4,511,1,-4,-3,511,1,-4,-2,511,1,-4,-1,511,1,-4,0,511,1,-4,1,511,1,-4,2,511,1,-4,3,511,1,-3,-6,511,1,-3,-5,255,1,-3,-4,219,1,-3,-3,219,1,-3,-2,219,1,-3,-1,219,1,-3,0,219,1,-3,1,219,1,-3,2,507,1,-3,3,511,1,-2,-6,511,1,-2,2,504,1,-2,3,511,1,-1,-6,511,1,-1,2,504,1,-1,3,511,1,0,-6,511,1,0,2,504,1,0,3,511,1,1,-6,511,1,1,2,504,1,1,3,511,1,2,-6,511,1,2,2,504,1,2,3,511,1,3,-6,511,1,3,-5,447,1,3,-4,438,1,3,-3,438,1,3,-2,438,1,3,-1,438,1,3,0,438,1,3,1,438,1,3,2,510,1,3,3,511,1,4,-6,511,1,4,-5,511,1,4,-4,511,1,4,-3,511,1,4,-2,511,1,4,-1,511,1,4,0,511,1,4,1,511,1,4,2,511,1,4,3,511,1],"CustomFloor1":[],"CustomFloor2":[],"CustomFloor3":[],"CustomMiddle1":[],"CustomMiddle2":[],"CustomTop":[]}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/framework/map/serialize/room/CustomLayerInfo.cs b/DungeonShooting_Godot/src/framework/map/serialize/room/CustomLayerInfo.cs
deleted file mode 100644
index 28c2b6f..0000000
--- a/DungeonShooting_Godot/src/framework/map/serialize/room/CustomLayerInfo.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-
-using System.Collections.Generic;
-using System.Text.Json.Serialization;
-
-///
-/// 自定义层数据
-///
-public class CustomLayerInfo
-{
- ///
- /// 层名称
- ///
- [JsonInclude]
- public string Name;
-
- ///
- /// Z 轴排序
- ///
- [JsonInclude]
- public int ZIndex;
-
- ///
- /// 数据五个一组, 分别为: 地图x坐标, 地图y坐标, 资源id, 图集x坐标, 图集y坐标
- ///
- [JsonInclude]
- public List Data;
-
- public void InitData()
- {
- Data = new List();
- }
-}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/framework/map/serialize/room/DungeonTileInfo.cs b/DungeonShooting_Godot/src/framework/map/serialize/room/DungeonTileInfo.cs
index 539fc3e..ffe961b 100644
--- a/DungeonShooting_Godot/src/framework/map/serialize/room/DungeonTileInfo.cs
+++ b/DungeonShooting_Godot/src/framework/map/serialize/room/DungeonTileInfo.cs
@@ -1,7 +1,6 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
-using Godot;
public class DungeonTileInfo
{
@@ -36,11 +35,41 @@
public List Top;
///
- /// 自定义层
+ /// 自定义底层1, 数据五个一组, 分别为: 地图x坐标, 地图y坐标, 资源id, 图集x坐标, 图集y坐标
///
[JsonInclude]
- public List CustomLayers;
-
+ public List CustomFloor1;
+
+ ///
+ /// 自定义底层2, 数据五个一组, 分别为: 地图x坐标, 地图y坐标, 资源id, 图集x坐标, 图集y坐标
+ ///
+ [JsonInclude]
+ public List CustomFloor2;
+
+ ///
+ /// 自定义底层3, 数据五个一组, 分别为: 地图x坐标, 地图y坐标, 资源id, 图集x坐标, 图集y坐标
+ ///
+ [JsonInclude]
+ public List CustomFloor3;
+
+ ///
+ /// 自定义中层1, 数据五个一组, 分别为: 地图x坐标, 地图y坐标, 资源id, 图集x坐标, 图集y坐标
+ ///
+ [JsonInclude]
+ public List CustomMiddle1;
+
+ ///
+ /// 自定义中层2, 数据五个一组, 分别为: 地图x坐标, 地图y坐标, 资源id, 图集x坐标, 图集y坐标
+ ///
+ [JsonInclude]
+ public List CustomMiddle2;
+
+ ///
+ /// 自定义顶层, 数据五个一组, 分别为: 地图x坐标, 地图y坐标, 资源id, 图集x坐标, 图集y坐标
+ ///
+ [JsonInclude]
+ public List CustomTop;
+
public void InitData()
{
NavigationVertices = new List();
@@ -48,6 +77,11 @@
Floor = new List();
Middle = new List();
Top = new List();
- CustomLayers = new List();
+ CustomFloor1 = new List();
+ CustomFloor2 = new List();
+ CustomFloor3 = new List();
+ CustomMiddle1 = new List();
+ CustomMiddle2 = new List();
+ CustomTop = new List();
}
}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/GameConfig.cs b/DungeonShooting_Godot/src/game/GameConfig.cs
index 0155eba..904556d 100644
--- a/DungeonShooting_Godot/src/game/GameConfig.cs
+++ b/DungeonShooting_Godot/src/game/GameConfig.cs
@@ -75,10 +75,6 @@
/// 连接房间的过道的地板层级
///
public const int AisleFloorMapLayer = 3;
- ///
- /// 标记数据层
- ///
- public const int MarkLayer = 9999;
///
/// TileMap 地板的 Zindex
diff --git a/DungeonShooting_Godot/src/game/data/TileMapLayerData.cs b/DungeonShooting_Godot/src/game/data/TileMapLayerData.cs
index 431a40e..da99d2c 100644
--- a/DungeonShooting_Godot/src/game/data/TileMapLayerData.cs
+++ b/DungeonShooting_Godot/src/game/data/TileMapLayerData.cs
@@ -10,38 +10,14 @@
///
public int Layer;
///
- /// Map 层级 Z 索引
- ///
- public int ZIndex;
- ///
/// 是否锁定
///
public bool IsLock;
- ///
- /// 是否可以删除
- ///
- public bool CanDelete;
- ///
- /// 自定义层数据
- ///
- public CustomLayerInfo CustomLayerInfo;
- public TileMapLayerData(string title, int layer, int zIndex, bool isLock)
+ public TileMapLayerData(string title, int layer, bool isLock)
{
Title = title;
Layer = layer;
- ZIndex = zIndex;
IsLock = isLock;
- CanDelete = false;
- }
-
- public TileMapLayerData(int layer, CustomLayerInfo customLayerInfo)
- {
- Title = customLayerInfo.Name;
- Layer = layer;
- ZIndex = customLayerInfo.ZIndex;
- IsLock = false;
- CanDelete = true;
- CustomLayerInfo = customLayerInfo;
}
}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/data/property/MapLayer.cs b/DungeonShooting_Godot/src/game/data/property/MapLayer.cs
new file mode 100644
index 0000000..472d358
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/data/property/MapLayer.cs
@@ -0,0 +1,44 @@
+
+public static class MapLayer
+{
+ ///
+ /// 自动图块地板层
+ ///
+ public const int AutoFloorLayer = 0;
+ ///
+ /// 自定义图块地板层1
+ ///
+ public const int CustomFloorLayer1 = AutoFloorLayer + 1;
+ ///
+ /// 自定义图块地板层2
+ ///
+ public const int CustomFloorLayer2 = CustomFloorLayer1 + 1;
+ ///
+ /// 自定义图块地板层3
+ ///
+ public const int CustomFloorLayer3 = CustomFloorLayer2 + 1;
+ ///
+ /// 自动图块中间层
+ ///
+ public const int AutoMiddleLayer = CustomFloorLayer3 + 1;
+ ///
+ /// 自定义图块中间层1
+ ///
+ public const int CustomMiddleLayer1 = AutoMiddleLayer + 1;
+ ///
+ /// 自定义图块中间层2
+ ///
+ public const int CustomMiddleLayer2 = CustomMiddleLayer1 + 1;
+ ///
+ /// 自动图块顶层
+ ///
+ public const int AutoTopLayer = CustomMiddleLayer2 + 1;
+ ///
+ /// 自定义图块顶层
+ ///
+ public const int CustomTopLayer = AutoTopLayer + 1;
+ ///
+ /// 标记数据层
+ ///
+ public const int MarkLayer = 999;
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs b/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs
index 216b4f7..4abfe28 100644
--- a/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs
+++ b/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs
@@ -753,69 +753,6 @@
})
);
}
-
- ///
- /// 显示创建
- ///
- /// 当前房间所有的层
- /// 创建完成回调
- /// 所属父级Ui
- public static void ShowCreateCustomLayer(List customLayerInfos, Action onCreate, UiBase parentUi = null)
- {
- var window = CreateWindowInstance(parentUi);
- window.SetWindowTitle("创建Layer");
- window.SetWindowSize(new Vector2I(400, 350));
- var body = window.OpenBody(UiManager.UiNames.EditorForm);
-
- //第一项
- var item1 = new FormItemData("名称", new LineEdit()
- {
- PlaceholderText = "请输入名称"
- });
- //第二项
- var item2 = new FormItemData("层级", new SpinBox()
- {
- Value = 5,
- Step = 1,
- MinValue = -100,
- MaxValue = 100,
- });
-
- body.AddItem(item1);
- body.AddItem(item2);
- window.SetButtonList(
- new EditorWindowPanel.ButtonData("确定", () =>
- {
- var text = item1.UiNode.Text;
- if (string.IsNullOrEmpty(text))
- {
- ShowTips("错误", $"名称不允许为空!");
- return;
- }
-
- foreach (var item in customLayerInfos)
- {
- if (item.Name == text)
- {
- ShowTips("错误", $"已经有相同的层名了!");
- return;
- }
- }
-
- var terrainInfo = new CustomLayerInfo();
- terrainInfo.InitData();
- terrainInfo.Name = text;
- terrainInfo.ZIndex = (int)item2.UiNode.Value;
-
- window.CloseWindow();
- onCreate(terrainInfo);
- }),
- new EditorWindowPanel.ButtonData("取消", () =>
- {
- window.CloseWindow();
- })
- );
- }
private static EditorWindowPanel CreateWindowInstance(UiBase parentUi = null)
{
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditor/tileView/EditorTileMap.cs b/DungeonShooting_Godot/src/game/ui/mapEditor/tileView/EditorTileMap.cs
index aa42c49..20f6d7f 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditor/tileView/EditorTileMap.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditor/tileView/EditorTileMap.cs
@@ -33,7 +33,7 @@
///
Edit,
}
-
+
///
/// 所属地图编辑器UI
///
@@ -390,8 +390,9 @@
}
//将指定自动地形层数据存入list中
- private void PushAutoLayerDataToList(int layer, int sourceId, List list)
+ private void PushAutoLayerDataToList(int layer, List list)
{
+ const int sourceId = 0; //这里指定0是因为 Main Source 的 id 为 0
var layerArray = GetUsedCellsById(layer, sourceId);
foreach (var pos in layerArray)
{
@@ -406,6 +407,21 @@
}
}
}
+
+ //将指定层数据存入list中
+ private void PushLayerDataToList(int layer, List list)
+ {
+ var layerArray = GetUsedCellsById(layer);
+ foreach (var pos in layerArray)
+ {
+ var atlasCoords = GetCellAtlasCoords(layer, pos);
+ list.Add(pos.X);
+ list.Add(pos.Y);
+ list.Add(GetCellSourceId(layer, pos));
+ list.Add(atlasCoords.X);
+ list.Add(atlasCoords.Y);
+ }
+ }
//设置自动地形层的数据
private void SetAutoLayerDataFromList(int layer, List list)
@@ -421,12 +437,25 @@
var terrainCell = terrainInfo.GetTerrainCell(index, type);
var atlasCoords = terrainInfo.GetPosition(terrainCell);
SetCell(layer, pos, sourceId, atlasCoords);
- if (layer == GameConfig.FloorMapLayer)
+ if (layer == MapLayer.AutoFloorLayer)
{
_autoCellLayerGrid.Set(pos, true);
}
}
}
+
+ //设置自定义层的数据
+ private void SetCustomLayerDataFromList(int layer, List list)
+ {
+ //五个一组
+ for (var i = 0; i < list.Count; i += 5)
+ {
+ var pos = new Vector2I(list[i], list[i + 1]);
+ var sourceId = list[i + 2];
+ var atlasCoords = new Vector2I(list[i + 3], list[i + 4]);
+ SetCell(layer, pos, sourceId, atlasCoords);
+ }
+ }
///
/// 触发保存地图数据
@@ -480,10 +509,16 @@
//初始化层级数据
InitLayer();
- //地块数据
- SetAutoLayerDataFromList(GameConfig.FloorMapLayer, tileInfo.Floor);
- SetAutoLayerDataFromList(GameConfig.MiddleMapLayer, tileInfo.Middle);
- SetAutoLayerDataFromList(GameConfig.TopMapLayer, tileInfo.Top);
+ //读取地块数据
+ SetAutoLayerDataFromList(MapLayer.AutoFloorLayer, tileInfo.Floor);
+ SetAutoLayerDataFromList(MapLayer.AutoMiddleLayer, tileInfo.Middle);
+ SetAutoLayerDataFromList(MapLayer.AutoTopLayer, tileInfo.Top);
+ SetCustomLayerDataFromList(MapLayer.CustomFloorLayer1, tileInfo.CustomFloor1);
+ SetCustomLayerDataFromList(MapLayer.CustomFloorLayer2, tileInfo.CustomFloor2);
+ SetCustomLayerDataFromList(MapLayer.CustomFloorLayer3, tileInfo.CustomFloor3);
+ SetCustomLayerDataFromList(MapLayer.CustomMiddleLayer1, tileInfo.CustomMiddle1);
+ SetCustomLayerDataFromList(MapLayer.CustomMiddleLayer2, tileInfo.CustomMiddle2);
+ SetCustomLayerDataFromList(MapLayer.CustomTopLayer, tileInfo.CustomTop);
//如果有图块错误, 则找出错误的点位
if (roomSplit.ErrorType == RoomErrorType.TileError)
@@ -542,16 +577,22 @@
_initLayer = true;
//初始化层级数据
- // AddLayer(CustomFloorLayer);
- // SetLayerZIndex(CustomFloorLayer, CustomFloorLayer);
- AddLayer(GameConfig.MiddleMapLayer);
- SetLayerZIndex(GameConfig.MiddleMapLayer, GameConfig.MiddleMapLayer);
- // AddLayer(CustomMiddleLayer);
- // SetLayerZIndex(CustomMiddleLayer, CustomMiddleLayer);
- AddLayer(GameConfig.TopMapLayer);
- SetLayerZIndex(GameConfig.TopMapLayer, GameConfig.TopMapLayer);
- // AddLayer(CustomTopLayer);
- // SetLayerZIndex(CustomTopLayer, CustomTopLayer);
+ AddLayer(MapLayer.CustomFloorLayer1);
+ SetLayerZIndex(MapLayer.CustomFloorLayer1, MapLayer.CustomFloorLayer1);
+ AddLayer(MapLayer.CustomFloorLayer2);
+ SetLayerZIndex(MapLayer.CustomFloorLayer2, MapLayer.CustomFloorLayer2);
+ AddLayer(MapLayer.CustomFloorLayer3);
+ SetLayerZIndex(MapLayer.CustomFloorLayer3, MapLayer.CustomFloorLayer3);
+ AddLayer(MapLayer.AutoMiddleLayer);
+ SetLayerZIndex(MapLayer.AutoMiddleLayer, MapLayer.AutoMiddleLayer);
+ AddLayer(MapLayer.CustomMiddleLayer1);
+ SetLayerZIndex(MapLayer.CustomMiddleLayer1, MapLayer.CustomMiddleLayer1);
+ AddLayer(MapLayer.CustomMiddleLayer2);
+ SetLayerZIndex(MapLayer.CustomMiddleLayer2, MapLayer.CustomMiddleLayer2);
+ AddLayer(MapLayer.AutoTopLayer);
+ SetLayerZIndex(MapLayer.AutoTopLayer, MapLayer.AutoTopLayer);
+ AddLayer(MapLayer.CustomTopLayer);
+ SetLayerZIndex(MapLayer.CustomTopLayer, MapLayer.CustomTopLayer);
}
//缩小
@@ -668,8 +709,8 @@
{
_generateTimer = _generateInterval;
_isGenerateTerrain = false;
- ClearLayer(GameConfig.TopMapLayer);
- ClearLayer(GameConfig.MiddleMapLayer);
+ ClearLayer(MapLayer.AutoTopLayer);
+ ClearLayer(MapLayer.AutoMiddleLayer);
CloseErrorCell();
//标记有修改数据
EventManager.EmitEvent(EventEnum.OnTileMapDirty);
@@ -707,7 +748,7 @@
//生成自动图块 (地形)
private void GenerateTerrain()
{
- //ClearLayer(GameConfig.FloorMapLayer);
+ //ClearLayer(MapLayer.AutoFloorLayer);
var list = new List();
var xStart = int.MaxValue;
var yStart = int.MaxValue;
@@ -801,7 +842,7 @@
}
var arr = new Array(list);
//绘制自动图块
- SetCellsTerrainConnect(GameConfig.FloorMapLayer, arr, _terrainSet, _terrain, false);
+ SetCellsTerrainConnect(MapLayer.AutoFloorLayer, arr, _terrainSet, _terrain, false);
//擦除临时边界
for (var i = 0; i < temp1.Count; i++)
@@ -841,11 +882,11 @@
return false;
}
- //将自动生成的图块从 GameConfig.FloorMapLayer 移动到指定图层中
+ //将自动生成的图块从 MapLayer.AutoFloorLayer 移动到指定图层中
private void MoveTerrainCell()
{
- ClearLayer(GameConfig.TopMapLayer);
- ClearLayer(GameConfig.MiddleMapLayer);
+ ClearLayer(MapLayer.AutoTopLayer);
+ ClearLayer(MapLayer.AutoMiddleLayer);
var x = CurrRoomPosition.X;
var y = CurrRoomPosition.Y;
@@ -857,24 +898,24 @@
for (var j = 0; j < h; j++)
{
var pos = new Vector2I(x + i, y + j);
- if (!_autoCellLayerGrid.Contains(pos) && GetCellSourceId(GameConfig.FloorMapLayer, pos) != -1)
+ if (!_autoCellLayerGrid.Contains(pos) && GetCellSourceId(MapLayer.AutoFloorLayer, pos) != -1)
{
- var atlasCoords = GetCellAtlasCoords(GameConfig.FloorMapLayer, pos);
+ var atlasCoords = GetCellAtlasCoords(MapLayer.AutoFloorLayer, pos);
var layer = _autoTileConfig.GetLayer(atlasCoords);
if (layer == GameConfig.MiddleMapLayer)
{
- layer = GameConfig.MiddleMapLayer;
+ layer = MapLayer.AutoMiddleLayer;
}
else if (layer == GameConfig.TopMapLayer)
{
- layer = GameConfig.TopMapLayer;
+ layer = MapLayer.AutoTopLayer;
}
else
{
Debug.LogError($"异常图块: {pos}, 这个图块的图集坐标'{atlasCoords}'不属于'MiddleMapLayer'和'TopMapLayer'!");
continue;
}
- EraseCell(GameConfig.FloorMapLayer, pos);
+ EraseCell(MapLayer.AutoFloorLayer, pos);
SetCell(layer, pos, _sourceId, atlasCoords);
}
}
@@ -915,17 +956,17 @@
private int GetFloorLayer()
{
- return GameConfig.FloorMapLayer;
+ return MapLayer.AutoFloorLayer;
}
private int GetMiddleLayer()
{
- return GameConfig.MiddleMapLayer;
+ return MapLayer.AutoMiddleLayer;
}
private int GetTopLayer()
{
- return GameConfig.TopMapLayer;
+ return MapLayer.AutoTopLayer;
}
///
@@ -1112,9 +1153,17 @@
tileInfo.Middle.Clear();
tileInfo.Top.Clear();
- PushAutoLayerDataToList(GameConfig.FloorMapLayer, _sourceId, tileInfo.Floor);
- PushAutoLayerDataToList(GameConfig.MiddleMapLayer, _sourceId, tileInfo.Middle);
- PushAutoLayerDataToList(GameConfig.TopMapLayer, _sourceId, tileInfo.Top);
+ //保存图块数据
+ PushAutoLayerDataToList(MapLayer.AutoFloorLayer, tileInfo.Floor);
+ PushAutoLayerDataToList(MapLayer.AutoMiddleLayer, tileInfo.Middle);
+ PushAutoLayerDataToList(MapLayer.AutoTopLayer, tileInfo.Top);
+ PushLayerDataToList(MapLayer.CustomFloorLayer1, tileInfo.CustomFloor1);
+ PushLayerDataToList(MapLayer.CustomFloorLayer2, tileInfo.CustomFloor2);
+ PushLayerDataToList(MapLayer.CustomFloorLayer3, tileInfo.CustomFloor3);
+ PushLayerDataToList(MapLayer.CustomMiddleLayer1, tileInfo.CustomMiddle1);
+ PushLayerDataToList(MapLayer.CustomMiddleLayer2, tileInfo.CustomMiddle2);
+ PushLayerDataToList(MapLayer.CustomTopLayer, tileInfo.CustomTop);
+
MapProjectManager.SaveRoomTileInfo(CurrRoomSplit);
}
@@ -1176,9 +1225,12 @@
private Vector2 _tempMapPos;
private Vector2 _tempMapScale;
private bool _tempAutoFloorLayer;
- private bool _tempCustomFloorLayer;
+ private bool _tempCustomFloorLayer1;
+ private bool _tempCustomFloorLayer2;
+ private bool _tempCustomFloorLayer3;
private bool _tempAutoMiddleLayer;
- private bool _tempCustomMiddleLayer;
+ private bool _tempCustomMiddleLayer1;
+ private bool _tempCustomMiddleLayer2;
private bool _tempAutoTopLayer;
private bool _tempCustomTopLayer;
@@ -1226,19 +1278,25 @@
//隐藏工具栏
MapEditorToolsPanel.Visible = false;
//显示所有层级
- _tempAutoFloorLayer = IsLayerEnabled(GameConfig.FloorMapLayer);
- //_tempCustomFloorLayer = IsLayerEnabled(CustomFloorLayer);
- _tempAutoMiddleLayer = IsLayerEnabled(GameConfig.MiddleMapLayer);
- //_tempCustomMiddleLayer = IsLayerEnabled(CustomMiddleLayer);
- _tempAutoTopLayer = IsLayerEnabled(GameConfig.TopMapLayer);
- //_tempCustomTopLayer = IsLayerEnabled(CustomTopLayer);
+ _tempAutoFloorLayer = IsLayerEnabled(MapLayer.AutoFloorLayer);
+ _tempCustomFloorLayer1 = IsLayerEnabled(MapLayer.CustomFloorLayer1);
+ _tempCustomFloorLayer2 = IsLayerEnabled(MapLayer.CustomFloorLayer2);
+ _tempCustomFloorLayer3 = IsLayerEnabled(MapLayer.CustomFloorLayer3);
+ _tempAutoMiddleLayer = IsLayerEnabled(MapLayer.AutoMiddleLayer);
+ _tempCustomMiddleLayer1 = IsLayerEnabled(MapLayer.CustomMiddleLayer1);
+ _tempCustomMiddleLayer2 = IsLayerEnabled(MapLayer.CustomMiddleLayer2);
+ _tempAutoTopLayer = IsLayerEnabled(MapLayer.AutoTopLayer);
+ _tempCustomTopLayer = IsLayerEnabled(MapLayer.CustomTopLayer);
- SetLayerEnabled(GameConfig.FloorMapLayer, true);
- //SetLayerEnabled(CustomFloorLayer, true);
- SetLayerEnabled(GameConfig.MiddleMapLayer, true);
- //SetLayerEnabled(CustomMiddleLayer, true);
- SetLayerEnabled(GameConfig.TopMapLayer, true);
- //SetLayerEnabled(CustomTopLayer, true);
+ SetLayerEnabled(MapLayer.AutoFloorLayer, true);
+ SetLayerEnabled(MapLayer.CustomFloorLayer1, true);
+ SetLayerEnabled(MapLayer.CustomFloorLayer2, true);
+ SetLayerEnabled(MapLayer.CustomFloorLayer3, true);
+ SetLayerEnabled(MapLayer.AutoMiddleLayer, true);
+ SetLayerEnabled(MapLayer.CustomMiddleLayer1, true);
+ SetLayerEnabled(MapLayer.CustomMiddleLayer2, true);
+ SetLayerEnabled(MapLayer.AutoTopLayer, true);
+ SetLayerEnabled(MapLayer.CustomTopLayer, true);
}
private void OnFramePostDraw()
@@ -1257,12 +1315,12 @@
//还原工具栏
MapEditorToolsPanel.Visible = true;
//还原层级显示
- SetLayerEnabled(GameConfig.FloorMapLayer, _tempAutoFloorLayer);
+ SetLayerEnabled(MapLayer.AutoFloorLayer, _tempAutoFloorLayer);
//SetLayerEnabled(CustomFloorLayer, _tempCustomFloorLayer);
- SetLayerEnabled(GameConfig.MiddleMapLayer, _tempAutoMiddleLayer);
- //SetLayerEnabled(CustomMiddleLayer, _tempCustomMiddleLayer);
- SetLayerEnabled(GameConfig.TopMapLayer, _tempAutoTopLayer);
- //SetLayerEnabled(CustomTopLayer, _tempCustomTopLayer);
+ SetLayerEnabled(MapLayer.AutoMiddleLayer, _tempAutoMiddleLayer);
+ //SetLayerEnabled(MapLayer.CustomMiddleLayer, _tempCustomMiddleLayer);
+ SetLayerEnabled(MapLayer.AutoTopLayer, _tempAutoTopLayer);
+ //SetLayerEnabled(MapLayer.CustomTopLayer, _tempCustomTopLayer);
//保存预览图
var subViewport = MapEditorPanel.S_SubViewport.Instance;
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/LayerButtonCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/LayerButtonCell.cs
index 698a4c7..ca25057 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/LayerButtonCell.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/LayerButtonCell.cs
@@ -27,7 +27,7 @@
var panel = CellNode.UiPanel.ParentUi as MapEditorPanel;
if (panel != null)
{
- if (Data.Layer == GameConfig.MarkLayer) //标记层
+ if (Data.Layer == MapLayer.MarkLayer) //标记层
{
_visible = true;
}
@@ -45,7 +45,7 @@
if (panel != null)
{
_visible = !_visible;
- if (Data.Layer == GameConfig.MarkLayer) //隐藏标记层
+ if (Data.Layer == MapLayer.MarkLayer) //隐藏标记层
{
panel.S_MapEditorTools.Instance.S_ToolRoot.Instance.Visible = _visible;
}
@@ -83,9 +83,4 @@
{
return !Data.IsLock;
}
-
- public override int OnSort(UiCell other)
- {
- return Data.ZIndex - other.Data.ZIndex;
- }
}
\ 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
index fb0eda4..f8933d8 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayer.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayer.cs
@@ -29,7 +29,7 @@
}
///
- /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.HBoxContainer.LayerLabel
+ /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.LayerLabel
///
public class LayerLabel : UiNode
{
@@ -38,94 +38,6 @@
}
///
- /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.HBoxContainer.AddButton
- ///
- public class AddButton : UiNode
- {
- public AddButton(MapEditorMapLayerPanel uiPanel, Godot.Button node) : base(uiPanel, node) { }
- public override AddButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.HBoxContainer.EditButton
- ///
- public class EditButton : UiNode
- {
- public EditButton(MapEditorMapLayerPanel uiPanel, Godot.Button node) : base(uiPanel, node) { }
- public override EditButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.HBoxContainer.DeleteButton
- ///
- public class DeleteButton : UiNode
- {
- public DeleteButton(MapEditorMapLayerPanel uiPanel, Godot.Button node) : base(uiPanel, node) { }
- public override DeleteButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
- }
-
- ///
- /// 类型: , 路径: MapEditorMapLayer.VBoxContainer.HBoxContainer
- ///
- public class HBoxContainer : UiNode
- {
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.LayerLabel
- ///
- public LayerLabel L_LayerLabel
- {
- get
- {
- if (_L_LayerLabel == null) _L_LayerLabel = new LayerLabel(UiPanel, Instance.GetNode("LayerLabel"));
- return _L_LayerLabel;
- }
- }
- private LayerLabel _L_LayerLabel;
-
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.AddButton
- ///
- public AddButton L_AddButton
- {
- get
- {
- if (_L_AddButton == null) _L_AddButton = new AddButton(UiPanel, Instance.GetNode("AddButton"));
- return _L_AddButton;
- }
- }
- private AddButton _L_AddButton;
-
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.EditButton
- ///
- public EditButton L_EditButton
- {
- get
- {
- if (_L_EditButton == null) _L_EditButton = new EditButton(UiPanel, Instance.GetNode("EditButton"));
- return _L_EditButton;
- }
- }
- private EditButton _L_EditButton;
-
- ///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.DeleteButton
- ///
- public DeleteButton L_DeleteButton
- {
- get
- {
- if (_L_DeleteButton == null) _L_DeleteButton = new DeleteButton(UiPanel, Instance.GetNode("DeleteButton"));
- return _L_DeleteButton;
- }
- }
- private DeleteButton _L_DeleteButton;
-
- public HBoxContainer(MapEditorMapLayerPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
- public override HBoxContainer Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
- }
-
- ///
/// 类型: , 路径: MapEditorMapLayer.VBoxContainer.ScrollContainer.LayerButton.SelectTexture
///
public class SelectTexture : UiNode
@@ -206,17 +118,17 @@
public class VBoxContainer : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.HBoxContainer
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.LayerLabel
///
- public HBoxContainer L_HBoxContainer
+ public LayerLabel L_LayerLabel
{
get
{
- if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer(UiPanel, Instance.GetNode("HBoxContainer"));
- return _L_HBoxContainer;
+ if (_L_LayerLabel == null) _L_LayerLabel = new LayerLabel(UiPanel, Instance.GetNode("LayerLabel"));
+ return _L_LayerLabel;
}
}
- private HBoxContainer _L_HBoxContainer;
+ private LayerLabel _L_LayerLabel;
///
/// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapLayer.ScrollContainer
@@ -237,29 +149,9 @@
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.HBoxContainer.LayerLabel
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.LayerLabel
///
- public LayerLabel S_LayerLabel => L_VBoxContainer.L_HBoxContainer.L_LayerLabel;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.HBoxContainer.AddButton
- ///
- public AddButton S_AddButton => L_VBoxContainer.L_HBoxContainer.L_AddButton;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.HBoxContainer.EditButton
- ///
- public EditButton S_EditButton => L_VBoxContainer.L_HBoxContainer.L_EditButton;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.HBoxContainer.DeleteButton
- ///
- public DeleteButton S_DeleteButton => L_VBoxContainer.L_HBoxContainer.L_DeleteButton;
-
- ///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.HBoxContainer
- ///
- public HBoxContainer S_HBoxContainer => L_VBoxContainer.L_HBoxContainer;
+ public LayerLabel S_LayerLabel => L_VBoxContainer.L_LayerLabel;
///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapLayer.VBoxContainer.ScrollContainer.LayerButton.SelectTexture
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs
index 3f0d8ba..a73691e 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs
@@ -1,3 +1,4 @@
+using System.Collections.Generic;
using Godot;
using UI.MapEditor;
@@ -17,37 +18,20 @@
var editorPanel = (MapEditorPanel)ParentUi;
EditorTileMap = editorPanel.S_TileMap.Instance;
- S_AddButton.Instance.Pressed += OnAddClick;
- S_EditButton.Instance.Pressed += OnEditClick;
- S_DeleteButton.Instance.Pressed += OnDeleteClick;
-
_grid = CreateUiGrid(S_LayerButton);
_grid.SetCellOffset(new Vector2I(0, 2));
_grid.SetHorizontalExpand(true);
- _grid.Add(new TileMapLayerData("地板", GameConfig.FloorMapLayer, GameConfig.FloorMapZIndex, false));
- _grid.Add(new TileMapLayerData("侧方墙壁", GameConfig.MiddleMapLayer, GameConfig.MiddleMapZIndex, true));
- _grid.Add(new TileMapLayerData("顶部墙壁", GameConfig.TopMapLayer, GameConfig.TopMapZindex, true));
- _grid.Add(new TileMapLayerData("标记数据层", GameConfig.MarkLayer, 0, false));
+ _grid.Add(new TileMapLayerData("地板", MapLayer.AutoFloorLayer, false));
+ _grid.Add(new TileMapLayerData("底层1", MapLayer.CustomFloorLayer1, false));
+ _grid.Add(new TileMapLayerData("底层2", MapLayer.CustomFloorLayer2, false));
+ _grid.Add(new TileMapLayerData("底层3", MapLayer.CustomFloorLayer3, false));
+ _grid.Add(new TileMapLayerData("侧方墙壁", MapLayer.AutoMiddleLayer, true));
+ _grid.Add(new TileMapLayerData("中层1", MapLayer.CustomMiddleLayer1, false));
+ _grid.Add(new TileMapLayerData("中层2", MapLayer.CustomMiddleLayer2, false));
+ _grid.Add(new TileMapLayerData("顶部墙壁", MapLayer.AutoTopLayer, true));
+ _grid.Add(new TileMapLayerData("顶层", MapLayer.CustomTopLayer, false));
+ _grid.Add(new TileMapLayerData("标记数据层", MapLayer.MarkLayer, true));
_grid.SelectIndex = 0;
}
-
- private void OnAddClick()
- {
- EditorWindowManager.ShowCreateCustomLayer(EditorTileMap.CurrRoomSplit.TileInfo.CustomLayers, info =>
- {
- _grid.Add(new TileMapLayerData(0, info), true);
- _grid.Sort();
- });
- }
-
- private void OnEditClick()
- {
-
- }
-
- private void OnDeleteClick()
- {
-
- }
}