diff --git a/DungeonShooting_Godot/prefab/ui/RoomUI.tscn b/DungeonShooting_Godot/prefab/ui/RoomUI.tscn index d7f5ba9..91c4332 100644 --- a/DungeonShooting_Godot/prefab/ui/RoomUI.tscn +++ b/DungeonShooting_Godot/prefab/ui/RoomUI.tscn @@ -1,15 +1,20 @@ -[gd_scene load_steps=11 format=3 uid="uid://bvpmtfupny8iu"] +[gd_scene load_steps=14 format=3 uid="uid://bvpmtfupny8iu"] [ext_resource type="Script" path="res://src/game/ui/roomUI/RoomUIPanel.cs" id="1_u48k1"] [ext_resource type="Texture2D" uid="uid://k621mhhkg65f" path="res://resource/sprite/ui/mapBar.png" id="2"] -[ext_resource type="PackedScene" path="res://prefab/ui/bar/ReloadBar.tscn" id="3"] +[ext_resource type="Texture2D" uid="uid://b67i86mtqrn32" path="res://resource/sprite/ui/icon/icon_bullet.png" id="2_004n3"] +[ext_resource type="Texture2D" uid="uid://dxstii6f4l8m0" path="res://resource/sprite/ui/keyboard/e.png" id="3_ajp3c"] [ext_resource type="Texture2D" uid="uid://u5ul7fu8wv1a" path="res://resource/sprite/ui/healthBar.png" id="4"] +[ext_resource type="Texture2D" uid="uid://cukrx5yyqw86o" path="res://resource/sprite/ui/reloadBar.png" id="4_npp5n"] [ext_resource type="Texture2D" uid="uid://xafbhgrxmosy" path="res://resource/sprite/gun/gun4.png" id="5"] +[ext_resource type="Texture2D" uid="uid://cx3i1nkcc4307" path="res://resource/sprite/ui/reloadBarBlock.png" id="5_t7fdk"] [ext_resource type="Texture2D" uid="uid://bxd75tme0v3pb" path="res://resource/sprite/ui/hpBar.png" id="6"] [ext_resource type="Texture2D" uid="uid://h25j6uka74tv" path="res://resource/sprite/ui/shieldBar.png" id="7"] [ext_resource type="Texture2D" uid="uid://djcdjrs07ighv" path="res://resource/sprite/ui/hpSlot.png" id="8"] [ext_resource type="Texture2D" uid="uid://dnpguajopuyd7" path="res://resource/sprite/ui/shieldSlot.png" id="9"] -[ext_resource type="PackedScene" path="res://prefab/ui/bar/InteractiveTipBar.tscn" id="10"] + +[sub_resource type="Gradient" id="1"] +colors = PackedColorArray(0.4, 0.498039, 1, 1, 0.4, 0.498039, 1, 0.313726) [node name="RoomUI" type="Control"] layout_mode = 3 @@ -20,6 +25,37 @@ grow_vertical = 2 script = ExtResource("1_u48k1") +[node name="InteractiveTipBar" type="Node2D" parent="."] +z_index = 10 +position = Vector2(961, 553) +scale = Vector2(4, 4) + +[node name="Icon" type="Sprite2D" parent="InteractiveTipBar"] +position = Vector2(0, -25) +texture = ExtResource("2_004n3") + +[node name="InteractiveIcon" type="Sprite2D" parent="InteractiveTipBar"] +visible = false +position = Vector2(0, -30) +texture = ExtResource("3_ajp3c") + +[node name="Line2D" type="Line2D" parent="InteractiveTipBar"] +points = PackedVector2Array(0, -17, 0, -15.0938, 0, 0) +width = 2.0 +gradient = SubResource("1") + +[node name="ReloadBar" type="Node2D" parent="."] +z_index = 15 +position = Vector2(961, 553) +scale = Vector2(4, 4) + +[node name="Slot" type="Sprite2D" parent="ReloadBar"] +position = Vector2(0, -24) +texture = ExtResource("4_npp5n") + +[node name="Block" type="Sprite2D" parent="ReloadBar/Slot"] +texture = ExtResource("5_t7fdk") + [node name="Control" type="Control" parent="."] anchors_preset = 0 anchor_right = 1.0 @@ -120,12 +156,3 @@ text = "30/90" horizontal_alignment = 1 vertical_alignment = 1 - -[node name="GlobalNode" type="Node" parent="."] - -[node name="ViewNode" type="Node" parent="."] - -[node name="InteractiveTipBar" parent="ViewNode" instance=ExtResource("10")] - -[node name="ReloadBar" parent="ViewNode" instance=ExtResource("3")] -z_index = 15 diff --git a/DungeonShooting_Godot/prefab/ui/bar/InteractiveTipBar.tscn b/DungeonShooting_Godot/prefab/ui/bar/InteractiveTipBar.tscn deleted file mode 100644 index 98118b0..0000000 --- a/DungeonShooting_Godot/prefab/ui/bar/InteractiveTipBar.tscn +++ /dev/null @@ -1,26 +0,0 @@ -[gd_scene load_steps=5 format=2] - -[ext_resource path="res://src/game/ui/InteractiveTipBar.cs" type="Script" id=1] -[ext_resource path="res://resource/sprite/ui/keyboard/e.png" type="Texture2D" id=2] -[ext_resource path="res://resource/sprite/ui/icon/icon_bullet.png" type="Texture2D" id=3] - -[sub_resource type="Gradient" id=1] -colors = PackedColorArray( 0.4, 0.498039, 1, 1, 0.4, 0.498039, 1, 0.313726 ) - -[node name="InteractiveTipBar" type="Node2D"] -z_index = 10 -script = ExtResource( 1 ) - -[node name="Icon" type="Sprite2D" parent="."] -position = Vector2( 0, -25 ) -texture = ExtResource( 3 ) - -[node name="InteractiveIcon" type="Sprite2D" parent="."] -visible = false -position = Vector2( 0, -30 ) -texture = ExtResource( 2 ) - -[node name="Line2D" type="Line2D" parent="."] -points = PackedVector2Array( 0, -17, 0, -15.0938, 0, 0 ) -width = 2.0 -gradient = SubResource( 1 ) diff --git a/DungeonShooting_Godot/prefab/ui/bar/ReloadBar.tscn b/DungeonShooting_Godot/prefab/ui/bar/ReloadBar.tscn deleted file mode 100644 index 94b9558..0000000 --- a/DungeonShooting_Godot/prefab/ui/bar/ReloadBar.tscn +++ /dev/null @@ -1,15 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://src/game/ui/ReloadBar.cs" type="Script" id=1] -[ext_resource path="res://resource/sprite/ui/reloadBarBlock.png" type="Texture2D" id=2] -[ext_resource path="res://resource/sprite/ui/reloadBar.png" type="Texture2D" id=3] - -[node name="ReloadBar" type="Node2D"] -script = ExtResource( 1 ) - -[node name="Slot" type="Sprite2D" parent="."] -position = Vector2( 0, -24 ) -texture = ExtResource( 3 ) - -[node name="Block" type="Sprite2D" parent="Slot"] -texture = ExtResource( 2 ) diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres index a394a9c..d5a8e0e 100644 --- a/DungeonShooting_Godot/resource/theme/mainTheme.tres +++ b/DungeonShooting_Godot/resource/theme/mainTheme.tres @@ -352,7 +352,7 @@ [sub_resource type="ImageTexture" id="58"] -[sub_resource type="Image" id="Image_o2ysx"] +[sub_resource type="Image" id="Image_exlxx"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -362,7 +362,7 @@ } [sub_resource type="ImageTexture" id="60"] -image = SubResource("Image_o2ysx") +image = SubResource("Image_exlxx") [sub_resource type="StyleBoxTexture" id="61"] content_margin_left = 2.0 @@ -372,7 +372,7 @@ texture = SubResource("60") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_fn48t"] +[sub_resource type="Image" id="Image_4stjh"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -382,7 +382,7 @@ } [sub_resource type="ImageTexture" id="63"] -image = SubResource("Image_fn48t") +image = SubResource("Image_4stjh") [sub_resource type="StyleBoxTexture" id="64"] content_margin_left = 2.0 @@ -392,7 +392,7 @@ texture = SubResource("63") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_m5ry0"] +[sub_resource type="Image" id="Image_w1egd"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -402,7 +402,7 @@ } [sub_resource type="ImageTexture" id="66"] -image = SubResource("Image_m5ry0") +image = SubResource("Image_w1egd") [sub_resource type="StyleBoxTexture" id="67"] content_margin_left = 2.0 @@ -412,7 +412,7 @@ texture = SubResource("66") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_h0pqh"] +[sub_resource type="Image" id="Image_m6u6g"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -422,7 +422,7 @@ } [sub_resource type="ImageTexture" id="69"] -image = SubResource("Image_h0pqh") +image = SubResource("Image_m6u6g") [sub_resource type="StyleBoxTexture" id="70"] content_margin_left = 0.0 @@ -446,7 +446,7 @@ content_margin_right = 4.0 content_margin_bottom = 4.0 -[sub_resource type="Image" id="Image_pu26v"] +[sub_resource type="Image" id="Image_pbquv"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 228, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 228, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 18, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 17, 255, 255, 255, 186, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 191, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 186, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 189, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 77, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 77, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -456,7 +456,7 @@ } [sub_resource type="ImageTexture" id="56"] -image = SubResource("Image_pu26v") +image = SubResource("Image_pbquv") [sub_resource type="StyleBoxFlat" id="57"] content_margin_left = 6.0 diff --git a/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs b/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs index ae12d23..decc0ad 100644 --- a/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs @@ -26,7 +26,7 @@ private static string GenerateClassCode(UiNode uiNode) { - return $"namespace UI;\n\n" + + return $"namespace UI.{uiNode.OriginName};\n\n" + $"/// \n" + $"/// Ui代码, 该类是根据ui场景自动生成的, 请不要手动编辑该类, 以免造成代码丢失\n" + $"/// \n" + diff --git a/DungeonShooting_Godot/src/game/GameApplication.cs b/DungeonShooting_Godot/src/game/GameApplication.cs index dbda7dc..6706301 100644 --- a/DungeonShooting_Godot/src/game/GameApplication.cs +++ b/DungeonShooting_Godot/src/game/GameApplication.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text.Json; using Godot; -using UI; +using UI.RoomUI; public partial class GameApplication : Node2D { @@ -79,7 +79,7 @@ // 初始化鼠标 Input.MouseMode = Input.MouseModeEnum.Hidden; Cursor = ResourceManager.Load(ResourcePath.prefab_ui_Cursor_tscn).Instantiate(); - + Ui.AddChild(Cursor); RoomManager = ResourceManager.Load(ResourcePath.scene_Room_tscn).Instantiate(); diff --git a/DungeonShooting_Godot/src/game/event/EventEnum.cs b/DungeonShooting_Godot/src/game/event/EventEnum.cs index 02591f3..23d0eeb 100644 --- a/DungeonShooting_Godot/src/game/event/EventEnum.cs +++ b/DungeonShooting_Godot/src/game/event/EventEnum.cs @@ -16,4 +16,8 @@ /// 玩家第一次进入某个房间,参数为房间对象 /// OnPlayerFirstEnterRoom, + /// + /// 玩家可互动对象改变, 参数为 CheckInteractiveResult + /// + OnPlayerChangeInteractiveItem, } diff --git a/DungeonShooting_Godot/src/game/event/EventFactory.cs b/DungeonShooting_Godot/src/game/event/EventFactory.cs new file mode 100644 index 0000000..c5904e6 --- /dev/null +++ b/DungeonShooting_Godot/src/game/event/EventFactory.cs @@ -0,0 +1,31 @@ + +using System; +using System.Collections.Generic; + +/// +/// 事件工厂, 用于统一绑定事件与销毁的情况 +/// +public class EventFactory +{ + private List _binders = new List(); + + /// + /// 添加监听事件 + /// + public void AddEventListener(EventEnum eventType, Action callback) + { + _binders.Add(EventManager.AddEventListener(eventType, callback)); + } + + /// + /// 清理所有监听事件 + /// + public void Clear() + { + foreach (var eventBinder in _binders) + { + EventManager.RemoveEventListener(eventBinder); + } + _binders.Clear(); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/event/EventManager.cs b/DungeonShooting_Godot/src/game/event/EventManager.cs index 83c119a..665fe38 100644 --- a/DungeonShooting_Godot/src/game/event/EventManager.cs +++ b/DungeonShooting_Godot/src/game/event/EventManager.cs @@ -112,4 +112,12 @@ _eventMap.Clear(); } + + /// + /// 创建一个事件工厂 + /// + public static EventFactory CreateEventFactory() + { + return new EventFactory(); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/role/Player.cs b/DungeonShooting_Godot/src/game/role/Player.cs index 21d2d68..e51ea42 100644 --- a/DungeonShooting_Godot/src/game/role/Player.cs +++ b/DungeonShooting_Godot/src/game/role/Player.cs @@ -25,9 +25,7 @@ public override void OnInit() { base.OnInit(); - - GameCamera.Main.OnPositionUpdateEvent += OnCameraPositionUpdate; - + AttackLayer = PhysicsLayer.Wall | PhysicsLayer.Props | PhysicsLayer.Enemy; Camp = CampEnum.Camp1; @@ -112,21 +110,6 @@ PlayAnim(); } - private void OnCameraPositionUpdate(float delta) - { - var reloadBar = GameApplication.Instance.Ui.ReloadBar; - if (Holster.ActiveWeapon != null && Holster.ActiveWeapon.Reloading) - { - reloadBar.ShowBar(GlobalPosition, 1 - Holster.ActiveWeapon.ReloadProgress); - } - else - { - reloadBar.HideBar(); - } - // GameApplication.Instance.Ui.Control.MapBar.Instance.GlobalPosition = - // GameApplication.Instance.ViewToGlobalPosition(Player.Current.GlobalPosition); - } - public override void ExchangeNext() { base.ExchangeNext(); @@ -173,19 +156,8 @@ protected override void ChangeInteractiveItem(CheckInteractiveResult result) { - if (result == null) - { - //隐藏互动提示 - GameApplication.Instance.Ui.InteractiveTipBar.HideBar(); - } - else - { - if (InteractiveItem is Weapon gun) - { - //显示互动提示 - GameApplication.Instance.Ui.InteractiveTipBar.ShowBar(result.Target, result.ShowIcon); - } - } + //派发互动对象改变事件 + EventManager.EmitEvent(EventEnum.OnPlayerChangeInteractiveItem, result); } protected override void OnChangeShield(int shield) diff --git a/DungeonShooting_Godot/src/game/ui/InteractiveTipBar.cs b/DungeonShooting_Godot/src/game/ui/InteractiveTipBar.cs deleted file mode 100644 index 76dc685..0000000 --- a/DungeonShooting_Godot/src/game/ui/InteractiveTipBar.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Godot; - -/// -/// 互动提示文本 -/// -public partial class InteractiveTipBar : Node2D -{ - - private ActivityObject Target; - - private Sprite2D Icon; - - private string currImage; - - public override void _Ready() - { - Icon = GetNode("Icon"); - } - - /// - /// 隐藏互动提示ui - /// - public void HideBar() - { - Visible = false; - } - - /// - /// 显示互动提示ui - /// - /// 所在坐标 - /// 显示图标 - public void ShowBar(ActivityObject target, string icon) - { - Target = target; - GlobalPosition = target.GlobalPosition; - if (currImage != icon) - { - currImage = icon; - Icon.Texture = ResourceManager.Load(icon); - } - Visible = true; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/ReloadBar.cs b/DungeonShooting_Godot/src/game/ui/ReloadBar.cs deleted file mode 100644 index 2f4a7ba..0000000 --- a/DungeonShooting_Godot/src/game/ui/ReloadBar.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Godot; - -/// -/// 换弹进度组件 -/// -public partial class ReloadBar : Node2D -{ - private Sprite2D slot; - private Sprite2D block; - - private int width; - private float startX; - - public override void _Ready() - { - slot = GetNode("Slot"); - block = GetNode("Slot/Block"); - width = slot.Texture.GetWidth(); - startX = -(width - 3) / 2f; - } - - /// - /// 隐藏换弹进度组件 - /// - public void HideBar() - { - Visible = false; - } - - /// - /// 显示换弹进度组件 - /// - /// 坐标 - /// 进度, 0 - 1 - public void ShowBar(Vector2 position, float progress) - { - Visible = true; - GlobalPosition = position; - progress = Mathf.Clamp(progress, 0, 1); - block.Position = new Vector2(startX + (width - 3) * progress, 0); - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs new file mode 100644 index 0000000..9ffe5ed --- /dev/null +++ b/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs @@ -0,0 +1,93 @@ +using Godot; + +namespace UI.RoomUI; + +/// +/// 互动提示文本 +/// +public class InteractiveTipBar +{ + private RoomUI.UiNode1_InteractiveTipBar _interactiveTipBar; + private string _currImage; + private EventBinder _binder; + private ActivityObject _interactiveTarget; + + public InteractiveTipBar(RoomUI.UiNode1_InteractiveTipBar interactiveTipBar) + { + interactiveTipBar.Instance.Visible = false; + _interactiveTipBar = interactiveTipBar; + } + + public void OnOpen() + { + GameCamera.Main.OnPositionUpdateEvent += OnCameraPositionUpdate; + _binder = EventManager.AddEventListener(EventEnum.OnPlayerChangeInteractiveItem, OnPlayerChangeInteractiveItem); + } + + public void OnClose() + { + GameCamera.Main.OnPositionUpdateEvent -= OnCameraPositionUpdate; + _binder.RemoveEventListener(); + _binder = null; + } + + /// + /// 隐藏互动提示ui + /// + public void HideBar() + { + _interactiveTipBar.Instance.Visible = false; + } + + /// + /// 显示互动提示ui + /// + /// 所在坐标 + /// 显示图标 + public void ShowBar(ActivityObject target, string icon) + { + _interactiveTipBar.Instance.GlobalPosition = target.GlobalPosition; + if (_currImage != icon) + { + _currImage = icon; + _interactiveTipBar.L_Icon.Instance.Texture = ResourceManager.Load(icon); + } + _interactiveTipBar.Instance.Visible = true; + } + + public void OnPlayerChangeInteractiveItem(object o) + { + if (o == null) + { + _interactiveTarget = null; + //隐藏互动提示 + HideBar(); + } + else + { + var result = (CheckInteractiveResult)o; + var interactiveItem = Player.Current.InteractiveItem; + if (interactiveItem is Weapon) + { + _interactiveTarget = interactiveItem; + //显示互动提示 + ShowBar(result.Target, result.ShowIcon); + } + else + { + _interactiveTarget = null; + } + } + } + + /// + /// 相机更新回调 + /// + public void OnCameraPositionUpdate(float delta) + { + if (_interactiveTarget != null) + { + _interactiveTipBar.Instance.GlobalPosition = GameApplication.Instance.ViewToGlobalPosition(_interactiveTarget.GlobalPosition); + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs new file mode 100644 index 0000000..85a331e --- /dev/null +++ b/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs @@ -0,0 +1,68 @@ +using Godot; + +namespace UI.RoomUI; + +/// +/// 换弹进度组件 +/// +public class ReloadBar +{ + private RoomUI.UiNode5_ReloadBar _reloadBar; + private int width; + private float startX; + + public ReloadBar(RoomUI.UiNode5_ReloadBar reloadBar) + { + reloadBar.Instance.Visible = false; + _reloadBar = reloadBar; + width = _reloadBar.L_Slot.Instance.Texture.GetWidth(); + startX = -(width - 3) / 2f; + } + + public void OnOpen() + { + GameCamera.Main.OnPositionUpdateEvent += OnCameraPositionUpdate; + } + + public void OnClose() + { + GameCamera.Main.OnPositionUpdateEvent -= OnCameraPositionUpdate; + } + + /// + /// 隐藏换弹进度组件 + /// + public void HideBar() + { + _reloadBar.Instance.Visible = false; + } + + /// + /// 显示换弹进度组件 + /// + /// 坐标 + /// 进度, 0 - 1 + public void ShowBar(Vector2 position, float progress) + { + _reloadBar.Instance.Visible = true; + _reloadBar.Instance.GlobalPosition = GameApplication.Instance.ViewToGlobalPosition(position); + progress = Mathf.Clamp(progress, 0, 1); + _reloadBar.L_Slot.L_Block.Instance.Position = new Vector2(startX + (width - 3) * progress, 0); + } + + /// + /// 相机更新回调 + /// + public void OnCameraPositionUpdate(float delta) + { + var player = Player.Current; + if (player.Holster.ActiveWeapon != null && player.Holster.ActiveWeapon.Reloading) + { + ShowBar(player.GlobalPosition, 1 - player.Holster.ActiveWeapon.ReloadProgress); + } + else + { + HideBar(); + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs index 405aa65..c296c7c 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs @@ -1,4 +1,4 @@ -namespace UI; +namespace UI.RoomUI; /// /// Ui代码, 该类是根据ui场景自动生成的, 请不要手动编辑该类, 以免造成代码丢失 @@ -6,77 +6,240 @@ public abstract partial class RoomUI : UiBase { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.InteractiveTipBar /// - public UiNode1_Control L_Control + public UiNode1_InteractiveTipBar L_InteractiveTipBar { get { - if (_L_Control == null) _L_Control = new UiNode1_Control(GetNode("Control")); + if (_L_InteractiveTipBar == null) _L_InteractiveTipBar = new UiNode1_InteractiveTipBar(GetNode("InteractiveTipBar")); + return _L_InteractiveTipBar; + } + } + private UiNode1_InteractiveTipBar _L_InteractiveTipBar; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ReloadBar + /// + public UiNode5_ReloadBar L_ReloadBar + { + get + { + if (_L_ReloadBar == null) _L_ReloadBar = new UiNode5_ReloadBar(GetNode("ReloadBar")); + return _L_ReloadBar; + } + } + private UiNode5_ReloadBar _L_ReloadBar; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control + /// + public UiNode8_Control L_Control + { + get + { + if (_L_Control == null) _L_Control = new UiNode8_Control(GetNode("Control")); return _L_Control; } } - private UiNode1_Control _L_Control; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.GlobalNode - /// - public UiNode11_GlobalNode L_GlobalNode - { - get - { - if (_L_GlobalNode == null) _L_GlobalNode = new UiNode11_GlobalNode(GetNode("GlobalNode")); - return _L_GlobalNode; - } - } - private UiNode11_GlobalNode _L_GlobalNode; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ViewNode - /// - public UiNode12_ViewNode L_ViewNode - { - get - { - if (_L_ViewNode == null) _L_ViewNode = new UiNode12_ViewNode(GetNode("ViewNode")); - return _L_ViewNode; - } - } - private UiNode12_ViewNode _L_ViewNode; + private UiNode8_Control _L_Control; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Cursor /// - public UiNode20_Cursor L_Cursor + public UiNode18_Cursor L_Cursor { get { - if (_L_Cursor == null) _L_Cursor = new UiNode20_Cursor(GetNode("Cursor")); + if (_L_Cursor == null) _L_Cursor = new UiNode18_Cursor(GetNode("Cursor")); return _L_Cursor; } } - private UiNode20_Cursor _L_Cursor; + private UiNode18_Cursor _L_Cursor; /// + /// 类型: , 路径: RoomUI.InteractiveTipBar.Icon + /// + public class UiNode2_Icon + { + /// + /// Ui节点实例, 节点类型: , 节点路径: RoomUI.InteractiveTipBar.Icon + /// + public Godot.Sprite2D Instance { get; } + + public UiNode2_Icon(Godot.Sprite2D node) => Instance = node; + public UiNode2_Icon Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.InteractiveTipBar.InteractiveIcon + /// + public class UiNode3_InteractiveIcon + { + /// + /// Ui节点实例, 节点类型: , 节点路径: RoomUI.InteractiveTipBar.InteractiveIcon + /// + public Godot.Sprite2D Instance { get; } + + public UiNode3_InteractiveIcon(Godot.Sprite2D node) => Instance = node; + public UiNode3_InteractiveIcon Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.InteractiveTipBar.Line2D + /// + public class UiNode4_Line2D + { + /// + /// Ui节点实例, 节点类型: , 节点路径: RoomUI.InteractiveTipBar.Line2D + /// + public Godot.Line2D Instance { get; } + + public UiNode4_Line2D(Godot.Line2D node) => Instance = node; + public UiNode4_Line2D Clone() => new ((Godot.Line2D)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.InteractiveTipBar + /// + public class UiNode1_InteractiveTipBar + { + /// + /// Ui节点实例, 节点类型: , 节点路径: RoomUI.InteractiveTipBar + /// + public Godot.Node2D Instance { get; } + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Icon + /// + public UiNode2_Icon L_Icon + { + get + { + if (_L_Icon == null) _L_Icon = new UiNode2_Icon(Instance.GetNode("Icon")); + return _L_Icon; + } + } + private UiNode2_Icon _L_Icon; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.InteractiveIcon + /// + public UiNode3_InteractiveIcon L_InteractiveIcon + { + get + { + if (_L_InteractiveIcon == null) _L_InteractiveIcon = new UiNode3_InteractiveIcon(Instance.GetNode("InteractiveIcon")); + return _L_InteractiveIcon; + } + } + private UiNode3_InteractiveIcon _L_InteractiveIcon; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Line2D + /// + public UiNode4_Line2D L_Line2D + { + get + { + if (_L_Line2D == null) _L_Line2D = new UiNode4_Line2D(Instance.GetNode("Line2D")); + return _L_Line2D; + } + } + private UiNode4_Line2D _L_Line2D; + + public UiNode1_InteractiveTipBar(Godot.Node2D node) => Instance = node; + public UiNode1_InteractiveTipBar Clone() => new ((Godot.Node2D)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.ReloadBar.Slot.Block + /// + public class UiNode7_Block + { + /// + /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ReloadBar.Slot.Block + /// + public Godot.Sprite2D Instance { get; } + + public UiNode7_Block(Godot.Sprite2D node) => Instance = node; + public UiNode7_Block Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.ReloadBar.Slot + /// + public class UiNode6_Slot + { + /// + /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ReloadBar.Slot + /// + public Godot.Sprite2D Instance { get; } + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ReloadBar.Block + /// + public UiNode7_Block L_Block + { + get + { + if (_L_Block == null) _L_Block = new UiNode7_Block(Instance.GetNode("Block")); + return _L_Block; + } + } + private UiNode7_Block _L_Block; + + public UiNode6_Slot(Godot.Sprite2D node) => Instance = node; + public UiNode6_Slot Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.ReloadBar + /// + public class UiNode5_ReloadBar + { + /// + /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ReloadBar + /// + public Godot.Node2D Instance { get; } + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Slot + /// + public UiNode6_Slot L_Slot + { + get + { + if (_L_Slot == null) _L_Slot = new UiNode6_Slot(Instance.GetNode("Slot")); + return _L_Slot; + } + } + private UiNode6_Slot _L_Slot; + + public UiNode5_ReloadBar(Godot.Node2D node) => Instance = node; + public UiNode5_ReloadBar Clone() => new ((Godot.Node2D)Instance.Duplicate()); + } + + /// /// 类型: , 路径: RoomUI.Control.HealthBar.HpSlot.HpBar /// - public class UiNode4_HpBar + public class UiNode11_HpBar { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar.HpSlot.HpBar /// public Godot.TextureRect Instance { get; } - public UiNode4_HpBar(Godot.TextureRect node) => Instance = node; - public UiNode4_HpBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode11_HpBar(Godot.TextureRect node) => Instance = node; + public UiNode11_HpBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control.HealthBar.HpSlot /// - public class UiNode3_HpSlot + public class UiNode10_HpSlot { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar.HpSlot @@ -86,38 +249,38 @@ /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.HealthBar.HpBar /// - public UiNode4_HpBar L_HpBar + public UiNode11_HpBar L_HpBar { get { - if (_L_HpBar == null) _L_HpBar = new UiNode4_HpBar(Instance.GetNode("HpBar")); + if (_L_HpBar == null) _L_HpBar = new UiNode11_HpBar(Instance.GetNode("HpBar")); return _L_HpBar; } } - private UiNode4_HpBar _L_HpBar; + private UiNode11_HpBar _L_HpBar; - public UiNode3_HpSlot(Godot.NinePatchRect node) => Instance = node; - public UiNode3_HpSlot Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + public UiNode10_HpSlot(Godot.NinePatchRect node) => Instance = node; + public UiNode10_HpSlot Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control.HealthBar.ShieldSlot.ShieldBar /// - public class UiNode6_ShieldBar + public class UiNode13_ShieldBar { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar.ShieldSlot.ShieldBar /// public Godot.TextureRect Instance { get; } - public UiNode6_ShieldBar(Godot.TextureRect node) => Instance = node; - public UiNode6_ShieldBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode13_ShieldBar(Godot.TextureRect node) => Instance = node; + public UiNode13_ShieldBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control.HealthBar.ShieldSlot /// - public class UiNode5_ShieldSlot + public class UiNode12_ShieldSlot { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar.ShieldSlot @@ -127,24 +290,24 @@ /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.HealthBar.ShieldBar /// - public UiNode6_ShieldBar L_ShieldBar + public UiNode13_ShieldBar L_ShieldBar { get { - if (_L_ShieldBar == null) _L_ShieldBar = new UiNode6_ShieldBar(Instance.GetNode("ShieldBar")); + if (_L_ShieldBar == null) _L_ShieldBar = new UiNode13_ShieldBar(Instance.GetNode("ShieldBar")); return _L_ShieldBar; } } - private UiNode6_ShieldBar _L_ShieldBar; + private UiNode13_ShieldBar _L_ShieldBar; - public UiNode5_ShieldSlot(Godot.NinePatchRect node) => Instance = node; - public UiNode5_ShieldSlot Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + public UiNode12_ShieldSlot(Godot.NinePatchRect node) => Instance = node; + public UiNode12_ShieldSlot Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control.HealthBar /// - public class UiNode2_HealthBar + public class UiNode9_HealthBar { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar @@ -154,79 +317,79 @@ /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.HpSlot /// - public UiNode3_HpSlot L_HpSlot + public UiNode10_HpSlot L_HpSlot { get { - if (_L_HpSlot == null) _L_HpSlot = new UiNode3_HpSlot(Instance.GetNode("HpSlot")); + if (_L_HpSlot == null) _L_HpSlot = new UiNode10_HpSlot(Instance.GetNode("HpSlot")); return _L_HpSlot; } } - private UiNode3_HpSlot _L_HpSlot; + private UiNode10_HpSlot _L_HpSlot; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ShieldSlot /// - public UiNode5_ShieldSlot L_ShieldSlot + public UiNode12_ShieldSlot L_ShieldSlot { get { - if (_L_ShieldSlot == null) _L_ShieldSlot = new UiNode5_ShieldSlot(Instance.GetNode("ShieldSlot")); + if (_L_ShieldSlot == null) _L_ShieldSlot = new UiNode12_ShieldSlot(Instance.GetNode("ShieldSlot")); return _L_ShieldSlot; } } - private UiNode5_ShieldSlot _L_ShieldSlot; + private UiNode12_ShieldSlot _L_ShieldSlot; - public UiNode2_HealthBar(Godot.TextureRect node) => Instance = node; - public UiNode2_HealthBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode9_HealthBar(Godot.TextureRect node) => Instance = node; + public UiNode9_HealthBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control.MapBar /// - public class UiNode7_MapBar + public class UiNode14_MapBar { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.MapBar /// public Godot.TextureRect Instance { get; } - public UiNode7_MapBar(Godot.TextureRect node) => Instance = node; - public UiNode7_MapBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode14_MapBar(Godot.TextureRect node) => Instance = node; + public UiNode14_MapBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control.GunBar.GunSprite /// - public class UiNode9_GunSprite + public class UiNode16_GunSprite { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.GunBar.GunSprite /// public Godot.TextureRect Instance { get; } - public UiNode9_GunSprite(Godot.TextureRect node) => Instance = node; - public UiNode9_GunSprite Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode16_GunSprite(Godot.TextureRect node) => Instance = node; + public UiNode16_GunSprite Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control.GunBar.BulletText /// - public class UiNode10_BulletText + public class UiNode17_BulletText { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.GunBar.BulletText /// public Godot.Label Instance { get; } - public UiNode10_BulletText(Godot.Label node) => Instance = node; - public UiNode10_BulletText Clone() => new ((Godot.Label)Instance.Duplicate()); + public UiNode17_BulletText(Godot.Label node) => Instance = node; + public UiNode17_BulletText Clone() => new ((Godot.Label)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control.GunBar /// - public class UiNode8_GunBar + public class UiNode15_GunBar { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.GunBar @@ -236,37 +399,37 @@ /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.GunSprite /// - public UiNode9_GunSprite L_GunSprite + public UiNode16_GunSprite L_GunSprite { get { - if (_L_GunSprite == null) _L_GunSprite = new UiNode9_GunSprite(Instance.GetNode("GunSprite")); + if (_L_GunSprite == null) _L_GunSprite = new UiNode16_GunSprite(Instance.GetNode("GunSprite")); return _L_GunSprite; } } - private UiNode9_GunSprite _L_GunSprite; + private UiNode16_GunSprite _L_GunSprite; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.BulletText /// - public UiNode10_BulletText L_BulletText + public UiNode17_BulletText L_BulletText { get { - if (_L_BulletText == null) _L_BulletText = new UiNode10_BulletText(Instance.GetNode("BulletText")); + if (_L_BulletText == null) _L_BulletText = new UiNode17_BulletText(Instance.GetNode("BulletText")); return _L_BulletText; } } - private UiNode10_BulletText _L_BulletText; + private UiNode17_BulletText _L_BulletText; - public UiNode8_GunBar(Godot.Control node) => Instance = node; - public UiNode8_GunBar Clone() => new ((Godot.Control)Instance.Duplicate()); + public UiNode15_GunBar(Godot.Control node) => Instance = node; + public UiNode15_GunBar Clone() => new ((Godot.Control)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Control /// - public class UiNode1_Control + public class UiNode8_Control { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control @@ -276,323 +439,106 @@ /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.HealthBar /// - public UiNode2_HealthBar L_HealthBar + public UiNode9_HealthBar L_HealthBar { get { - if (_L_HealthBar == null) _L_HealthBar = new UiNode2_HealthBar(Instance.GetNode("HealthBar")); + if (_L_HealthBar == null) _L_HealthBar = new UiNode9_HealthBar(Instance.GetNode("HealthBar")); return _L_HealthBar; } } - private UiNode2_HealthBar _L_HealthBar; + private UiNode9_HealthBar _L_HealthBar; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.MapBar /// - public UiNode7_MapBar L_MapBar + public UiNode14_MapBar L_MapBar { get { - if (_L_MapBar == null) _L_MapBar = new UiNode7_MapBar(Instance.GetNode("MapBar")); + if (_L_MapBar == null) _L_MapBar = new UiNode14_MapBar(Instance.GetNode("MapBar")); return _L_MapBar; } } - private UiNode7_MapBar _L_MapBar; + private UiNode14_MapBar _L_MapBar; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.GunBar /// - public UiNode8_GunBar L_GunBar + public UiNode15_GunBar L_GunBar { get { - if (_L_GunBar == null) _L_GunBar = new UiNode8_GunBar(Instance.GetNode("GunBar")); + if (_L_GunBar == null) _L_GunBar = new UiNode15_GunBar(Instance.GetNode("GunBar")); return _L_GunBar; } } - private UiNode8_GunBar _L_GunBar; + private UiNode15_GunBar _L_GunBar; - public UiNode1_Control(Godot.Control node) => Instance = node; - public UiNode1_Control Clone() => new ((Godot.Control)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.GlobalNode - /// - public class UiNode11_GlobalNode - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.GlobalNode - /// - public Godot.Node Instance { get; } - - public UiNode11_GlobalNode(Godot.Node node) => Instance = node; - public UiNode11_GlobalNode Clone() => new ((Godot.Node)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.ViewNode.InteractiveTipBar.Icon - /// - public class UiNode14_Icon - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ViewNode.InteractiveTipBar.Icon - /// - public Godot.Sprite2D Instance { get; } - - public UiNode14_Icon(Godot.Sprite2D node) => Instance = node; - public UiNode14_Icon Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.ViewNode.InteractiveTipBar.InteractiveIcon - /// - public class UiNode15_InteractiveIcon - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ViewNode.InteractiveTipBar.InteractiveIcon - /// - public Godot.Sprite2D Instance { get; } - - public UiNode15_InteractiveIcon(Godot.Sprite2D node) => Instance = node; - public UiNode15_InteractiveIcon Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.ViewNode.InteractiveTipBar.Line2D - /// - public class UiNode16_Line2D - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ViewNode.InteractiveTipBar.Line2D - /// - public Godot.Line2D Instance { get; } - - public UiNode16_Line2D(Godot.Line2D node) => Instance = node; - public UiNode16_Line2D Clone() => new ((Godot.Line2D)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.ViewNode.InteractiveTipBar - /// - public class UiNode13_InteractiveTipBar - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ViewNode.InteractiveTipBar - /// - public InteractiveTipBar Instance { get; } - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ViewNode.Icon - /// - public UiNode14_Icon L_Icon - { - get - { - if (_L_Icon == null) _L_Icon = new UiNode14_Icon(Instance.GetNode("Icon")); - return _L_Icon; - } - } - private UiNode14_Icon _L_Icon; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ViewNode.InteractiveIcon - /// - public UiNode15_InteractiveIcon L_InteractiveIcon - { - get - { - if (_L_InteractiveIcon == null) _L_InteractiveIcon = new UiNode15_InteractiveIcon(Instance.GetNode("InteractiveIcon")); - return _L_InteractiveIcon; - } - } - private UiNode15_InteractiveIcon _L_InteractiveIcon; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ViewNode.Line2D - /// - public UiNode16_Line2D L_Line2D - { - get - { - if (_L_Line2D == null) _L_Line2D = new UiNode16_Line2D(Instance.GetNode("Line2D")); - return _L_Line2D; - } - } - private UiNode16_Line2D _L_Line2D; - - public UiNode13_InteractiveTipBar(InteractiveTipBar node) => Instance = node; - public UiNode13_InteractiveTipBar Clone() => new ((InteractiveTipBar)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.ViewNode.ReloadBar.Slot.Block - /// - public class UiNode19_Block - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ViewNode.ReloadBar.Slot.Block - /// - public Godot.Sprite2D Instance { get; } - - public UiNode19_Block(Godot.Sprite2D node) => Instance = node; - public UiNode19_Block Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.ViewNode.ReloadBar.Slot - /// - public class UiNode18_Slot - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ViewNode.ReloadBar.Slot - /// - public Godot.Sprite2D Instance { get; } - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ViewNode.ReloadBar.Block - /// - public UiNode19_Block L_Block - { - get - { - if (_L_Block == null) _L_Block = new UiNode19_Block(Instance.GetNode("Block")); - return _L_Block; - } - } - private UiNode19_Block _L_Block; - - public UiNode18_Slot(Godot.Sprite2D node) => Instance = node; - public UiNode18_Slot Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.ViewNode.ReloadBar - /// - public class UiNode17_ReloadBar - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ViewNode.ReloadBar - /// - public ReloadBar Instance { get; } - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ViewNode.Slot - /// - public UiNode18_Slot L_Slot - { - get - { - if (_L_Slot == null) _L_Slot = new UiNode18_Slot(Instance.GetNode("Slot")); - return _L_Slot; - } - } - private UiNode18_Slot _L_Slot; - - public UiNode17_ReloadBar(ReloadBar node) => Instance = node; - public UiNode17_ReloadBar Clone() => new ((ReloadBar)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.ViewNode - /// - public class UiNode12_ViewNode - { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ViewNode - /// - public Godot.Node Instance { get; } - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.InteractiveTipBar - /// - public UiNode13_InteractiveTipBar L_InteractiveTipBar - { - get - { - if (_L_InteractiveTipBar == null) _L_InteractiveTipBar = new UiNode13_InteractiveTipBar(Instance.GetNode("InteractiveTipBar")); - return _L_InteractiveTipBar; - } - } - private UiNode13_InteractiveTipBar _L_InteractiveTipBar; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ReloadBar - /// - public UiNode17_ReloadBar L_ReloadBar - { - get - { - if (_L_ReloadBar == null) _L_ReloadBar = new UiNode17_ReloadBar(Instance.GetNode("ReloadBar")); - return _L_ReloadBar; - } - } - private UiNode17_ReloadBar _L_ReloadBar; - - public UiNode12_ViewNode(Godot.Node node) => Instance = node; - public UiNode12_ViewNode Clone() => new ((Godot.Node)Instance.Duplicate()); + public UiNode8_Control(Godot.Control node) => Instance = node; + public UiNode8_Control Clone() => new ((Godot.Control)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Cursor.LT /// - public class UiNode21_LT + public class UiNode19_LT { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Cursor.LT /// public Godot.Sprite2D Instance { get; } - public UiNode21_LT(Godot.Sprite2D node) => Instance = node; - public UiNode21_LT Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + public UiNode19_LT(Godot.Sprite2D node) => Instance = node; + public UiNode19_LT Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Cursor.LB /// - public class UiNode22_LB + public class UiNode20_LB { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Cursor.LB /// public Godot.Sprite2D Instance { get; } - public UiNode22_LB(Godot.Sprite2D node) => Instance = node; - public UiNode22_LB Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + public UiNode20_LB(Godot.Sprite2D node) => Instance = node; + public UiNode20_LB Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Cursor.RT /// - public class UiNode23_RT + public class UiNode21_RT { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Cursor.RT /// public Godot.Sprite2D Instance { get; } - public UiNode23_RT(Godot.Sprite2D node) => Instance = node; - public UiNode23_RT Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + public UiNode21_RT(Godot.Sprite2D node) => Instance = node; + public UiNode21_RT Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Cursor.RB /// - public class UiNode24_RB + public class UiNode22_RB { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Cursor.RB /// public Godot.Sprite2D Instance { get; } - public UiNode24_RB(Godot.Sprite2D node) => Instance = node; - public UiNode24_RB Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + public UiNode22_RB(Godot.Sprite2D node) => Instance = node; + public UiNode22_RB Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); } /// /// 类型: , 路径: RoomUI.Cursor /// - public class UiNode20_Cursor + public class UiNode18_Cursor { /// /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Cursor @@ -602,57 +548,57 @@ /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.LT /// - public UiNode21_LT L_LT + public UiNode19_LT L_LT { get { - if (_L_LT == null) _L_LT = new UiNode21_LT(Instance.GetNode("LT")); + if (_L_LT == null) _L_LT = new UiNode19_LT(Instance.GetNode("LT")); return _L_LT; } } - private UiNode21_LT _L_LT; + private UiNode19_LT _L_LT; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.LB /// - public UiNode22_LB L_LB + public UiNode20_LB L_LB { get { - if (_L_LB == null) _L_LB = new UiNode22_LB(Instance.GetNode("LB")); + if (_L_LB == null) _L_LB = new UiNode20_LB(Instance.GetNode("LB")); return _L_LB; } } - private UiNode22_LB _L_LB; + private UiNode20_LB _L_LB; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.RT /// - public UiNode23_RT L_RT + public UiNode21_RT L_RT { get { - if (_L_RT == null) _L_RT = new UiNode23_RT(Instance.GetNode("RT")); + if (_L_RT == null) _L_RT = new UiNode21_RT(Instance.GetNode("RT")); return _L_RT; } } - private UiNode23_RT _L_RT; + private UiNode21_RT _L_RT; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.RB /// - public UiNode24_RB L_RB + public UiNode22_RB L_RB { get { - if (_L_RB == null) _L_RB = new UiNode24_RB(Instance.GetNode("RB")); + if (_L_RB == null) _L_RB = new UiNode22_RB(Instance.GetNode("RB")); return _L_RB; } } - private UiNode24_RB _L_RB; + private UiNode22_RB _L_RB; - public UiNode20_Cursor(Cursor node) => Instance = node; - public UiNode20_Cursor Clone() => new ((Cursor)Instance.Duplicate()); + public UiNode18_Cursor(Cursor node) => Instance = node; + public UiNode18_Cursor Clone() => new ((Cursor)Instance.Duplicate()); } } diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs index 7ff1e6c..9b3daba 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs @@ -1,6 +1,6 @@ using Godot; -namespace UI; +namespace UI.RoomUI; /// /// 房间中的ui @@ -23,62 +23,29 @@ /// 最大护盾值 /// public int MaxShield { get; private set; } - - /// - /// 互动提示组件 - /// - public InteractiveTipBar InteractiveTipBar { get; private set; } - /// - /// 换弹进度组件 - /// - public ReloadBar ReloadBar { get; private set; } - + + private ReloadBar _reloadBar; + private InteractiveTipBar _interactiveTipBar; + public override void OnOpen(params object[] args) { - + _reloadBar.OnOpen(); + _interactiveTipBar.OnOpen(); } public override void OnClose() { - - } - - public override void _EnterTree() - { - InteractiveTipBar = GetNode("ViewNode/InteractiveTipBar"); - InteractiveTipBar.Visible = false; - - ReloadBar = GetNode("ViewNode/ReloadBar"); - ReloadBar.Visible = false; + _reloadBar.OnClose(); + _interactiveTipBar.OnClose(); } public override void _Ready() { //Generator.UiGenerator.GenerateUi(this, "src/game/ui/roomUI/RoomUI.cs"); - - //将 GlobalNode 节点下的 ui 节点放入全局坐标中 - var globalNode = GetNode("GlobalNode"); - var root = GameApplication.Instance.GlobalNodeRoot; - var count = globalNode.GetChildCount(); - for (int i = count - 1; i >= 0; i--) - { - var node = globalNode.GetChild(i); - globalNode.RemoveChild(node); - root.CallDeferred("add_child", node); - } - globalNode.CallDeferred("queue_free"); - - //将 ViewNode 节点放到 SubViewport 下 - var viewNode = GetNode("ViewNode"); - var viewport = GameApplication.Instance.SubViewport; - count = viewNode.GetChildCount(); - for (int i = count - 1; i >= 0; i--) - { - var node = viewNode.GetChild(i); - viewNode.RemoveChild(node); - viewport.CallDeferred("add_child", node); - } - viewNode.CallDeferred("queue_free"); + _reloadBar = new ReloadBar(L_ReloadBar); + _interactiveTipBar = new InteractiveTipBar(L_InteractiveTipBar); + + OnOpen(); } /// @@ -113,7 +80,8 @@ public void SetHp(int hp) { Hp = Mathf.Clamp(hp, 0, MaxHp); - L_Control.L_HealthBar.L_HpSlot.Instance.Size = new Vector2(hp, L_Control.L_HealthBar.L_HpSlot.Instance.Size.Y); + var textureRect = L_Control.L_HealthBar.L_HpSlot.L_HpBar.Instance; + textureRect.Size = new Vector2(hp, textureRect.Size.Y); } /// @@ -122,7 +90,8 @@ public void SetShield(int shield) { Shield = Mathf.Clamp(shield, 0, MaxShield); - L_Control.L_HealthBar.L_ShieldSlot.Instance.Size = new Vector2(shield, L_Control.L_HealthBar.L_ShieldSlot.Instance.Size.Y); + var textureRect = L_Control.L_HealthBar.L_ShieldSlot.L_ShieldBar.Instance; + textureRect.Size = new Vector2(shield, textureRect.Size.Y); } ///