From 61f8cbb62a6a93bf2604b3ec847930885ea06336 Mon Sep 17 00:00:00 2001 From: Reed Date: Tue, 6 Jan 2026 16:19:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=9C=8D=E5=8A=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _game/Game.tscn | 93 ------- _game/example/Game.tscn | 237 ++++++++++++++++++ _game/example/example.gd | 7 + _game/example/example.gd.uid | 1 + _props/_camera/camera_anchor_disable.tres | 10 + _props/_camera/camera_anchor_enable.tres | 10 + .../effect/player_trigger_volumn_disable.tres | 11 + .../effect/player_trigger_volumn_enable.tres | 11 + _shared/CameraAnchor.gd | 19 -- _shared/camera/CameraAnchor.gd | 42 ++++ _shared/{ => camera}/CameraAnchor.gd.uid | 0 _shared/{ => camera}/CameraAnchor.tscn | 2 +- _shared/camera/CameraManager.gd | 19 -- .../CameraSystem.tscn => CameraSystem.gd} | 42 ++-- ...meraManager.gd.uid => CameraSystem.gd.uid} | 0 _shared/camera/CameraSystem.tscn | 15 ++ _shared/camera/PlayerStaticCamera.tscn | 7 +- {_levels => _shared}/l_test.tscn | 0 addons/reedscene/act/ActManager.gd | 4 +- addons/reedscene/scene/ReedScene.gd | 2 +- project.godot | 2 +- 21 files changed, 372 insertions(+), 162 deletions(-) delete mode 100644 _game/Game.tscn create mode 100644 _game/example/Game.tscn create mode 100644 _game/example/example.gd create mode 100644 _game/example/example.gd.uid create mode 100644 _props/_camera/camera_anchor_disable.tres create mode 100644 _props/_camera/camera_anchor_enable.tres create mode 100644 _props/_prefabs/player/effect/player_trigger_volumn_disable.tres create mode 100644 _props/_prefabs/player/effect/player_trigger_volumn_enable.tres delete mode 100644 _shared/CameraAnchor.gd create mode 100644 _shared/camera/CameraAnchor.gd rename _shared/{ => camera}/CameraAnchor.gd.uid (100%) rename _shared/{ => camera}/CameraAnchor.tscn (80%) delete mode 100644 _shared/camera/CameraManager.gd rename _shared/camera/{camera_shake/CameraSystem.tscn => CameraSystem.gd} (73%) rename _shared/camera/{CameraManager.gd.uid => CameraSystem.gd.uid} (100%) create mode 100644 _shared/camera/CameraSystem.tscn rename {_levels => _shared}/l_test.tscn (100%) diff --git a/_game/Game.tscn b/_game/Game.tscn deleted file mode 100644 index 1322145..0000000 --- a/_game/Game.tscn +++ /dev/null @@ -1,93 +0,0 @@ -[gd_scene load_steps=18 format=3 uid="uid://3vc8ojbiyy5w"] - -[ext_resource type="PackedScene" uid="uid://gwhff4qaouxy" path="res://_player/Avatar.tscn" id="1_fdx6o"] -[ext_resource type="Script" uid="uid://crgac4manhoud" path="res://_game/game.gd" id="1_j2xwq"] -[ext_resource type="PackedScene" uid="uid://cvqehvdjpoar4" path="res://_player/player_controller.tscn" id="2_j2xwq"] -[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="5_skiqd"] -[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="6_1l6xv"] -[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="7_iaift"] -[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="8_nuiql"] -[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="9_6aweh"] -[ext_resource type="PackedScene" uid="uid://bflwr7cryd2l0" path="res://_shared/CameraAnchor.tscn" id="10_6aweh"] -[ext_resource type="Script" uid="uid://b4menkyub4ce7" path="res://addons/reedscene/prop/PropComponent.gd" id="11_knjgm"] -[ext_resource type="Script" uid="uid://di41kt2tj34c2" path="res://addons/reedscene/prop/StateManager.gd" id="12_7onhb"] -[ext_resource type="PackedScene" uid="uid://bonrls3iuhdqb" path="res://_props/_prefabs/player/player_trigger_volumn.tscn" id="13_6aweh"] -[ext_resource type="Script" uid="uid://7lml6d1t5xtq" path="res://addons/reedscene/prop/PropState.gd" id="13_28rt5"] -[ext_resource type="Script" uid="uid://cdvgq0xqdbagk" path="res://addons/reedscene/prop/ReedPropEffect.gd" id="13_knjgm"] - -[sub_resource type="Resource" id="Resource_7onhb"] -script = ExtResource("13_knjgm") -property_name = &"priority" -value = 0 -metadata/_custom_type_script = "uid://cdvgq0xqdbagk" - -[sub_resource type="Resource" id="Resource_knjgm"] -script = ExtResource("13_knjgm") -property_name = &"priority" -value = 1000 -metadata/_custom_type_script = "uid://cdvgq0xqdbagk" - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_knjgm"] -size = Vector2(661, 379) - -[node name="Game" type="Node2D"] -script = ExtResource("1_j2xwq") - -[node name="PlayerController" parent="." node_paths=PackedStringArray("auto_controlled_avatar") instance=ExtResource("2_j2xwq")] -auto_controlled_avatar = NodePath("../Avatar") - -[node name="Avatar" parent="." instance=ExtResource("1_fdx6o")] -position = Vector2(349, -271) -collision_mask = 4 - -[node name="ReedScene" type="Node2D" parent="."] -script = ExtResource("5_skiqd") -metadata/_custom_type_script = "uid://5e157vdk6175" - -[node name="[Invalid!]" type="Node" parent="ReedScene"] -script = ExtResource("6_1l6xv") - -[node name="SceneManager" type="Node" parent="ReedScene"] -script = ExtResource("7_iaift") - -[node name="ActManager" type="Node" parent="ReedScene"] -script = ExtResource("8_nuiql") - -[node name="Props" type="Node2D" parent="ReedScene"] -script = ExtResource("9_6aweh") - -[node name="CameraAnchor" parent="ReedScene/Props" instance=ExtResource("10_6aweh")] - -[node name="[Prop_0000]" type="Node" parent="ReedScene/Props/CameraAnchor"] -script = ExtResource("11_knjgm") -prop_id = 0 - -[node name="States" type="Node" parent="ReedScene/Props/CameraAnchor/[Prop_0000]"] -script = ExtResource("12_7onhb") - -[node name="[ID_0] Disable" type="Node" parent="ReedScene/Props/CameraAnchor/[Prop_0000]/States"] -script = ExtResource("13_28rt5") -state_id = 0 -effects = Array[ExtResource("13_knjgm")]([SubResource("Resource_7onhb")]) - -[node name="[ID_1] Enable" type="Node" parent="ReedScene/Props/CameraAnchor/[Prop_0000]/States"] -script = ExtResource("13_28rt5") -state_id = 1 -effects = Array[ExtResource("13_knjgm")]([SubResource("Resource_knjgm")]) - -[node name="PlayerTriggerVolumn" parent="ReedScene/Props" instance=ExtResource("13_6aweh")] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="ReedScene/Props/PlayerTriggerVolumn"] -shape = SubResource("RectangleShape2D_knjgm") -debug_color = Color(0.70308036, 0.46053094, 0.46591634, 0.41960785) - -[node name="[Prop_0001]" type="Node" parent="ReedScene/Props/PlayerTriggerVolumn"] -script = ExtResource("11_knjgm") -prop_id = 1 - -[node name="States" type="Node" parent="ReedScene/Props/PlayerTriggerVolumn/[Prop_0001]"] -script = ExtResource("12_7onhb") - -[node name="[ID_0] Default" type="Node" parent="ReedScene/Props/PlayerTriggerVolumn/[Prop_0001]/States"] -script = ExtResource("13_28rt5") -state_id = 0 diff --git a/_game/example/Game.tscn b/_game/example/Game.tscn new file mode 100644 index 0000000..c1056b5 --- /dev/null +++ b/_game/example/Game.tscn @@ -0,0 +1,237 @@ +[gd_scene load_steps=37 format=4 uid="uid://3vc8ojbiyy5w"] + +[ext_resource type="Script" uid="uid://crgac4manhoud" path="res://_game/game.gd" id="1_5cwyw"] +[ext_resource type="PackedScene" uid="uid://cvqehvdjpoar4" path="res://_player/player_controller.tscn" id="2_4ake0"] +[ext_resource type="PackedScene" uid="uid://gwhff4qaouxy" path="res://_player/Avatar.tscn" id="3_vb6ml"] +[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="4_a1vfv"] +[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="5_2w7fh"] +[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="6_qwm57"] +[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="7_2btnk"] +[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="8_tvvu4"] +[ext_resource type="Script" uid="uid://baqgorvlumyju" path="res://addons/reedscene/act/SingleAct.gd" id="9_3l6ns"] +[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="10_4o8oo"] +[ext_resource type="PackedScene" uid="uid://bflwr7cryd2l0" path="res://_shared/camera/CameraAnchor.tscn" id="11_tgey5"] +[ext_resource type="Script" uid="uid://b4menkyub4ce7" path="res://addons/reedscene/prop/PropComponent.gd" id="12_1y6sc"] +[ext_resource type="Script" uid="uid://di41kt2tj34c2" path="res://addons/reedscene/prop/StateManager.gd" id="13_24tiw"] +[ext_resource type="Script" uid="uid://7lml6d1t5xtq" path="res://addons/reedscene/prop/PropState.gd" id="14_0e282"] +[ext_resource type="Script" uid="uid://cdvgq0xqdbagk" path="res://addons/reedscene/prop/ReedPropEffect.gd" id="15_avdkq"] +[ext_resource type="Resource" uid="uid://bjjxh7g7iosla" path="res://_props/_camera/camera_anchor_disable.tres" id="16_5nfvo"] +[ext_resource type="Resource" uid="uid://458r8rf7x02p" path="res://_props/_camera/camera_anchor_enable.tres" id="17_olte2"] +[ext_resource type="PackedScene" uid="uid://bonrls3iuhdqb" path="res://_props/_prefabs/player/player_trigger_volumn.tscn" id="18_0nr64"] +[ext_resource type="Resource" uid="uid://dd4df6yjkeifa" path="res://_props/_prefabs/player/effect/player_trigger_volumn_disable.tres" id="19_8ejnj"] +[ext_resource type="Resource" uid="uid://b6iglvt36pm55" path="res://_props/_prefabs/player/effect/player_trigger_volumn_enable.tres" id="20_vhi3r"] +[ext_resource type="PackedScene" uid="uid://bomv75fi4uuyi" path="res://_shared/l_test.tscn" id="21_vn1b6"] +[ext_resource type="Script" uid="uid://d3600a4hjp6y6" path="res://_game/example/example.gd" id="22_4ake0"] + +[sub_resource type="Resource" id="Resource_c0430"] +script = ExtResource("9_3l6ns") + +[sub_resource type="Resource" id="Resource_6lvvf"] +script = ExtResource("9_3l6ns") +state_id = 1 + +[sub_resource type="Resource" id="Resource_7p20c"] +script = ExtResource("8_tvvu4") +prop_state_map = Dictionary[int, ExtResource("9_3l6ns")]({ +0: SubResource("Resource_c0430"), +1: SubResource("Resource_6lvvf") +}) + +[sub_resource type="Resource" id="Resource_4ake0"] +script = ExtResource("9_3l6ns") +state_id = 1 +metadata/_custom_type_script = "uid://baqgorvlumyju" + +[sub_resource type="Resource" id="Resource_vb6ml"] +script = ExtResource("9_3l6ns") +metadata/_custom_type_script = "uid://baqgorvlumyju" + +[sub_resource type="Resource" id="Resource_a1vfv"] +script = ExtResource("8_tvvu4") +prop_state_map = Dictionary[int, ExtResource("9_3l6ns")]({ +0: SubResource("Resource_4ake0"), +1: SubResource("Resource_vb6ml") +}) +metadata/_custom_type_script = "uid://fxpk2ot6otfh" + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_knjgm"] +size = Vector2(661, 379) + +[sub_resource type="Resource" id="Resource_oupin"] +script = ExtResource("9_3l6ns") + +[sub_resource type="Resource" id="Resource_pvikv"] +script = ExtResource("9_3l6ns") +state_id = 1 + +[sub_resource type="Resource" id="Resource_kgsud"] +script = ExtResource("8_tvvu4") +prop_state_map = Dictionary[int, ExtResource("9_3l6ns")]({ +0: SubResource("Resource_oupin"), +1: SubResource("Resource_pvikv") +}) + +[sub_resource type="Resource" id="Resource_7a0so"] +script = ExtResource("9_3l6ns") +state_id = 1 +metadata/_custom_type_script = "uid://baqgorvlumyju" + +[sub_resource type="Resource" id="Resource_3e1bk"] +script = ExtResource("9_3l6ns") +metadata/_custom_type_script = "uid://baqgorvlumyju" + +[sub_resource type="Resource" id="Resource_kcnes"] +script = ExtResource("8_tvvu4") +prop_state_map = Dictionary[int, ExtResource("9_3l6ns")]({ +0: SubResource("Resource_7a0so"), +1: SubResource("Resource_3e1bk") +}) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_oupin"] +size = Vector2(812, 590) + +[node name="Game" type="Node2D"] +script = ExtResource("1_5cwyw") + +[node name="PlayerController" parent="." node_paths=PackedStringArray("auto_controlled_avatar") instance=ExtResource("2_4ake0")] +auto_controlled_avatar = NodePath("../Avatar") + +[node name="Avatar" parent="." instance=ExtResource("3_vb6ml")] +position = Vector2(-143, 77) +collision_mask = 4 + +[node name="ReedScene" type="Node2D" parent="."] +script = ExtResource("4_a1vfv") +metadata/_custom_type_script = "uid://5e157vdk6175" + +[node name="[Invalid!]" type="Node" parent="ReedScene"] +script = ExtResource("5_2w7fh") + +[node name="SceneManager" type="Node" parent="ReedScene"] +script = ExtResource("6_qwm57") + +[node name="ActManager" type="Node" parent="ReedScene"] +script = ExtResource("7_2btnk") +prop_state_map = Dictionary[int, ExtResource("8_tvvu4")]({ +0: SubResource("Resource_7p20c"), +1: SubResource("Resource_a1vfv") +}) +init_act_id = 1 + +[node name="Props" type="Node2D" parent="ReedScene"] +script = ExtResource("10_4o8oo") + +[node name="CameraAnchor" parent="ReedScene/Props" instance=ExtResource("11_tgey5")] + +[node name="[Prop_0000]" type="Node" parent="ReedScene/Props/CameraAnchor"] +script = ExtResource("12_1y6sc") +prop_id = 0 + +[node name="States" type="Node" parent="ReedScene/Props/CameraAnchor/[Prop_0000]"] +script = ExtResource("13_24tiw") + +[node name="[ID_0] Disable" type="Node" parent="ReedScene/Props/CameraAnchor/[Prop_0000]/States"] +script = ExtResource("14_0e282") +state_id = 0 +effects = Array[ExtResource("15_avdkq")]([ExtResource("16_5nfvo")]) + +[node name="[ID_1] Enable" type="Node" parent="ReedScene/Props/CameraAnchor/[Prop_0000]/States"] +script = ExtResource("14_0e282") +state_id = 1 +effects = Array[ExtResource("15_avdkq")]([ExtResource("17_olte2")]) + +[node name="PlayerTriggerVolumn" parent="ReedScene/Props" instance=ExtResource("18_0nr64")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="ReedScene/Props/PlayerTriggerVolumn"] +shape = SubResource("RectangleShape2D_knjgm") +debug_color = Color(0.70308036, 0.46053094, 0.46591634, 0.41960785) + +[node name="[Prop_0001]" type="Node" parent="ReedScene/Props/PlayerTriggerVolumn"] +script = ExtResource("12_1y6sc") +prop_id = 1 + +[node name="States" type="Node" parent="ReedScene/Props/PlayerTriggerVolumn/[Prop_0001]"] +script = ExtResource("13_24tiw") + +[node name="[ID_0] Disable" type="Node" parent="ReedScene/Props/PlayerTriggerVolumn/[Prop_0001]/States"] +script = ExtResource("14_0e282") +state_id = 0 +effects = Array[ExtResource("15_avdkq")]([ExtResource("19_8ejnj")]) + +[node name="[ID_1] Enable" type="Node" parent="ReedScene/Props/PlayerTriggerVolumn/[Prop_0001]/States"] +script = ExtResource("14_0e282") +state_id = 1 +effects = Array[ExtResource("15_avdkq")]([ExtResource("20_vhi3r")]) + +[node name="TileMapLayer" parent="ReedScene" instance=ExtResource("21_vn1b6")] +tile_map_data = PackedByteArray("AAACAAkAAAAAAAAAAAACAAoAAAAAAAAAAAADAAoAAAAAAAAAAAADAAsAAAAAAAAAAAACAAsAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAsAAAAAAAAAAAABAAkAAAAAAAAAAAABAAoAAAAAAAAAAAABAAsAAAAAAAAAAAAPAAoAAAAAAAAAAAAPAAsAAAAAAAAAAAAQAAoAAAAAAAAAAAAQAAsAAAAAAAAAAAATAAkAAAAAAAAAAAAUAAkAAAAAAAAAAAADAAkAAAAAAAAAAAD//wkAAAAAAAAAAAD//woAAAAAAAAAAAD//wsAAAAAAAAAAAD+/wkAAAAAAAAAAAD+/woAAAAAAAAAAAD+/wsAAAAAAAAAAAASAPz/AAAAAAAAAAASAP3/AAAAAAAAAAASAP7/AAAAAAAAAAASAP//AAAAAAAAAAATAPz/AAAAAAAAAAATAP3/AAAAAAAAAAATAP7/AAAAAAAAAAATAP//AAAAAAAAAAAUAPz/AAAAAAAAAAAUAP3/AAAAAAAAAAAUAP7/AAAAAAAAAAAUAP//AAAAAAAAAADm//T/AAAAAAAAAADm//X/AAAAAAAAAADm//b/AAAAAAAAAADm//f/AAAAAAAAAADm//j/AAAAAAAAAADm//n/AAAAAAAAAADm//r/AAAAAAAAAADm//v/AAAAAAAAAADm//z/AAAAAAAAAADm//3/AAAAAAAAAADm//7/AAAAAAAAAADm////AAAAAAAAAADm/wAAAAAAAAAAAADm/wEAAAAAAAAAAADm/wIAAAAAAAAAAADm/wMAAAAAAAAAAADm/wQAAAAAAAAAAADm/wUAAAAAAAAAAADm/wYAAAAAAAAAAADm/wcAAAAAAAAAAADm/wgAAAAAAAAAAADm/wkAAAAAAAAAAADm/woAAAAAAAAAAADm/wsAAAAAAAAAAADn//T/AAAAAAAAAADn//X/AAAAAAAAAADn//b/AAAAAAAAAADn//f/AAAAAAAAAADn//j/AAAAAAAAAADn//n/AAAAAAAAAADn//r/AAAAAAAAAADn//v/AAAAAAAAAADn//z/AAAAAAAAAADn//3/AAAAAAAAAADn//7/AAAAAAAAAADn////AAAAAAAAAADn/wAAAAAAAAAAAADn/wEAAAAAAAAAAADn/wIAAAAAAAAAAADn/wMAAAAAAAAAAADn/wQAAAAAAAAAAADn/wUAAAAAAAAAAADn/wYAAAAAAAAAAADn/wcAAAAAAAAAAADn/wgAAAAAAAAAAADn/wkAAAAAAAAAAADn/woAAAAAAAAAAADn/wsAAAAAAAAAAADo//T/AAAAAAAAAADo//X/AAAAAAAAAADo//b/AAAAAAAAAADo//f/AAAAAAAAAADo//j/AAAAAAAAAADo//n/AAAAAAAAAADo//r/AAAAAAAAAADo//v/AAAAAAAAAADo//z/AAAAAAAAAADo//3/AAAAAAAAAADo//7/AAAAAAAAAADo////AAAAAAAAAADo/wAAAAAAAAAAAADo/wEAAAAAAAAAAADo/wIAAAAAAAAAAADo/wMAAAAAAAAAAADo/wQAAAAAAAAAAADo/wUAAAAAAAAAAADo/wYAAAAAAAAAAADo/wcAAAAAAAAAAADo/wgAAAAAAAAAAADo/wkAAAAAAAAAAADo/woAAAAAAAAAAADo/wsAAAAAAAAAAADp//T/AAAAAAAAAADp//X/AAAAAAAAAADp//b/AAAAAAAAAADp//f/AAAAAAAAAADp//j/AAAAAAAAAADp//n/AAAAAAAAAADp//r/AAAAAAAAAADp//v/AAAAAAAAAADp//z/AAAAAAAAAADp//3/AAAAAAAAAADp//7/AAAAAAAAAADp////AAAAAAAAAADp/wAAAAAAAAAAAADp/wEAAAAAAAAAAADp/wIAAAAAAAAAAADp/wMAAAAAAAAAAADp/wQAAAAAAAAAAADp/wUAAAAAAAAAAADp/wYAAAAAAAAAAADp/wcAAAAAAAAAAADp/wgAAAAAAAAAAADp/wkAAAAAAAAAAADp/woAAAAAAAAAAADp/wsAAAAAAAAAAADq//T/AAAAAAAAAADq//X/AAAAAAAAAADq//b/AAAAAAAAAADq//f/AAAAAAAAAADq//j/AAAAAAAAAADq//n/AAAAAAAAAADq//r/AAAAAAAAAADq//v/AAAAAAAAAADq//z/AAAAAAAAAADq//3/AAAAAAAAAADq//7/AAAAAAAAAADq////AAAAAAAAAADq/wAAAAAAAAAAAADq/wEAAAAAAAAAAADq/wIAAAAAAAAAAADq/wMAAAAAAAAAAADq/wQAAAAAAAAAAADq/wUAAAAAAAAAAADq/wYAAAAAAAAAAADq/wcAAAAAAAAAAADq/wgAAAAAAAAAAADq/wkAAAAAAAAAAADq/woAAAAAAAAAAADq/wsAAAAAAAAAAADr//T/AAAAAAAAAADr//X/AAAAAAAAAADr//b/AAAAAAAAAADr//f/AAAAAAAAAADr//j/AAAAAAAAAADr//n/AAAAAAAAAADr//r/AAAAAAAAAADr//v/AAAAAAAAAADr//z/AAAAAAAAAADr//3/AAAAAAAAAADr//7/AAAAAAAAAADr////AAAAAAAAAADr/wAAAAAAAAAAAADr/wEAAAAAAAAAAADr/wIAAAAAAAAAAADr/wMAAAAAAAAAAADr/wQAAAAAAAAAAADr/wUAAAAAAAAAAADr/wYAAAAAAAAAAADr/wcAAAAAAAAAAADr/wgAAAAAAAAAAADr/wkAAAAAAAAAAADr/woAAAAAAAAAAADr/wsAAAAAAAAAAADs//T/AAAAAAAAAADs//X/AAAAAAAAAADs//b/AAAAAAAAAADs//f/AAAAAAAAAADs//j/AAAAAAAAAADs//n/AAAAAAAAAADs//r/AAAAAAAAAADs//v/AAAAAAAAAADs//z/AAAAAAAAAADs//3/AAAAAAAAAADs//7/AAAAAAAAAADs////AAAAAAAAAADs/wAAAAAAAAAAAADs/wEAAAAAAAAAAADs/wIAAAAAAAAAAADs/wMAAAAAAAAAAADs/wQAAAAAAAAAAADs/wUAAAAAAAAAAADs/wYAAAAAAAAAAADs/wcAAAAAAAAAAADs/wgAAAAAAAAAAADs/wkAAAAAAAAAAADs/woAAAAAAAAAAADs/wsAAAAAAAAAAADt/wkAAAAAAAAAAADt/woAAAAAAAAAAADt/wsAAAAAAAAAAADu/wkAAAAAAAAAAADu/woAAAAAAAAAAADu/wsAAAAAAAAAAADv/wkAAAAAAAAAAADv/woAAAAAAAAAAADv/wsAAAAAAAAAAADw/wkAAAAAAAAAAADw/woAAAAAAAAAAADw/wsAAAAAAAAAAADx/wkAAAAAAAAAAADx/woAAAAAAAAAAADx/wsAAAAAAAAAAADy/wkAAAAAAAAAAADy/woAAAAAAAAAAADy/wsAAAAAAAAAAADz/wkAAAAAAAAAAADz/woAAAAAAAAAAADz/wsAAAAAAAAAAAD0/wkAAAAAAAAAAAD0/woAAAAAAAAAAAD0/wsAAAAAAAAAAAD1/wkAAAAAAAAAAAD1/woAAAAAAAAAAAD1/wsAAAAAAAAAAAD2/wkAAAAAAAAAAAD2/woAAAAAAAAAAAD2/wsAAAAAAAAAAAD3/wkAAAAAAAAAAAD3/woAAAAAAAAAAAD3/wsAAAAAAAAAAAD4/wkAAAAAAAAAAAD4/woAAAAAAAAAAAD4/wsAAAAAAAAAAAD5/wkAAAAAAAAAAAD5/woAAAAAAAAAAAD5/wsAAAAAAAAAAAD6/wkAAAAAAAAAAAD6/woAAAAAAAAAAAD6/wsAAAAAAAAAAAD7/wkAAAAAAAAAAAD7/woAAAAAAAAAAAD7/wsAAAAAAAAAAAD8/wkAAAAAAAAAAAD8/woAAAAAAAAAAAD8/wsAAAAAAAAAAAD9/wkAAAAAAAAAAAD9/woAAAAAAAAAAAD9/wsAAAAAAAAAAAAEAAkAAAAAAAAAAAAEAAoAAAAAAAAAAAAEAAsAAAAAAAAAAAAFAAkAAAAAAAAAAAAFAAoAAAAAAAAAAAAFAAsAAAAAAAAAAAAGAAkAAAAAAAAAAAAGAAoAAAAAAAAAAAAGAAsAAAAAAAAAAAAHAAkAAAAAAAAAAAAHAAoAAAAAAAAAAAAHAAsAAAAAAAAAAAAIAAkAAAAAAAAAAAAIAAoAAAAAAAAAAAAIAAsAAAAAAAAAAAAJAAkAAAAAAAAAAAAJAAoAAAAAAAAAAAAJAAsAAAAAAAAAAAAKAAkAAAAAAAAAAAAKAAoAAAAAAAAAAAAKAAsAAAAAAAAAAAALAAkAAAAAAAAAAAALAAoAAAAAAAAAAAALAAsAAAAAAAAAAAAMAAkAAAAAAAAAAAAMAAoAAAAAAAAAAAAMAAsAAAAAAAAAAAANAAkAAAAAAAAAAAANAAoAAAAAAAAAAAANAAsAAAAAAAAAAAAOAAkAAAAAAAAAAAAOAAoAAAAAAAAAAAAOAAsAAAAAAAAAAAAPAAkAAAAAAAAAAAAQAAkAAAAAAAAAAAARAAkAAAAAAAAAAAARAAoAAAAAAAAAAAARAAsAAAAAAAAAAAASAAkAAAAAAAAAAAASAAoAAAAAAAAAAAASAAsAAAAAAAAAAAATAAoAAAAAAAAAAAATAAsAAAAAAAAAAAAUAAoAAAAAAAAAAAAUAAsAAAAAAAAAAADt//T/AAAAAAAAAADt//X/AAAAAAAAAADt//b/AAAAAAAAAADt//f/AAAAAAAAAADu//T/AAAAAAAAAADu//X/AAAAAAAAAADu//b/AAAAAAAAAADu//f/AAAAAAAAAADv//T/AAAAAAAAAADv//X/AAAAAAAAAADv//b/AAAAAAAAAADv//f/AAAAAAAAAADw//T/AAAAAAAAAADw//X/AAAAAAAAAADw//b/AAAAAAAAAADw//f/AAAAAAAAAADx//T/AAAAAAAAAADx//X/AAAAAAAAAADx//b/AAAAAAAAAADx//f/AAAAAAAAAADy//T/AAAAAAAAAADy//X/AAAAAAAAAADy//b/AAAAAAAAAADy//f/AAAAAAAAAADz//T/AAAAAAAAAADz//X/AAAAAAAAAADz//b/AAAAAAAAAADz//f/AAAAAAAAAAD0//T/AAAAAAAAAAD0//X/AAAAAAAAAAD0//b/AAAAAAAAAAD0//f/AAAAAAAAAAD1//T/AAAAAAAAAAD1//X/AAAAAAAAAAD1//b/AAAAAAAAAAD1//f/AAAAAAAAAAD2//T/AAAAAAAAAAD2//X/AAAAAAAAAAD2//b/AAAAAAAAAAD2//f/AAAAAAAAAAD3//T/AAAAAAAAAAD3//X/AAAAAAAAAAD3//b/AAAAAAAAAAD3//f/AAAAAAAAAAD4//T/AAAAAAAAAAD4//X/AAAAAAAAAAD4//b/AAAAAAAAAAD4//f/AAAAAAAAAAD5//T/AAAAAAAAAAD5//X/AAAAAAAAAAD5//b/AAAAAAAAAAD5//f/AAAAAAAAAAD6//T/AAAAAAAAAAD6//X/AAAAAAAAAAD6//b/AAAAAAAAAAD6//f/AAAAAAAAAAD7//T/AAAAAAAAAAD7//X/AAAAAAAAAAD7//b/AAAAAAAAAAD7//f/AAAAAAAAAAD8//T/AAAAAAAAAAD8//X/AAAAAAAAAAD8//b/AAAAAAAAAAD8//f/AAAAAAAAAAD9//T/AAAAAAAAAAD9//X/AAAAAAAAAAD9//b/AAAAAAAAAAD9//f/AAAAAAAAAAD+//T/AAAAAAAAAAD+//X/AAAAAAAAAAD+//b/AAAAAAAAAAD+//f/AAAAAAAAAAD///T/AAAAAAAAAAD///X/AAAAAAAAAAD///b/AAAAAAAAAAD///f/AAAAAAAAAAAAAPT/AAAAAAAAAAAAAPX/AAAAAAAAAAAAAPb/AAAAAAAAAAAAAPf/AAAAAAAAAAABAPT/AAAAAAAAAAABAPX/AAAAAAAAAAABAPb/AAAAAAAAAAABAPf/AAAAAAAAAAACAPT/AAAAAAAAAAACAPX/AAAAAAAAAAACAPb/AAAAAAAAAAACAPf/AAAAAAAAAAADAPT/AAAAAAAAAAADAPX/AAAAAAAAAAADAPb/AAAAAAAAAAADAPf/AAAAAAAAAAAEAPT/AAAAAAAAAAAEAPX/AAAAAAAAAAAEAPb/AAAAAAAAAAAEAPf/AAAAAAAAAAAFAPT/AAAAAAAAAAAFAPX/AAAAAAAAAAAFAPb/AAAAAAAAAAAFAPf/AAAAAAAAAAAGAPT/AAAAAAAAAAAGAPX/AAAAAAAAAAAGAPb/AAAAAAAAAAAGAPf/AAAAAAAAAAAHAPT/AAAAAAAAAAAHAPX/AAAAAAAAAAAHAPb/AAAAAAAAAAAHAPf/AAAAAAAAAAAIAPT/AAAAAAAAAAAIAPX/AAAAAAAAAAAIAPb/AAAAAAAAAAAIAPf/AAAAAAAAAAAJAPT/AAAAAAAAAAAJAPX/AAAAAAAAAAAJAPb/AAAAAAAAAAAJAPf/AAAAAAAAAAAKAPT/AAAAAAAAAAAKAPX/AAAAAAAAAAAKAPb/AAAAAAAAAAAKAPf/AAAAAAAAAAALAPT/AAAAAAAAAAALAPX/AAAAAAAAAAALAPb/AAAAAAAAAAALAPf/AAAAAAAAAAAMAPT/AAAAAAAAAAAMAPX/AAAAAAAAAAAMAPb/AAAAAAAAAAAMAPf/AAAAAAAAAAANAPT/AAAAAAAAAAANAPX/AAAAAAAAAAANAPb/AAAAAAAAAAANAPf/AAAAAAAAAAAOAPT/AAAAAAAAAAAOAPX/AAAAAAAAAAAOAPb/AAAAAAAAAAAOAPf/AAAAAAAAAAAPAPT/AAAAAAAAAAAPAPX/AAAAAAAAAAAPAPb/AAAAAAAAAAAPAPf/AAAAAAAAAAAQAPT/AAAAAAAAAAAQAPX/AAAAAAAAAAAQAPb/AAAAAAAAAAAQAPf/AAAAAAAAAAARAPT/AAAAAAAAAAARAPX/AAAAAAAAAAARAPb/AAAAAAAAAAARAPf/AAAAAAAAAAASAPT/AAAAAAAAAAASAPX/AAAAAAAAAAASAPb/AAAAAAAAAAASAPf/AAAAAAAAAAATAPT/AAAAAAAAAAATAPX/AAAAAAAAAAATAPb/AAAAAAAAAAATAPf/AAAAAAAAAAAUAPT/AAAAAAAAAAAUAPX/AAAAAAAAAAAUAPb/AAAAAAAAAAAUAPf/AAAAAAAAAAASAPj/AAAAAAAAAAASAPn/AAAAAAAAAAASAPr/AAAAAAAAAAASAPv/AAAAAAAAAAASAAAAAAAAAAAAAAASAAEAAAAAAAAAAAASAAIAAAAAAAAAAAASAAMAAAAAAAAAAAATAPj/AAAAAAAAAAATAPn/AAAAAAAAAAATAPr/AAAAAAAAAAATAPv/AAAAAAAAAAATAAAAAAAAAAAAAAATAAEAAAAAAAAAAAATAAIAAAAAAAAAAAATAAMAAAAAAAAAAAAUAPj/AAAAAAAAAAAUAPn/AAAAAAAAAAAUAPr/AAAAAAAAAAAUAPv/AAAAAAAAAAAUAAAAAAAAAAAAAAAUAAEAAAAAAAAAAAAUAAIAAAAAAAAAAAAUAAMAAAAAAAAAAAA=") + +[node name="ReedScene2" type="Node2D" parent="."] +script = ExtResource("4_a1vfv") +metadata/_custom_type_script = "uid://5e157vdk6175" + +[node name="[Invalid!]" type="Node" parent="ReedScene2"] +script = ExtResource("5_2w7fh") + +[node name="SceneManager" type="Node" parent="ReedScene2"] +script = ExtResource("22_4ake0") + +[node name="ActManager" type="Node" parent="ReedScene2"] +script = ExtResource("7_2btnk") +prop_state_map = Dictionary[int, ExtResource("8_tvvu4")]({ +0: SubResource("Resource_kgsud"), +1: SubResource("Resource_kcnes") +}) +init_act_id = 0 + +[node name="Props" type="Node2D" parent="ReedScene2"] +script = ExtResource("10_4o8oo") + +[node name="CameraAnchor" parent="ReedScene2/Props" instance=ExtResource("11_tgey5")] +position = Vector2(773, -56) + +[node name="[Prop_0000]" type="Node" parent="ReedScene2/Props/CameraAnchor"] +script = ExtResource("12_1y6sc") +prop_id = 0 + +[node name="States" type="Node" parent="ReedScene2/Props/CameraAnchor/[Prop_0000]"] +script = ExtResource("13_24tiw") + +[node name="[ID_0] Disable" type="Node" parent="ReedScene2/Props/CameraAnchor/[Prop_0000]/States"] +script = ExtResource("14_0e282") +state_id = 0 +effects = Array[ExtResource("15_avdkq")]([ExtResource("16_5nfvo")]) + +[node name="[ID_1] Enable" type="Node" parent="ReedScene2/Props/CameraAnchor/[Prop_0000]/States"] +script = ExtResource("14_0e282") +state_id = 1 +effects = Array[ExtResource("15_avdkq")]([ExtResource("17_olte2")]) + +[node name="PlayerTriggerVolumn" parent="ReedScene2/Props" instance=ExtResource("18_0nr64")] +position = Vector2(712, -103) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="ReedScene2/Props/PlayerTriggerVolumn"] +shape = SubResource("RectangleShape2D_oupin") +debug_color = Color(0.9025274, 0.3055279, 1.92523e-07, 0.41960785) + +[node name="[Prop_0001]" type="Node" parent="ReedScene2/Props/PlayerTriggerVolumn"] +script = ExtResource("12_1y6sc") +prop_id = 1 + +[node name="States" type="Node" parent="ReedScene2/Props/PlayerTriggerVolumn/[Prop_0001]"] +script = ExtResource("13_24tiw") + +[node name="[ID_0] Disable" type="Node" parent="ReedScene2/Props/PlayerTriggerVolumn/[Prop_0001]/States"] +script = ExtResource("14_0e282") +state_id = 0 +effects = Array[ExtResource("15_avdkq")]([ExtResource("19_8ejnj")]) + +[node name="[ID_1] Enable" type="Node" parent="ReedScene2/Props/PlayerTriggerVolumn/[Prop_0001]/States"] +script = ExtResource("14_0e282") +state_id = 1 +effects = Array[ExtResource("15_avdkq")]([ExtResource("20_vhi3r")]) + +[node name="TileMapLayer" parent="ReedScene2" instance=ExtResource("21_vn1b6")] +tile_map_data = PackedByteArray("AAAVAAkAAAAAAAAAAAAYAAsAAAAAAAAAAAAaAAsAAAAAAAAAAAAZAAsAAAAAAAAAAAAlAAsAAAAAAAAAAAAmAAsAAAAAAAAAAAAnAAsAAAAAAAAAAAA0AAsAAAAAAAAAAAA1AAsAAAAAAAAAAAA2AAsAAAAAAAAAAAA3AAsAAAAAAAAAAAAdAPv/AAAAAAAAAAAdAPz/AAAAAAAAAAAdAP3/AAAAAAAAAAAdAP7/AAAAAAAAAAAeAPv/AAAAAAAAAAAeAPz/AAAAAAAAAAAeAP3/AAAAAAAAAAAeAP7/AAAAAAAAAAAVAAoAAAAAAAAAAAAVAAsAAAAAAAAAAAAWAAkAAAAAAAAAAAAWAAoAAAAAAAAAAAAWAAsAAAAAAAAAAAAXAAkAAAAAAAAAAAAXAAoAAAAAAAAAAAAXAAsAAAAAAAAAAAAYAAkAAAAAAAAAAAAYAAoAAAAAAAAAAAAZAAkAAAAAAAAAAAAZAAoAAAAAAAAAAAAaAAkAAAAAAAAAAAAaAAoAAAAAAAAAAAAbAAkAAAAAAAAAAAAbAAoAAAAAAAAAAAAbAAsAAAAAAAAAAAAcAAkAAAAAAAAAAAAcAAoAAAAAAAAAAAAcAAsAAAAAAAAAAAAdAAkAAAAAAAAAAAAdAAoAAAAAAAAAAAAdAAsAAAAAAAAAAAAeAAkAAAAAAAAAAAAeAAoAAAAAAAAAAAAeAAsAAAAAAAAAAAAfAAkAAAAAAAAAAAAfAAoAAAAAAAAAAAAfAAsAAAAAAAAAAAAgAAkAAAAAAAAAAAAgAAoAAAAAAAAAAAAgAAsAAAAAAAAAAAAhAAkAAAAAAAAAAAAhAAoAAAAAAAAAAAAhAAsAAAAAAAAAAAAiAAkAAAAAAAAAAAAiAAoAAAAAAAAAAAAiAAsAAAAAAAAAAAAjAAkAAAAAAAAAAAAjAAoAAAAAAAAAAAAjAAsAAAAAAAAAAAAkAAkAAAAAAAAAAAAkAAoAAAAAAAAAAAAkAAsAAAAAAAAAAAAlAAkAAAAAAAAAAAAlAAoAAAAAAAAAAAAmAAkAAAAAAAAAAAAmAAoAAAAAAAAAAAAnAAkAAAAAAAAAAAAnAAoAAAAAAAAAAAAoAAkAAAAAAAAAAAAoAAoAAAAAAAAAAAAoAAsAAAAAAAAAAAApAAkAAAAAAAAAAAApAAoAAAAAAAAAAAApAAsAAAAAAAAAAAAqAAkAAAAAAAAAAAAqAAoAAAAAAAAAAAAqAAsAAAAAAAAAAAArAAkAAAAAAAAAAAArAAoAAAAAAAAAAAArAAsAAAAAAAAAAAAsAAkAAAAAAAAAAAAsAAoAAAAAAAAAAAAsAAsAAAAAAAAAAAAtAAkAAAAAAAAAAAAtAAoAAAAAAAAAAAAtAAsAAAAAAAAAAAAuAAkAAAAAAAAAAAAuAAoAAAAAAAAAAAAuAAsAAAAAAAAAAAAvAAkAAAAAAAAAAAAvAAoAAAAAAAAAAAAvAAsAAAAAAAAAAAAwAAkAAAAAAAAAAAAwAAoAAAAAAAAAAAAwAAsAAAAAAAAAAAAxAAkAAAAAAAAAAAAxAAoAAAAAAAAAAAAxAAsAAAAAAAAAAAAVAAEAAAAAAAAAAAAVAAIAAAAAAAAAAAAVAAMAAAAAAAAAAAAWAAEAAAAAAAAAAAAWAAIAAAAAAAAAAAAWAAMAAAAAAAAAAAAXAAEAAAAAAAAAAAAXAAIAAAAAAAAAAAAXAAMAAAAAAAAAAAAYAAEAAAAAAAAAAAAYAAIAAAAAAAAAAAAYAAMAAAAAAAAAAAAZAAEAAAAAAAAAAAAZAAIAAAAAAAAAAAAZAAMAAAAAAAAAAAAaAAEAAAAAAAAAAAAaAAIAAAAAAAAAAAAaAAMAAAAAAAAAAAAbAAEAAAAAAAAAAAAbAAIAAAAAAAAAAAAbAAMAAAAAAAAAAAAcAAEAAAAAAAAAAAAcAAIAAAAAAAAAAAAcAAMAAAAAAAAAAAAdAAEAAAAAAAAAAAAdAAIAAAAAAAAAAAAdAAMAAAAAAAAAAAAeAAEAAAAAAAAAAAAeAAIAAAAAAAAAAAAeAAMAAAAAAAAAAAAfAAEAAAAAAAAAAAAfAAIAAAAAAAAAAAAfAAMAAAAAAAAAAAAgAAEAAAAAAAAAAAAgAAIAAAAAAAAAAAAgAAMAAAAAAAAAAAAdAPD/AAAAAAAAAAAdAPH/AAAAAAAAAAAdAPL/AAAAAAAAAAAdAPP/AAAAAAAAAAAdAPT/AAAAAAAAAAAdAPX/AAAAAAAAAAAdAPb/AAAAAAAAAAAdAPf/AAAAAAAAAAAdAPj/AAAAAAAAAAAdAPn/AAAAAAAAAAAdAPr/AAAAAAAAAAAdAP//AAAAAAAAAAAdAAAAAAAAAAAAAAAeAPD/AAAAAAAAAAAeAPH/AAAAAAAAAAAeAPL/AAAAAAAAAAAeAPP/AAAAAAAAAAAeAPT/AAAAAAAAAAAeAPX/AAAAAAAAAAAeAPb/AAAAAAAAAAAeAPf/AAAAAAAAAAAeAPj/AAAAAAAAAAAeAPn/AAAAAAAAAAAeAPr/AAAAAAAAAAAeAP//AAAAAAAAAAAeAAAAAAAAAAAAAAAfAPD/AAAAAAAAAAAfAPH/AAAAAAAAAAAfAPL/AAAAAAAAAAAfAPP/AAAAAAAAAAAfAPT/AAAAAAAAAAAfAPX/AAAAAAAAAAAfAPb/AAAAAAAAAAAfAPf/AAAAAAAAAAAfAPj/AAAAAAAAAAAfAPn/AAAAAAAAAAAfAPr/AAAAAAAAAAAfAPv/AAAAAAAAAAAfAPz/AAAAAAAAAAAfAP3/AAAAAAAAAAAfAP7/AAAAAAAAAAAfAP//AAAAAAAAAAAfAAAAAAAAAAAAAAAgAPD/AAAAAAAAAAAgAPH/AAAAAAAAAAAgAPL/AAAAAAAAAAAgAPP/AAAAAAAAAAAgAPT/AAAAAAAAAAAgAPX/AAAAAAAAAAAgAPb/AAAAAAAAAAAgAPf/AAAAAAAAAAAgAPj/AAAAAAAAAAAgAPn/AAAAAAAAAAAgAPr/AAAAAAAAAAAgAPv/AAAAAAAAAAAgAPz/AAAAAAAAAAAgAP3/AAAAAAAAAAAgAP7/AAAAAAAAAAAgAP//AAAAAAAAAAAgAAAAAAAAAAAAAAAdAOf/AAAAAAAAAAAdAOj/AAAAAAAAAAAdAOn/AAAAAAAAAAAdAOr/AAAAAAAAAAAdAOv/AAAAAAAAAAAdAOz/AAAAAAAAAAAdAO3/AAAAAAAAAAAdAO7/AAAAAAAAAAAdAO//AAAAAAAAAAAeAOf/AAAAAAAAAAAeAOj/AAAAAAAAAAAeAOn/AAAAAAAAAAAeAOr/AAAAAAAAAAAeAOv/AAAAAAAAAAAeAOz/AAAAAAAAAAAeAO3/AAAAAAAAAAAeAO7/AAAAAAAAAAAeAO//AAAAAAAAAAAfAOf/AAAAAAAAAAAfAOj/AAAAAAAAAAAfAOn/AAAAAAAAAAAfAOr/AAAAAAAAAAAfAOv/AAAAAAAAAAAfAOz/AAAAAAAAAAAfAO3/AAAAAAAAAAAfAO7/AAAAAAAAAAAfAO//AAAAAAAAAAAgAOf/AAAAAAAAAAAgAOj/AAAAAAAAAAAgAOn/AAAAAAAAAAAgAOr/AAAAAAAAAAAgAOv/AAAAAAAAAAAgAOz/AAAAAAAAAAAgAO3/AAAAAAAAAAAgAO7/AAAAAAAAAAAgAO//AAAAAAAAAAAhAOf/AAAAAAAAAAAhAOj/AAAAAAAAAAAhAOn/AAAAAAAAAAAhAOr/AAAAAAAAAAAiAOf/AAAAAAAAAAAiAOj/AAAAAAAAAAAiAOn/AAAAAAAAAAAiAOr/AAAAAAAAAAAjAOf/AAAAAAAAAAAjAOj/AAAAAAAAAAAjAOn/AAAAAAAAAAAjAOr/AAAAAAAAAAAkAOf/AAAAAAAAAAAkAOj/AAAAAAAAAAAkAOn/AAAAAAAAAAAkAOr/AAAAAAAAAAAlAOf/AAAAAAAAAAAlAOj/AAAAAAAAAAAlAOn/AAAAAAAAAAAlAOr/AAAAAAAAAAAmAOf/AAAAAAAAAAAmAOj/AAAAAAAAAAAmAOn/AAAAAAAAAAAmAOr/AAAAAAAAAAAnAOf/AAAAAAAAAAAnAOj/AAAAAAAAAAAnAOn/AAAAAAAAAAAnAOr/AAAAAAAAAAAoAOf/AAAAAAAAAAAoAOj/AAAAAAAAAAAoAOn/AAAAAAAAAAAoAOr/AAAAAAAAAAApAOf/AAAAAAAAAAApAOj/AAAAAAAAAAApAOn/AAAAAAAAAAApAOr/AAAAAAAAAAAqAOf/AAAAAAAAAAAqAOj/AAAAAAAAAAAqAOn/AAAAAAAAAAAqAOr/AAAAAAAAAAArAOf/AAAAAAAAAAArAOj/AAAAAAAAAAArAOn/AAAAAAAAAAArAOr/AAAAAAAAAAAsAOf/AAAAAAAAAAAsAOj/AAAAAAAAAAAsAOn/AAAAAAAAAAAsAOr/AAAAAAAAAAAtAOf/AAAAAAAAAAAtAOj/AAAAAAAAAAAtAOn/AAAAAAAAAAAtAOr/AAAAAAAAAAAuAOf/AAAAAAAAAAAuAOj/AAAAAAAAAAAuAOn/AAAAAAAAAAAuAOr/AAAAAAAAAAAvAOf/AAAAAAAAAAAvAOj/AAAAAAAAAAAvAOn/AAAAAAAAAAAvAOr/AAAAAAAAAAAwAOf/AAAAAAAAAAAwAOj/AAAAAAAAAAAwAOn/AAAAAAAAAAAwAOr/AAAAAAAAAAAxAOf/AAAAAAAAAAAxAOj/AAAAAAAAAAAxAOn/AAAAAAAAAAAxAOr/AAAAAAAAAAAyAOf/AAAAAAAAAAAyAOj/AAAAAAAAAAAyAOn/AAAAAAAAAAAyAOr/AAAAAAAAAAAzAOf/AAAAAAAAAAAzAOj/AAAAAAAAAAAzAOn/AAAAAAAAAAAzAOr/AAAAAAAAAAA0AOf/AAAAAAAAAAA0AOj/AAAAAAAAAAA0AOn/AAAAAAAAAAA0AOr/AAAAAAAAAAA1AOf/AAAAAAAAAAA1AOj/AAAAAAAAAAA1AOn/AAAAAAAAAAA1AOr/AAAAAAAAAAA2AOf/AAAAAAAAAAA2AOj/AAAAAAAAAAA2AOn/AAAAAAAAAAA2AOr/AAAAAAAAAAA3AOf/AAAAAAAAAAA3AOj/AAAAAAAAAAA3AOn/AAAAAAAAAAA3AOr/AAAAAAAAAAA4AOf/AAAAAAAAAAA4AOj/AAAAAAAAAAA4AOn/AAAAAAAAAAA4AOr/AAAAAAAAAAA5AOf/AAAAAAAAAAA5AOj/AAAAAAAAAAA5AOn/AAAAAAAAAAA5AOr/AAAAAAAAAAA6AOf/AAAAAAAAAAA6AOj/AAAAAAAAAAA6AOn/AAAAAAAAAAA6AOr/AAAAAAAAAAA7AOf/AAAAAAAAAAA7AOj/AAAAAAAAAAA7AOn/AAAAAAAAAAA7AOr/AAAAAAAAAAA8AOf/AAAAAAAAAAA8AOj/AAAAAAAAAAA8AOn/AAAAAAAAAAA8AOr/AAAAAAAAAAA9AOf/AAAAAAAAAAA9AOj/AAAAAAAAAAA9AOn/AAAAAAAAAAA9AOr/AAAAAAAAAAA+AOf/AAAAAAAAAAA+AOj/AAAAAAAAAAA+AOn/AAAAAAAAAAA+AOr/AAAAAAAAAAA/AOf/AAAAAAAAAAA/AOj/AAAAAAAAAAA/AOn/AAAAAAAAAAA/AOr/AAAAAAAAAABAAOf/AAAAAAAAAABAAOj/AAAAAAAAAABAAOn/AAAAAAAAAABAAOr/AAAAAAAAAABBAOf/AAAAAAAAAABBAOj/AAAAAAAAAABBAOn/AAAAAAAAAABBAOr/AAAAAAAAAABCAOf/AAAAAAAAAABCAOj/AAAAAAAAAABCAOn/AAAAAAAAAABCAOr/AAAAAAAAAABDAOf/AAAAAAAAAABDAOj/AAAAAAAAAABDAOn/AAAAAAAAAABDAOr/AAAAAAAAAABEAOf/AAAAAAAAAABEAOj/AAAAAAAAAABEAOn/AAAAAAAAAABEAOr/AAAAAAAAAABFAOf/AAAAAAAAAABFAOj/AAAAAAAAAABFAOn/AAAAAAAAAABFAOr/AAAAAAAAAABCAOv/AAAAAAAAAABCAOz/AAAAAAAAAABCAO3/AAAAAAAAAABCAO7/AAAAAAAAAABCAO//AAAAAAAAAABCAPD/AAAAAAAAAABCAPH/AAAAAAAAAABCAPL/AAAAAAAAAABCAPP/AAAAAAAAAABCAPT/AAAAAAAAAABCAPX/AAAAAAAAAABCAPb/AAAAAAAAAABCAPf/AAAAAAAAAABCAPj/AAAAAAAAAABCAPn/AAAAAAAAAABCAPr/AAAAAAAAAABCAPv/AAAAAAAAAABCAPz/AAAAAAAAAABCAP3/AAAAAAAAAABCAP7/AAAAAAAAAABCAP//AAAAAAAAAABCAAAAAAAAAAAAAABCAAEAAAAAAAAAAABCAAIAAAAAAAAAAABCAAMAAAAAAAAAAABCAAQAAAAAAAAAAABCAAUAAAAAAAAAAABCAAYAAAAAAAAAAABCAAcAAAAAAAAAAABCAAgAAAAAAAAAAABCAAkAAAAAAAAAAABCAAoAAAAAAAAAAABCAAsAAAAAAAAAAABDAOv/AAAAAAAAAABDAOz/AAAAAAAAAABDAO3/AAAAAAAAAABDAO7/AAAAAAAAAABDAO//AAAAAAAAAABDAPD/AAAAAAAAAABDAPH/AAAAAAAAAABDAPL/AAAAAAAAAABDAPP/AAAAAAAAAABDAPT/AAAAAAAAAABDAPX/AAAAAAAAAABDAPb/AAAAAAAAAABDAPf/AAAAAAAAAABDAPj/AAAAAAAAAABDAPn/AAAAAAAAAABDAPr/AAAAAAAAAABDAPv/AAAAAAAAAABDAPz/AAAAAAAAAABDAP3/AAAAAAAAAABDAP7/AAAAAAAAAABDAP//AAAAAAAAAABDAAAAAAAAAAAAAABDAAEAAAAAAAAAAABDAAIAAAAAAAAAAABDAAMAAAAAAAAAAABDAAQAAAAAAAAAAABDAAUAAAAAAAAAAABDAAYAAAAAAAAAAABDAAcAAAAAAAAAAABDAAgAAAAAAAAAAABDAAkAAAAAAAAAAABDAAoAAAAAAAAAAABDAAsAAAAAAAAAAABEAOv/AAAAAAAAAABEAOz/AAAAAAAAAABEAO3/AAAAAAAAAABEAO7/AAAAAAAAAABEAO//AAAAAAAAAABEAPD/AAAAAAAAAABEAPH/AAAAAAAAAABEAPL/AAAAAAAAAABEAPP/AAAAAAAAAABEAPT/AAAAAAAAAABEAPX/AAAAAAAAAABEAPb/AAAAAAAAAABEAPf/AAAAAAAAAABEAPj/AAAAAAAAAABEAPn/AAAAAAAAAABEAPr/AAAAAAAAAABEAPv/AAAAAAAAAABEAPz/AAAAAAAAAABEAP3/AAAAAAAAAABEAP7/AAAAAAAAAABEAP//AAAAAAAAAABEAAAAAAAAAAAAAABEAAEAAAAAAAAAAABEAAIAAAAAAAAAAABEAAMAAAAAAAAAAABEAAQAAAAAAAAAAABEAAUAAAAAAAAAAABEAAYAAAAAAAAAAABEAAcAAAAAAAAAAABEAAgAAAAAAAAAAABEAAkAAAAAAAAAAABEAAoAAAAAAAAAAABEAAsAAAAAAAAAAABFAOv/AAAAAAAAAABFAOz/AAAAAAAAAABFAO3/AAAAAAAAAABFAO7/AAAAAAAAAABFAO//AAAAAAAAAABFAPD/AAAAAAAAAABFAPH/AAAAAAAAAABFAPL/AAAAAAAAAABFAPP/AAAAAAAAAABFAPT/AAAAAAAAAABFAPX/AAAAAAAAAABFAPb/AAAAAAAAAABFAPf/AAAAAAAAAABFAPj/AAAAAAAAAABFAPn/AAAAAAAAAABFAPr/AAAAAAAAAABFAPv/AAAAAAAAAABFAPz/AAAAAAAAAABFAP3/AAAAAAAAAABFAP7/AAAAAAAAAABFAP//AAAAAAAAAABFAAAAAAAAAAAAAABFAAEAAAAAAAAAAABFAAIAAAAAAAAAAABFAAMAAAAAAAAAAABFAAQAAAAAAAAAAABFAAUAAAAAAAAAAABFAAYAAAAAAAAAAABFAAcAAAAAAAAAAABFAAgAAAAAAAAAAABFAAkAAAAAAAAAAABFAAoAAAAAAAAAAABFAAsAAAAAAAAAAAAyAAkAAAAAAAAAAAAyAAoAAAAAAAAAAAAyAAsAAAAAAAAAAAAzAAkAAAAAAAAAAAAzAAoAAAAAAAAAAAAzAAsAAAAAAAAAAAA0AAkAAAAAAAAAAAA0AAoAAAAAAAAAAAA1AAkAAAAAAAAAAAA1AAoAAAAAAAAAAAA2AAkAAAAAAAAAAAA2AAoAAAAAAAAAAAA3AAkAAAAAAAAAAAA3AAoAAAAAAAAAAAA4AAkAAAAAAAAAAAA4AAoAAAAAAAAAAAA4AAsAAAAAAAAAAAA5AAkAAAAAAAAAAAA5AAoAAAAAAAAAAAA5AAsAAAAAAAAAAAA6AAkAAAAAAAAAAAA6AAoAAAAAAAAAAAA6AAsAAAAAAAAAAAA7AAkAAAAAAAAAAAA7AAoAAAAAAAAAAAA7AAsAAAAAAAAAAAA8AAkAAAAAAAAAAAA8AAoAAAAAAAAAAAA8AAsAAAAAAAAAAAA9AAkAAAAAAAAAAAA9AAoAAAAAAAAAAAA9AAsAAAAAAAAAAAA+AAkAAAAAAAAAAAA+AAoAAAAAAAAAAAA+AAsAAAAAAAAAAAA/AAkAAAAAAAAAAAA/AAoAAAAAAAAAAAA/AAsAAAAAAAAAAABAAAkAAAAAAAAAAABAAAoAAAAAAAAAAABAAAsAAAAAAAAAAABBAAkAAAAAAAAAAABBAAoAAAAAAAAAAABBAAsAAAAAAAAAAAA=") + +[connection signal="player_entered" from="ReedScene2/Props/PlayerTriggerVolumn" to="ReedScene2/SceneManager" method="_on_player_trigger_volumn_player_entered"] diff --git a/_game/example/example.gd b/_game/example/example.gd new file mode 100644 index 0000000..01c9cd6 --- /dev/null +++ b/_game/example/example.gd @@ -0,0 +1,7 @@ +extends SceneManager + + + +func _on_player_trigger_volumn_player_entered(body: CharacterBody2D) -> void: + _act_manager.switch_act_with_id(1) + $"../../ReedScene/ActManager".switch_act_with_id(0) diff --git a/_game/example/example.gd.uid b/_game/example/example.gd.uid new file mode 100644 index 0000000..bb51958 --- /dev/null +++ b/_game/example/example.gd.uid @@ -0,0 +1 @@ +uid://d3600a4hjp6y6 diff --git a/_props/_camera/camera_anchor_disable.tres b/_props/_camera/camera_anchor_disable.tres new file mode 100644 index 0000000..e751c66 --- /dev/null +++ b/_props/_camera/camera_anchor_disable.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="ReedPropEffect" load_steps=2 format=3 uid="uid://bjjxh7g7iosla"] + +[ext_resource type="Script" uid="uid://cdvgq0xqdbagk" path="res://addons/reedscene/prop/ReedPropEffect.gd" id="1_828o8"] + +[resource] +script = ExtResource("1_828o8") +effect_type = 1 +value = null +func_name = &"pop_camera" +metadata/_custom_type_script = "uid://cdvgq0xqdbagk" diff --git a/_props/_camera/camera_anchor_enable.tres b/_props/_camera/camera_anchor_enable.tres new file mode 100644 index 0000000..cdeb791 --- /dev/null +++ b/_props/_camera/camera_anchor_enable.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="ReedPropEffect" load_steps=2 format=3 uid="uid://458r8rf7x02p"] + +[ext_resource type="Script" uid="uid://cdvgq0xqdbagk" path="res://addons/reedscene/prop/ReedPropEffect.gd" id="1_87nse"] + +[resource] +script = ExtResource("1_87nse") +effect_type = 1 +value = null +func_name = &"push_camera" +metadata/_custom_type_script = "uid://cdvgq0xqdbagk" diff --git a/_props/_prefabs/player/effect/player_trigger_volumn_disable.tres b/_props/_prefabs/player/effect/player_trigger_volumn_disable.tres new file mode 100644 index 0000000..5da56c5 --- /dev/null +++ b/_props/_prefabs/player/effect/player_trigger_volumn_disable.tres @@ -0,0 +1,11 @@ +[gd_resource type="Resource" script_class="ReedPropEffect" load_steps=2 format=3 uid="uid://dd4df6yjkeifa"] + +[ext_resource type="Script" uid="uid://cdvgq0xqdbagk" path="res://addons/reedscene/prop/ReedPropEffect.gd" id="1_bxu3h"] + +[resource] +script = ExtResource("1_bxu3h") +effect_type = 1 +value = null +func_name = &"set_defer" +func_args = [&"monitoring", false] +metadata/_custom_type_script = "uid://cdvgq0xqdbagk" diff --git a/_props/_prefabs/player/effect/player_trigger_volumn_enable.tres b/_props/_prefabs/player/effect/player_trigger_volumn_enable.tres new file mode 100644 index 0000000..b45fa13 --- /dev/null +++ b/_props/_prefabs/player/effect/player_trigger_volumn_enable.tres @@ -0,0 +1,11 @@ +[gd_resource type="Resource" script_class="ReedPropEffect" load_steps=2 format=3 uid="uid://b6iglvt36pm55"] + +[ext_resource type="Script" uid="uid://cdvgq0xqdbagk" path="res://addons/reedscene/prop/ReedPropEffect.gd" id="1_3md03"] + +[resource] +script = ExtResource("1_3md03") +effect_type = 1 +value = null +func_name = &"set_defer" +func_args = [&"monitoring", true] +metadata/_custom_type_script = "uid://cdvgq0xqdbagk" diff --git a/_shared/CameraAnchor.gd b/_shared/CameraAnchor.gd deleted file mode 100644 index 72fe33f..0000000 --- a/_shared/CameraAnchor.gd +++ /dev/null @@ -1,19 +0,0 @@ -@tool -class_name CameraAnchor extends Node2D - -@export var priority: int = 0 -@export var enabled: bool = true -@export var blend_time: float = 0.3 - -@export var zoom: Vector2 = Vector2.ONE -@export var offset: Vector2 = Vector2.ZERO - -func _enter_tree() -> void: - if Engine.is_editor_hint(): - return - CameraSystem.register_anchor(self) - -func _exit_tree() -> void: - if Engine.is_editor_hint(): - return - CameraSystem.unregister_anchor(self) diff --git a/_shared/camera/CameraAnchor.gd b/_shared/camera/CameraAnchor.gd new file mode 100644 index 0000000..4c0b51f --- /dev/null +++ b/_shared/camera/CameraAnchor.gd @@ -0,0 +1,42 @@ +@tool +class_name CameraAnchor extends Node2D + +## 该priority不会直接修改Anchor的priority +@export var priority: int = 0 +@export var enabled: bool = true +@export var blend_time: float = 0.3 + +@export var zoom: Vector2 = Vector2.ONE +@export var offset: Vector2 = Vector2.ZERO + +var _priority: int : + set(value): + if _priority != value: + _priority = value + on_priority_change.emit(_priority, self) + +signal on_priority_change(_priority:int, anchor: CameraAnchor) + +func _ready() -> void: + if not Engine.is_editor_hint(): + _runtime_ready() + +func _runtime_ready() -> void: + _priority = priority + +func push_camera() -> void: + CameraSystem.reset_all_camera_priority() + _priority = 1000 + +func pop_camera() -> void: + _priority = 0 + +func _enter_tree() -> void: + if Engine.is_editor_hint(): + return + CameraSystem.register_anchor(self) + +func _exit_tree() -> void: + if Engine.is_editor_hint(): + return + CameraSystem.unregister_anchor(self) diff --git a/_shared/CameraAnchor.gd.uid b/_shared/camera/CameraAnchor.gd.uid similarity index 100% rename from _shared/CameraAnchor.gd.uid rename to _shared/camera/CameraAnchor.gd.uid diff --git a/_shared/CameraAnchor.tscn b/_shared/camera/CameraAnchor.tscn similarity index 80% rename from _shared/CameraAnchor.tscn rename to _shared/camera/CameraAnchor.tscn index 94c19c1..60bc081 100644 --- a/_shared/CameraAnchor.tscn +++ b/_shared/camera/CameraAnchor.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://bflwr7cryd2l0"] -[ext_resource type="Script" uid="uid://dyxrydokgy0qs" path="res://_shared/CameraAnchor.gd" id="1_dhu66"] +[ext_resource type="Script" uid="uid://dyxrydokgy0qs" path="res://_shared/camera/CameraAnchor.gd" id="1_dhu66"] [node name="CameraAnchor" type="Node2D"] script = ExtResource("1_dhu66") diff --git a/_shared/camera/CameraManager.gd b/_shared/camera/CameraManager.gd deleted file mode 100644 index e7cce51..0000000 --- a/_shared/camera/CameraManager.gd +++ /dev/null @@ -1,19 +0,0 @@ -extends Node - -var _cached_player_camera: GlobalCamera - -const PLAYER_CAMERA_SCENE:= preload("res://_shared/camera/PlayerStaticCamera.tscn") - -## 注册玩家相机 -func register_player_camera(owner: Node) -> GlobalCamera: - if not _cached_player_camera: - _cached_player_camera = PLAYER_CAMERA_SCENE.instantiate() as GlobalCamera - - if _cached_player_camera: - owner.add_child(_cached_player_camera) - - return _cached_player_camera - -## 外部获取玩家全局相机 -func get_cached_camera() -> GlobalCamera: - return _cached_player_camera diff --git a/_shared/camera/camera_shake/CameraSystem.tscn b/_shared/camera/CameraSystem.gd similarity index 73% rename from _shared/camera/camera_shake/CameraSystem.tscn rename to _shared/camera/CameraSystem.gd index 5f6b0d5..d5db5f4 100644 --- a/_shared/camera/camera_shake/CameraSystem.tscn +++ b/_shared/camera/CameraSystem.gd @@ -1,9 +1,4 @@ -[gd_scene load_steps=3 format=3 uid="uid://b8pv5wtbo0y20"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="2_s84x6"] - -[sub_resource type="GDScript" id="GDScript_3tsvq"] -script/source = "'''全局的相机管理器 +'''全局的相机管理器 ======= 外部调用函数 ======= @@ -16,7 +11,7 @@ var _current_anchor: CameraAnchor var _switch_tween: Tween ## 玩家关卡内静态相机 -const PLAYER_CAMERA_SCENE:= preload(\"res://_shared/camera/PlayerStaticCamera.tscn\") +const PLAYER_CAMERA_SCENE:= preload("res://_shared/camera/PlayerStaticCamera.tscn") ## 注册玩家相机 func register_player_camera(owner: Node) -> GlobalCamera: @@ -38,9 +33,17 @@ func register_anchor(anchor: CameraAnchor) -> void: if anchor in _cached_anchors: return _cached_anchors.append(anchor) + anchor.on_priority_change.connect(on_anchor_priority_changed) _sort_anchors() _try_auto_switch() +## 当相机锚点的权重改变时,向管理器触发事件 +func on_anchor_priority_changed(priority:int, anchor: CameraAnchor) -> void: + if _current_anchor: + if _current_anchor._priority < priority: + _sort_anchors() + _try_auto_switch() + ## 注销一个相机锚点 func unregister_anchor(anchor: CameraAnchor) -> void: _cached_anchors.erase(anchor) @@ -51,7 +54,7 @@ func unregister_anchor(anchor: CameraAnchor) -> void: ## 排序已有的锚点 func _sort_anchors() -> void: _cached_anchors.sort_custom(func(a, b): - return a.priority > b.priority + return a._priority > b._priority ) ## 尝试自切换 @@ -59,12 +62,13 @@ func _try_auto_switch() -> void: for a in _cached_anchors: if a.enabled: switch_anchor(a) + _current_anchor = a return -## 重置所有的Camera的priority +## 重置所有的Camera的_priority func reset_all_camera_priority() -> void: for a in _cached_anchors: - a.priority = 0 + a._priority = 0 ## 切换相机 func switch_anchor(target_anchor: CameraAnchor) -> void: @@ -92,7 +96,7 @@ func switch_anchor(target_anchor: CameraAnchor) -> void: # ===== 位置 ===== _switch_tween.tween_property( camera, - \"global_position\", + "global_position", target_anchor.global_position, blend_time ) @@ -100,7 +104,7 @@ func switch_anchor(target_anchor: CameraAnchor) -> void: # ===== Zoom ===== _switch_tween.tween_property( camera, - \"zoom\", + "zoom", target_anchor.zoom, blend_time ) @@ -108,7 +112,7 @@ func switch_anchor(target_anchor: CameraAnchor) -> void: # ===== Offset ===== _switch_tween.tween_property( camera, - \"offset\", + "offset", target_anchor.offset, blend_time ) @@ -119,15 +123,3 @@ func switch_anchor(target_anchor: CameraAnchor) -> void: ) _current_anchor = target_anchor -" - -[node name="CameraSystem" type="Node"] -script = SubResource("GDScript_3tsvq") - -[node name="Camera2D" type="Camera2D" parent="."] - -[node name="PhantomCameraHost" type="Node" parent="Camera2D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("2_s84x6") -metadata/_custom_type_script = "uid://bd046eokvcnu2" diff --git a/_shared/camera/CameraManager.gd.uid b/_shared/camera/CameraSystem.gd.uid similarity index 100% rename from _shared/camera/CameraManager.gd.uid rename to _shared/camera/CameraSystem.gd.uid diff --git a/_shared/camera/CameraSystem.tscn b/_shared/camera/CameraSystem.tscn new file mode 100644 index 0000000..b779feb --- /dev/null +++ b/_shared/camera/CameraSystem.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://b8pv5wtbo0y20"] + +[ext_resource type="Script" uid="uid://04mchxkp161a" path="res://_shared/camera/CameraSystem.gd" id="1_xxnab"] +[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="2_385ly"] + +[node name="CameraSystem" type="Node"] +script = ExtResource("1_xxnab") + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="PhantomCameraHost" type="Node" parent="Camera2D"] +process_priority = 300 +process_physics_priority = 300 +script = ExtResource("2_385ly") +metadata/_custom_type_script = "uid://bd046eokvcnu2" diff --git a/_shared/camera/PlayerStaticCamera.tscn b/_shared/camera/PlayerStaticCamera.tscn index 52c7675..7e93d1e 100644 --- a/_shared/camera/PlayerStaticCamera.tscn +++ b/_shared/camera/PlayerStaticCamera.tscn @@ -1,8 +1,12 @@ -[gd_scene load_steps=4 format=3 uid="uid://d1w8ftfhxycfy"] +[gd_scene load_steps=6 format=3 uid="uid://d1w8ftfhxycfy"] [ext_resource type="Script" uid="uid://52tgslofxoi2" path="res://_shared/camera/GlobalCamera.gd" id="1_fixiw"] [ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="1_llsih"] [ext_resource type="Script" uid="uid://bhd4nuiu23e7l" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd" id="3_0bl5s"] +[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_fixiw"] + +[sub_resource type="Resource" id="Resource_pvk7k"] +script = ExtResource("3_fixiw") [node name="PlayerStaticCamera" type="Node2D"] script = ExtResource("1_fixiw") @@ -11,6 +15,7 @@ script = ExtResource("1_fixiw") unique_name_in_owner = true script = ExtResource("1_llsih") priority = 1000 +tween_resource = SubResource("Resource_pvk7k") tween_on_load = false draw_limits = true metadata/_custom_type_script = "uid://bhexx6mj1xv3q" diff --git a/_levels/l_test.tscn b/_shared/l_test.tscn similarity index 100% rename from _levels/l_test.tscn rename to _shared/l_test.tscn diff --git a/addons/reedscene/act/ActManager.gd b/addons/reedscene/act/ActManager.gd index efbc784..c697e34 100644 --- a/addons/reedscene/act/ActManager.gd +++ b/addons/reedscene/act/ActManager.gd @@ -12,8 +12,8 @@ var _gen_default_act: Callable = Callable(self, "_editor_generate_default_act") var _gen_empty_act: Callable = Callable(self, "_editor_generate_empty_act") ##是否要输出报错信息 @export var debug_log: bool = false -##关卡的初始Act,默认Clamp到Act的数量,防止出现错误 -@export var init_act_id: int = 0: +##关卡的初始Act,默认Clamp到Act的数量,防止出现错误,此处的-1是用来占位的,如果是 -1,意味着不修改,使用const的Id,即0 +@export var init_act_id: int = -1: set(value): var max_index := max(prop_state_map.size() - 1, 0) init_act_id = clamp(value, 0, max_index) diff --git a/addons/reedscene/scene/ReedScene.gd b/addons/reedscene/scene/ReedScene.gd index 025990b..1438777 100644 --- a/addons/reedscene/scene/ReedScene.gd +++ b/addons/reedscene/scene/ReedScene.gd @@ -96,7 +96,7 @@ func _ready() -> void: pc.init() ## act manger 切换一次 - _act_manager.switch_act_with_id(_act_manager.DEFAULT_ACT_ID) + _act_manager.switch_act_with_id(_act_manager.DEFAULT_ACT_ID if _act_manager.init_act_id < 0 else _act_manager.init_act_id) ## 如果prop有复写init state的选项,则overwrite for pc in pcs: diff --git a/project.godot b/project.godot index 2872b6e..07c0c09 100644 --- a/project.godot +++ b/project.godot @@ -18,7 +18,7 @@ config/icon="res://icon.svg" [autoload] PhantomCameraManager="*res://addons/phantom_camera/scripts/managers/phantom_camera_manager.gd" -CameraSystem="*res://_shared/camera/camera_shake/CameraSystem.tscn" +CameraSystem="*res://_shared/camera/CameraSystem.tscn" GlobalEvent="*res://_shared/global_event.gd" ReedVFX="*res://addons/reedfx/vfx/ReedVFXSystem.tscn" ReedSceneRegistry="*res://addons/reedscene/scene/SceneRegistry.gd"