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() - { - - } }