diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityObject.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityObject.xlsx
index c3267c9..e134cdf 100644
--- a/DungeonShooting_Godot/excel/excelFile/ActivityObject.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/ActivityObject.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx
index c890281..4b24975 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/Weapon.xlsx b/DungeonShooting_Godot/excel/excelFile/Weapon.xlsx
index ed47d6d..e5446ab 100644
--- a/DungeonShooting_Godot/excel/excelFile/Weapon.xlsx
+++ b/DungeonShooting_Godot/excel/excelFile/Weapon.xlsx
Binary files differ
diff --git a/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png b/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png
deleted file mode 100644
index dd42c8a..0000000
--- a/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png
+++ /dev/null
Binary files differ
diff --git a/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png.import b/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png.import
deleted file mode 100644
index 3bc8abf..0000000
--- a/DungeonShooting_Godot/prefab/prop/buff/Weapon0005.png.import
+++ /dev/null
@@ -1,34 +0,0 @@
-[remap]
-
-importer="texture"
-type="CompressedTexture2D"
-uid="uid://dl5kik1ejdb61"
-path="res://.godot/imported/Weapon0005.png-441b09525093d086af82f4b42835379e.ctex"
-metadata={
-"vram_texture": false
-}
-
-[deps]
-
-source_file="res://prefab/prop/buff/Weapon0005.png"
-dest_files=["res://.godot/imported/Weapon0005.png-441b09525093d086af82f4b42835379e.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/prefab/ui/EditorWindow.tscn b/DungeonShooting_Godot/prefab/ui/EditorWindow.tscn
index 223d7fd..11b5e23 100644
--- a/DungeonShooting_Godot/prefab/ui/EditorWindow.tscn
+++ b/DungeonShooting_Godot/prefab/ui/EditorWindow.tscn
@@ -22,6 +22,7 @@
color = Color(0, 0, 0, 0.235294)
[node name="Window" type="Window" parent="."]
+canvas_item_default_texture_filter = 0
title = "标题"
initial_position = 1
size = Vector2i(500, 350)
diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn
new file mode 100644
index 0000000..7e76eee
--- /dev/null
+++ b/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn
@@ -0,0 +1,57 @@
+[gd_scene load_steps=3 format=3 uid="uid://ie52mo5t6l2h"]
+
+[ext_resource type="Script" path="res://src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs" id="1_hdfkd"]
+[ext_resource type="Texture2D" uid="uid://uhhfgdhpk7i4" path="res://icon.png" id="2_b0yuv"]
+
+[node name="MapEditorSelectObject" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+script = ExtResource("1_hdfkd")
+
+[node name="ScrollContainer" type="ScrollContainer" parent="."]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="ObjectButton" type="Button" parent="ScrollContainer"]
+custom_minimum_size = Vector2(150, 192)
+layout_mode = 2
+
+[node name="PreviewImage" type="TextureRect" parent="ScrollContainer/ObjectButton"]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = 2.0
+offset_top = 2.0
+offset_right = -2.0
+offset_bottom = -44.0
+grow_horizontal = 2
+grow_vertical = 2
+mouse_filter = 2
+texture = ExtResource("2_b0yuv")
+stretch_mode = 5
+
+[node name="ObjectName" type="Label" parent="ScrollContainer/ObjectButton"]
+layout_mode = 1
+anchors_preset = 12
+anchor_top = 1.0
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_top = -43.0
+offset_right = 150.0
+offset_bottom = 43.0
+grow_horizontal = 2
+grow_vertical = 0
+scale = Vector2(0.5, 0.5)
+text = "武器"
+horizontal_alignment = 1
+vertical_alignment = 1
+autowrap_mode = 3
+clip_text = true
+text_overrun_behavior = 3
diff --git a/DungeonShooting_Godot/resource/config/ActivityObject.json b/DungeonShooting_Godot/resource/config/ActivityObject.json
index 0cd7611..b9c8b46 100644
--- a/DungeonShooting_Godot/resource/config/ActivityObject.json
+++ b/DungeonShooting_Godot/resource/config/ActivityObject.json
@@ -3,224 +3,320 @@
"Id": "role0001",
"Type": 3,
"Name": "",
- "Remark": "\u73A9\u5BB6",
- "Prefab": "res://prefab/role/Role0001.tscn"
+ "Intro": "\u73A9\u5BB6",
+ "Details": "",
+ "Prefab": "res://prefab/role/Role0001.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "enemy0001",
"Type": 4,
"Name": "",
- "Remark": "\u654C\u4EBA",
- "Prefab": "res://prefab/role/Enemy0001.tscn"
+ "Intro": "\u654C\u4EBA",
+ "Details": "",
+ "Prefab": "res://prefab/role/Enemy0001.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "weapon0001",
"Type": 5,
"Name": "\u6B65\u67AA",
- "Remark": "",
- "Prefab": "res://prefab/weapon/Weapon0001.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/weapon/Weapon0001.tscn",
+ "Icon": "res://resource/sprite/weapon/weapon0001/Weapon0001.png",
+ "ShowInMapEditor": true
},
{
"Id": "weapon0002",
"Type": 5,
"Name": "\u9730\u5F39\u67AA",
- "Remark": "",
- "Prefab": "res://prefab/weapon/Weapon0002.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/weapon/Weapon0002.tscn",
+ "Icon": "res://resource/sprite/weapon/weapon0002/Weapon0002.png",
+ "ShowInMapEditor": true
},
{
"Id": "weapon0003",
"Type": 5,
"Name": "\u624B\u67AA",
- "Remark": "",
- "Prefab": "res://prefab/weapon/Weapon0003.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/weapon/Weapon0003.tscn",
+ "Icon": "res://resource/sprite/weapon/weapon0003/Weapon0003.png",
+ "ShowInMapEditor": true
},
{
"Id": "weapon0004",
"Type": 5,
"Name": "\u5200",
- "Remark": "",
- "Prefab": "res://prefab/weapon/Weapon0004.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/weapon/Weapon0004.tscn",
+ "Icon": "res://resource/sprite/weapon/knife1.png",
+ "ShowInMapEditor": true
},
{
"Id": "weapon0005",
"Type": 5,
"Name": "\u72D9\u51FB\u67AA",
- "Remark": "",
- "Prefab": "res://prefab/weapon/Weapon0005.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/weapon/Weapon0005.tscn",
+ "Icon": "res://resource/sprite/weapon/weapon0005/Weapon0005.png",
+ "ShowInMapEditor": true
},
{
"Id": "weapon0006",
"Type": 5,
"Name": "\u51B2\u950B\u67AA",
- "Remark": "",
- "Prefab": "res://prefab/weapon/Weapon0006.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/weapon/Weapon0006.tscn",
+ "Icon": "res://resource/sprite/weapon/weapon0006/Weapon0006.png",
+ "ShowInMapEditor": true
},
{
"Id": "weapon0007",
"Type": 5,
"Name": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA",
- "Remark": "",
- "Prefab": "res://prefab/weapon/Weapon0007.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/weapon/Weapon0007.tscn",
+ "Icon": "res://resource/sprite/weapon/weapon0007/Weapon0007.png",
+ "ShowInMapEditor": true
},
{
"Id": "bullet0001",
"Type": 6,
"Name": "",
- "Remark": "",
- "Prefab": "res://prefab/bullet/Bullet0001.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/bullet/Bullet0001.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "bullet0002",
"Type": 6,
"Name": "",
- "Remark": "",
- "Prefab": "res://prefab/bullet/Bullet0002.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/bullet/Bullet0002.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "bullet0003",
"Type": 6,
"Name": "",
- "Remark": "",
- "Prefab": "res://prefab/bullet/Bullet0003.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/bullet/Bullet0003.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "shell0001",
"Type": 7,
"Name": "",
- "Remark": "",
- "Prefab": "res://prefab/shell/Shell0001.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/shell/Shell0001.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "shell0002",
"Type": 7,
"Name": "",
- "Remark": "",
- "Prefab": "res://prefab/shell/Shell0002.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/shell/Shell0002.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "shell0003",
"Type": 7,
"Name": "",
- "Remark": "",
- "Prefab": "res://prefab/shell/Shell0003.tscn"
+ "Intro": "",
+ "Details": "",
+ "Prefab": "res://prefab/shell/Shell0003.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "effect0001",
"Type": 8,
"Name": "",
- "Remark": "\u654C\u4EBA\u6B7B\u4EA1\u788E\u7247",
- "Prefab": "res://prefab/effect/activityObject/Effect0001.tscn"
+ "Intro": "\u654C\u4EBA\u6B7B\u4EA1\u788E\u7247",
+ "Details": "",
+ "Prefab": "res://prefab/effect/activityObject/Effect0001.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "prop0001",
"Type": 9,
"Name": "\u978B\u5B50",
- "Remark": "\u63D0\u9AD8\u79FB\u52A8\u901F\u5EA6",
- "Prefab": "res://prefab/prop/buff/BuffProp0001.tscn"
+ "Intro": "\u63D0\u9AD8\u79FB\u52A8\u901F\u5EA6",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0001.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0001.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0002",
"Type": 9,
"Name": "\u5FC3\u4E4B\u5BB9\u5668",
- "Remark": "\u63D0\u9AD8\u8840\u91CF\u4E0A\u9650",
- "Prefab": "res://prefab/prop/buff/BuffProp0002.tscn"
+ "Intro": "\u63D0\u9AD8\u8840\u91CF\u4E0A\u9650",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0002.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0002.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0003",
"Type": 9,
"Name": "\u62A4\u76FE",
- "Remark": "\u53EF\u4EE5\u62B5\u6321\u5B50\u5F39\uFF0C\u968F\u65F6\u95F4\u63A8\u79FB\u81EA\u52A8\u6062\u590D",
- "Prefab": "res://prefab/prop/buff/BuffProp0003.tscn"
+ "Intro": "\u53EF\u4EE5\u62B5\u6321\u5B50\u5F39\uFF0C\u968F\u65F6\u95F4\u63A8\u79FB\u81EA\u52A8\u6062\u590D",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0003.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0003.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0004",
"Type": 9,
"Name": "\u62A4\u76FE\u8BA1\u65F6\u5668",
- "Remark": "\u63D0\u9AD8\u62A4\u76FE\u6062\u590D\u901F\u5EA6",
- "Prefab": "res://prefab/prop/buff/BuffProp0004.tscn"
+ "Intro": "\u63D0\u9AD8\u62A4\u76FE\u6062\u590D\u901F\u5EA6",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0004.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0004.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0005",
"Type": 9,
"Name": "\u6740\u4F24\u5F39",
- "Remark": "\u63D0\u9AD8\u5B50\u5F39\u4F24\u5BB3",
- "Prefab": "res://prefab/prop/buff/BuffProp0005.tscn"
+ "Intro": "\u63D0\u9AD8\u5B50\u5F39\u4F24\u5BB3",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0005.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0005.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0006",
"Type": 9,
"Name": "\u7EA2\u5B9D\u77F3\u6212\u6307",
- "Remark": "\u53D7\u4F24\u540E\u5EF6\u957F\u65E0\u654C\u65F6\u95F4",
- "Prefab": "res://prefab/prop/buff/BuffProp0006.tscn"
+ "Intro": "\u53D7\u4F24\u540E\u5EF6\u957F\u65E0\u654C\u65F6\u95F4",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0006.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0006.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0007",
"Type": 9,
"Name": "\u5907\u7528\u62A4\u76FE",
- "Remark": "\u53D7\u4F24\u65F6\u6709\u4E00\u5B9A\u6982\u7387\u62B5\u6D88\u4F24\u5BB3",
- "Prefab": "res://prefab/prop/buff/BuffProp0007.tscn"
+ "Intro": "\u53D7\u4F24\u65F6\u6709\u4E00\u5B9A\u6982\u7387\u62B5\u6D88\u4F24\u5BB3",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0007.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0007.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0008",
"Type": 9,
"Name": "\u773C\u955C",
- "Remark": "\u63D0\u9AD8\u6B66\u5668\u7CBE\u51C6\u5EA6",
- "Prefab": "res://prefab/prop/buff/BuffProp0008.tscn"
+ "Intro": "\u63D0\u9AD8\u6B66\u5668\u7CBE\u51C6\u5EA6",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0008.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0008.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0009",
"Type": 9,
"Name": "\u9AD8\u901F\u5B50\u5F39",
- "Remark": "\u63D0\u9AD8\u5B50\u5F39\u901F\u5EA6\u548C\u5C04\u7A0B",
- "Prefab": "res://prefab/prop/buff/BuffProp0009.tscn"
+ "Intro": "\u63D0\u9AD8\u5B50\u5F39\u901F\u5EA6\u548C\u5C04\u7A0B",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0009.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0009.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop0010",
"Type": 9,
"Name": "\u5206\u88C2\u5B50\u5F39",
- "Remark": "\u5B50\u5F39\u6570\u91CF\u7FFB\u500D, \u4F46\u662F\u7CBE\u51C6\u5EA6\u548C\u4F24\u5BB3\u964D\u4F4E",
- "Prefab": "res://prefab/prop/buff/BuffProp0010.tscn"
+ "Intro": "\u5B50\u5F39\u6570\u91CF\u7FFB\u500D, \u4F46\u662F\u7CBE\u51C6\u5EA6\u548C\u4F24\u5BB3\u964D\u4F4E",
+ "Details": "",
+ "Prefab": "res://prefab/prop/buff/BuffProp0010.tscn",
+ "Icon": "res://resource/sprite/prop/buff/BuffProp0010.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop5000",
"Type": 9,
"Name": "\u533B\u836F\u7BB1",
- "Remark": "\u4F7F\u7528\u540E\u56DE\u590D\u4E00\u9897\u7EA2\u5FC3",
- "Prefab": "res://prefab/prop/active/ActiveProp5000.tscn"
+ "Intro": "\u4F7F\u7528\u540E\u56DE\u590D\u4E00\u9897\u7EA2\u5FC3",
+ "Details": "",
+ "Prefab": "res://prefab/prop/active/ActiveProp5000.tscn",
+ "Icon": "res://resource/sprite/prop/active/ActiveProp5000.png",
+ "ShowInMapEditor": true
},
{
"Id": "prop5001",
"Type": 9,
"Name": "\u5F39\u836F\u7BB1",
- "Remark": "\u4F7F\u7528\u540E\u8865\u5145\u5F53\u524D\u6B66\u5668\u5907\u7528\u5F39\u836F",
- "Prefab": "res://prefab/prop/active/ActiveProp5001.tscn"
+ "Intro": "\u4F7F\u7528\u540E\u8865\u5145\u5F53\u524D\u6B66\u5668\u5907\u7528\u5F39\u836F",
+ "Details": "",
+ "Prefab": "res://prefab/prop/active/ActiveProp5001.tscn",
+ "Icon": "res://resource/sprite/prop/active/ActiveProp5001.png",
+ "ShowInMapEditor": true
},
{
"Id": "other_door_e",
"Type": 99,
"Name": "",
- "Remark": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u4E1C\u4FA7)",
- "Prefab": "res://prefab/map/RoomDoor_E.tscn"
+ "Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u4E1C\u4FA7)",
+ "Details": "",
+ "Prefab": "res://prefab/map/RoomDoor_E.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "other_door_w",
"Type": 99,
"Name": "",
- "Remark": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u897F\u4FA7)",
- "Prefab": "res://prefab/map/RoomDoor_W.tscn"
+ "Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u897F\u4FA7)",
+ "Details": "",
+ "Prefab": "res://prefab/map/RoomDoor_W.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "other_door_s",
"Type": 99,
"Name": "",
- "Remark": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u5357\u4FA7)",
- "Prefab": "res://prefab/map/RoomDoor_S.tscn"
+ "Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u5357\u4FA7)",
+ "Details": "",
+ "Prefab": "res://prefab/map/RoomDoor_S.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
},
{
"Id": "other_door_n",
"Type": 99,
"Name": "",
- "Remark": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u5317\u4FA7)",
- "Prefab": "res://prefab/map/RoomDoor_N.tscn"
+ "Intro": "\u5730\u7262\u623F\u95F4\u7684\u95E8(\u5317\u4FA7)",
+ "Details": "",
+ "Prefab": "res://prefab/map/RoomDoor_N.tscn",
+ "Icon": "",
+ "ShowInMapEditor": false
}
]
\ No newline at end of file
diff --git a/DungeonShooting_Godot/resource/config/Weapon.json b/DungeonShooting_Godot/resource/config/Weapon.json
index 5e197fd..2ee18aa 100644
--- a/DungeonShooting_Godot/resource/config/Weapon.json
+++ b/DungeonShooting_Godot/resource/config/Weapon.json
@@ -3,7 +3,6 @@
"Id": "0001",
"WeaponId": "weapon0001",
"Remark": "\u6B65\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 40,
"WeightType": 2,
"ContinuousShoot": true,
@@ -76,7 +75,6 @@
"Id": "0002",
"WeaponId": "",
"Remark": "\u6B65\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 40,
"WeightType": 2,
"ContinuousShoot": false,
@@ -149,7 +147,6 @@
"Id": "0003",
"WeaponId": "weapon0002",
"Remark": "\u9730\u5F39\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 40,
"WeightType": 2,
"ContinuousShoot": false,
@@ -222,7 +219,6 @@
"Id": "0004",
"WeaponId": "",
"Remark": "\u9730\u5F39\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 40,
"WeightType": 2,
"ContinuousShoot": false,
@@ -295,7 +291,6 @@
"Id": "0005",
"WeaponId": "weapon0003",
"Remark": "\u624B\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 20,
"WeightType": 1,
"ContinuousShoot": false,
@@ -368,7 +363,6 @@
"Id": "0006",
"WeaponId": "",
"Remark": "\u624B\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 20,
"WeightType": 1,
"ContinuousShoot": false,
@@ -441,7 +435,6 @@
"Id": "0007",
"WeaponId": "weapon0004",
"Remark": "\u5200",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 40,
"WeightType": 2,
"ContinuousShoot": false,
@@ -514,7 +507,6 @@
"Id": "0008",
"WeaponId": "",
"Remark": "\u5200",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 40,
"WeightType": 2,
"ContinuousShoot": false,
@@ -587,7 +579,6 @@
"Id": "0009",
"WeaponId": "weapon0005",
"Remark": "\u72D9\u51FB\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 50,
"WeightType": 2,
"ContinuousShoot": false,
@@ -660,7 +651,6 @@
"Id": "0010",
"WeaponId": "",
"Remark": "\u72D9\u51FB\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 50,
"WeightType": 2,
"ContinuousShoot": false,
@@ -733,7 +723,6 @@
"Id": "0011",
"WeaponId": "weapon0006",
"Remark": "\u51B2\u950B\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 30,
"WeightType": 2,
"ContinuousShoot": true,
@@ -806,7 +795,6 @@
"Id": "0012",
"WeaponId": "",
"Remark": "\u51B2\u950B\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 30,
"WeightType": 2,
"ContinuousShoot": false,
@@ -879,7 +867,6 @@
"Id": "0013",
"WeaponId": "weapon0007",
"Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 40,
"WeightType": 2,
"ContinuousShoot": true,
@@ -952,7 +939,6 @@
"Id": "0014",
"WeaponId": "",
"Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA",
- "Icon": "res://resource/sprite/gun/gun4.png",
"Weight": 40,
"WeightType": 2,
"ContinuousShoot": false,
diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001.png.import
index b20c9a6..c36be94 100644
--- a/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://chd2vtesap5cf"
-path="res://.godot/imported/enemy0001.png-1247a3ddf8a1a163d812cad12c4340fd.ctex"
+path="res://.godot/imported/Enemy0001.png-148a38dfa95953b26d890356e8875de4.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/enemy0001/enemy0001.png"
-dest_files=["res://.godot/imported/enemy0001.png-1247a3ddf8a1a163d812cad12c4340fd.ctex"]
+source_file="res://resource/sprite/role/enemy0001/Enemy0001.png"
+dest_files=["res://.godot/imported/Enemy0001.png-148a38dfa95953b26d890356e8875de4.ctex"]
[params]
diff --git a/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001_Debris.png.import b/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001_Debris.png.import
index 56388a2..d563acf 100644
--- a/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001_Debris.png.import
+++ b/DungeonShooting_Godot/resource/sprite/role/enemy0001/enemy0001_Debris.png.import
@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://d2f55lu60x64i"
-path="res://.godot/imported/enemy0001_Debris.png-297a2fb6680cb862a9a085cf58f8268c.ctex"
+path="res://.godot/imported/Enemy0001_Debris.png-ac416dc79cd3c1217b27e1ef1fbe0d0b.ctex"
metadata={
"vram_texture": false
}
[deps]
-source_file="res://resource/sprite/role/enemy0001/enemy0001_Debris.png"
-dest_files=["res://.godot/imported/enemy0001_Debris.png-297a2fb6680cb862a9a085cf58f8268c.ctex"]
+source_file="res://resource/sprite/role/enemy0001/Enemy0001_Debris.png"
+dest_files=["res://.godot/imported/Enemy0001_Debris.png-ac416dc79cd3c1217b27e1ef1fbe0d0b.ctex"]
[params]
diff --git a/DungeonShooting_Godot/src/config/ExcelConfig_ActivityObject.cs b/DungeonShooting_Godot/src/config/ExcelConfig_ActivityObject.cs
index 9234b19..1d3dbe4 100644
--- a/DungeonShooting_Godot/src/config/ExcelConfig_ActivityObject.cs
+++ b/DungeonShooting_Godot/src/config/ExcelConfig_ActivityObject.cs
@@ -35,10 +35,18 @@
public string Name;
///
- /// 物体备注
+ /// 物体简介
+ /// 一句对物体简短的介绍, 比如拾起物体时弹出的描述
///
[JsonInclude]
- public string Remark;
+ public string Intro;
+
+ ///
+ /// 物体详情
+ /// 在图鉴中的描述
+ ///
+ [JsonInclude]
+ public string Details;
///
/// 物体预制场景路径, 场景根节点必须是ActivityObject子类
@@ -47,6 +55,19 @@
public string Prefab;
///
+ /// 物体图标
+ /// 如果不需要在图鉴或者地图编辑器中显示该物体, 则可以不用设置
+ ///
+ [JsonInclude]
+ public string Icon;
+
+ ///
+ /// 是否在地图编辑器中显示该物体
+ ///
+ [JsonInclude]
+ public bool ShowInMapEditor;
+
+ ///
/// 返回浅拷贝出的新对象
///
public ActivityObject Clone()
@@ -55,8 +76,11 @@
inst.Id = Id;
inst.Type = Type;
inst.Name = Name;
- inst.Remark = Remark;
+ inst.Intro = Intro;
+ inst.Details = Details;
inst.Prefab = Prefab;
+ inst.Icon = Icon;
+ inst.ShowInMapEditor = ShowInMapEditor;
return inst;
}
}
diff --git a/DungeonShooting_Godot/src/config/ExcelConfig_Weapon.cs b/DungeonShooting_Godot/src/config/ExcelConfig_Weapon.cs
index 22bf390..7c87cef 100644
--- a/DungeonShooting_Godot/src/config/ExcelConfig_Weapon.cs
+++ b/DungeonShooting_Godot/src/config/ExcelConfig_Weapon.cs
@@ -26,12 +26,6 @@
public string Remark;
///
- /// 武器的图标
- ///
- [JsonInclude]
- public string Icon;
-
- ///
/// 重量
///
[JsonInclude]
@@ -428,7 +422,6 @@
inst.Id = Id;
inst.WeaponId = WeaponId;
inst.Remark = Remark;
- inst.Icon = Icon;
inst.Weight = Weight;
inst.WeightType = WeightType;
inst.ContinuousShoot = ContinuousShoot;
diff --git a/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs b/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs
index b03896f..04d21a8 100644
--- a/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs
+++ b/DungeonShooting_Godot/src/framework/generator/ExcelGenerator.cs
@@ -46,10 +46,10 @@
{
var id = item["Id"];
var name = item["Name"] + "";
- var remark = item["Remark"] + "";
+ var intro = item["Intro"] + "";
code1 += $" /// \n";
code1 += $" /// 名称: {name}
\n";
- code1 += $" /// 备注: {remark.Replace("\n", "
\n /// ")}\n";
+ code1 += $" /// 备注: {intro.Replace("\n", "
\n /// ")}\n";
code1 += $" /// \n";
code1 += $" public const string Id_{id} = \"{id}\";\n";
code2 += $" _activityRegisterMap.Add(\"{id}\", new RegisterActivityData(\"{item["Prefab"]}\", ExcelConfig.ActivityObject_Map[\"{id}\"]));\n";
diff --git a/DungeonShooting_Godot/src/game/GameApplication.cs b/DungeonShooting_Godot/src/game/GameApplication.cs
index a8030eb..955b4d8 100644
--- a/DungeonShooting_Godot/src/game/GameApplication.cs
+++ b/DungeonShooting_Godot/src/game/GameApplication.cs
@@ -138,6 +138,7 @@
//UiManager.Open_Main();
//UiManager.Open_MapEditor();
UiManager.Open_MapEditorProject();
+ //EditorWindowManager.ShowSelectObject("选择物体");
}
public override void _Process(double delta)
diff --git a/DungeonShooting_Godot/src/game/manager/EditorTipsManager.cs b/DungeonShooting_Godot/src/game/manager/EditorTipsManager.cs
deleted file mode 100644
index ad6d582..0000000
--- a/DungeonShooting_Godot/src/game/manager/EditorTipsManager.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-
-using System;
-using UI.EditorTips;
-using UI.EditorWindow;
-
-public static class EditorTipsManager
-{
- ///
- /// 弹出通用提示面板
- ///
- /// 标题
- /// 显示内容
- /// 关闭时的回调
- public static void ShowTips(string title, string message, Action onClose = null)
- {
- var window = UiManager.Open_EditorWindow();
- window.SetWindowTitle(title);
- if (onClose != null)
- {
- window.CloseEvent += onClose;
- }
- window.SetButtonList(
- new EditorWindowPanel.ButtonData("确定", () =>
- {
- window.CloseWindow();
- })
- );
- var body = window.OpenBody(UiManager.UiName.EditorTips);
- body.SetMessage(message);
- }
-}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs b/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs
new file mode 100644
index 0000000..4a3e127
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/manager/EditorWindowManager.cs
@@ -0,0 +1,38 @@
+
+using System;
+using UI.EditorTips;
+using UI.EditorWindow;
+
+public static class EditorWindowManager
+{
+ ///
+ /// 弹出通用提示面板
+ ///
+ /// 标题
+ /// 显示内容
+ /// 关闭时的回调
+ public static void ShowTips(string title, string message, Action onClose = null)
+ {
+ var window = UiManager.Open_EditorWindow();
+ window.SetWindowTitle(title);
+ if (onClose != null)
+ {
+ window.CloseEvent += onClose;
+ }
+ window.SetButtonList(
+ new EditorWindowPanel.ButtonData("确定", () =>
+ {
+ window.CloseWindow();
+ })
+ );
+ var body = window.OpenBody(UiManager.UiName.EditorTips);
+ body.SetMessage(message);
+ }
+
+ public static void ShowSelectObject(string title)
+ {
+ var window = UiManager.Open_EditorWindow();
+ window.SetWindowTitle(title);
+ window.OpenBody(UiManager.UiName.MapEditorSelectObject);
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
index ebc92e3..5a99b16 100644
--- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
+++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
@@ -38,7 +38,6 @@
public const string prefab_prop_buff_BuffProp0008_tscn = "res://prefab/prop/buff/BuffProp0008.tscn";
public const string prefab_prop_buff_BuffProp0009_tscn = "res://prefab/prop/buff/BuffProp0009.tscn";
public const string prefab_prop_buff_BuffProp0010_tscn = "res://prefab/prop/buff/BuffProp0010.tscn";
- public const string prefab_prop_buff_Weapon0005_png = "res://prefab/prop/buff/Weapon0005.png";
public const string prefab_role_Enemy0001_tscn = "res://prefab/role/Enemy0001.tscn";
public const string prefab_role_Role0001_tscn = "res://prefab/role/Role0001.tscn";
public const string prefab_role_RoleTemplate_tscn = "res://prefab/role/RoleTemplate.tscn";
@@ -59,6 +58,7 @@
public const string prefab_ui_MapEditorMapLayer_tscn = "res://prefab/ui/MapEditorMapLayer.tscn";
public const string prefab_ui_MapEditorMapMark_tscn = "res://prefab/ui/MapEditorMapMark.tscn";
public const string prefab_ui_MapEditorProject_tscn = "res://prefab/ui/MapEditorProject.tscn";
+ public const string prefab_ui_MapEditorSelectObject_tscn = "res://prefab/ui/MapEditorSelectObject.tscn";
public const string prefab_ui_MapEditorTools_tscn = "res://prefab/ui/MapEditorTools.tscn";
public const string prefab_ui_RoomUI_tscn = "res://prefab/ui/RoomUI.tscn";
public const string prefab_ui_Settlement_tscn = "res://prefab/ui/Settlement.tscn";
diff --git a/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs b/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs
index 13efd2e..e5d3dab 100644
--- a/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs
+++ b/DungeonShooting_Godot/src/game/manager/UiManager_Methods.cs
@@ -18,6 +18,7 @@
public const string MapEditorMapLayer = "MapEditorMapLayer";
public const string MapEditorMapMark = "MapEditorMapMark";
public const string MapEditorProject = "MapEditorProject";
+ public const string MapEditorSelectObject = "MapEditorSelectObject";
public const string MapEditorTools = "MapEditorTools";
public const string RoomUI = "RoomUI";
public const string Settlement = "Settlement";
@@ -600,6 +601,54 @@
}
///
+ /// 创建 MapEditorSelectObject, 并返回UI实例, 该函数不会打开 Ui
+ ///
+ public static UI.MapEditorSelectObject.MapEditorSelectObjectPanel Create_MapEditorSelectObject()
+ {
+ return CreateUi(UiName.MapEditorSelectObject);
+ }
+
+ ///
+ /// 打开 MapEditorSelectObject, 并返回UI实例
+ ///
+ public static UI.MapEditorSelectObject.MapEditorSelectObjectPanel Open_MapEditorSelectObject()
+ {
+ return OpenUi(UiName.MapEditorSelectObject);
+ }
+
+ ///
+ /// 隐藏 MapEditorSelectObject 的所有实例
+ ///
+ public static void Hide_MapEditorSelectObject()
+ {
+ var uiInstance = Get_MapEditorSelectObject_Instance();
+ foreach (var uiPanel in uiInstance)
+ {
+ uiPanel.HideUi();
+ }
+ }
+
+ ///
+ /// 销毁 MapEditorSelectObject 的所有实例
+ ///
+ public static void Destroy_MapEditorSelectObject()
+ {
+ var uiInstance = Get_MapEditorSelectObject_Instance();
+ foreach (var uiPanel in uiInstance)
+ {
+ uiPanel.Destroy();
+ }
+ }
+
+ ///
+ /// 获取所有 MapEditorSelectObject 的实例, 如果没有实例, 则返回一个空数组
+ ///
+ public static UI.MapEditorSelectObject.MapEditorSelectObjectPanel[] Get_MapEditorSelectObject_Instance()
+ {
+ return GetUiInstance(nameof(UI.MapEditorSelectObject.MapEditorSelectObject));
+ }
+
+ ///
/// 创建 MapEditorTools, 并返回UI实例, 该函数不会打开 Ui
///
public static UI.MapEditorTools.MapEditorToolsPanel Create_MapEditorTools()
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateGroup/MapEditorCreateGroupPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateGroup/MapEditorCreateGroupPanel.cs
index 673bc8c..eb2f954 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateGroup/MapEditorCreateGroupPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateGroup/MapEditorCreateGroupPanel.cs
@@ -18,7 +18,7 @@
//检查名称是否合规
if (!Regex.IsMatch(groupName, "^\\w+$"))
{
- EditorTipsManager.ShowTips("错误", "组名称'" + groupName + "'不符合名称约束, 组名称只允许包含大小写字母和数字!");
+ EditorWindowManager.ShowTips("错误", "组名称'" + groupName + "'不符合名称约束, 组名称只允许包含大小写字母和数字!");
return null;
}
@@ -27,7 +27,7 @@
var dir = new DirectoryInfo(path);
if (dir.Exists && dir.GetDirectories().Length > 0)
{
- EditorTipsManager.ShowTips("错误", $"已经有相同路径的房间了!");
+ EditorWindowManager.ShowTips("错误", $"已经有相同路径的房间了!");
return null;
}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorCreateRoom/MapEditorCreateRoomPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorCreateRoom/MapEditorCreateRoomPanel.cs
index 55a5b36..963b2e1 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorCreateRoom/MapEditorCreateRoomPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorCreateRoom/MapEditorCreateRoomPanel.cs
@@ -67,7 +67,7 @@
//检查名称是否合规
if (!Regex.IsMatch(roomInfo.RoomName, "^\\w+$"))
{
- EditorTipsManager.ShowTips("错误", "房间名称'" + roomInfo.RoomName + "'不符合名称约束, 房间名称只允许包含大小写字母和数字!");
+ EditorWindowManager.ShowTips("错误", "房间名称'" + roomInfo.RoomName + "'不符合名称约束, 房间名称只允许包含大小写字母和数字!");
return null;
}
@@ -82,7 +82,7 @@
if (roomInfo.GroupName == null)
{
- EditorTipsManager.ShowTips("错误", "组名错误!");
+ EditorWindowManager.ShowTips("错误", "组名错误!");
return null;
}
@@ -94,7 +94,7 @@
var dir = new DirectoryInfo(dirPath);
if (dir.Exists && dir.GetFiles().Length > 0)
{
- EditorTipsManager.ShowTips("错误", $"已经有相同路径的房间了!\n路径: {temp}");
+ EditorWindowManager.ShowTips("错误", $"已经有相同路径的房间了!\n路径: {temp}");
return null;
}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs
index 8b8837d..558ca94 100644
--- a/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapLayer/MapEditorMapLayerPanel.cs
@@ -46,7 +46,7 @@
public override void OnDestroyUi()
{
-
+ _grid.Destroy();
}
}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObject.cs b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObject.cs
new file mode 100644
index 0000000..e7d24c9
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObject.cs
@@ -0,0 +1,126 @@
+namespace UI.MapEditorSelectObject;
+
+///
+/// Ui代码, 该类是根据ui场景自动生成的, 请不要手动编辑该类, 以免造成代码丢失
+///
+public abstract partial class MapEditorSelectObject : UiBase
+{
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorSelectObject.ScrollContainer
+ ///
+ public ScrollContainer L_ScrollContainer
+ {
+ get
+ {
+ if (_L_ScrollContainer == null) _L_ScrollContainer = new ScrollContainer(this, GetNodeOrNull("ScrollContainer"));
+ return _L_ScrollContainer;
+ }
+ }
+ private ScrollContainer _L_ScrollContainer;
+
+
+ public MapEditorSelectObject() : base(nameof(MapEditorSelectObject))
+ {
+ }
+
+ public sealed override void OnInitNestedUi()
+ {
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorSelectObject.ScrollContainer.ObjectButton.PreviewImage
+ ///
+ public class PreviewImage : UiNode
+ {
+ public PreviewImage(MapEditorSelectObject uiPanel, Godot.TextureRect node) : base(uiPanel, node) { }
+ public override PreviewImage Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorSelectObject.ScrollContainer.ObjectButton.ObjectName
+ ///
+ public class ObjectName : UiNode
+ {
+ public ObjectName(MapEditorSelectObject uiPanel, Godot.Label node) : base(uiPanel, node) { }
+ public override ObjectName Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorSelectObject.ScrollContainer.ObjectButton
+ ///
+ public class ObjectButton : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorSelectObject.ScrollContainer.PreviewImage
+ ///
+ public PreviewImage L_PreviewImage
+ {
+ get
+ {
+ if (_L_PreviewImage == null) _L_PreviewImage = new PreviewImage(UiPanel, Instance.GetNodeOrNull("PreviewImage"));
+ return _L_PreviewImage;
+ }
+ }
+ private PreviewImage _L_PreviewImage;
+
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorSelectObject.ScrollContainer.ObjectName
+ ///
+ public ObjectName L_ObjectName
+ {
+ get
+ {
+ if (_L_ObjectName == null) _L_ObjectName = new ObjectName(UiPanel, Instance.GetNodeOrNull("ObjectName"));
+ return _L_ObjectName;
+ }
+ }
+ private ObjectName _L_ObjectName;
+
+ public ObjectButton(MapEditorSelectObject uiPanel, Godot.Button node) : base(uiPanel, node) { }
+ public override ObjectButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate());
+ }
+
+ ///
+ /// 类型: , 路径: MapEditorSelectObject.ScrollContainer
+ ///
+ public class ScrollContainer : UiNode
+ {
+ ///
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: MapEditorSelectObject.ObjectButton
+ ///
+ public ObjectButton L_ObjectButton
+ {
+ get
+ {
+ if (_L_ObjectButton == null) _L_ObjectButton = new ObjectButton(UiPanel, Instance.GetNodeOrNull("ObjectButton"));
+ return _L_ObjectButton;
+ }
+ }
+ private ObjectButton _L_ObjectButton;
+
+ public ScrollContainer(MapEditorSelectObject uiPanel, Godot.ScrollContainer node) : base(uiPanel, node) { }
+ public override ScrollContainer Clone() => new (UiPanel, (Godot.ScrollContainer)Instance.Duplicate());
+ }
+
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorSelectObject.ScrollContainer.ObjectButton.PreviewImage
+ ///
+ public PreviewImage S_PreviewImage => L_ScrollContainer.L_ObjectButton.L_PreviewImage;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorSelectObject.ScrollContainer.ObjectButton.ObjectName
+ ///
+ public ObjectName S_ObjectName => L_ScrollContainer.L_ObjectButton.L_ObjectName;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorSelectObject.ScrollContainer.ObjectButton
+ ///
+ public ObjectButton S_ObjectButton => L_ScrollContainer.L_ObjectButton;
+
+ ///
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: MapEditorSelectObject.ScrollContainer
+ ///
+ public ScrollContainer S_ScrollContainer => L_ScrollContainer;
+
+}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs
new file mode 100644
index 0000000..1be3681
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/MapEditorSelectObjectPanel.cs
@@ -0,0 +1,29 @@
+using System.Linq;
+using Config;
+using Godot;
+
+namespace UI.MapEditorSelectObject;
+
+public partial class MapEditorSelectObjectPanel : MapEditorSelectObject
+{
+
+ private UiGrid _grid;
+
+ public override void OnCreateUi()
+ {
+ _grid = new UiGrid(S_ObjectButton, typeof(ObjectButtonCell));
+ _grid.SetAutoColumns(true);
+ _grid.SetHorizontalExpand(true);
+
+ _grid.SetDataList(ExcelConfig.ActivityObject_List.Where(o =>
+ {
+ return o.Type == (int)ActivityIdPrefix.ActivityPrefixType.Weapon;
+ }).ToArray());
+ }
+
+ public override void OnDestroyUi()
+ {
+
+ }
+
+}
diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/ObjectButtonCell.cs b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/ObjectButtonCell.cs
new file mode 100644
index 0000000..62b4276
--- /dev/null
+++ b/DungeonShooting_Godot/src/game/ui/mapEditorSelectObject/ObjectButtonCell.cs
@@ -0,0 +1,15 @@
+using Config;
+
+namespace UI.MapEditorSelectObject;
+
+public class ObjectButtonCell : UiCell
+{
+ public override void OnSetData(ExcelConfig.ActivityObject data)
+ {
+ CellNode.L_ObjectName.Instance.Text = data.Name;
+ if (!string.IsNullOrEmpty(data.Icon))
+ {
+ CellNode.L_PreviewImage.Instance.Texture = ResourceManager.LoadTexture2D(data.Icon);
+ }
+ }
+}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs
index 0f0c3c4..56f26c3 100644
--- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs
@@ -60,7 +60,7 @@
private void OnPlayerPickUpProp(object propObj)
{
var prop = (Prop)propObj;
- var message = $"{prop.ItemConfig.Name}\n{prop.ItemConfig.Remark}";
+ var message = $"{prop.ItemConfig.Name}\n{prop.ItemConfig.Intro}";
BottomTipsPanel.ShowTips(prop.GetDefaultTexture(), message);
}
}
\ No newline at end of file