diff --git a/DungeonShooting_Godot/prefab/ui/Encyclopedia.tscn b/DungeonShooting_Godot/prefab/ui/Encyclopedia.tscn index dc706af..ae95d6a 100644 --- a/DungeonShooting_Godot/prefab/ui/Encyclopedia.tscn +++ b/DungeonShooting_Godot/prefab/ui/Encyclopedia.tscn @@ -1,9 +1,13 @@ -[gd_scene load_steps=6 format=3 uid="uid://b2xq02i3vxct"] +[gd_scene load_steps=10 format=3 uid="uid://b2xq02i3vxct"] [ext_resource type="Script" path="res://src/game/ui/encyclopedia/EncyclopediaPanel.cs" id="1_hd86y"] -[ext_resource type="Texture2D" uid="uid://blfvsup876agh" path="res://resource/sprite/ui/commonIcon/Search.png" id="2_3ln1u"] +[ext_resource type="Texture2D" uid="uid://c0st2iiql8igg" path="res://resource/sprite/ui/encyclopedia/TitleBg.png" id="3_gdtik"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="3_o1xl7"] -[ext_resource type="Texture2D" uid="uid://bn47bmilcw4x0" path="res://resource/sprite/ui/commonIcon/Select2.png" id="4_gtlqd"] +[ext_resource type="Texture2D" uid="uid://brevrlfdtllmk" path="res://resource/sprite/ui/encyclopedia/Select.png" id="5_f0anf"] +[ext_resource type="Texture2D" uid="uid://cu5y32wfai4pn" path="res://resource/sprite/ui/encyclopedia/Item.png" id="5_niceh"] +[ext_resource type="Texture2D" uid="uid://5adiy3ycqyxw" path="res://resource/sprite/ui/GUI.png" id="5_qcyvs"] +[ext_resource type="Texture2D" uid="uid://civvcowt2wklr" path="res://resource/sprite/weapon/weapon0001/Weapon0001.png" id="6_536pn"] +[ext_resource type="Texture2D" uid="uid://conjg6fw6670x" path="res://resource/sprite/ui/encyclopedia/Panel.png" id="7_hfdat"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_gm0bl"] resource_local_to_scene = true @@ -22,113 +26,182 @@ anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_right = -1440.0 +offset_bottom = -810.0 +grow_horizontal = 2 +grow_vertical = 2 +scale = Vector2(4, 4) script = ExtResource("1_hd86y") -[node name="Panel2" type="Panel" parent="."] +[node name="ColorRect" type="ColorRect" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -size_flags_horizontal = 3 -size_flags_stretch_ratio = 75.0 +color = Color(0, 0, 0, 0.705882) -[node name="MarginContainer" type="MarginContainer" parent="Panel2"] +[node name="NinePatchRect" type="NinePatchRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 3.0 +offset_top = 12.0 +offset_right = -3.0 +offset_bottom = -3.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_qcyvs") +region_rect = Rect2(2, 35, 44, 43) +patch_margin_left = 30 +patch_margin_top = 29 +patch_margin_right = 30 +patch_margin_bottom = 30 + +[node name="TextureRect" type="TextureRect" parent="NinePatchRect"] +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_top = -10.25 +offset_bottom = 11.75 +grow_horizontal = 2 +texture = ExtResource("3_gdtik") +stretch_mode = 3 + +[node name="Label" type="Label" parent="NinePatchRect/TextureRect"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -3.25 +offset_bottom = -1.25 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 16 +text = "图鉴" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MarginContainer" type="MarginContainer" parent="NinePatchRect"] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -theme_override_constants/margin_left = 2 -theme_override_constants/margin_top = 2 -theme_override_constants/margin_right = 2 -theme_override_constants/margin_bottom = 2 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 10 -[node name="VBoxContainer2" type="VBoxContainer" parent="Panel2/MarginContainer"] +[node name="HBoxContainer" type="HBoxContainer" parent="NinePatchRect/MarginContainer"] +layout_mode = 2 + +[node name="VBoxContainer2" type="VBoxContainer" parent="NinePatchRect/MarginContainer/HBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 +size_flags_stretch_ratio = 2.0 -[node name="MarginContainer" type="MarginContainer" parent="Panel2/MarginContainer/VBoxContainer2"] -layout_mode = 2 -theme_override_constants/margin_left = 2 -theme_override_constants/margin_top = 2 -theme_override_constants/margin_right = 2 -theme_override_constants/margin_bottom = 2 - -[node name="HBoxContainer" type="HBoxContainer" parent="Panel2/MarginContainer/VBoxContainer2/MarginContainer"] -custom_minimum_size = Vector2(0, 100) +[node name="NinePatchRect" type="NinePatchRect" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer2"] layout_mode = 2 size_flags_vertical = 3 +texture = ExtResource("7_hfdat") +patch_margin_left = 14 +patch_margin_top = 14 +patch_margin_right = 14 +patch_margin_bottom = 14 -[node name="LineEdit" type="LineEdit" parent="Panel2/MarginContainer/VBoxContainer2/MarginContainer/HBoxContainer"] -custom_minimum_size = Vector2(500, 44) -layout_mode = 2 -size_flags_vertical = 4 -placeholder_text = "搜索名称" - -[node name="Search" type="Button" parent="Panel2/MarginContainer/VBoxContainer2/MarginContainer/HBoxContainer"] -custom_minimum_size = Vector2(44, 44) -layout_mode = 2 -size_flags_vertical = 4 -icon = ExtResource("2_3ln1u") - -[node name="ScrollContainer" type="ScrollContainer" parent="Panel2/MarginContainer/VBoxContainer2"] -layout_mode = 2 +[node name="ScrollContainer" type="ScrollContainer" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer2/NinePatchRect"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 7.0 +offset_top = 7.0 +offset_right = -7.0 +offset_bottom = -7.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 3 size_flags_vertical = 3 size_flags_stretch_ratio = 75.0 -[node name="ObjectButton" type="Button" parent="Panel2/MarginContainer/VBoxContainer2/ScrollContainer"] -custom_minimum_size = Vector2(124, 160) +[node name="ObjectButton" type="TextureButton" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer2/NinePatchRect/ScrollContainer"] +custom_minimum_size = Vector2(50, 30) layout_mode = 2 -[node name="PreviewImage" type="TextureRect" parent="Panel2/MarginContainer/VBoxContainer2/ScrollContainer/ObjectButton"] +[node name="Bg" type="NinePatchRect" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer2/NinePatchRect/ScrollContainer/ObjectButton"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_niceh") +patch_margin_left = 8 +patch_margin_top = 8 +patch_margin_right = 8 +patch_margin_bottom = 8 + +[node name="PreviewImage" type="TextureRect" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer2/NinePatchRect/ScrollContainer/ObjectButton"] material = SubResource("ShaderMaterial_gm0bl") 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 = -38.0 grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 -expand_mode = 2 -stretch_mode = 5 +stretch_mode = 3 -[node name="ObjectName" type="Label" parent="Panel2/MarginContainer/VBoxContainer2/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 = 124.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 - -[node name="Select" type="NinePatchRect" parent="Panel2/MarginContainer/VBoxContainer2/ScrollContainer/ObjectButton"] +[node name="Select" type="NinePatchRect" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer2/NinePatchRect/ScrollContainer/ObjectButton"] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("4_gtlqd") -region_rect = Rect2(0, 0, 36, 36) -patch_margin_left = 8 -patch_margin_top = 8 -patch_margin_right = 8 -patch_margin_bottom = 8 +texture = ExtResource("5_f0anf") +region_rect = Rect2(0, 0, 4, 4) +patch_margin_left = 3 +patch_margin_top = 3 +patch_margin_right = 3 +patch_margin_bottom = 3 + +[node name="VBoxContainer3" type="VBoxContainer" parent="NinePatchRect/MarginContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="NinePatchRect" type="NinePatchRect" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer3"] +layout_mode = 2 +size_flags_vertical = 3 +texture = ExtResource("7_hfdat") +patch_margin_left = 14 +patch_margin_top = 14 +patch_margin_right = 14 +patch_margin_bottom = 14 + +[node name="VBoxContainer" type="VBoxContainer" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer3/NinePatchRect"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 7.0 +offset_top = 7.0 +offset_right = -7.0 +offset_bottom = -7.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="TextureRect" type="TextureRect" parent="NinePatchRect/MarginContainer/HBoxContainer/VBoxContainer3/NinePatchRect/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +texture = ExtResource("6_536pn") +stretch_mode = 3 + +[node name="Gui" type="Sprite2D" parent="."] +position = Vector2(-108.25, 158.25) +texture = ExtResource("5_qcyvs") diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn index 64daa22..3945ef4 100644 --- a/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn +++ b/DungeonShooting_Godot/prefab/ui/MapEditorMapLayer.tscn @@ -54,10 +54,11 @@ grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("3_k8b5h") -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +region_rect = Rect2(0, 0, 36, 36) +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="VisibleButton" type="TextureButton" parent="VBoxContainer/ScrollContainer/LayerButton"] layout_mode = 1 diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn index cfac2e0..6f07965 100644 --- a/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn +++ b/DungeonShooting_Godot/prefab/ui/MapEditorMapMark.tscn @@ -136,10 +136,10 @@ grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("6_jpt3y") -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="WaveVisibleButton" type="Button" parent="VBoxContainer/ScrollContainer/VBoxContainer/WaveItem/WaveContainer"] custom_minimum_size = Vector2(36, 36) @@ -192,7 +192,7 @@ grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("6_jpt3y") -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorMapTile.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorMapTile.tscn index 49c7fd0..1f4e300 100644 --- a/DungeonShooting_Godot/prefab/ui/MapEditorMapTile.tscn +++ b/DungeonShooting_Godot/prefab/ui/MapEditorMapTile.tscn @@ -157,10 +157,10 @@ grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("5_f4thw") -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="TerrainName" type="Label" parent="VBoxContainer/Panel/MarginContainer/Tab2/ScrollContainer/TerrainItem"] layout_mode = 1 @@ -260,10 +260,10 @@ grow_vertical = 2 texture = ExtResource("5_f4thw") region_rect = Rect2(0, 0, 36, 36) -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="MaskBg" type="ColorRect" parent="."] layout_mode = 1 diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorProject.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorProject.tscn index 183f7b3..e250984 100644 --- a/DungeonShooting_Godot/prefab/ui/MapEditorProject.tscn +++ b/DungeonShooting_Godot/prefab/ui/MapEditorProject.tscn @@ -98,10 +98,10 @@ grow_vertical = 2 texture = ExtResource("5_rcbyx") region_rect = Rect2(0, 0, 36, 36) -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="Panel2" type="Panel" parent="HBoxContainer"] layout_mode = 2 @@ -212,10 +212,10 @@ grow_vertical = 2 texture = ExtResource("5_rcbyx") region_rect = Rect2(0, 0, 36, 36) -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="ErrorTexture" type="TextureRect" parent="HBoxContainer/Panel2/MarginContainer/VBoxContainer/ScrollContainer/RoomButton"] layout_mode = 0 diff --git a/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn b/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn index 041820f..0460256 100644 --- a/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn +++ b/DungeonShooting_Godot/prefab/ui/MapEditorSelectObject.tscn @@ -73,10 +73,11 @@ grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("3_4nhjm") -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +region_rect = Rect2(0, 0, 36, 36) +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="Panel2" type="Panel" parent="HBoxContainer"] layout_mode = 2 diff --git a/DungeonShooting_Godot/prefab/ui/TileSetEditor.tscn b/DungeonShooting_Godot/prefab/ui/TileSetEditor.tscn index d602c57..acaf335 100644 --- a/DungeonShooting_Godot/prefab/ui/TileSetEditor.tscn +++ b/DungeonShooting_Godot/prefab/ui/TileSetEditor.tscn @@ -152,10 +152,10 @@ grow_vertical = 2 texture = ExtResource("4_t8bqb") region_rect = Rect2(0, 0, 36, 36) -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="RightRoot" type="Panel" parent="Bg/VBoxContainer/HBoxContainer"] clip_children = 2 diff --git a/DungeonShooting_Godot/prefab/ui/TileSetEditorCombination.tscn b/DungeonShooting_Godot/prefab/ui/TileSetEditorCombination.tscn index 4a4806a..44a597c 100644 --- a/DungeonShooting_Godot/prefab/ui/TileSetEditorCombination.tscn +++ b/DungeonShooting_Godot/prefab/ui/TileSetEditorCombination.tscn @@ -299,7 +299,7 @@ grow_vertical = 2 texture = ExtResource("6_g5ey6") region_rect = Rect2(0, 0, 36, 36) -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 diff --git a/DungeonShooting_Godot/prefab/ui/TileSetEditorProject.tscn b/DungeonShooting_Godot/prefab/ui/TileSetEditorProject.tscn index 2ab1e70..c94d564 100644 --- a/DungeonShooting_Godot/prefab/ui/TileSetEditorProject.tscn +++ b/DungeonShooting_Godot/prefab/ui/TileSetEditorProject.tscn @@ -119,10 +119,10 @@ grow_vertical = 2 texture = ExtResource("5_l4lwx") region_rect = Rect2(0, 0, 36, 36) -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="Panel" type="Panel" parent="Panel/MarginContainer/HBoxContainer2"] layout_mode = 2 diff --git a/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn b/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn index 9bb5cd2..924a7c8 100644 --- a/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn +++ b/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn @@ -124,10 +124,10 @@ grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("4_ka47m") -patch_margin_left = 3 -patch_margin_top = 3 -patch_margin_right = 3 -patch_margin_bottom = 3 +patch_margin_left = 4 +patch_margin_top = 4 +patch_margin_right = 4 +patch_margin_bottom = 4 [node name="TopBg" type="ColorRect" parent="VSplitContainer/PanelTop/HSplitContainer"] clip_children = 2 diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0004.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0004.tscn index 9450803..5fe50df 100644 --- a/DungeonShooting_Godot/prefab/weapon/Weapon0004.tscn +++ b/DungeonShooting_Godot/prefab/weapon/Weapon0004.tscn @@ -46,7 +46,7 @@ [node name="AnimatedSprite" parent="." index="1"] material = SubResource("ShaderMaterial_rtliw") -position = Vector2(10, 1) +position = Vector2(10, 0) sprite_frames = ExtResource("4_uymcs") [node name="ShellPoint" parent="AnimatedSprite" index="0"] diff --git a/DungeonShooting_Godot/resource/sprite/ui/GUI.png b/DungeonShooting_Godot/resource/sprite/ui/GUI.png index 56475ca..92c14e0 100644 --- a/DungeonShooting_Godot/resource/sprite/ui/GUI.png +++ b/DungeonShooting_Godot/resource/sprite/ui/GUI.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Select2.png b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Select2.png index b38861f..6a70568 100644 --- a/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Select2.png +++ b/DungeonShooting_Godot/resource/sprite/ui/commonIcon/Select2.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Item.png b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Item.png new file mode 100644 index 0000000..de6b323 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Item.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Item.png.import b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Item.png.import new file mode 100644 index 0000000..7f02a18 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Item.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cu5y32wfai4pn" +path="res://.godot/imported/Item.png-58bd34d7709452cf6ae6a4fd164bc305.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/encyclopedia/Item.png" +dest_files=["res://.godot/imported/Item.png-58bd34d7709452cf6ae6a4fd164bc305.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/encyclopedia/Panel.png b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Panel.png new file mode 100644 index 0000000..1dc781c --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Panel.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Panel.png.import b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Panel.png.import new file mode 100644 index 0000000..0134426 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Panel.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://conjg6fw6670x" +path="res://.godot/imported/Panel.png-08c85561f9ba92cb98c43d7cf676dc7b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/encyclopedia/Panel.png" +dest_files=["res://.godot/imported/Panel.png-08c85561f9ba92cb98c43d7cf676dc7b.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/encyclopedia/Select.png b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Select.png new file mode 100644 index 0000000..8b81902 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Select.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Select.png.import b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Select.png.import new file mode 100644 index 0000000..e5ffdeb --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/Select.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://brevrlfdtllmk" +path="res://.godot/imported/Select.png-ff59a06a7a05be5c95bf722fa4889a19.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/encyclopedia/Select.png" +dest_files=["res://.godot/imported/Select.png-ff59a06a7a05be5c95bf722fa4889a19.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/encyclopedia/TitleBg.png b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/TitleBg.png new file mode 100644 index 0000000..45a7651 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/TitleBg.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/TitleBg.png.import b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/TitleBg.png.import new file mode 100644 index 0000000..0dc7a2f --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/encyclopedia/TitleBg.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0st2iiql8igg" +path="res://.godot/imported/TitleBg.png-d91e021730751da9f4cb4810f02a912b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/encyclopedia/TitleBg.png" +dest_files=["res://.godot/imported/TitleBg.png-d91e021730751da9f4cb4810f02a912b.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/weapon/weapon0004/Weapon0004.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0004/Weapon0004.png index cf38cf3..fcce780 100644 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0004/Weapon0004.png +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0004/Weapon0004.png Binary files differ diff --git a/DungeonShooting_Godot/scene/Hall.tscn b/DungeonShooting_Godot/scene/Hall.tscn index 183929b..7278316 100644 --- a/DungeonShooting_Godot/scene/Hall.tscn +++ b/DungeonShooting_Godot/scene/Hall.tscn @@ -121,7 +121,7 @@ ShowOffset = Vector2(2.08165e-12, 2) CollisionVisible = false -[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0006" index="1"] +[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0006" index="0"] position = Vector2(-10, -3) texture = ExtResource("7_30qwa") @@ -133,7 +133,7 @@ ShowOffset = Vector2(2.08165e-12, 2) CollisionVisible = false -[node name="ActivityInstance" type="Node2D" parent="ItemRoot/Item0008" index="1"] +[node name="ActivityInstance" type="Node2D" parent="ItemRoot/Item0008" index="0"] position = Vector2(2.5, -12) script = ExtResource("5_lowqi") Id = "item_0031" @@ -149,7 +149,7 @@ ShowOffset = Vector2(2.08165e-12, 2) CollisionVisible = false -[node name="Item26" type="Sprite2D" parent="ItemRoot/Item0013" index="1"] +[node name="Item26" type="Sprite2D" parent="ItemRoot/Item0013" index="0"] position = Vector2(18, -2) texture = ExtResource("8_61dkg") @@ -161,19 +161,19 @@ ShowOffset = Vector2(2.08165e-12, 2) CollisionVisible = false -[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0017" index="1"] +[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0017" index="0"] position = Vector2(-2, -13) texture = ExtResource("8_u3vry") -[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0017" index="2"] +[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0017" index="1"] position = Vector2(18, -11) texture = ExtResource("9_lhdr8") -[node name="Sprite2D3" type="Sprite2D" parent="ItemRoot/Item0017" index="3"] +[node name="Sprite2D3" type="Sprite2D" parent="ItemRoot/Item0017" index="2"] position = Vector2(-16, -2) texture = ExtResource("10_4eqn0") -[node name="Sprite2D4" type="Sprite2D" parent="ItemRoot/Item0017" index="4"] +[node name="Sprite2D4" type="Sprite2D" parent="ItemRoot/Item0017" index="3"] position = Vector2(10, -1) texture = ExtResource("11_tg3jo") @@ -199,11 +199,11 @@ DefaultLayer = 1 CollisionVisible = false -[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0002" index="1"] +[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0002" index="0"] position = Vector2(32, -2) texture = ExtResource("12_agfji") -[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0002" index="2"] +[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0002" index="1"] material = SubResource("ShaderMaterial_i7git") position = Vector2(-1, -15) scale = Vector2(1, -1) @@ -221,7 +221,7 @@ Id = "item_0004" DefaultLayer = 1 -[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0004" index="1"] +[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0004" index="0"] position = Vector2(0, -17) texture = ExtResource("13_unnpl") @@ -255,15 +255,15 @@ Id = "item_0009" DefaultLayer = 1 -[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0009" index="1"] +[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0009" index="0"] position = Vector2(-24, -10) texture = ExtResource("15_h7524") -[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0009" index="2"] +[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0009" index="1"] position = Vector2(1, -10) texture = ExtResource("15_h7524") -[node name="Sprite2D3" type="Sprite2D" parent="ItemRoot/Item0009" index="3"] +[node name="Sprite2D3" type="Sprite2D" parent="ItemRoot/Item0009" index="2"] position = Vector2(37, -10) texture = ExtResource("15_h7524") @@ -297,7 +297,7 @@ Id = "item_0015" DefaultLayer = 1 -[node name="Slice04" type="Sprite2D" parent="ItemRoot/Item0015" index="1"] +[node name="Slice04" type="Sprite2D" parent="ItemRoot/Item0015" index="0"] position = Vector2(16, -9) texture = ExtResource("15_h7524") @@ -319,11 +319,11 @@ Id = "item_0019" DefaultLayer = 1 -[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0019" index="1"] +[node name="Sprite2D" type="Sprite2D" parent="ItemRoot/Item0019" index="0"] position = Vector2(-23, -7) texture = ExtResource("16_xj0e1") -[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0019" index="2"] +[node name="Sprite2D2" type="Sprite2D" parent="ItemRoot/Item0019" index="1"] position = Vector2(24, -8) texture = ExtResource("17_gwwce") diff --git a/DungeonShooting_Godot/src/framework/common/Utils.cs b/DungeonShooting_Godot/src/framework/common/Utils.cs index 07b4751..416b796 100644 --- a/DungeonShooting_Godot/src/framework/common/Utils.cs +++ b/DungeonShooting_Godot/src/framework/common/Utils.cs @@ -343,9 +343,9 @@ /// /// 计算Vector2点所占用的区域 /// - public static Rect2I CalcRect(IEnumerable cells) + public static Rect2I CalcRect(ICollection cells) { - var count = cells.Count(); + var count = cells.Count; if (count == 0) { return new Rect2I(); diff --git a/DungeonShooting_Godot/src/framework/ui/UiBase.cs b/DungeonShooting_Godot/src/framework/ui/UiBase.cs index 0e11d89..2827ffe 100644 --- a/DungeonShooting_Godot/src/framework/ui/UiBase.cs +++ b/DungeonShooting_Godot/src/framework/ui/UiBase.cs @@ -81,6 +81,23 @@ UiManager.RecordUi(this, UiManager.RecordType.Open); } + public sealed override void _Ready() + { + if (Math.Abs(Scale.X - 1f) > 0.001f) + { + Resized += OnResizeUi; + } + } + + private void OnResizeUi() + { + if (ParentUi == null) + { + var viewportSize = GameApplication.Instance.ViewportSize; + Size = viewportSize; + } + } + /// /// 创建当前ui时调用 /// diff --git a/DungeonShooting_Godot/src/framework/ui/grid/UiCell.cs b/DungeonShooting_Godot/src/framework/ui/grid/UiCell.cs index 3a1e5fc..7cbb2d5 100644 --- a/DungeonShooting_Godot/src/framework/ui/grid/UiCell.cs +++ b/DungeonShooting_Godot/src/framework/ui/grid/UiCell.cs @@ -1,5 +1,6 @@  using System; +using System.Collections; using Godot; /// @@ -50,6 +51,13 @@ { } + /// + /// 当前cell被分配值时调用,该函数为协程函数,当仅在 Grid 中调研 SetDataListCoroutine() 函数时才会被调用 + /// + public virtual IEnumerator OnSetDataCoroutine(T data) + { + yield break; + } public virtual void Process(float delta) { @@ -126,12 +134,20 @@ } /// - /// 设置当前 Cell 的值, 该函数由 UiGrid 调用 + /// 更新当前 Cell 的值, 该函数由 UiGrid 调用 + /// + public void UpdateData(T data) + { + Data = data; + OnSetData(data); + } + + /// + /// 设置当前 Cell 的值, 该函数由 UiGrid 调用,该函数为协程函数 /// public void SetData(T data) { Data = data; - OnSetData(data); } /// diff --git a/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs b/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs index 092102b..15ba72b 100644 --- a/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs +++ b/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs @@ -1,6 +1,7 @@  using System; +using System.Collections; using System.Collections.Generic; using Godot; @@ -342,7 +343,22 @@ for (var i = 0; i < _cellList.Count; i++) { var data = array[i]; - _cellList[i].SetData(data); + _cellList[i].UpdateData(data); + } + } + + /// + /// 设置当前网格组件中的所有 Cell 数据, 该函数为协程函数,可用于分帧处理大量数据 + /// + public IEnumerator SetDataListCoroutine(ICollection array) + { + RemoveAll(); + foreach (var data in array) + { + var cell = GetCellInstance(); + GridContainer.AddChild(cell.CellNode.GetUiInstance()); + cell.SetData(data); + yield return cell.OnSetDataCoroutine(data); } } @@ -353,7 +369,7 @@ { var cell = GetCellInstance(); GridContainer.AddChild(cell.CellNode.GetUiInstance()); - cell.SetData(data); + cell.UpdateData(data); if (select) { SelectIndex = Count - 1; @@ -368,7 +384,7 @@ var uiCell = GetCell(index); if (uiCell != null) { - uiCell.SetData(data); + uiCell.UpdateData(data); } } diff --git a/DungeonShooting_Godot/src/game/ui/encyclopedia/Encyclopedia.cs b/DungeonShooting_Godot/src/game/ui/encyclopedia/Encyclopedia.cs index 806f085..f3f086c 100644 --- a/DungeonShooting_Godot/src/game/ui/encyclopedia/Encyclopedia.cs +++ b/DungeonShooting_Godot/src/game/ui/encyclopedia/Encyclopedia.cs @@ -6,17 +6,43 @@ public abstract partial class Encyclopedia : UiBase { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2 + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.ColorRect /// - public Panel2 L_Panel2 + public ColorRect L_ColorRect { get { - if (_L_Panel2 == null) _L_Panel2 = new Panel2((EncyclopediaPanel)this, GetNode("Panel2")); - return _L_Panel2; + if (_L_ColorRect == null) _L_ColorRect = new ColorRect((EncyclopediaPanel)this, GetNode("ColorRect")); + return _L_ColorRect; } } - private Panel2 _L_Panel2; + private ColorRect _L_ColorRect; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect + /// + public NinePatchRect L_NinePatchRect + { + get + { + if (_L_NinePatchRect == null) _L_NinePatchRect = new NinePatchRect((EncyclopediaPanel)this, GetNode("NinePatchRect")); + return _L_NinePatchRect; + } + } + private NinePatchRect _L_NinePatchRect; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Gui + /// + public Gui L_Gui + { + get + { + if (_L_Gui == null) _L_Gui = new Gui((EncyclopediaPanel)this, GetNode("Gui")); + return _L_Gui; + } + } + private Gui _L_Gui; public Encyclopedia() : base(nameof(Encyclopedia)) @@ -29,82 +55,56 @@ } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer.HBoxContainer.LineEdit + /// 类型: , 路径: Encyclopedia.ColorRect /// - public class LineEdit : UiNode + public class ColorRect : UiNode { - public LineEdit(EncyclopediaPanel uiPanel, Godot.LineEdit node) : base(uiPanel, node) { } - public override LineEdit Clone() => new (UiPanel, (Godot.LineEdit)Instance.Duplicate()); + public ColorRect(EncyclopediaPanel uiPanel, Godot.ColorRect node) : base(uiPanel, node) { } + public override ColorRect Clone() => new (UiPanel, (Godot.ColorRect)Instance.Duplicate()); } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer.HBoxContainer.Search + /// 类型: , 路径: Encyclopedia.NinePatchRect.TextureRect.Label /// - public class Search : UiNode + public class Label : UiNode { - public Search(EncyclopediaPanel uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override Search Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); + public Label(EncyclopediaPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer.HBoxContainer + /// 类型: , 路径: Encyclopedia.NinePatchRect.TextureRect /// - public class HBoxContainer : UiNode + public class TextureRect : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer.LineEdit + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.Label /// - public LineEdit L_LineEdit + public Label L_Label { get { - if (_L_LineEdit == null) _L_LineEdit = new LineEdit(UiPanel, Instance.GetNode("LineEdit")); - return _L_LineEdit; + if (_L_Label == null) _L_Label = new Label(UiPanel, Instance.GetNode("Label")); + return _L_Label; } } - private LineEdit _L_LineEdit; + private Label _L_Label; - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer.Search - /// - public Search L_Search - { - get - { - if (_L_Search == null) _L_Search = new Search(UiPanel, Instance.GetNode("Search")); - return _L_Search; - } - } - private Search _L_Search; - - public HBoxContainer(EncyclopediaPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } - public override HBoxContainer Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); + public TextureRect(EncyclopediaPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { } + public override TextureRect Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate()); } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.ObjectButton.Bg /// - public class MarginContainer_1 : UiNode + public class Bg : UiNode { - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.HBoxContainer - /// - public HBoxContainer L_HBoxContainer - { - get - { - if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer(UiPanel, Instance.GetNode("HBoxContainer")); - return _L_HBoxContainer; - } - } - private HBoxContainer _L_HBoxContainer; - - public MarginContainer_1(EncyclopediaPanel uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { } - public override MarginContainer_1 Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate()); + public Bg(EncyclopediaPanel uiPanel, Godot.NinePatchRect node) : base(uiPanel, node) { } + public override Bg Clone() => new (UiPanel, (Godot.NinePatchRect)Instance.Duplicate()); } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectButton.PreviewImage + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.ObjectButton.PreviewImage /// public class PreviewImage : UiNode { @@ -113,16 +113,7 @@ } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectButton.ObjectName - /// - public class ObjectName : UiNode - { - public ObjectName(EncyclopediaPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override ObjectName Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectButton.Select + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.ObjectButton.Select /// public class Select : UiNode { @@ -131,12 +122,25 @@ } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectButton + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.ObjectButton /// - public class ObjectButton : UiNode + public class ObjectButton : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.PreviewImage + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.Bg + /// + public Bg L_Bg + { + get + { + if (_L_Bg == null) _L_Bg = new Bg(UiPanel, Instance.GetNode("Bg")); + return _L_Bg; + } + } + private Bg _L_Bg; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.PreviewImage /// public PreviewImage L_PreviewImage { @@ -149,20 +153,7 @@ private PreviewImage _L_PreviewImage; /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectName - /// - public ObjectName L_ObjectName - { - get - { - if (_L_ObjectName == null) _L_ObjectName = new ObjectName(UiPanel, Instance.GetNode("ObjectName")); - return _L_ObjectName; - } - } - private ObjectName _L_ObjectName; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.Select + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.Select /// public Select L_Select { @@ -174,23 +165,23 @@ } private Select _L_Select; - public ObjectButton(EncyclopediaPanel uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override ObjectButton Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); + public ObjectButton(EncyclopediaPanel uiPanel, Godot.TextureButton node) : base(uiPanel, node) { } + public override ObjectButton Clone() => new (UiPanel, (Godot.TextureButton)Instance.Duplicate()); } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer /// public class ScrollContainer : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ObjectButton + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ObjectButton /// public ObjectButton L_ObjectButton { get { - if (_L_ObjectButton == null) _L_ObjectButton = new ObjectButton(UiPanel, Instance.GetNode("ObjectButton")); + if (_L_ObjectButton == null) _L_ObjectButton = new ObjectButton(UiPanel, Instance.GetNode("ObjectButton")); return _L_ObjectButton; } } @@ -201,25 +192,12 @@ } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2 + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect /// - public class VBoxContainer2 : UiNode + public class NinePatchRect_1 : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.MarginContainer - /// - public MarginContainer_1 L_MarginContainer - { - get - { - if (_L_MarginContainer == null) _L_MarginContainer = new MarginContainer_1(UiPanel, Instance.GetNode("MarginContainer")); - return _L_MarginContainer; - } - } - private MarginContainer_1 _L_MarginContainer; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.ScrollContainer + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.ScrollContainer /// public ScrollContainer L_ScrollContainer { @@ -231,17 +209,114 @@ } private ScrollContainer _L_ScrollContainer; + public NinePatchRect_1(EncyclopediaPanel uiPanel, Godot.NinePatchRect node) : base(uiPanel, node) { } + public override NinePatchRect_1 Clone() => new (UiPanel, (Godot.NinePatchRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2 + /// + public class VBoxContainer2 : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.NinePatchRect + /// + public NinePatchRect_1 L_NinePatchRect + { + get + { + if (_L_NinePatchRect == null) _L_NinePatchRect = new NinePatchRect_1(UiPanel, Instance.GetNode("NinePatchRect")); + return _L_NinePatchRect; + } + } + private NinePatchRect_1 _L_NinePatchRect; + public VBoxContainer2(EncyclopediaPanel uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { } public override VBoxContainer2 Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate()); } /// - /// 类型: , 路径: Encyclopedia.Panel2.MarginContainer + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer3.NinePatchRect.VBoxContainer.TextureRect /// - public class MarginContainer : UiNode + public class TextureRect_1 : UiNode + { + public TextureRect_1(EncyclopediaPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { } + public override TextureRect_1 Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer3.NinePatchRect.VBoxContainer + /// + public class VBoxContainer : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.Panel2.VBoxContainer2 + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer3.NinePatchRect.TextureRect + /// + public TextureRect_1 L_TextureRect + { + get + { + if (_L_TextureRect == null) _L_TextureRect = new TextureRect_1(UiPanel, Instance.GetNode("TextureRect")); + return _L_TextureRect; + } + } + private TextureRect_1 _L_TextureRect; + + public VBoxContainer(EncyclopediaPanel uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { } + public override VBoxContainer Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer3.NinePatchRect + /// + public class NinePatchRect_2 : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer3.VBoxContainer + /// + public VBoxContainer L_VBoxContainer + { + get + { + if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer(UiPanel, Instance.GetNode("VBoxContainer")); + return _L_VBoxContainer; + } + } + private VBoxContainer _L_VBoxContainer; + + public NinePatchRect_2(EncyclopediaPanel uiPanel, Godot.NinePatchRect node) : base(uiPanel, node) { } + public override NinePatchRect_2 Clone() => new (UiPanel, (Godot.NinePatchRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer3 + /// + public class VBoxContainer3 : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.NinePatchRect + /// + public NinePatchRect_2 L_NinePatchRect + { + get + { + if (_L_NinePatchRect == null) _L_NinePatchRect = new NinePatchRect_2(UiPanel, Instance.GetNode("NinePatchRect")); + return _L_NinePatchRect; + } + } + private NinePatchRect_2 _L_NinePatchRect; + + public VBoxContainer3(EncyclopediaPanel uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { } + public override VBoxContainer3 Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer + /// + public class HBoxContainer : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.VBoxContainer2 /// public VBoxContainer2 L_VBoxContainer2 { @@ -253,16 +328,64 @@ } private VBoxContainer2 _L_VBoxContainer2; + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.VBoxContainer3 + /// + public VBoxContainer3 L_VBoxContainer3 + { + get + { + if (_L_VBoxContainer3 == null) _L_VBoxContainer3 = new VBoxContainer3(UiPanel, Instance.GetNode("VBoxContainer3")); + return _L_VBoxContainer3; + } + } + private VBoxContainer3 _L_VBoxContainer3; + + public HBoxContainer(EncyclopediaPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } + public override HBoxContainer Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: Encyclopedia.NinePatchRect.MarginContainer + /// + public class MarginContainer : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.HBoxContainer + /// + public HBoxContainer L_HBoxContainer + { + get + { + if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer(UiPanel, Instance.GetNode("HBoxContainer")); + return _L_HBoxContainer; + } + } + private HBoxContainer _L_HBoxContainer; + public MarginContainer(EncyclopediaPanel uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { } public override MarginContainer Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate()); } /// - /// 类型: , 路径: Encyclopedia.Panel2 + /// 类型: , 路径: Encyclopedia.NinePatchRect /// - public class Panel2 : UiNode + public class NinePatchRect : UiNode { /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.TextureRect + /// + public TextureRect L_TextureRect + { + get + { + if (_L_TextureRect == null) _L_TextureRect = new TextureRect(UiPanel, Instance.GetNode("TextureRect")); + return _L_TextureRect; + } + } + private TextureRect _L_TextureRect; + + /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: Encyclopedia.MarginContainer /// public MarginContainer L_MarginContainer @@ -275,59 +398,83 @@ } private MarginContainer _L_MarginContainer; - public Panel2(EncyclopediaPanel uiPanel, Godot.Panel node) : base(uiPanel, node) { } - public override Panel2 Clone() => new (UiPanel, (Godot.Panel)Instance.Duplicate()); + public NinePatchRect(EncyclopediaPanel uiPanel, Godot.NinePatchRect node) : base(uiPanel, node) { } + public override NinePatchRect Clone() => new (UiPanel, (Godot.NinePatchRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: Encyclopedia.Gui + /// + public class Gui : UiNode + { + public Gui(EncyclopediaPanel uiPanel, Godot.Sprite2D node) : base(uiPanel, node) { } + public override Gui Clone() => new (UiPanel, (Godot.Sprite2D)Instance.Duplicate()); } /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer.HBoxContainer.LineEdit + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.ColorRect /// - public LineEdit S_LineEdit => L_Panel2.L_MarginContainer.L_VBoxContainer2.L_MarginContainer.L_HBoxContainer.L_LineEdit; + public ColorRect S_ColorRect => L_ColorRect; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer.HBoxContainer.Search + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.TextureRect.Label /// - public Search S_Search => L_Panel2.L_MarginContainer.L_VBoxContainer2.L_MarginContainer.L_HBoxContainer.L_Search; + public Label S_Label => L_NinePatchRect.L_TextureRect.L_Label; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.MarginContainer.HBoxContainer + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.ObjectButton.Bg /// - public HBoxContainer S_HBoxContainer => L_Panel2.L_MarginContainer.L_VBoxContainer2.L_MarginContainer.L_HBoxContainer; + public Bg S_Bg => L_NinePatchRect.L_MarginContainer.L_HBoxContainer.L_VBoxContainer2.L_NinePatchRect.L_ScrollContainer.L_ObjectButton.L_Bg; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectButton.PreviewImage + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.ObjectButton.PreviewImage /// - public PreviewImage S_PreviewImage => L_Panel2.L_MarginContainer.L_VBoxContainer2.L_ScrollContainer.L_ObjectButton.L_PreviewImage; + public PreviewImage S_PreviewImage => L_NinePatchRect.L_MarginContainer.L_HBoxContainer.L_VBoxContainer2.L_NinePatchRect.L_ScrollContainer.L_ObjectButton.L_PreviewImage; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectButton.ObjectName + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.ObjectButton.Select /// - public ObjectName S_ObjectName => L_Panel2.L_MarginContainer.L_VBoxContainer2.L_ScrollContainer.L_ObjectButton.L_ObjectName; + public Select S_Select => L_NinePatchRect.L_MarginContainer.L_HBoxContainer.L_VBoxContainer2.L_NinePatchRect.L_ScrollContainer.L_ObjectButton.L_Select; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectButton.Select + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer.ObjectButton /// - public Select S_Select => L_Panel2.L_MarginContainer.L_VBoxContainer2.L_ScrollContainer.L_ObjectButton.L_Select; + public ObjectButton S_ObjectButton => L_NinePatchRect.L_MarginContainer.L_HBoxContainer.L_VBoxContainer2.L_NinePatchRect.L_ScrollContainer.L_ObjectButton; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer.ObjectButton + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2.NinePatchRect.ScrollContainer /// - public ObjectButton S_ObjectButton => L_Panel2.L_MarginContainer.L_VBoxContainer2.L_ScrollContainer.L_ObjectButton; + public ScrollContainer S_ScrollContainer => L_NinePatchRect.L_MarginContainer.L_HBoxContainer.L_VBoxContainer2.L_NinePatchRect.L_ScrollContainer; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2.ScrollContainer + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer2 /// - public ScrollContainer S_ScrollContainer => L_Panel2.L_MarginContainer.L_VBoxContainer2.L_ScrollContainer; + public VBoxContainer2 S_VBoxContainer2 => L_NinePatchRect.L_MarginContainer.L_HBoxContainer.L_VBoxContainer2; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2.MarginContainer.VBoxContainer2 + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer3.NinePatchRect.VBoxContainer /// - public VBoxContainer2 S_VBoxContainer2 => L_Panel2.L_MarginContainer.L_VBoxContainer2; + public VBoxContainer S_VBoxContainer => L_NinePatchRect.L_MarginContainer.L_HBoxContainer.L_VBoxContainer3.L_NinePatchRect.L_VBoxContainer; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Panel2 + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer.VBoxContainer3 /// - public Panel2 S_Panel2 => L_Panel2; + public VBoxContainer3 S_VBoxContainer3 => L_NinePatchRect.L_MarginContainer.L_HBoxContainer.L_VBoxContainer3; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer.HBoxContainer + /// + public HBoxContainer S_HBoxContainer => L_NinePatchRect.L_MarginContainer.L_HBoxContainer; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.NinePatchRect.MarginContainer + /// + public MarginContainer S_MarginContainer => L_NinePatchRect.L_MarginContainer; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: Encyclopedia.Gui + /// + public Gui S_Gui => L_Gui; } diff --git a/DungeonShooting_Godot/src/game/ui/encyclopedia/EncyclopediaPanel.cs b/DungeonShooting_Godot/src/game/ui/encyclopedia/EncyclopediaPanel.cs index 06c3005..3d16e87 100644 --- a/DungeonShooting_Godot/src/game/ui/encyclopedia/EncyclopediaPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/encyclopedia/EncyclopediaPanel.cs @@ -1,3 +1,5 @@ +using System.Linq; +using Config; using Godot; namespace UI.Encyclopedia; @@ -5,9 +7,16 @@ public partial class EncyclopediaPanel : Encyclopedia { + private UiGrid _grid; + private long _id; + public override void OnCreateUi() { - + _grid = CreateUiGrid(S_ObjectButton); + _grid.SetHorizontalExpand(true); + _grid.SetAutoColumns(true); + _grid.SetCellOffset(new Vector2I(10, 10)); + ShowWeaponItem(); } public override void OnDestroyUi() @@ -15,4 +24,14 @@ } + private void ShowWeaponItem() + { + StopCoroutine(_id); + _id = StartCoroutine( + _grid.SetDataListCoroutine( + ExcelConfig.ActivityBase_List.Where(data => data.Type == ActivityType.Weapon).ToArray() + ) + ); + } + } diff --git a/DungeonShooting_Godot/src/game/ui/encyclopedia/ItemCell.cs b/DungeonShooting_Godot/src/game/ui/encyclopedia/ItemCell.cs new file mode 100644 index 0000000..ed018ed --- /dev/null +++ b/DungeonShooting_Godot/src/game/ui/encyclopedia/ItemCell.cs @@ -0,0 +1,28 @@ +using System.Collections; +using Config; + +namespace UI.Encyclopedia; + +public class ItemCell : UiCell +{ + public override void OnInit() + { + CellNode.L_Select.Instance.Visible = false; + } + + public override IEnumerator OnSetDataCoroutine(ExcelConfig.ActivityBase data) + { + CellNode.L_PreviewImage.Instance.Texture = ResourceManager.LoadTexture2D(data.Icon); + yield break; + } + + public override void OnSelect() + { + CellNode.L_Select.Instance.Visible = true; + } + + public override void OnUnSelect() + { + CellNode.L_Select.Instance.Visible = false; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs index 638b735..f53ef8e 100644 --- a/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/mapEditorMapMark/MapEditorMapMarkPanel.cs @@ -430,7 +430,7 @@ //为了引用不变, 所以这里使用克隆数据 dataMarkInfo.CloneFrom(mark); //刷新 Cell - markCell.SetData(markCell.Data); + markCell.UpdateData(markCell.Data); //执行排序 markCell.Grid.Sort(); EventManager.EmitEvent(EventEnum.OnEditMark, dataMarkInfo); diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorCombination/leftBottom/TileEditArea.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorCombination/leftBottom/TileEditArea.cs index 3dda271..9810361 100644 --- a/DungeonShooting_Godot/src/game/ui/tileSetEditorCombination/leftBottom/TileEditArea.cs +++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorCombination/leftBottom/TileEditArea.cs @@ -81,7 +81,7 @@ if (uiCell != null && !uiCell.Data) { _useMask.Add(cell); - uiCell.SetData(true); + uiCell.UpdateData(true); EventManager.EmitEvent(EventEnum.OnSelectCombinationCell, cell); } @@ -100,7 +100,7 @@ if (uiCell != null && uiCell.Data) { _useMask.Remove(cell); - uiCell.SetData(false); + uiCell.UpdateData(false); EventManager.EmitEvent(EventEnum.OnRemoveCombinationCell, cell); } @@ -119,7 +119,7 @@ var uiCell = _maskGrid.GetCell(i); if (uiCell.Data) { - uiCell.SetData(false); + uiCell.UpdateData(false); } } diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorCombination/right/TileSelected.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorCombination/right/TileSelected.cs index 5d546e2..18cf1d5 100644 --- a/DungeonShooting_Godot/src/game/ui/tileSetEditorCombination/right/TileSelected.cs +++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorCombination/right/TileSelected.cs @@ -65,7 +65,7 @@ var uiCell = Grid.Find(c => c.Data.CombinationInfo.Id == data.CombinationInfo.Id); if (uiCell != null) { - uiCell.SetData(data); + uiCell.UpdateData(data); } EventManager.EmitEvent(EventEnum.OnTileSetDirty); }