diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx
index 6a223ce..0dc50ce 100644
--- a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx
index bd510bd..9f2979b 100644
--- a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx
index 40dfdd7..693f907 100644
--- a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx
index c96665f..d7c0d11 100644
--- a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx b/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx
index ec33827..4a59086 100644
--- a/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx
index fec81d5..0b20dc6 100644
--- a/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx
index 614fb08..6b4a890 100644
--- a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx
index 92e09ef..a669ff0 100644
--- a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditor.tscn b/DungeonShooting_Godot/prefab/ui/MapEditor.tscn
index edb4ebc..6f63c6a 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditor.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditor.tscn
@@ -4,7 +4,7 @@
[ext_resource type="Texture2D" uid="uid://cajcnlimvoxk" path="res://resource/sprite/ui/commonIcon/Back.png" id="2_gkcw7"]
[ext_resource type="Texture2D" uid="uid://cat35d7ueu7gu" path="res://resource/sprite/ui/commonIcon/Save.png" id="3_qq8k4"]
[ext_resource type="Texture2D" uid="uid://7l7aqhsaexoh" path="res://resource/sprite/ui/commonIcon/Play.png" id="4_2imnr"]
-[ext_resource type="Texture2D" uid="uid://0878uloew5jo" path="res://resource/sprite/ui/mapEditor/ErrorCell.png" id="4_465u2"]
+[ext_resource type="Texture2D" uid="uid://0878uloew5jo" path="res://resource/sprite/ui/commonIcon/Block.png" id="4_465u2"]
[ext_resource type="Script" path="res://src/game/ui/mapEditor/tileView/EditorTileMap.cs" id="4_mhy1a"]
[ext_resource type="Texture2D" uid="uid://bpbfjyj6258da" path="res://resource/sprite/ui/commonIcon/Setting.png" id="5_ubl8b"]
[ext_resource type="PackedScene" uid="uid://b4u66mxndxbrg" path="res://prefab/ui/MapEditorTools.tscn" id="6_7pvgu"]
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn
index 5e4d4ab..2cee601 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorCreateMark.tscn
@@ -1,15 +1,28 @@
-[gd_scene load_steps=10 format=3 uid="uid://bt4xo2lb4h4rx"]
+[gd_scene load_steps=12 format=3 uid="uid://bt4xo2lb4h4rx"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/MapEditorCreateMarkPanel.cs" id="1_cjivg"]
[ext_resource type="Texture2D" uid="uid://n4atvj5fkcpg" path="res://resource/sprite/ui/commonIcon/Add.png" id="2_pxemo"]
[ext_resource type="Material" uid="uid://cces3bhds7jyi" path="res://resource/material/Blend.tres" id="2_xb40b"]
[ext_resource type="Texture2D" uid="uid://c5778ntk2rdon" path="res://resource/sprite/ui/commonIcon/Delete.png" id="3_7xihk"]
[ext_resource type="Texture2D" uid="uid://dligpyhp72sg7" path="res://resource/sprite/ui/commonIcon/Right.png" id="3_v5clf"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="4_7uegb"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/attribute/NumberAttribute.cs" id="6_1ym7l"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/attribute/ObjectAttribute.cs" id="7_516p2"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorCreateMark/attribute/OptionAttribute.cs" id="7_o1tg2"]
[ext_resource type="Texture2D" uid="uid://dggb6p4sdmfry" path="res://resource/sprite/ui/commonIcon/Edit.png" id="7_yeuy4"]
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_ywcv8"]
+resource_local_to_scene = true
+shader = ExtResource("4_7uegb")
+shader_parameter/blend = Color(1, 1, 1, 1)
+shader_parameter/schedule = 0.0
+shader_parameter/modulate = Color(1, 1, 1, 1)
+shader_parameter/show_outline = true
+shader_parameter/outline_color = Color(1, 1, 1, 1)
+shader_parameter/outline_rainbow = false
+shader_parameter/outline_use_blend = true
+shader_parameter/grey = 0.0
+
[node name="MapEditorCreateMark" type="Control"]
layout_mode = 3
anchors_preset = 15
@@ -260,7 +273,7 @@
icon_alignment = 1
[node name="Icon" type="TextureRect" parent="MarginContainer/VBoxContainer/Panel/MarginContainer/VBoxContainer/ScrollContainer/MarkObject/VBoxContainer/HBoxContainer"]
-material = ExtResource("2_xb40b")
+material = SubResource("ShaderMaterial_ywcv8")
custom_minimum_size = Vector2(100, 80)
layout_mode = 2
stretch_mode = 5
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn
index b39b3e1..5980ffa 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn
@@ -1,13 +1,26 @@
-[gd_scene load_steps=9 format=3 uid="uid://peo0n8bl15y5"]
+[gd_scene load_steps=11 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://d4gduco55dqpk" path="res://resource/sprite/ui/commonIcon/Down.png" id="5_x5dpw"]
-[ext_resource type="Texture2D" uid="uid://cgtmjuiks7mot" path="res://resource/sprite/ui/commonIcon/WaveCell.png" id="6_eod5i"]
[ext_resource type="Texture2D" uid="uid://bn47bmilcw4x0" path="res://resource/sprite/ui/commonIcon/Select2.png" id="6_jpt3y"]
-[ext_resource type="Texture2D" uid="uid://bylf0kxccwgdw" path="res://resource/sprite/ui/commonIcon/MarkCell.png" id="8_xyhe6"]
+[ext_resource type="Texture2D" uid="uid://dqvg18aacx6db" path="res://resource/sprite/ui/commonIcon/Visible.png" id="6_qiemx"]
+[ext_resource type="Texture2D" uid="uid://btetxb0hqoifk" path="res://resource/sprite/ui/commonIcon/MarkCell_placeholder.png" id="8_p8o70"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="9_vr0bo"]
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_xxv8l"]
+resource_local_to_scene = true
+shader = ExtResource("9_vr0bo")
+shader_parameter/blend = Color(1, 1, 1, 1)
+shader_parameter/schedule = 0.0
+shader_parameter/modulate = Color(1, 1, 1, 1)
+shader_parameter/show_outline = true
+shader_parameter/outline_color = Color(1, 1, 1, 1)
+shader_parameter/outline_rainbow = false
+shader_parameter/outline_use_blend = true
+shader_parameter/grey = 0.0
[node name="MapEditorMapMark" type="Control"]
layout_mode = 3
@@ -83,6 +96,7 @@
size_flags_horizontal = 3
[node name="WaveContainer" type="HBoxContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveItem"]
+custom_minimum_size = Vector2(0, 68)
layout_mode = 2
[node name="TextureButton" type="TextureButton" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveItem/WaveContainer"]
@@ -95,7 +109,6 @@
layout_mode = 2
size_flags_horizontal = 3
text = "第1波"
-icon = ExtResource("6_eod5i")
alignment = 0
[node name="Select" type="NinePatchRect" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveItem/WaveContainer/WaveButton"]
@@ -112,6 +125,11 @@
patch_margin_right = 3
patch_margin_bottom = 3
+[node name="WaveVisibleButton" type="Button" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveItem/WaveContainer"]
+custom_minimum_size = Vector2(36, 36)
+layout_mode = 2
+icon = ExtResource("6_qiemx")
+
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveItem"]
layout_mode = 2
theme_override_constants/margin_left = 40
@@ -132,10 +150,23 @@
layout_mode = 2
size_flags_horizontal = 3
text = "1001"
-icon = ExtResource("8_xyhe6")
+icon = ExtResource("8_p8o70")
alignment = 0
text_overrun_behavior = 3
+[node name="MarkIcon" type="TextureRect" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveItem/MarkContainer/MarkItem/MarkButton"]
+material = SubResource("ShaderMaterial_xxv8l")
+layout_mode = 1
+anchors_preset = 9
+anchor_bottom = 1.0
+offset_left = 3.0
+offset_top = 3.0
+offset_right = 69.0
+offset_bottom = -3.0
+grow_vertical = 2
+expand_mode = 2
+stretch_mode = 5
+
[node name="Select" type="NinePatchRect" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveItem/MarkContainer/MarkItem/MarkButton"]
visible = false
layout_mode = 1
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn
index e56477f..041820f 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn
@@ -1,9 +1,21 @@
-[gd_scene load_steps=5 format=3 uid="uid://ie52mo5t6l2h"]
+[gd_scene load_steps=6 format=3 uid="uid://ie52mo5t6l2h"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs" id="1_hdfkd"]
-[ext_resource type="Material" uid="uid://cces3bhds7jyi" path="res://resource/material/Blend.tres" id="2_j6gjm"]
[ext_resource type="Texture2D" uid="uid://bn47bmilcw4x0" path="res://resource/sprite/ui/commonIcon/Select2.png" id="3_4nhjm"]
[ext_resource type="Texture2D" uid="uid://blfvsup876agh" path="res://resource/sprite/ui/commonIcon/Search.png" id="3_laasd"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="4_uomdx"]
+
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_8bgig"]
+resource_local_to_scene = true
+shader = ExtResource("4_uomdx")
+shader_parameter/blend = Color(1, 1, 1, 1)
+shader_parameter/schedule = 0.0
+shader_parameter/modulate = Color(1, 1, 1, 1)
+shader_parameter/show_outline = true
+shader_parameter/outline_color = Color(1, 1, 1, 1)
+shader_parameter/outline_rainbow = false
+shader_parameter/outline_use_blend = true
+shader_parameter/grey = 0.0
[node name="MapEditorSelectObject" type="Control"]
layout_mode = 3
@@ -122,7 +134,7 @@
layout_mode = 2
[node name="PreviewImage" type="TextureRect" parent="HBoxContainer/Panel2/MarginContainer/VBoxContainer2/ScrollContainer/ObjectButton"]
-material = ExtResource("2_j6gjm")
+material = SubResource("ShaderMaterial_8bgig")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -134,6 +146,7 @@
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
+expand_mode = 2
stretch_mode = 5
[node name="ObjectName" type="Label" parent="HBoxContainer/Panel2/MarginContainer/VBoxContainer2/ScrollContainer/ObjectButton"]
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorTools.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorTools.tscn
index e22fa78..a5bcf61 100644
--- a/DungeonShooting_Godot/prefab/ui/MapEditorTools.tscn
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorTools.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=10 format=3 uid="uid://b4u66mxndxbrg"]
+[gd_scene load_steps=12 format=3 uid="uid://b4u66mxndxbrg"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorTools/MapEditorToolsPanel.cs" id="1_mqp1c"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorTools/DoorHoverArea.cs" id="2_6qfy3"]
@@ -6,10 +6,23 @@
[ext_resource type="Script" path="res://src/game/ui/mapEditorTools/DoorDragArea.cs" id="3_3w0w6"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorTools/DoorDragButton.cs" id="3_45muq"]
[ext_resource type="Texture2D" uid="uid://4wupcp53rrpi" path="res://resource/sprite/ui/mapEditorTools/DoorDragButton.png" id="3_trbb5"]
+[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="6_krtnu"]
[ext_resource type="Texture2D" uid="uid://dnty1a2tcawos" path="res://resource/sprite/ui/commonIcon/Mark.png" id="6_n7h3g"]
[ext_resource type="Script" path="res://src/game/ui/mapEditorTools/MarkTool.cs" id="7_ekxcj"]
[ext_resource type="Texture2D" uid="uid://cuntr7hec044f" path="res://resource/sprite/ui/commonIcon/Select.png" id="7_mqmd6"]
+[sub_resource type="ShaderMaterial" id="ShaderMaterial_wxp5t"]
+resource_local_to_scene = true
+shader = ExtResource("6_krtnu")
+shader_parameter/blend = Color(1, 1, 1, 1)
+shader_parameter/schedule = 0.0
+shader_parameter/modulate = Color(1, 1, 1, 1)
+shader_parameter/show_outline = true
+shader_parameter/outline_color = Color(0, 0, 0, 1)
+shader_parameter/outline_rainbow = false
+shader_parameter/outline_use_blend = true
+shader_parameter/grey = 0.0
+
[node name="MapEditorTools" type="Control"]
layout_mode = 3
anchors_preset = 15
@@ -151,10 +164,13 @@
script = ExtResource("3_45muq")
[node name="MarkTemplate" type="TextureRect" parent="ToolRoot"]
+material = SubResource("ShaderMaterial_wxp5t")
layout_mode = 0
-offset_right = 7.0
-offset_bottom = 7.0
+offset_right = 16.0
+offset_bottom = 16.0
texture = ExtResource("6_n7h3g")
+expand_mode = 2
+stretch_mode = 5
script = ExtResource("7_ekxcj")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
diff --git a/DungeonShooting_Godot/resource/config/ActivityBase.json b/DungeonShooting_Godot/resource/config/ActivityBase.json
index cff476b..c49dbc4 100644
--- a/DungeonShooting_Godot/resource/config/ActivityBase.json
+++ b/DungeonShooting_Godot/resource/config/ActivityBase.json
@@ -140,7 +140,7 @@
"IsStatic": false,
"__Material": "",
"Prefab": "res://prefab/weapon/Weapon0009.tscn",
- "Icon": "res://resource/sprite/weapon/weapon0009/Weapon0009.png",
+ "Icon": "res://resource/sprite/weapon/weapon0009/weapon0009.png",
"ShowInMapEditor": true
},
{
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle1/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle1/Preview.png
index f359ae7..908f7ce 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle1/Preview.png
+++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle1/Preview.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle3/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle3/Preview.png
index d6290c0..7276ff0 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle3/Preview.png
+++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle3/Preview.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle4/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle4/Preview.png
index 952d28b..a8f84c1 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle4/Preview.png
+++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle4/Preview.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle5/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle5/Preview.png
index d263705..c9a72b9 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle5/Preview.png
+++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/battle/Battle5/Preview.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start1/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start1/Preinstall.json
index c401b01..d17e052 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start1/Preinstall.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start1/Preinstall.json
@@ -1 +1 @@
-[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":19,"Y":2},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":24,"Y":-14},"Size":{"X":0,"Y":0},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":6,"Y":34},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-42,"Y":9},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0004","Weight":100,"Attr":{"CurrAmmon":"180","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-63,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0005","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"40"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-31,"Y":-16},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0003","Weight":100,"Attr":{"CurrAmmon":"12","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-47,"Y":32},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0006","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":-25},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-80,"Y":14},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0008","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-75,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0009","Weight":100,"Attr":{"CurrAmmon":"1","ResidueAmmo":"25"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":46,"Y":1},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0011","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":36,"Y":49},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0012","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-90,"Y":-23},"Size":{"X":3,"Y":6},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0013","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-91,"Y":-6},"Size":{"X":0,"Y":0},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0014","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]}],[{"Position":{"X":57,"Y":56},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":67,"Y":28},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0.5,"MarkList":[{"Id":"prop5000","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":60,"Y":-19},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1,"MarkList":[{"Id":"prop5001","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":34,"Y":23},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1.5,"MarkList":[{"Id":"prop0002","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-11,"Y":8},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-20,"Y":33},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]}]]}]
\ No newline at end of file
+[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":15,"Y":12},"Size":{"X":14,"Y":16},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":23,"Y":-7},"Size":{"X":30,"Y":12},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":8,"Y":32},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-40,"Y":7},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0004","Weight":100,"Attr":{"CurrAmmon":"180","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-63,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0005","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"40"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-31,"Y":-16},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0003","Weight":100,"Attr":{"CurrAmmon":"12","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-54,"Y":33},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0006","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":-25},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-76,"Y":21},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0008","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-82,"Y":53},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0009","Weight":100,"Attr":{"CurrAmmon":"1","ResidueAmmo":"25"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":58,"Y":4},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0011","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":45,"Y":55},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0012","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-90,"Y":-26},"Size":{"X":13,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0013","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-91,"Y":-6},"Size":{"X":14,"Y":13},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0014","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]}],[{"Position":{"X":72,"Y":62},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":67,"Y":28},"Size":{"X":16,"Y":17},"SpecialMarkType":0,"DelayTime":0.5,"MarkList":[{"Id":"prop5000","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":60,"Y":-19},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1,"MarkList":[{"Id":"prop5001","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":37,"Y":24},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1.5,"MarkList":[{"Id":"prop0002","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-11,"Y":6},"Size":{"X":18,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-21,"Y":32},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]}]]},{"Name":"test2","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":0,"Y":0},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]}]]}]
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start3/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start3/Preinstall.json
index e064a98..876f2c4 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start3/Preinstall.json
+++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start3/Preinstall.json
@@ -1 +1 @@
-[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":-84,"Y":-46},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":-56,"Y":-72},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]}],[{"Position":{"X":30,"Y":75},"Size":{"X":29,"Y":28},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"-1","Weapon":null},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":25,"Y":-16},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0.8,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]}]]}]
\ No newline at end of file
+[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":-84,"Y":-46},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":-56,"Y":-72},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]}],[{"Position":{"X":33,"Y":65},"Size":{"X":29,"Y":28},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"enemy0001","Weight":100,"Attr":{"Face":"-1","Weapon":null},"Altitude":0,"VerticalSpeed":0}]},{"Position":{"X":25,"Y":-16},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0.8,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]}]]}]
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/outlet/End1/Preview.png b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/outlet/End1/Preview.png
index 6224d08..81b14c4 100644
--- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/outlet/End1/Preview.png
+++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/outlet/End1/Preview.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/MarkCell_placeholder.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/MarkCell_placeholder.png
new file mode 100644
index 0000000..96254ab
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/MarkCell_placeholder.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/MarkCell_placeholder.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/MarkCell_placeholder.png.import
new file mode 100644
index 0000000..c831760
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/MarkCell_placeholder.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://btetxb0hqoifk"
+path="res://.godot/imported/MarkCell_placeholder.png-3a18357616f44b78a52dfd42481b4ab7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/MarkCell_placeholder.png"
+dest_files=["res://.godot/imported/MarkCell_placeholder.png-3a18357616f44b78a52dfd42481b4ab7.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/UnknownActivity.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/UnknownActivity.png
new file mode 100644
index 0000000..6a1506e
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/UnknownActivity.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/UnknownActivity.png.import b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/UnknownActivity.png.import
new file mode 100644
index 0000000..ffbfaed
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/UnknownActivity.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://1eqav76paiqv"
+path="res://.godot/imported/UnknownActivity.png-5fbff6de6d1cc957c18d5771c90605f2.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/ui/commonIcon/UnknownActivity.png"
+dest_files=["res://.godot/imported/UnknownActivity.png-5fbff6de6d1cc957c18d5771c90605f2.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/activity/ActivityObject.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs
index e5d9cd2..acf87b7 100644
--- a/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs
+++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject.cs
@@ -217,11 +217,11 @@
///
public bool ShowOutline
{
- get => _blendShaderMaterial == null ? false : _blendShaderMaterial.GetShaderParameter(_shader_show_outline).AsBool();
+ get => _blendShaderMaterial == null ? false : _blendShaderMaterial.GetShaderParameter(ShaderParamNames.ShowOutline).AsBool();
set
{
- _blendShaderMaterial?.SetShaderParameter(_shader_show_outline, value);
- _shadowBlendShaderMaterial?.SetShaderParameter(_shader_show_outline, value);
+ _blendShaderMaterial?.SetShaderParameter(ShaderParamNames.ShowOutline, value);
+ _shadowBlendShaderMaterial?.SetShaderParameter(ShaderParamNames.ShowOutline, value);
}
}
@@ -230,8 +230,8 @@
///
public Color OutlineColor
{
- get => _blendShaderMaterial == null ? Colors.Black : _blendShaderMaterial.GetShaderParameter(_shader_outline_color).AsColor();
- set => _blendShaderMaterial?.SetShaderParameter(_shader_outline_color, value);
+ get => _blendShaderMaterial == null ? Colors.Black : _blendShaderMaterial.GetShaderParameter(ShaderParamNames.OutlineColor).AsColor();
+ set => _blendShaderMaterial?.SetShaderParameter(ShaderParamNames.OutlineColor, value);
}
///
@@ -239,8 +239,8 @@
///
public float Grey
{
- get => _blendShaderMaterial == null ? 0 : _blendShaderMaterial.GetShaderParameter(_shader_grey).AsSingle();
- set => _blendShaderMaterial?.SetShaderParameter(_shader_grey, value);
+ get => _blendShaderMaterial == null ? 0 : _blendShaderMaterial.GetShaderParameter(ShaderParamNames.Grey).AsSingle();
+ set => _blendShaderMaterial?.SetShaderParameter(ShaderParamNames.Grey, value);
}
///
@@ -256,10 +256,6 @@
// --------------------------------------------------------------------------------
- private static readonly StringName _shader_grey = "grey";
- private static readonly StringName _shader_outline_color = "outline_color";
- private static readonly StringName _shader_show_outline = "show_outline";
-
//是否正在调用组件 Update 函数
private bool _updatingComp = false;
//组件集合
@@ -368,8 +364,8 @@
_shadowBlendShaderMaterial = ShadowSprite.Material as ShaderMaterial;
if (_shadowBlendShaderMaterial != null && _blendShaderMaterial != null)
{
- var value = _blendShaderMaterial.GetShaderParameter(_shader_show_outline);
- _shadowBlendShaderMaterial.SetShaderParameter(_shader_show_outline, value);
+ var value = _blendShaderMaterial.GetShaderParameter(ShaderParamNames.ShowOutline);
+ _shadowBlendShaderMaterial.SetShaderParameter(ShaderParamNames.ShowOutline, value);
}
ShadowSprite.Visible = false;
diff --git a/DungeonShooting_Godot/src/game/ShaderParamNames.cs b/DungeonShooting_Godot/src/game/ShaderParamNames.cs
new file mode 100644
index 0000000..e09a4c7
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ShaderParamNames.cs
@@ -0,0 +1,32 @@
+
+using Godot;
+
+///
+/// Shader 中的参数名称
+///
+public static class ShaderParamNames
+{
+ ///
+ /// 灰度
+ ///
+ public static readonly StringName Grey = "grey";
+ ///
+ /// 轮廓颜色
+ ///
+ public static readonly StringName OutlineColor = "outline_color";
+ ///
+ /// 是否显示轮廓
+ ///
+ public static readonly StringName ShowOutline = "show_outline";
+
+ ///
+ /// 快速设置一个材质的 shader 材质参数
+ ///
+ public static void SetShaderMaterialParameter(this Material material, StringName param, Variant value)
+ {
+ if (material is ShaderMaterial shaderMaterial)
+ {
+ shaderMaterial.SetShaderParameter(param, value);
+ }
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/data/MarkInfoVisibleData.cs b/DungeonShooting_Godot/src/game/data/MarkInfoVisibleData.cs
new file mode 100644
index 0000000..d241ac0
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/data/MarkInfoVisibleData.cs
@@ -0,0 +1,15 @@
+
+///
+/// 编辑器标记数据显示隐藏状态数据
+///
+public struct MarkInfoVisibleData
+{
+ public MarkInfo MarkInfo;
+ public bool Visible;
+
+ public MarkInfoVisibleData(MarkInfo markInfo, bool visible)
+ {
+ MarkInfo = markInfo;
+ Visible = visible;
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/event/EventEnum.cs b/DungeonShooting_Godot/src/game/event/EventEnum.cs
index e4e6e99..b08d418 100644
--- a/DungeonShooting_Godot/src/game/event/EventEnum.cs
+++ b/DungeonShooting_Godot/src/game/event/EventEnum.cs
@@ -143,4 +143,8 @@
/// 删除标记, 参数
///
OnDeleteMark,
+ ///
+ /// 设置标记显示状态, 参数
+ ///
+ OnSetMarkVisible,
}
diff --git a/DungeonShooting_Godot/src/game/manager/EditorManager.cs b/DungeonShooting_Godot/src/game/manager/EditorManager.cs
index 2e4e2a2..e6bc977 100644
--- a/DungeonShooting_Godot/src/game/manager/EditorManager.cs
+++ b/DungeonShooting_Godot/src/game/manager/EditorManager.cs
@@ -84,6 +84,10 @@
}
}
+ ///
+ /// 选中预设
+ ///
+ /// 预设索引
public static void SetSelectPreinstallIndex(int index)
{
if (SelectRoom == null)
@@ -108,7 +112,11 @@
EventManager.EmitEvent(EventEnum.OnSelectPreinstall, SelectPreinstall);
}
}
-
+
+ ///
+ /// 选中波数
+ ///
+ /// 波数索引
public static void SetSelectWaveIndex(int index)
{
if (SelectPreinstall == null)
@@ -140,6 +148,9 @@
}
}
+ ///
+ /// 选中某个标记
+ ///
public static void SetSelectMark(MarkInfo markInfo)
{
if (SelectMark != markInfo)
diff --git a/DungeonShooting_Godot/src/game/manager/ResourceManager.cs b/DungeonShooting_Godot/src/game/manager/ResourceManager.cs
index c4d4962..4220c89 100644
--- a/DungeonShooting_Godot/src/game/manager/ResourceManager.cs
+++ b/DungeonShooting_Godot/src/game/manager/ResourceManager.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using Config;
using Godot;
///
@@ -169,6 +170,19 @@
{
return Load(path, useCache);
}
+
+ ///
+ /// 根据 ActivityBase 表 Id 获取物体图标
+ ///
+ public static Texture2D GetActivityIcon(string id)
+ {
+ if (id != null && ExcelConfig.ActivityBase_Map.TryGetValue(id, out var activityBase))
+ {
+ return LoadTexture2D(activityBase.Icon);
+ }
+
+ return LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_UnknownActivity_png);
+ }
///
/// 将普通路径转化为 Godot 资源路径
diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
index 33f5a53..19463ca 100644
--- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
+++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
@@ -297,6 +297,7 @@
public const string resource_sprite_ui_commonIcon_Lock_png = "res://resource/sprite/ui/commonIcon/Lock.png";
public const string resource_sprite_ui_commonIcon_Mark_png = "res://resource/sprite/ui/commonIcon/Mark.png";
public const string resource_sprite_ui_commonIcon_MarkCell_png = "res://resource/sprite/ui/commonIcon/MarkCell.png";
+ public const string resource_sprite_ui_commonIcon_MarkCell_placeholder_png = "res://resource/sprite/ui/commonIcon/MarkCell_placeholder.png";
public const string resource_sprite_ui_commonIcon_PenTool_png = "res://resource/sprite/ui/commonIcon/PenTool.png";
public const string resource_sprite_ui_commonIcon_Play_png = "res://resource/sprite/ui/commonIcon/Play.png";
public const string resource_sprite_ui_commonIcon_Right_png = "res://resource/sprite/ui/commonIcon/Right.png";
@@ -306,6 +307,7 @@
public const string resource_sprite_ui_commonIcon_Select2_png = "res://resource/sprite/ui/commonIcon/Select2.png";
public const string resource_sprite_ui_commonIcon_Setting_png = "res://resource/sprite/ui/commonIcon/Setting.png";
public const string resource_sprite_ui_commonIcon_Unknown_png = "res://resource/sprite/ui/commonIcon/Unknown.png";
+ public const string resource_sprite_ui_commonIcon_UnknownActivity_png = "res://resource/sprite/ui/commonIcon/UnknownActivity.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_commonIcon_WaveCell_png = "res://resource/sprite/ui/commonIcon/WaveCell.png";
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorMarkCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorMarkCell.cs
index 8f96ec5..f22d72c 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorMarkCell.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorMarkCell.cs
@@ -1,5 +1,6 @@
using System;
using Config;
+using Godot;
using UI.MapEditor;
namespace UI.MapEditorMapMark;
@@ -17,6 +18,7 @@
public override void OnSetData(MapEditorMapMarkPanel.MarkCellData data)
{
+ var textureRect = CellNode.L_MarkButton.L_MarkIcon.Instance;
var text = "";
//物体名称
if (data.MarkInfo.MarkList != null && data.MarkInfo.MarkList.Count > 0)
@@ -33,16 +35,21 @@
str += ExcelConfig.ActivityBase_Map[markInfoItem.Id].Name;
}
text += str;
+ //显示图标
+ var markInfo = data.MarkInfo.MarkList[0];
+ textureRect.Texture = ResourceManager.GetActivityIcon(markInfo.Id);
}
else
{
if (data.MarkInfo.SpecialMarkType == SpecialMarkType.BirthPoint)
{
text = "出生标记";
+ textureRect.Texture = ResourceManager.GetActivityIcon(null);
}
else
{
text += "空";
+ textureRect.Texture = null;
}
}
@@ -56,6 +63,7 @@
text += "\n" + data.MarkInfo.DelayTime + "秒";
}
+ //显示文本
CellNode.L_MarkButton.Instance.Text = text;
}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorWaveCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorWaveCell.cs
index f03c09a..2e5786c 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorWaveCell.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/EditorWaveCell.cs
@@ -6,6 +6,11 @@
public class EditorWaveCell : UiCell>
{
+ ///
+ /// 标记显示/隐藏状态
+ ///
+ public bool MarkVisible { get; private set; } = true;
+
public UiGrid MarkGrid;
public override void OnInit()
@@ -13,6 +18,7 @@
//这里不绑定 Click 函数, 而是绑定 OnClickHandler, 因为 Select 交给 MapEditorMapMarkPanel 处理了
CellNode.L_WaveContainer.L_WaveButton.Instance.Pressed += OnClickHandler;
CellNode.L_WaveContainer.L_TextureButton.Instance.Pressed += OnExpandOrClose;
+ CellNode.L_WaveContainer.L_WaveVisibleButton.Instance.Pressed += OnChangeMarkVisible;
CellNode.L_MarginContainer.L_AddMarkButton.Instance.Pressed += OnAddMark;
CellNode.L_MarkContainer.L_MarkItem.Instance.SetHorizontalExpand(true);
@@ -34,6 +40,11 @@
MarkGrid.SetDataList(array);
//执行排序操作
MarkGrid.Sort();
+
+ if (!MarkVisible)
+ {
+ SetWaveVisible(true);
+ }
}
public override void OnRefreshIndex()
@@ -98,6 +109,40 @@
}
///
+ /// 点击显示/隐藏按钮
+ ///
+ public void OnChangeMarkVisible()
+ {
+ var val = !MarkVisible;
+ SetWaveVisible(val);
+
+ //通知标记隐藏
+ for (var i = 0; i < MarkGrid.Count; i++)
+ {
+ var markCellData = MarkGrid.GetCell(i).Data;
+ EventManager.EmitEvent(EventEnum.OnSetMarkVisible, new MarkInfoVisibleData(markCellData.MarkInfo, val));
+ }
+ }
+
+ ///
+ /// 设置 WaveVisibleButton 按钮显示的图标, 显示/隐藏
+ ///
+ public void SetWaveVisible(bool v)
+ {
+ MarkVisible = v;
+ if (v)
+ {
+ CellNode.L_WaveContainer.L_WaveVisibleButton.Instance.Icon =
+ ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_Visible_png);
+ }
+ else
+ {
+ CellNode.L_WaveContainer.L_WaveVisibleButton.Instance.Icon =
+ ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_commonIcon_Hide_png);
+ }
+ }
+
+ ///
/// 是否展开
///
public bool IsExpand()
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMark.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMark.cs
index 2661fec..75f5c82 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMark.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMark.cs
@@ -12,7 +12,7 @@
{
get
{
- if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer((MapEditorMapMarkPanel)this, GetNodeOrNull("VBoxContainer"));
+ if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer((MapEditorMapMarkPanel)this, GetNode("VBoxContainer"));
return _L_VBoxContainer;
}
}
@@ -25,6 +25,7 @@
public sealed override void OnInitNestedUi()
{
+
}
///
@@ -84,7 +85,7 @@
{
get
{
- if (_L_PreinstallOption == null) _L_PreinstallOption = new PreinstallOption(UiPanel, Instance.GetNodeOrNull("PreinstallOption"));
+ if (_L_PreinstallOption == null) _L_PreinstallOption = new PreinstallOption(UiPanel, Instance.GetNode("PreinstallOption"));
return _L_PreinstallOption;
}
}
@@ -97,7 +98,7 @@
{
get
{
- if (_L_AddPreinstall == null) _L_AddPreinstall = new AddPreinstall(UiPanel, Instance.GetNodeOrNull("AddPreinstall"));
+ if (_L_AddPreinstall == null) _L_AddPreinstall = new AddPreinstall(UiPanel, Instance.GetNode("AddPreinstall"));
return _L_AddPreinstall;
}
}
@@ -110,7 +111,7 @@
{
get
{
- if (_L_EditPreinstall == null) _L_EditPreinstall = new EditPreinstall(UiPanel, Instance.GetNodeOrNull("EditPreinstall"));
+ if (_L_EditPreinstall == null) _L_EditPreinstall = new EditPreinstall(UiPanel, Instance.GetNode("EditPreinstall"));
return _L_EditPreinstall;
}
}
@@ -123,7 +124,7 @@
{
get
{
- if (_L_DeletePreinstall == null) _L_DeletePreinstall = new DeletePreinstall(UiPanel, Instance.GetNodeOrNull("DeletePreinstall"));
+ if (_L_DeletePreinstall == null) _L_DeletePreinstall = new DeletePreinstall(UiPanel, Instance.GetNode("DeletePreinstall"));
return _L_DeletePreinstall;
}
}
@@ -172,7 +173,7 @@
{
get
{
- if (_L_EditButton == null) _L_EditButton = new EditButton(UiPanel, Instance.GetNodeOrNull("EditButton"));
+ if (_L_EditButton == null) _L_EditButton = new EditButton(UiPanel, Instance.GetNode("EditButton"));
return _L_EditButton;
}
}
@@ -185,7 +186,7 @@
{
get
{
- if (_L_DeleteButton == null) _L_DeleteButton = new DeleteButton(UiPanel, Instance.GetNodeOrNull("DeleteButton"));
+ if (_L_DeleteButton == null) _L_DeleteButton = new DeleteButton(UiPanel, Instance.GetNode("DeleteButton"));
return _L_DeleteButton;
}
}
@@ -234,7 +235,7 @@
{
get
{
- if (_L_Select == null) _L_Select = new Select(UiPanel, Instance.GetNodeOrNull("Select"));
+ if (_L_Select == null) _L_Select = new Select(UiPanel, Instance.GetNode("Select"));
return _L_Select;
}
}
@@ -245,6 +246,15 @@
}
///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.WaveContainer.WaveVisibleButton
+ ///
+ public class WaveVisibleButton : UiNode
+ {
+ public WaveVisibleButton(MapEditorMapMarkPanel uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override WaveVisibleButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
/// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.WaveContainer
///
public class WaveContainer : UiNode
@@ -256,7 +266,7 @@
{
get
{
- if (_L_TextureButton == null) _L_TextureButton = new TextureButton(UiPanel, Instance.GetNodeOrNull("TextureButton"));
+ if (_L_TextureButton == null) _L_TextureButton = new TextureButton(UiPanel, Instance.GetNode("TextureButton"));
return _L_TextureButton;
}
}
@@ -269,12 +279,25 @@
{
get
{
- if (_L_WaveButton == null) _L_WaveButton = new WaveButton(UiPanel, Instance.GetNodeOrNull("WaveButton"));
+ if (_L_WaveButton == null) _L_WaveButton = new WaveButton(UiPanel, Instance.GetNode("WaveButton"));
return _L_WaveButton;
}
}
private WaveButton _L_WaveButton;
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.WaveVisibleButton
+ ///
+ public WaveVisibleButton L_WaveVisibleButton
+ {
+ get
+ {
+ if (_L_WaveVisibleButton == null) _L_WaveVisibleButton = new WaveVisibleButton(UiPanel, Instance.GetNode("WaveVisibleButton"));
+ return _L_WaveVisibleButton;
+ }
+ }
+ private WaveVisibleButton _L_WaveVisibleButton;
+
public WaveContainer(MapEditorMapMarkPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { }
public override WaveContainer Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate());
}
@@ -300,7 +323,7 @@
{
get
{
- if (_L_AddMarkButton == null) _L_AddMarkButton = new AddMarkButton(UiPanel, Instance.GetNodeOrNull("AddMarkButton"));
+ if (_L_AddMarkButton == null) _L_AddMarkButton = new AddMarkButton(UiPanel, Instance.GetNode("AddMarkButton"));
return _L_AddMarkButton;
}
}
@@ -311,6 +334,15 @@
}
///
+ /// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.MarkContainer.MarkItem.MarkButton.MarkIcon
+ ///
+ public class MarkIcon : UiNode
+ {
+ public MarkIcon(MapEditorMapMarkPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { }
+ public override MarkIcon Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate());
+ }
+
+ ///
/// 类型: , 路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.MarkContainer.MarkItem.MarkButton.Select
///
public class Select_1 : UiNode
@@ -325,13 +357,26 @@
public class MarkButton : UiNode
{
///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.MarkContainer.MarkItem.MarkIcon
+ ///
+ public MarkIcon L_MarkIcon
+ {
+ get
+ {
+ if (_L_MarkIcon == null) _L_MarkIcon = new MarkIcon(UiPanel, Instance.GetNode("MarkIcon"));
+ return _L_MarkIcon;
+ }
+ }
+ private MarkIcon _L_MarkIcon;
+
+ ///
/// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.MarkContainer.MarkItem.Select
///
public Select_1 L_Select
{
get
{
- if (_L_Select == null) _L_Select = new Select_1(UiPanel, Instance.GetNodeOrNull("Select"));
+ if (_L_Select == null) _L_Select = new Select_1(UiPanel, Instance.GetNode("Select"));
return _L_Select;
}
}
@@ -353,7 +398,7 @@
{
get
{
- if (_L_MarkButton == null) _L_MarkButton = new MarkButton(UiPanel, Instance.GetNodeOrNull("MarkButton"));
+ if (_L_MarkButton == null) _L_MarkButton = new MarkButton(UiPanel, Instance.GetNode("MarkButton"));
return _L_MarkButton;
}
}
@@ -375,7 +420,7 @@
{
get
{
- if (_L_MarkItem == null) _L_MarkItem = new MarkItem(UiPanel, Instance.GetNodeOrNull("MarkItem"));
+ if (_L_MarkItem == null) _L_MarkItem = new MarkItem(UiPanel, Instance.GetNode("MarkItem"));
return _L_MarkItem;
}
}
@@ -397,7 +442,7 @@
{
get
{
- if (_L_WaveContainer == null) _L_WaveContainer = new WaveContainer(UiPanel, Instance.GetNodeOrNull("WaveContainer"));
+ if (_L_WaveContainer == null) _L_WaveContainer = new WaveContainer(UiPanel, Instance.GetNode("WaveContainer"));
return _L_WaveContainer;
}
}
@@ -410,7 +455,7 @@
{
get
{
- if (_L_MarginContainer == null) _L_MarginContainer = new MarginContainer(UiPanel, Instance.GetNodeOrNull("MarginContainer"));
+ if (_L_MarginContainer == null) _L_MarginContainer = new MarginContainer(UiPanel, Instance.GetNode("MarginContainer"));
return _L_MarginContainer;
}
}
@@ -423,7 +468,7 @@
{
get
{
- if (_L_MarkContainer == null) _L_MarkContainer = new MarkContainer(UiPanel, Instance.GetNodeOrNull("MarkContainer"));
+ if (_L_MarkContainer == null) _L_MarkContainer = new MarkContainer(UiPanel, Instance.GetNode("MarkContainer"));
return _L_MarkContainer;
}
}
@@ -445,7 +490,7 @@
{
get
{
- if (_L_AddWaveButton == null) _L_AddWaveButton = new AddWaveButton(UiPanel, Instance.GetNodeOrNull("AddWaveButton"));
+ if (_L_AddWaveButton == null) _L_AddWaveButton = new AddWaveButton(UiPanel, Instance.GetNode("AddWaveButton"));
return _L_AddWaveButton;
}
}
@@ -458,7 +503,7 @@
{
get
{
- if (_L_WaveItem == null) _L_WaveItem = new WaveItem(UiPanel, Instance.GetNodeOrNull("WaveItem"));
+ if (_L_WaveItem == null) _L_WaveItem = new WaveItem(UiPanel, Instance.GetNode("WaveItem"));
return _L_WaveItem;
}
}
@@ -480,7 +525,7 @@
{
get
{
- if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer_1(UiPanel, Instance.GetNodeOrNull("VBoxContainer"));
+ if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer_1(UiPanel, Instance.GetNode("VBoxContainer"));
return _L_VBoxContainer;
}
}
@@ -502,7 +547,7 @@
{
get
{
- if (_L_MarkLabel == null) _L_MarkLabel = new MarkLabel(UiPanel, Instance.GetNodeOrNull("MarkLabel"));
+ if (_L_MarkLabel == null) _L_MarkLabel = new MarkLabel(UiPanel, Instance.GetNode("MarkLabel"));
return _L_MarkLabel;
}
}
@@ -515,7 +560,7 @@
{
get
{
- if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer(UiPanel, Instance.GetNodeOrNull("HBoxContainer"));
+ if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer(UiPanel, Instance.GetNode("HBoxContainer"));
return _L_HBoxContainer;
}
}
@@ -528,7 +573,7 @@
{
get
{
- if (_L_MarkLabel2 == null) _L_MarkLabel2 = new MarkLabel2(UiPanel, Instance.GetNodeOrNull("MarkLabel2"));
+ if (_L_MarkLabel2 == null) _L_MarkLabel2 = new MarkLabel2(UiPanel, Instance.GetNode("MarkLabel2"));
return _L_MarkLabel2;
}
}
@@ -541,7 +586,7 @@
{
get
{
- if (_L_DynamicTool == null) _L_DynamicTool = new DynamicTool(UiPanel, Instance.GetNodeOrNull("DynamicTool"));
+ if (_L_DynamicTool == null) _L_DynamicTool = new DynamicTool(UiPanel, Instance.GetNode("DynamicTool"));
return _L_DynamicTool;
}
}
@@ -554,7 +599,7 @@
{
get
{
- if (_L_ScrollContainer == null) _L_ScrollContainer = new ScrollContainer(UiPanel, Instance.GetNodeOrNull("ScrollContainer"));
+ if (_L_ScrollContainer == null) _L_ScrollContainer = new ScrollContainer(UiPanel, Instance.GetNode("ScrollContainer"));
return _L_ScrollContainer;
}
}
@@ -631,6 +676,11 @@
public WaveButton S_WaveButton => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveItem.L_WaveContainer.L_WaveButton;
///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.WaveContainer.WaveVisibleButton
+ ///
+ public WaveVisibleButton S_WaveVisibleButton => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveItem.L_WaveContainer.L_WaveVisibleButton;
+
+ ///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.WaveContainer
///
public WaveContainer S_WaveContainer => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveItem.L_WaveContainer;
@@ -646,6 +696,11 @@
public MarginContainer S_MarginContainer => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveItem.L_MarginContainer;
///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.MarkContainer.MarkItem.MarkButton.MarkIcon
+ ///
+ public MarkIcon S_MarkIcon => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveItem.L_MarkContainer.L_MarkItem.L_MarkButton.L_MarkIcon;
+
+ ///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorMapMark.VBoxContainer.ScrollContainer.VBoxContainer.WaveItem.MarkContainer.MarkItem.MarkButton
///
public MarkButton S_MarkButton => L_VBoxContainer.L_ScrollContainer.L_VBoxContainer.L_WaveItem.L_MarkContainer.L_MarkItem.L_MarkButton;
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs
index 41ed879..4bd798e 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs
@@ -85,6 +85,7 @@
_eventFactory.RemoveAllEventListener();
_eventFactory = null;
_grid.Destroy();
+ S_DynamicTool.QueueFree();
}
//选中标记回调
@@ -165,8 +166,9 @@
{
//清除选中项
RemoveSelectCell();
- EditorManager.SetSelectWaveIndex(-1);
//记录选中波数
+ EditorManager.SetSelectWaveIndex(-1);
+ //记录选中的预设
EditorManager.SetSelectPreinstallIndex((int)index);
var preinstall = EditorManager.SelectRoom.Preinstall;
if (index >= 0 && index <= preinstall.Count)
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs
index 0e97028..d0eee19 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MapEditorToolsPanel.cs
@@ -97,6 +97,7 @@
_eventFactory.AddEventListener(EventEnum.OnCreateMark, OnCreateMarkTool);
_eventFactory.AddEventListener(EventEnum.OnSelectMark, OnSelectMarkTool);
_eventFactory.AddEventListener(EventEnum.OnDeleteMark, OnDeleteMarkTool);
+ _eventFactory.AddEventListener(EventEnum.OnSetMarkVisible, OnSetMarkVisible);
_eventFactory.AddEventListener(EventEnum.OnEditMark, OnEditMarkTool);
_eventFactory.AddEventListener(EventEnum.OnSelectPreinstall, RefreshMark);
}
@@ -237,6 +238,16 @@
}
}
+ //设置标记显示状态
+ private void OnSetMarkVisible(object arg)
+ {
+ var data = (MarkInfoVisibleData)arg;
+ if (_currMarkToolsMap.TryGetValue(data.MarkInfo, out var markTemplate))
+ {
+ markTemplate.Instance.Visible = data.Visible;
+ }
+ }
+
//编辑标记
private void OnEditMarkTool(object arg)
{
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MarkAreaTool.cs b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MarkAreaTool.cs
index 1d6d223..b52324f 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MarkAreaTool.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MarkAreaTool.cs
@@ -4,6 +4,9 @@
namespace UI.MapEditorTools;
+///
+/// 标记区域工具
+///
public partial class MarkAreaTool : Node2D
{
//鼠标悬停颜色
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MarkTool.cs b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MarkTool.cs
index b95df0a..47b3843 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorTools/MarkTool.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorTools/MarkTool.cs
@@ -117,6 +117,15 @@
Position = markInfo.Position.AsVector2() - (Size / 2).Ceil();
_startPos = GlobalPosition;
MarkAreaTool.InitData(_toolNode.UiPanel.S_ToolRoot, this);
+ //显示图标
+ if (markInfo.MarkList.Count > 0)
+ {
+ Texture = ResourceManager.GetActivityIcon(markInfo.MarkList[0].Id);
+ }
+ else
+ {
+ Texture = ResourceManager.GetActivityIcon(null);
+ }
}
private void OnMouseEntered()