From a9499e6b27a66a2b5dcce066f837f4831cd670c0 Mon Sep 17 00:00:00 2001 From: RedisTKey Date: Sun, 4 Jan 2026 21:21:01 +0800 Subject: [PATCH] Act --- _game/LevelDemonstration.tscn | 34 +- _game/scenes/l_1_s_1.tscn | 1 + _player/Avatar.tscn | 9 +- _player/states/fall.gd | 2 +- _player/states/jump.gd | 2 + _props/door_manager/prop_states/close.gd.uid | 1 - .../prop_states/t_door_open_f_close.gd | 7 - .../prop_states/t_door_open_f_close.gd.uid | 1 - addons/phantom_camera/examples/credits.txt | 7 - .../example_scenes/2D/2d_example_scene.tscn | 249 ----------- .../2D/2d_follow_framed_example_scene.tscn | 251 ----------- .../2D/2d_follow_group_example_scene.tscn | 260 ------------ .../2D/2d_follow_path_example_scene.tscn | 269 ------------ .../2D/2d_limit_example_scene.tscn | 317 -------------- .../2D/2d_noise_example_scene.tscn | 278 ------------ .../2D/2d_tweening_example_scene.tscn | 399 ------------------ .../2D/sub_scenes/playable_character_2d.tscn | 120 ------ .../example_scenes/3D/3d_example_scene.tscn | 357 ---------------- .../3D/3d_follow_framed_example_scene.tscn | 148 ------- .../3D/3d_follow_glued_example_scene.tscn | 198 --------- .../3D/3d_follow_group_example_scene.tscn | 172 -------- .../3D/3d_follow_path_example_scene.tscn | 217 ---------- .../3D/3d_follow_simple_example_scene.tscn | 151 ------- ...third_person_attribtues_example_scene.tscn | 195 --------- .../3d_follow_third_person_example_scene.tscn | 166 -------- .../3D/3d_look_at_example_scene.tscn | 187 -------- .../3D/3d_noise_example_scene.tscn | 170 -------- .../3D/3d_tweening_example_scene.tscn | 238 ----------- .../3D/sub_scenes/playable_character_3d.tscn | 30 -- .../playable_character_third_person_3d.tscn | 43 -- .../examples/models/3d_cube_dark.tscn | 15 - .../resources/tween/fixed_camera_tween.tres | 9 - .../inventory_phantom_camera_2d_tween.tres | 9 - .../item_focus_phantom_camera_2d_tween.tres | 9 - .../tween/player_phantom_camera_2d_tween.tres | 9 - .../tween/player_phantom_camera_3d_tween.tres | 9 - .../scripts/2D/2d_room_limit_tween.gd | 36 -- .../scripts/2D/2d_room_limit_tween.gd.uid | 1 - .../scripts/2D/2d_room_limit_tween_4.3.gd | 33 -- .../scripts/2D/2d_room_limit_tween_4.3.gd.uid | 1 - .../examples/scripts/2D/2d_trigger_area.gd | 16 - .../scripts/2D/2d_trigger_area.gd.uid | 1 - .../scripts/2D/player_character_body_2d.gd | 189 --------- .../2D/player_character_body_2d.gd.uid | 1 - .../2D/player_character_body_2d_4.3.gd | 180 -------- .../2D/player_character_body_2d_4.3.gd.uid | 1 - .../examples/scripts/3D/3d_trigger_area.gd | 26 -- .../scripts/3D/3d_trigger_area.gd.uid | 1 - .../phantom_camera/examples/scripts/3D/npc.gd | 71 ---- .../examples/scripts/3D/npc.gd.uid | 1 - .../examples/scripts/3D/path_follow.gd | 14 - .../examples/scripts/3D/path_follow.gd.uid | 1 - .../examples/scripts/3D/player_controller.gd | 84 ---- .../scripts/3D/player_controller.gd.uid | 1 - .../3D/player_controller_first_person.gd | 54 --- .../3D/player_controller_first_person.gd.uid | 1 - .../3D/player_controller_third_person.gd | 86 ---- .../3D/player_controller_third_person.gd.uid | 1 - .../textures/2D/inventory_container.png | Bin 68739 -> 0 bytes .../2D/inventory_container.png.import | 40 -- .../textures/2D/level_spritesheet.png | Bin 10314 -> 0 bytes .../textures/2D/level_spritesheet.png.import | 40 -- .../textures/2D/phantom_camera_2d_sprite.png | Bin 1584 -> 0 bytes .../2D/phantom_camera_2d_sprite.png.import | 40 -- .../examples/textures/2D/player_sprite.svg | 4 - .../textures/2D/player_sprite.svg.import | 43 -- .../examples/textures/2D/sign_prompt.png | Bin 175934 -> 0 bytes .../textures/2D/sign_prompt.png.import | 40 -- .../textures/3D/checker_pattern_dark.png | Bin 2861 -> 0 bytes .../3D/checker_pattern_dark.png.import | 41 -- .../examples/textures/3D/target.png | Bin 96068 -> 0 bytes .../examples/textures/3D/target.png.import | 41 -- .../examples/ui/ui_inventory.tscn | 37 -- .../phantom_camera/examples/ui/ui_sign.tscn | 83 ---- addons/reedscene/act/ActManagerInspector.gd | 20 +- addons/reedscene/act/StateDrapSlot.tscn | 20 +- addons/reedscene/act/StateDropSlot.gd | 59 ++- addons/reedscene/act/StateQuickConfigPanel.gd | 61 +++ .../act/StateQuickConfigPanel.gd.uid | 1 + .../reedscene/act/StateQuickConfigPanel.tscn | 66 +++ addons/reedscene/act/StateResolveUtils.gd | 2 +- addons/reedscene/dock/SceneIDMainPanel.tscn | 23 +- .../reedscene/plugin_config.json | 0 addons/reedscene/prop/PropState.gd | 22 + addons/reedscene/prop/StateManager.gd | 31 +- addons/reedscene/reedscene.gd | 46 +- addons/reedscene/scene/ReedScene.gd | 4 + addons/reedscene/scene/SceneIDDatabase.gd | 10 +- addons/reedscene/scene/{ => icon}/scene.svg | 0 .../scene/{ => icon}/scene.svg.import | 6 +- addons/reedscene/view/GameView.gd | 1 - addons/reedscene/view/GameView.gd.uid | 1 - addons/reedscene/view/GameViewContainer.gd | 1 - .../reedscene/view/GameViewContainer.gd.uid | 1 - 94 files changed, 293 insertions(+), 5830 deletions(-) delete mode 100644 _props/door_manager/prop_states/close.gd.uid delete mode 100644 _props/door_manager/prop_states/t_door_open_f_close.gd delete mode 100644 _props/door_manager/prop_states/t_door_open_f_close.gd.uid delete mode 100644 addons/phantom_camera/examples/credits.txt delete mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_follow_framed_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_follow_group_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_follow_path_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_limit_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_noise_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_tweening_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_framed_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_glued_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_group_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_path_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_simple_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_attribtues_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_look_at_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_noise_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_tweening_example_scene.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn delete mode 100644 addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn delete mode 100644 addons/phantom_camera/examples/models/3d_cube_dark.tscn delete mode 100644 addons/phantom_camera/examples/resources/tween/fixed_camera_tween.tres delete mode 100644 addons/phantom_camera/examples/resources/tween/inventory_phantom_camera_2d_tween.tres delete mode 100644 addons/phantom_camera/examples/resources/tween/item_focus_phantom_camera_2d_tween.tres delete mode 100644 addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres delete mode 100644 addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres delete mode 100644 addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd delete mode 100644 addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd delete mode 100644 addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd delete mode 100644 addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd delete mode 100644 addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd delete mode 100644 addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd delete mode 100644 addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/3D/npc.gd delete mode 100644 addons/phantom_camera/examples/scripts/3D/npc.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/3D/path_follow.gd delete mode 100644 addons/phantom_camera/examples/scripts/3D/path_follow.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller.gd delete mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd delete mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd.uid delete mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd delete mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd.uid delete mode 100644 addons/phantom_camera/examples/textures/2D/inventory_container.png delete mode 100644 addons/phantom_camera/examples/textures/2D/inventory_container.png.import delete mode 100644 addons/phantom_camera/examples/textures/2D/level_spritesheet.png delete mode 100644 addons/phantom_camera/examples/textures/2D/level_spritesheet.png.import delete mode 100644 addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png delete mode 100644 addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png.import delete mode 100644 addons/phantom_camera/examples/textures/2D/player_sprite.svg delete mode 100644 addons/phantom_camera/examples/textures/2D/player_sprite.svg.import delete mode 100644 addons/phantom_camera/examples/textures/2D/sign_prompt.png delete mode 100644 addons/phantom_camera/examples/textures/2D/sign_prompt.png.import delete mode 100644 addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png delete mode 100644 addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png.import delete mode 100644 addons/phantom_camera/examples/textures/3D/target.png delete mode 100644 addons/phantom_camera/examples/textures/3D/target.png.import delete mode 100644 addons/phantom_camera/examples/ui/ui_inventory.tscn delete mode 100644 addons/phantom_camera/examples/ui/ui_sign.tscn create mode 100644 addons/reedscene/act/StateQuickConfigPanel.gd create mode 100644 addons/reedscene/act/StateQuickConfigPanel.gd.uid create mode 100644 addons/reedscene/act/StateQuickConfigPanel.tscn rename _props/door_manager/prop_states/close.gd => addons/reedscene/plugin_config.json (100%) rename addons/reedscene/scene/{ => icon}/scene.svg (100%) rename addons/reedscene/scene/{ => icon}/scene.svg.import (78%) delete mode 100644 addons/reedscene/view/GameView.gd delete mode 100644 addons/reedscene/view/GameView.gd.uid delete mode 100644 addons/reedscene/view/GameViewContainer.gd delete mode 100644 addons/reedscene/view/GameViewContainer.gd.uid diff --git a/_game/LevelDemonstration.tscn b/_game/LevelDemonstration.tscn index ea96b93..44de47d 100644 --- a/_game/LevelDemonstration.tscn +++ b/_game/LevelDemonstration.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=3 uid="uid://bj2318o3y68x2"] +[gd_scene load_steps=12 format=3 uid="uid://bj2318o3y68x2"] [ext_resource type="Script" uid="uid://ds6jy3s0hhmwt" path="res://_game/DemoScript.gd" id="1_2tycc"] [ext_resource type="PackedScene" uid="uid://cvqehvdjpoar4" path="res://_player/player_controller.tscn" id="2_gslp7"] @@ -11,13 +11,13 @@ [ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="8_3ihdv"] [ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="9_hc6q0"] [ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="10_mwuv1"] -[ext_resource type="Script" uid="uid://b4menkyub4ce7" path="res://addons/reedscene/prop/PropComponent.gd" id="12_m325v"] -[ext_resource type="Script" uid="uid://di41kt2tj34c2" path="res://addons/reedscene/prop/StateManager.gd" id="13_j8v5a"] -[ext_resource type="Script" uid="uid://7lml6d1t5xtq" path="res://addons/reedscene/prop/PropState.gd" id="14_acyif"] [node name="Game" type="Node2D"] script = ExtResource("1_2tycc") +[node name="PlayerController" parent="." node_paths=PackedStringArray("auto_controlled_avatar") instance=ExtResource("2_gslp7")] +auto_controlled_avatar = NodePath("../Avatar") + [node name="Avatar" parent="." instance=ExtResource("3_6jw57")] position = Vector2(283, 253) collision_mask = 4 @@ -45,29 +45,3 @@ script = ExtResource("9_hc6q0") [node name="Props" type="Node2D" parent="ReedScene"] script = ExtResource("10_mwuv1") - -[node name="PlayerController" parent="ReedScene/Props" node_paths=PackedStringArray("auto_controlled_avatar") instance=ExtResource("2_gslp7")] -auto_controlled_avatar = NodePath("../../../Avatar") - -[node name="[Prop_0000]" type="Node" parent="ReedScene/Props/PlayerController"] -script = ExtResource("12_m325v") -prop_id = 0 - -[node name="States" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]"] -script = ExtResource("13_j8v5a") - -[node name="[ID_0] 修改修改修改" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]/States"] -script = ExtResource("14_acyif") -state_id = 0 - -[node name="[ID_1] 修改名稱" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]/States"] -script = ExtResource("14_acyif") -state_id = 1 - -[node name="[ID_2] 修改名稱3" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]/States"] -script = ExtResource("14_acyif") -state_id = 2 - -[node name="[ID_3] 修改名稱4" type="Node" parent="ReedScene/Props/PlayerController/[Prop_0000]/States"] -script = ExtResource("14_acyif") -state_id = 3 diff --git a/_game/scenes/l_1_s_1.tscn b/_game/scenes/l_1_s_1.tscn index 2c7b7b3..6311870 100644 --- a/_game/scenes/l_1_s_1.tscn +++ b/_game/scenes/l_1_s_1.tscn @@ -203,6 +203,7 @@ metadata/_custom_type_script = "uid://jeybblac0kg2" [node name="SceneStaticCamera" parent="Props" instance=ExtResource("14_s6kod")] position = Vector2(334, 183) tween_on_load = false +draw_limits = true [node name="[Prop_0002]" type="Node" parent="Props/SceneStaticCamera"] script = ExtResource("7_s6kod") diff --git a/_player/Avatar.tscn b/_player/Avatar.tscn index a9b13a6..1a65800 100644 --- a/_player/Avatar.tscn +++ b/_player/Avatar.tscn @@ -96,6 +96,7 @@ script = ExtResource("8_d42ye") [node name="Fall" type="LimboState" parent="PlayerHSM/Normal/Airbone"] unique_name_in_owner = true script = ExtResource("9_iqoog") +jump_grace_time = 0.16 [node name="Jump" type="LimboState" parent="PlayerHSM/Normal/Airbone"] unique_name_in_owner = true @@ -145,8 +146,11 @@ dash_speed = 400.0 end_dash_speed = 190.0 climb_hop_velocity_x = 180.0 climb_hop_velocity_y = 334.0 -jump_force = 270.0 -jump_horizontal_Boost = 235.0 +jump_force = 290.0 +jump_hold_maxium_time = 0.135 +jump_horizontal_Boost = 265.0 +light_gravity_threshold = 120.0 +light_gravity_mult = 0.6 wall_jump_base_force_x = 260.0 wall_jump_base_force_y = 220.0 fall_maxium_speed = 430.0 @@ -184,6 +188,7 @@ metadata/_custom_type_script = "uid://ta2r2bc1nrwe" position = Vector2(50, -75) script = ExtResource("32_u7cua") tween_resource = SubResource("Resource_1a1t3") +draw_limits = true metadata/_custom_type_script = "uid://bhexx6mj1xv3q" [node name="Locker" type="Node" parent="PhantomCamera2D" node_paths=PackedStringArray("target_camera")] diff --git a/_player/states/fall.gd b/_player/states/fall.gd index 2317c0d..f68a63d 100644 --- a/_player/states/fall.gd +++ b/_player/states/fall.gd @@ -1,6 +1,6 @@ extends LimboState -##土狼跳缓存时间 +##跳輸入缓存时间 @export var jump_grace_time: float = .14 var jump_grace_timer: float diff --git a/_player/states/jump.gd b/_player/states/jump.gd index 396fb6a..228d0c5 100644 --- a/_player/states/jump.gd +++ b/_player/states/jump.gd @@ -2,6 +2,8 @@ extends LimboState @onready var root: Normal = %Normal +##TODO:后续把JumpGrace在JumpState也写一下,或者直接写到AirBoneState,目前的JumpGrace由于只能在Fall触发,会卡手 + func _setup() -> void: self.add_event_handler(&"completed_jump",_handler_completed_jump) diff --git a/_props/door_manager/prop_states/close.gd.uid b/_props/door_manager/prop_states/close.gd.uid deleted file mode 100644 index a36f2a7..0000000 --- a/_props/door_manager/prop_states/close.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dm28i1f2r18b8 diff --git a/_props/door_manager/prop_states/t_door_open_f_close.gd b/_props/door_manager/prop_states/t_door_open_f_close.gd deleted file mode 100644 index cd5649e..0000000 --- a/_props/door_manager/prop_states/t_door_open_f_close.gd +++ /dev/null @@ -1,7 +0,0 @@ -extends ReedTransition - -func execute(from: ReedPropState, to: ReedPropState, ctx: Dictionary) -> bool: - super.execute(from,to,ctx) - to._owner.call - - diff --git a/_props/door_manager/prop_states/t_door_open_f_close.gd.uid b/_props/door_manager/prop_states/t_door_open_f_close.gd.uid deleted file mode 100644 index 565ac68..0000000 --- a/_props/door_manager/prop_states/t_door_open_f_close.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://csbvukpwc7g6p diff --git a/addons/phantom_camera/examples/credits.txt b/addons/phantom_camera/examples/credits.txt deleted file mode 100644 index d5e949a..0000000 --- a/addons/phantom_camera/examples/credits.txt +++ /dev/null @@ -1,7 +0,0 @@ -##################### -EXAMPLE ASSET CREDITS -##################### - -# level_spritesheet -https://opengameart.org/content/a-platformer-in-the-forest -https://opengameart.org/users/buch diff --git a/addons/phantom_camera/examples/example_scenes/2D/2d_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/2D/2d_example_scene.tscn deleted file mode 100644 index beca1b9..0000000 --- a/addons/phantom_camera/examples/example_scenes/2D/2d_example_scene.tscn +++ /dev/null @@ -1,249 +0,0 @@ -[gd_scene load_steps=12 format=4 uid="uid://ohwjxojqcj63"] - -[ext_resource type="Texture2D" uid="uid://c77npili4pel4" path="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png" id="1_foq54"] -[ext_resource type="PackedScene" uid="uid://dg7rhrymsrrrm" path="res://addons/phantom_camera/examples/ui/ui_inventory.tscn" id="2_kmt5y"] -[ext_resource type="PackedScene" uid="uid://iq5xd1ob1res" path="res://addons/phantom_camera/examples/ui/ui_sign.tscn" id="3_1cmgi"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="4_4dx73"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="5_gcww2"] -[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="6_i3g4f"] -[ext_resource type="Resource" uid="uid://euybd2w0bax" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres" id="7_j2i8l"] -[ext_resource type="PackedScene" uid="uid://7kh0xydx0b1o" path="res://addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn" id="8_ytjsp"] -[ext_resource type="Script" uid="uid://cnnaky2ns2pn4" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd" id="9_o4c4h"] - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_yx3lp"] -texture = ExtResource("1_foq54") -0:0/0 = 0 -1:0/0 = 0 -2:0/0 = 0 -3:0/0 = 0 -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -1:1/0 = 0 -2:1/0 = 0 -3:1/0 = 0 -4:1/0 = 0 -5:1/0 = 0 -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:3/0 = 0 -4:3/0 = 0 -5:3/0 = 0 -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -4:4/0 = 0 -5:4/0 = 0 -7:4/0 = 0 -3:5/0 = 0 -4:5/0 = 0 -7:5/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -7:6/0 = 0 -2:7/0 = 0 -3:7/0 = 0 -4:7/0 = 0 -5:7/0 = 0 -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:0/0 = 0 -9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:0/0 = 0 -10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:0/0 = 0 -11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:0/0 = 0 -12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:0/0 = 0 -13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:0/0 = 0 -14:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8) -14:0/0/custom_data_0 = &"Sign" -15:0/0 = 0 -16:0/0 = 0 -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:1/0 = 0 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:1/0 = 0 -10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:1/0 = 0 -11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:1/0 = 0 -12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:1/0 = 0 -13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:1/0 = 0 -15:1/0 = 0 -16:1/0 = 0 -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:2/0 = 0 -9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:2/0 = 0 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:2/0 = 0 -11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:2/0 = 0 -12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:2/0 = 0 -13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:2/0 = 0 -15:2/0 = 0 -16:2/0 = 0 -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:3/0 = 0 -9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:3/0 = 0 -10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:3/0 = 0 -12:3/0 = 0 -12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:3/0 = 0 -13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:3/0 = 0 -15:3/0 = 0 -16:3/0 = 0 -8:4/0 = 0 -9:4/0 = 0 -10:4/0 = 0 -11:4/0 = 0 -11:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-7, 2.5, -5, -2, -2.5, -5, 2, -7, 8, -8, 8, 8, -8, 8) -12:4/0 = 0 -12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:4/0 = 0 -13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -6, 4, -1.5, 6.5, 1.5, 8, 8, -8, 8) -14:4/0 = 0 -14:4/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8) -14:4/0/custom_data_0 = &"Inventory" -15:4/0 = 0 -16:4/0 = 0 -8:5/0 = 0 -9:5/0 = 0 -10:5/0 = 0 -11:5/0 = 0 -11:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:5/0 = 0 -12:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:5/0 = 0 -13:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:5/0 = 0 -15:5/0 = 0 -16:5/0 = 0 -8:6/0 = 0 -9:6/0 = 0 -10:6/0 = 0 -11:6/0 = 0 -11:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 1, 6.5, -3, 3, -6.5, -1.5) -12:6/0 = 0 -12:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:6/0 = 0 -13:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 6, -0.5, 3, 3.5, -1.5, 6.5, -8, 8) -14:6/0 = 0 -15:6/0 = 0 -16:6/0 = 0 - -[sub_resource type="TileSet" id="TileSet_nawqc"] -physics_layer_0/collision_layer = 1 -physics_layer_1/collision_layer = 2 -physics_layer_1/collision_mask = 2 -custom_data_layer_0/name = "Type" -custom_data_layer_0/type = 21 -sources/0 = SubResource("TileSetAtlasSource_yx3lp") - -[node name="Root" type="Node2D"] - -[node name="Background" type="CanvasLayer" parent="."] -layer = -3 - -[node name="ColorRect" type="ColorRect" parent="Background"] -auto_translate_mode = 2 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -311.0 -offset_top = -173.0 -offset_right = 981.0 -offset_bottom = 548.0 -grow_horizontal = 2 -grow_vertical = 2 -localize_numeral_system = false -color = Color(0.137255, 0.14902, 0.196078, 1) - -[node name="Pillar" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAAAAPr/AAAKAAIAAAAAAPv/AAAKAAMAAAAAAPz/AAAKAAMAAAAAAP3/AAAKAAMAAAAAAP7/AAAKAAMAAAAAAP//AAAKAAMAAAABAPr/AAALAAIAAAABAPv/AAALAAEAAAABAPz/AAALAAEAAAABAP3/AAALAAEAAAABAP7/AAALAAEAAAABAP//AAALAAEAAAACAPr/AAAMAAIAAAACAPv/AAAMAAMAAAACAPz/AAAMAAMAAAACAP3/AAAMAAMAAAACAP7/AAAMAAMAAAACAP//AAAMAAMAAAA=") -tile_set = SubResource("TileSet_nawqc") -collision_enabled = false -navigation_enabled = false - -[node name="Terrain" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAABAAAAAAALAAAAAAACAAAAAAALAAAAAAADAAAAAAALAAAAAAAEAAAAAAALAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAHAAAAAAALAAAAAAAIAAAAAAALAAAAAAAJAAAAAAAMAAAAAAAJAAEAAAAMAAEAAAAJAAIAAAAMAAEAAAAJAAMAAAAMAAEAAAAJAAQAAAAMAAEAAAAJAAUAAAAMAAEAAAAJAAYAAAAMAAEAAAABAAEAAAALAAEAAAABAAIAAAALAAEAAAABAAMAAAALAAEAAAABAAQAAAAHAAEAAAABAAUAAAALAAEAAAABAAYAAAALAAEAAAACAAEAAAALAAEAAAACAAIAAAALAAEAAAACAAMAAAALAAEAAAACAAQAAAALAAEAAAACAAUAAAALAAEAAAACAAYAAAALAAEAAAADAAEAAAALAAEAAAADAAIAAAALAAEAAAADAAMAAAALAAEAAAADAAQAAAALAAEAAAADAAUAAAALAAEAAAADAAYAAAALAAEAAAAEAAEAAAAHAAEAAAAEAAIAAAALAAEAAAAEAAMAAAALAAEAAAAEAAQAAAALAAEAAAAEAAUAAAALAAEAAAAEAAYAAAALAAEAAAAFAAEAAAALAAEAAAAFAAIAAAALAAEAAAAFAAMAAAALAAEAAAAFAAQAAAAHAAEAAAAFAAUAAAALAAEAAAAFAAYAAAALAAEAAAAGAAEAAAALAAEAAAAGAAIAAAALAAEAAAAGAAMAAAALAAEAAAAGAAQAAAALAAEAAAAGAAUAAAALAAEAAAAGAAYAAAALAAEAAAAHAAEAAAALAAEAAAAHAAIAAAALAAEAAAAHAAMAAAALAAEAAAAHAAQAAAALAAEAAAAHAAUAAAALAAEAAAAHAAYAAAAHAAEAAAAIAAEAAAALAAEAAAAIAAIAAAALAAEAAAAIAAMAAAAHAAEAAAAIAAQAAAALAAEAAAAIAAUAAAALAAEAAAAIAAYAAAALAAEAAAAKAAEAAAAIAAUAAAALAAEAAAAIAAUAAAAMAAEAAAAIAAUAAAANAAEAAAAIAAUAAAAKAAIAAAAIAAYAAAALAAIAAAAIAAYAAAAMAAIAAAAIAAYAAAANAAIAAAAIAAYAAAAKAAMAAAALAAEAAAAKAAQAAAALAAEAAAALAAMAAAALAAEAAAALAAQAAAALAAEAAAAMAAMAAAALAAEAAAAMAAQAAAALAAEAAAANAAMAAAALAAEAAAANAAQAAAALAAEAAAAOAAEAAAAIAAUAAAAPAAEAAAAIAAUAAAAQAAEAAAAIAAUAAAAOAAIAAAAIAAYAAAAPAAIAAAAIAAYAAAAQAAIAAAAIAAYAAAAOAAMAAAALAAEAAAAPAAMAAAALAAEAAAAPAAQAAAALAAEAAAAQAAQAAAALAAEAAAAQAAMAAAALAAEAAAAOAAQAAAALAAEAAAARAAAAAAALAAQAAAARAAEAAAALAAUAAAARAAIAAAALAAUAAAARAAMAAAALAAUAAAARAAQAAAALAAUAAAASAAAAAAAMAAQAAAATAAAAAAAMAAQAAAAUAAAAAAAMAAQAAAAVAAAAAAAMAAQAAAAWAAAAAAAMAAQAAAAXAAAAAAAMAAQAAAASAAEAAAAMAAUAAAASAAIAAAAMAAUAAAASAAMAAAAMAAUAAAASAAQAAAAMAAUAAAATAAEAAAAMAAUAAAATAAIAAAAJAAYAAAATAAMAAAAMAAUAAAATAAQAAAAMAAUAAAAUAAEAAAAMAAUAAAAUAAIAAAAMAAUAAAAUAAMAAAAMAAUAAAAUAAQAAAAMAAUAAAAVAAEAAAAMAAUAAAAVAAIAAAAMAAUAAAAVAAMAAAAMAAUAAAAVAAQAAAAMAAUAAAAWAAEAAAAMAAUAAAAWAAIAAAAMAAUAAAAWAAMAAAAMAAUAAAAWAAQAAAAKAAYAAAAXAAEAAAAMAAUAAAAXAAIAAAAMAAUAAAAXAAMAAAAMAAUAAAAXAAQAAAAMAAUAAAARAAUAAAALAAUAAAARAAYAAAALAAUAAAASAAUAAAAJAAYAAAASAAYAAAAMAAUAAAATAAUAAAAMAAUAAAATAAYAAAAMAAUAAAAUAAUAAAAMAAUAAAAUAAYAAAAMAAUAAAAVAAUAAAAMAAUAAAAVAAYAAAAMAAUAAAAWAAUAAAAMAAUAAAAWAAYAAAAMAAUAAAAXAAUAAAAMAAUAAAAXAAYAAAAMAAUAAAAKAP7/AAALAAQAAAALAP7/AAAMAAQAAAAMAP7/AAAMAAQAAAAKAP//AAALAAYAAAALAP//AAAMAAYAAAAMAP//AAAMAAYAAAAQAP7/AAANAAQAAAAQAP//AAANAAYAAAANAP7/AAAMAAQAAAAOAP7/AAAMAAQAAAAPAP7/AAAMAAQAAAANAP//AAAMAAYAAAAOAP//AAAMAAYAAAAPAP//AAAMAAYAAAAMAP3/AAAOAAAAAAADAP//AAAOAAIAAAAEAP//AAAPAAIAAAAFAP//AAAQAAIAAAAGAP//AAAOAAIAAAAHAP//AAAPAAIAAAAIAP//AAAQAAIAAAD//wAAAAAKAAAAAAD//wEAAAAKAAEAAAD//wIAAAAKAAEAAAD//wMAAAAKAAEAAAD//wQAAAAKAAEAAAD//wUAAAAKAAEAAAD//wYAAAAKAAEAAAD//wcAAAAKAAEAAAD//wgAAAAKAAEAAAAAAAAAAAALAAAAAAAAAAEAAAALAAEAAAAAAAIAAAALAAEAAAAAAAMAAAALAAEAAAAAAAQAAAALAAEAAAAAAAUAAAALAAEAAAAAAAYAAAALAAEAAAAAAAcAAAALAAEAAAAAAAgAAAALAAEAAAABAAgAAAALAAEAAAACAAgAAAALAAEAAAADAAgAAAALAAEAAAAEAAgAAAALAAEAAAAFAAgAAAALAAEAAAAGAAgAAAALAAEAAAAHAAgAAAALAAEAAAAIAAgAAAALAAEAAAAJAAgAAAAMAAEAAAAJAAcAAAAMAAEAAAAIAAcAAAALAAEAAAAHAAcAAAALAAEAAAAGAAcAAAAHAAEAAAAFAAcAAAALAAEAAAAEAAcAAAALAAEAAAADAAcAAAALAAEAAAACAAcAAAALAAEAAAABAAcAAAALAAEAAAD///v/AAANAAQAAAD///z/AAANAAUAAAD///3/AAANAAUAAAD///7/AAANAAUAAAD/////AAANAAYAAAD+//v/AAAMAAQAAAD9//v/AAAMAAQAAAD+//z/AAAJAAYAAAD9//z/AAAMAAUAAAD6////AAAMAAUAAAD7////AAAMAAUAAAD8////AAAMAAUAAAD9////AAAMAAUAAAD+////AAAMAAUAAAD+//7/AAAMAAUAAAD+//3/AAAMAAUAAAD9//3/AAAMAAUAAAD9//7/AAAKAAYAAAD+/wAAAAANAAUAAAD+/wEAAAANAAUAAAD+/wIAAAANAAUAAAD+/wMAAAANAAUAAAD+/wQAAAANAAUAAAD+/wUAAAANAAUAAAD+/wYAAAANAAUAAAD9/wAAAAAMAAUAAAD8/wAAAAAMAAUAAAD7/wAAAAAMAAUAAAD6/wAAAAAMAAUAAAD5/wAAAAALAAUAAAD6/wEAAAAMAAUAAAD6/wIAAAAMAAUAAAD6/wMAAAAMAAUAAAD7/wMAAAAMAAUAAAD7/wQAAAAMAAUAAAD8/wEAAAAMAAUAAAD9/wEAAAAMAAUAAAD9/wIAAAAMAAUAAAD9/wMAAAAMAAUAAAD9/wQAAAAMAAUAAAD9/wUAAAAMAAUAAAD9/wYAAAAMAAUAAAD8/wUAAAAMAAUAAAD7/wUAAAAMAAUAAAD8/wYAAAAMAAUAAAD8/wQAAAAKAAYAAAD8/wMAAAAMAAUAAAD8/wIAAAAMAAUAAAD7/wEAAAAMAAUAAAD7/wIAAAAJAAYAAAD7/wYAAAAMAAUAAAD6/wYAAAAMAAUAAAD6/wUAAAAMAAUAAAD6/wQAAAAMAAUAAAD5////AAALAAUAAAD5/wEAAAALAAUAAAD5/wIAAAALAAUAAAD5/wMAAAALAAUAAAD5/wQAAAALAAUAAAD5/wUAAAALAAUAAAD5/wYAAAALAAUAAAD8//r/AAALAAMAAAAOAP3/AAALAAMAAAALAP3/AAALAAMAAAASAP//AAALAAMAAAAUAP//AAALAAMAAAD6//r/AAAQAAUAAAD7//r/AAALAAMAAAANAP3/AAAOAAYAAAAWAP//AAAPAAYAAAD9//r/AAAPAAUAAAAXAP//AAAQAAUAAAD5//v/AAALAAQAAAD5//z/AAALAAUAAAD5//3/AAALAAUAAAD5//7/AAALAAUAAAD6//v/AAAMAAQAAAD6//z/AAAKAAYAAAD6//3/AAAMAAUAAAD6//7/AAAMAAUAAAD7//v/AAAMAAQAAAD7//z/AAAMAAUAAAD7//3/AAAMAAUAAAD7//7/AAAMAAUAAAD8//v/AAAMAAQAAAD8//z/AAAMAAUAAAD8//3/AAAMAAUAAAD8//7/AAAMAAUAAAARAAcAAAALAAUAAAARAAgAAAALAAYAAAAXAAcAAAAMAAUAAAAWAAcAAAAMAAUAAAAVAAcAAAAMAAUAAAAUAAcAAAAMAAUAAAATAAcAAAAMAAUAAAASAAcAAAAMAAUAAAASAAgAAAAMAAYAAAATAAgAAAAMAAYAAAAUAAgAAAAMAAYAAAAVAAgAAAAMAAYAAAAWAAgAAAAMAAYAAAAXAAgAAAAMAAYAAAAKAAUAAAALAAEAAAAKAAYAAAALAAEAAAAKAAcAAAALAAEAAAAKAAgAAAALAAEAAAALAAUAAAALAAEAAAALAAYAAAALAAEAAAALAAcAAAALAAEAAAALAAgAAAALAAEAAAAMAAUAAAALAAEAAAAMAAYAAAALAAEAAAAMAAcAAAALAAEAAAAMAAgAAAALAAEAAAANAAUAAAALAAEAAAANAAYAAAALAAEAAAANAAcAAAALAAEAAAANAAgAAAALAAEAAAAOAAUAAAALAAEAAAAOAAYAAAALAAEAAAAOAAcAAAALAAEAAAAOAAgAAAALAAEAAAAPAAUAAAALAAEAAAAPAAYAAAALAAEAAAAPAAcAAAALAAEAAAAPAAgAAAALAAEAAAAQAAUAAAALAAEAAAAQAAYAAAALAAEAAAAQAAcAAAALAAEAAAAQAAgAAAALAAEAAAAdAAAAAAANAAQAAAAdAAEAAAANAAUAAAAdAAIAAAANAAUAAAAdAAMAAAANAAUAAAAdAAQAAAANAAUAAAAdAAUAAAANAAUAAAAdAAYAAAANAAUAAAAdAAcAAAANAAUAAAAdAAgAAAANAAYAAAAZAP//AAAOAAQAAAAYAAAAAAAMAAQAAAAZAAAAAAAMAAQAAAAaAAAAAAAMAAQAAAAbAAAAAAAMAAQAAAAcAAAAAAAMAAQAAAAYAAEAAAAMAAUAAAAZAAEAAAAMAAUAAAAaAAEAAAAMAAUAAAAbAAEAAAAMAAUAAAAcAAEAAAAMAAUAAAAcAAIAAAAMAAUAAAAcAAMAAAAJAAYAAAAbAAIAAAAMAAUAAAAaAAIAAAAMAAUAAAAZAAIAAAAMAAUAAAAYAAIAAAAMAAUAAAAYAAMAAAAMAAUAAAAYAAQAAAAMAAUAAAAYAAUAAAAMAAUAAAAYAAYAAAAMAAUAAAAYAAcAAAAMAAUAAAAYAAgAAAAMAAYAAAAZAAMAAAAMAAUAAAAZAAQAAAAMAAUAAAAZAAUAAAAMAAUAAAAZAAYAAAAMAAUAAAAZAAcAAAAMAAUAAAAZAAgAAAAMAAYAAAAaAAMAAAAMAAUAAAAaAAQAAAAMAAUAAAAaAAUAAAAMAAUAAAAaAAYAAAAKAAYAAAAaAAcAAAAMAAUAAAAaAAgAAAAMAAYAAAAbAAMAAAAMAAUAAAAbAAQAAAAMAAUAAAAbAAUAAAAMAAUAAAAbAAYAAAAMAAUAAAAbAAcAAAAMAAUAAAAbAAgAAAAMAAYAAAAcAAQAAAAMAAUAAAAcAAUAAAAMAAUAAAAcAAYAAAAMAAUAAAAcAAcAAAAMAAUAAAAcAAgAAAAMAAYAAAAPAP3/AAAQAAYAAAAiAPr/AAAQAAYAAAAfAPr/AAAOAAYAAAAkAPr/AAAPAAYAAAAgAPr/AAAPAAUAAAAbAP//AAALAAMAAAAaAP//AAALAAMAAAAjAPr/AAALAAMAAAAhAPr/AAALAAMAAAATAP//AAALAAMAAAAVAP//AAALAAMAAAAeAPv/AAALAAQAAAAeAPz/AAALAAUAAAAeAP3/AAALAAUAAAAeAP7/AAALAAUAAAAeAP//AAALAAUAAAAmAP//AAANAAUAAAAmAP7/AAANAAUAAAAmAP3/AAANAAUAAAAmAPv/AAANAAQAAAAfAPv/AAAMAAQAAAAgAPv/AAAMAAQAAAAhAPv/AAAMAAQAAAAiAPv/AAAMAAQAAAAjAPv/AAAMAAQAAAAkAPv/AAAMAAQAAAAlAPv/AAAMAAQAAAAmAPz/AAANAAUAAAAlAP//AAAMAAUAAAAlAP7/AAAMAAUAAAAlAP3/AAAMAAUAAAAlAPz/AAAMAAUAAAAkAPz/AAAMAAUAAAAjAPz/AAAMAAUAAAAiAPz/AAAMAAUAAAAhAPz/AAAMAAUAAAAgAPz/AAAMAAUAAAAfAPz/AAAMAAUAAAAfAP3/AAAKAAYAAAAfAP7/AAAMAAUAAAAfAP//AAAMAAUAAAAkAP//AAAKAAYAAAAkAP7/AAAJAAYAAAAkAP3/AAAMAAUAAAAjAP3/AAAMAAUAAAAiAP3/AAAMAAUAAAAhAP3/AAAMAAUAAAAgAP3/AAAMAAUAAAAgAP7/AAAJAAYAAAAgAP//AAAMAAUAAAAjAP//AAAMAAUAAAAjAP7/AAAMAAUAAAAiAP7/AAAMAAUAAAAhAP7/AAAMAAUAAAAhAP//AAAMAAUAAAAiAP//AAAMAAUAAAAeAAgAAAALAAYAAAAeAAcAAAALAAUAAAAeAAYAAAALAAUAAAAeAAUAAAALAAUAAAAeAAQAAAALAAUAAAAeAAMAAAALAAUAAAAeAAIAAAALAAUAAAAeAAEAAAALAAUAAAAeAAAAAAALAAUAAAAfAAgAAAAMAAYAAAAgAAgAAAAMAAYAAAAhAAgAAAAMAAYAAAAiAAgAAAAMAAYAAAAjAAgAAAAMAAYAAAAkAAgAAAAMAAYAAAAlAAgAAAAMAAYAAAAmAAgAAAANAAYAAAAmAAAAAAANAAUAAAAmAAEAAAANAAUAAAAmAAIAAAANAAUAAAAmAAMAAAANAAUAAAAmAAQAAAANAAUAAAAmAAUAAAANAAUAAAAmAAYAAAANAAUAAAAmAAcAAAANAAUAAAAfAAAAAAAMAAUAAAAfAAEAAAAMAAUAAAAfAAIAAAAMAAUAAAAfAAMAAAAMAAUAAAAfAAQAAAAMAAUAAAAfAAUAAAAMAAUAAAAfAAYAAAAKAAYAAAAfAAcAAAAMAAUAAAAgAAAAAAAMAAUAAAAgAAEAAAAMAAUAAAAgAAIAAAAMAAUAAAAgAAMAAAAMAAUAAAAgAAQAAAAMAAUAAAAgAAUAAAAMAAUAAAAgAAYAAAAMAAUAAAAgAAcAAAAMAAUAAAAhAAAAAAAMAAUAAAAhAAEAAAAMAAUAAAAhAAIAAAAKAAYAAAAhAAMAAAAMAAUAAAAhAAQAAAAMAAUAAAAhAAUAAAAMAAUAAAAhAAYAAAAMAAUAAAAhAAcAAAAMAAUAAAAiAAAAAAAMAAUAAAAiAAEAAAAMAAUAAAAiAAIAAAAMAAUAAAAiAAMAAAAMAAUAAAAiAAQAAAAKAAYAAAAiAAUAAAAKAAYAAAAiAAYAAAAMAAUAAAAiAAcAAAAMAAUAAAAjAAAAAAAMAAUAAAAjAAEAAAAMAAUAAAAjAAIAAAAMAAUAAAAjAAMAAAAMAAUAAAAjAAQAAAAMAAUAAAAjAAUAAAAMAAUAAAAjAAYAAAAMAAUAAAAjAAcAAAAMAAUAAAAkAAAAAAAKAAYAAAAkAAEAAAAMAAUAAAAkAAIAAAAMAAUAAAAkAAMAAAAMAAUAAAAkAAQAAAAMAAUAAAAkAAUAAAAMAAUAAAAkAAYAAAAMAAUAAAAkAAcAAAAKAAYAAAAlAAAAAAAMAAUAAAAlAAEAAAAMAAUAAAAlAAIAAAAMAAUAAAAlAAMAAAAMAAUAAAAlAAQAAAAMAAUAAAAlAAUAAAAMAAUAAAAlAAYAAAAMAAUAAAAlAAcAAAAMAAUAAAD6/wcAAAAMAAUAAAD7/wcAAAAMAAUAAAD8/wcAAAAMAAUAAAD9/wcAAAAMAAUAAAD5/wcAAAALAAUAAAD+/wcAAAANAAUAAAD5/wgAAAALAAYAAAD6/wgAAAAMAAYAAAD7/wgAAAAMAAYAAAD8/wgAAAAMAAYAAAD9/wgAAAAMAAYAAAD+/wgAAAANAAYAAAA=") -tile_set = SubResource("TileSet_nawqc") - -[node name="UI" type="CanvasLayer" parent="."] - -[node name="UIInventory" parent="UI" instance=ExtResource("2_kmt5y")] -unique_name_in_owner = true -visible = false - -[node name="UISign" parent="UI" instance=ExtResource("3_1cmgi")] -unique_name_in_owner = true -visible = false - -[node name="Controls" type="Label" parent="."] -offset_left = 167.0 -offset_top = -145.0 -offset_right = 332.0 -offset_bottom = -81.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("4_4dx73") -text = "[WASD] to move -[Space] to jump" - -[node name="Camera2D" type="Camera2D" parent="."] -physics_interpolation_mode = 1 -position = Vector2(227, -28) -zoom = Vector2(1.5, 1.5) -process_callback = 0 -editor_draw_limits = true - -[node name="PhantomCameraHost" type="Node" parent="Camera2D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("5_gcww2") - -[node name="Player" type="Node" parent="."] - -[node name="PlayerPhantomCamera2D" type="Node2D" parent="Player" node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -process_priority = -1 -top_level = true -position = Vector2(227, -28) -script = ExtResource("6_i3g4f") -priority = 10 -follow_mode = 2 -follow_target = NodePath("../CharacterBody2D") -zoom = Vector2(1.5, 1.5) -frame_preview = false -tween_resource = ExtResource("7_j2i8l") -tween_on_load = false -follow_damping = true -draw_limits = true - -[node name="CharacterBody2D" parent="Player" instance=ExtResource("8_ytjsp")] -position = Vector2(227, -28) -script = ExtResource("9_o4c4h") diff --git a/addons/phantom_camera/examples/example_scenes/2D/2d_follow_framed_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/2D/2d_follow_framed_example_scene.tscn deleted file mode 100644 index 9b9cc88..0000000 --- a/addons/phantom_camera/examples/example_scenes/2D/2d_follow_framed_example_scene.tscn +++ /dev/null @@ -1,251 +0,0 @@ -[gd_scene load_steps=12 format=4 uid="uid://dg1tuoxd3b4tw"] - -[ext_resource type="Texture2D" uid="uid://c77npili4pel4" path="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png" id="1_nf5bo"] -[ext_resource type="PackedScene" uid="uid://dg7rhrymsrrrm" path="res://addons/phantom_camera/examples/ui/ui_inventory.tscn" id="2_5oggv"] -[ext_resource type="PackedScene" uid="uid://iq5xd1ob1res" path="res://addons/phantom_camera/examples/ui/ui_sign.tscn" id="3_aku7q"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="4_j3ux0"] -[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="5_uwr6r"] -[ext_resource type="Resource" uid="uid://euybd2w0bax" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres" id="6_4l0c3"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="7_briql"] -[ext_resource type="PackedScene" uid="uid://7kh0xydx0b1o" path="res://addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn" id="8_i4m1d"] -[ext_resource type="Script" uid="uid://cnnaky2ns2pn4" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd" id="9_m3lnd"] - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_dpuou"] -texture = ExtResource("1_nf5bo") -0:0/0 = 0 -1:0/0 = 0 -2:0/0 = 0 -3:0/0 = 0 -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -1:1/0 = 0 -2:1/0 = 0 -3:1/0 = 0 -4:1/0 = 0 -5:1/0 = 0 -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:3/0 = 0 -4:3/0 = 0 -5:3/0 = 0 -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -4:4/0 = 0 -5:4/0 = 0 -7:4/0 = 0 -3:5/0 = 0 -4:5/0 = 0 -7:5/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -7:6/0 = 0 -2:7/0 = 0 -3:7/0 = 0 -4:7/0 = 0 -5:7/0 = 0 -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:0/0 = 0 -9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:0/0 = 0 -10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:0/0 = 0 -11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:0/0 = 0 -12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:0/0 = 0 -13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:0/0 = 0 -14:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8) -14:0/0/custom_data_0 = &"Sign" -15:0/0 = 0 -16:0/0 = 0 -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:1/0 = 0 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:1/0 = 0 -10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:1/0 = 0 -11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:1/0 = 0 -12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:1/0 = 0 -13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:1/0 = 0 -15:1/0 = 0 -16:1/0 = 0 -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:2/0 = 0 -9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:2/0 = 0 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:2/0 = 0 -11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:2/0 = 0 -12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:2/0 = 0 -13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:2/0 = 0 -15:2/0 = 0 -16:2/0 = 0 -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:3/0 = 0 -9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:3/0 = 0 -10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:3/0 = 0 -12:3/0 = 0 -12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:3/0 = 0 -13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:3/0 = 0 -15:3/0 = 0 -16:3/0 = 0 -8:4/0 = 0 -9:4/0 = 0 -10:4/0 = 0 -11:4/0 = 0 -11:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-7, 2.5, -5, -2, -2.5, -5, 2, -7, 8, -8, 8, 8, -8, 8) -12:4/0 = 0 -12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:4/0 = 0 -13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -6, 4, -1.5, 6.5, 1.5, 8, 8, -8, 8) -14:4/0 = 0 -14:4/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8) -14:4/0/custom_data_0 = &"Inventory" -15:4/0 = 0 -16:4/0 = 0 -8:5/0 = 0 -9:5/0 = 0 -10:5/0 = 0 -11:5/0 = 0 -11:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:5/0 = 0 -12:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:5/0 = 0 -13:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:5/0 = 0 -15:5/0 = 0 -16:5/0 = 0 -8:6/0 = 0 -9:6/0 = 0 -10:6/0 = 0 -11:6/0 = 0 -11:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 1, 6.5, -3, 3, -6.5, -1.5) -12:6/0 = 0 -12:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:6/0 = 0 -13:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 6, -0.5, 3, 3.5, -1.5, 6.5, -8, 8) -14:6/0 = 0 -15:6/0 = 0 -16:6/0 = 0 - -[sub_resource type="TileSet" id="TileSet_kxirl"] -physics_layer_0/collision_layer = 1 -physics_layer_1/collision_layer = 2 -physics_layer_1/collision_mask = 2 -custom_data_layer_0/name = "Type" -custom_data_layer_0/type = 21 -sources/0 = SubResource("TileSetAtlasSource_dpuou") - -[node name="Root" type="Node2D"] - -[node name="Background" type="CanvasLayer" parent="."] -layer = -3 - -[node name="ColorRect" type="ColorRect" parent="Background"] -auto_translate_mode = 2 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -345.0 -offset_top = -143.0 -offset_right = 947.0 -offset_bottom = 578.0 -grow_horizontal = 2 -grow_vertical = 2 -localize_numeral_system = false -color = Color(0.137255, 0.14902, 0.196078, 1) - -[node name="Pillar" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAAAAPr/AAAKAAIAAAAAAPv/AAAKAAMAAAAAAPz/AAAKAAMAAAAAAP3/AAAKAAMAAAAAAP7/AAAKAAMAAAAAAP//AAAKAAMAAAABAPr/AAALAAIAAAABAPv/AAALAAEAAAABAPz/AAALAAEAAAABAP3/AAALAAEAAAABAP7/AAALAAEAAAABAP//AAALAAEAAAACAPr/AAAMAAIAAAACAPv/AAAMAAMAAAACAPz/AAAMAAMAAAACAP3/AAAMAAMAAAACAP7/AAAMAAMAAAACAP//AAAMAAMAAAA=") -tile_set = SubResource("TileSet_kxirl") -collision_enabled = false -navigation_enabled = false - -[node name="Terrain" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAABAAAAAAALAAAAAAACAAAAAAALAAAAAAADAAAAAAALAAAAAAAEAAAAAAALAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAHAAAAAAALAAAAAAAIAAAAAAALAAAAAAAJAAAAAAAMAAAAAAAJAAEAAAAMAAEAAAAJAAIAAAAMAAEAAAAJAAMAAAAMAAEAAAAJAAQAAAAMAAEAAAAJAAUAAAAMAAEAAAAJAAYAAAAMAAEAAAABAAEAAAALAAEAAAABAAIAAAALAAEAAAABAAMAAAALAAEAAAABAAQAAAAHAAEAAAABAAUAAAALAAEAAAABAAYAAAALAAEAAAACAAEAAAALAAEAAAACAAIAAAALAAEAAAACAAMAAAALAAEAAAACAAQAAAALAAEAAAACAAUAAAALAAEAAAACAAYAAAALAAEAAAADAAEAAAALAAEAAAADAAIAAAALAAEAAAADAAMAAAALAAEAAAADAAQAAAALAAEAAAADAAUAAAALAAEAAAADAAYAAAALAAEAAAAEAAEAAAAHAAEAAAAEAAIAAAALAAEAAAAEAAMAAAALAAEAAAAEAAQAAAALAAEAAAAEAAUAAAALAAEAAAAEAAYAAAALAAEAAAAFAAEAAAALAAEAAAAFAAIAAAALAAEAAAAFAAMAAAALAAEAAAAFAAQAAAAHAAEAAAAFAAUAAAALAAEAAAAFAAYAAAALAAEAAAAGAAEAAAALAAEAAAAGAAIAAAALAAEAAAAGAAMAAAALAAEAAAAGAAQAAAALAAEAAAAGAAUAAAALAAEAAAAGAAYAAAALAAEAAAAHAAEAAAALAAEAAAAHAAIAAAALAAEAAAAHAAMAAAALAAEAAAAHAAQAAAALAAEAAAAHAAUAAAALAAEAAAAHAAYAAAAHAAEAAAAIAAEAAAALAAEAAAAIAAIAAAALAAEAAAAIAAMAAAAHAAEAAAAIAAQAAAALAAEAAAAIAAUAAAALAAEAAAAIAAYAAAALAAEAAAAKAAEAAAAIAAUAAAALAAEAAAAIAAUAAAAMAAEAAAAIAAUAAAANAAEAAAAIAAUAAAAKAAIAAAAIAAYAAAALAAIAAAAIAAYAAAAMAAIAAAAIAAYAAAANAAIAAAAIAAYAAAAKAAMAAAALAAEAAAAKAAQAAAALAAEAAAALAAMAAAALAAEAAAALAAQAAAALAAEAAAAMAAMAAAALAAEAAAAMAAQAAAALAAEAAAANAAMAAAALAAEAAAANAAQAAAALAAEAAAAOAAEAAAAIAAUAAAAPAAEAAAAIAAUAAAAQAAEAAAAIAAUAAAAOAAIAAAAIAAYAAAAPAAIAAAAIAAYAAAAQAAIAAAAIAAYAAAAOAAMAAAALAAEAAAAPAAMAAAALAAEAAAAPAAQAAAALAAEAAAAQAAQAAAALAAEAAAAQAAMAAAALAAEAAAAOAAQAAAALAAEAAAARAAAAAAALAAQAAAARAAEAAAALAAUAAAARAAIAAAALAAUAAAARAAMAAAALAAUAAAARAAQAAAALAAUAAAASAAAAAAAMAAQAAAATAAAAAAAMAAQAAAAUAAAAAAAMAAQAAAAVAAAAAAAMAAQAAAAWAAAAAAAMAAQAAAAXAAAAAAAMAAQAAAASAAEAAAAMAAUAAAASAAIAAAAMAAUAAAASAAMAAAAMAAUAAAASAAQAAAAMAAUAAAATAAEAAAAMAAUAAAATAAIAAAAJAAYAAAATAAMAAAAMAAUAAAATAAQAAAAMAAUAAAAUAAEAAAAMAAUAAAAUAAIAAAAMAAUAAAAUAAMAAAAMAAUAAAAUAAQAAAAMAAUAAAAVAAEAAAAMAAUAAAAVAAIAAAAMAAUAAAAVAAMAAAAMAAUAAAAVAAQAAAAMAAUAAAAWAAEAAAAMAAUAAAAWAAIAAAAMAAUAAAAWAAMAAAAMAAUAAAAWAAQAAAAKAAYAAAAXAAEAAAAMAAUAAAAXAAIAAAAMAAUAAAAXAAMAAAAMAAUAAAAXAAQAAAAMAAUAAAARAAUAAAALAAUAAAARAAYAAAALAAUAAAASAAUAAAAJAAYAAAASAAYAAAAMAAUAAAATAAUAAAAMAAUAAAATAAYAAAAMAAUAAAAUAAUAAAAMAAUAAAAUAAYAAAAMAAUAAAAVAAUAAAAMAAUAAAAVAAYAAAAMAAUAAAAWAAUAAAAMAAUAAAAWAAYAAAAMAAUAAAAXAAUAAAAMAAUAAAAXAAYAAAAMAAUAAAAKAP7/AAALAAQAAAALAP7/AAAMAAQAAAAMAP7/AAAMAAQAAAAKAP//AAALAAYAAAALAP//AAAMAAYAAAAMAP//AAAMAAYAAAAQAP7/AAANAAQAAAAQAP//AAANAAYAAAANAP7/AAAMAAQAAAAOAP7/AAAMAAQAAAAPAP7/AAAMAAQAAAANAP//AAAMAAYAAAAOAP//AAAMAAYAAAAPAP//AAAMAAYAAAAMAP3/AAAOAAAAAAADAP//AAAOAAIAAAAEAP//AAAPAAIAAAAFAP//AAAQAAIAAAAGAP//AAAOAAIAAAAHAP//AAAPAAIAAAAIAP//AAAQAAIAAAD//wAAAAAKAAAAAAD//wEAAAAKAAEAAAD//wIAAAAKAAEAAAD//wMAAAAKAAEAAAD//wQAAAAKAAEAAAD//wUAAAAKAAEAAAD//wYAAAAKAAEAAAD//wcAAAAKAAEAAAD//wgAAAAKAAEAAAAAAAAAAAALAAAAAAAAAAEAAAALAAEAAAAAAAIAAAALAAEAAAAAAAMAAAALAAEAAAAAAAQAAAALAAEAAAAAAAUAAAALAAEAAAAAAAYAAAALAAEAAAAAAAcAAAALAAEAAAAAAAgAAAALAAEAAAABAAgAAAALAAEAAAACAAgAAAALAAEAAAADAAgAAAALAAEAAAAEAAgAAAALAAEAAAAFAAgAAAALAAEAAAAGAAgAAAALAAEAAAAHAAgAAAALAAEAAAAIAAgAAAALAAEAAAAJAAgAAAAMAAEAAAAJAAcAAAAMAAEAAAAIAAcAAAALAAEAAAAHAAcAAAALAAEAAAAGAAcAAAAHAAEAAAAFAAcAAAALAAEAAAAEAAcAAAALAAEAAAADAAcAAAALAAEAAAACAAcAAAALAAEAAAABAAcAAAALAAEAAAD///v/AAANAAQAAAD///z/AAANAAUAAAD///3/AAANAAUAAAD///7/AAANAAUAAAD/////AAANAAYAAAD+//v/AAAMAAQAAAD9//v/AAAMAAQAAAD+//z/AAAJAAYAAAD9//z/AAAMAAUAAAD6////AAAMAAUAAAD7////AAAMAAUAAAD8////AAAMAAUAAAD9////AAAMAAUAAAD+////AAAMAAUAAAD+//7/AAAMAAUAAAD+//3/AAAMAAUAAAD9//3/AAAMAAUAAAD9//7/AAAKAAYAAAD+/wAAAAANAAUAAAD+/wEAAAANAAUAAAD+/wIAAAANAAUAAAD+/wMAAAANAAUAAAD+/wQAAAANAAUAAAD+/wUAAAANAAUAAAD+/wYAAAANAAUAAAD9/wAAAAAMAAUAAAD8/wAAAAAMAAUAAAD7/wAAAAAMAAUAAAD6/wAAAAAMAAUAAAD5/wAAAAALAAUAAAD6/wEAAAAMAAUAAAD6/wIAAAAMAAUAAAD6/wMAAAAMAAUAAAD7/wMAAAAMAAUAAAD7/wQAAAAMAAUAAAD8/wEAAAAMAAUAAAD9/wEAAAAMAAUAAAD9/wIAAAAMAAUAAAD9/wMAAAAMAAUAAAD9/wQAAAAMAAUAAAD9/wUAAAAMAAUAAAD9/wYAAAAMAAUAAAD8/wUAAAAMAAUAAAD7/wUAAAAMAAUAAAD8/wYAAAAMAAUAAAD8/wQAAAAKAAYAAAD8/wMAAAAMAAUAAAD8/wIAAAAMAAUAAAD7/wEAAAAMAAUAAAD7/wIAAAAJAAYAAAD7/wYAAAAMAAUAAAD6/wYAAAAMAAUAAAD6/wUAAAAMAAUAAAD6/wQAAAAMAAUAAAD5////AAALAAUAAAD5/wEAAAALAAUAAAD5/wIAAAALAAUAAAD5/wMAAAALAAUAAAD5/wQAAAALAAUAAAD5/wUAAAALAAUAAAD5/wYAAAALAAUAAAD8//r/AAALAAMAAAAOAP3/AAALAAMAAAALAP3/AAALAAMAAAASAP//AAALAAMAAAAUAP//AAALAAMAAAD6//r/AAAQAAUAAAD7//r/AAALAAMAAAANAP3/AAAOAAYAAAAWAP//AAAPAAYAAAD9//r/AAAPAAUAAAAXAP//AAAQAAUAAAD5//v/AAALAAQAAAD5//z/AAALAAUAAAD5//3/AAALAAUAAAD5//7/AAALAAUAAAD6//v/AAAMAAQAAAD6//z/AAAKAAYAAAD6//3/AAAMAAUAAAD6//7/AAAMAAUAAAD7//v/AAAMAAQAAAD7//z/AAAMAAUAAAD7//3/AAAMAAUAAAD7//7/AAAMAAUAAAD8//v/AAAMAAQAAAD8//z/AAAMAAUAAAD8//3/AAAMAAUAAAD8//7/AAAMAAUAAAARAAcAAAALAAUAAAARAAgAAAALAAYAAAAXAAcAAAAMAAUAAAAWAAcAAAAMAAUAAAAVAAcAAAAMAAUAAAAUAAcAAAAMAAUAAAATAAcAAAAMAAUAAAASAAcAAAAMAAUAAAASAAgAAAAMAAYAAAATAAgAAAAMAAYAAAAUAAgAAAAMAAYAAAAVAAgAAAAMAAYAAAAWAAgAAAAMAAYAAAAXAAgAAAAMAAYAAAAKAAUAAAALAAEAAAAKAAYAAAALAAEAAAAKAAcAAAALAAEAAAAKAAgAAAALAAEAAAALAAUAAAALAAEAAAALAAYAAAALAAEAAAALAAcAAAALAAEAAAALAAgAAAALAAEAAAAMAAUAAAALAAEAAAAMAAYAAAALAAEAAAAMAAcAAAALAAEAAAAMAAgAAAALAAEAAAANAAUAAAALAAEAAAANAAYAAAALAAEAAAANAAcAAAALAAEAAAANAAgAAAALAAEAAAAOAAUAAAALAAEAAAAOAAYAAAALAAEAAAAOAAcAAAALAAEAAAAOAAgAAAALAAEAAAAPAAUAAAALAAEAAAAPAAYAAAALAAEAAAAPAAcAAAALAAEAAAAPAAgAAAALAAEAAAAQAAUAAAALAAEAAAAQAAYAAAALAAEAAAAQAAcAAAALAAEAAAAQAAgAAAALAAEAAAAdAAAAAAANAAQAAAAdAAEAAAANAAUAAAAdAAIAAAANAAUAAAAdAAMAAAANAAUAAAAdAAQAAAANAAUAAAAdAAUAAAANAAUAAAAdAAYAAAANAAUAAAAdAAcAAAANAAUAAAAdAAgAAAANAAYAAAAZAP//AAAOAAQAAAAYAAAAAAAMAAQAAAAZAAAAAAAMAAQAAAAaAAAAAAAMAAQAAAAbAAAAAAAMAAQAAAAcAAAAAAAMAAQAAAAYAAEAAAAMAAUAAAAZAAEAAAAMAAUAAAAaAAEAAAAMAAUAAAAbAAEAAAAMAAUAAAAcAAEAAAAMAAUAAAAcAAIAAAAMAAUAAAAcAAMAAAAJAAYAAAAbAAIAAAAMAAUAAAAaAAIAAAAMAAUAAAAZAAIAAAAMAAUAAAAYAAIAAAAMAAUAAAAYAAMAAAAMAAUAAAAYAAQAAAAMAAUAAAAYAAUAAAAMAAUAAAAYAAYAAAAMAAUAAAAYAAcAAAAMAAUAAAAYAAgAAAAMAAYAAAAZAAMAAAAMAAUAAAAZAAQAAAAMAAUAAAAZAAUAAAAMAAUAAAAZAAYAAAAMAAUAAAAZAAcAAAAMAAUAAAAZAAgAAAAMAAYAAAAaAAMAAAAMAAUAAAAaAAQAAAAMAAUAAAAaAAUAAAAMAAUAAAAaAAYAAAAKAAYAAAAaAAcAAAAMAAUAAAAaAAgAAAAMAAYAAAAbAAMAAAAMAAUAAAAbAAQAAAAMAAUAAAAbAAUAAAAMAAUAAAAbAAYAAAAMAAUAAAAbAAcAAAAMAAUAAAAbAAgAAAAMAAYAAAAcAAQAAAAMAAUAAAAcAAUAAAAMAAUAAAAcAAYAAAAMAAUAAAAcAAcAAAAMAAUAAAAcAAgAAAAMAAYAAAAPAP3/AAAQAAYAAAAiAPr/AAAQAAYAAAAfAPr/AAAOAAYAAAAkAPr/AAAPAAYAAAAgAPr/AAAPAAUAAAAbAP//AAALAAMAAAAaAP//AAALAAMAAAAjAPr/AAALAAMAAAAhAPr/AAALAAMAAAATAP//AAALAAMAAAAVAP//AAALAAMAAAAeAPv/AAALAAQAAAAeAPz/AAALAAUAAAAeAP3/AAALAAUAAAAeAP7/AAALAAUAAAAeAP//AAALAAUAAAAmAP//AAANAAUAAAAmAP7/AAANAAUAAAAmAP3/AAANAAUAAAAmAPv/AAANAAQAAAAfAPv/AAAMAAQAAAAgAPv/AAAMAAQAAAAhAPv/AAAMAAQAAAAiAPv/AAAMAAQAAAAjAPv/AAAMAAQAAAAkAPv/AAAMAAQAAAAlAPv/AAAMAAQAAAAmAPz/AAANAAUAAAAlAP//AAAMAAUAAAAlAP7/AAAMAAUAAAAlAP3/AAAMAAUAAAAlAPz/AAAMAAUAAAAkAPz/AAAMAAUAAAAjAPz/AAAMAAUAAAAiAPz/AAAMAAUAAAAhAPz/AAAMAAUAAAAgAPz/AAAMAAUAAAAfAPz/AAAMAAUAAAAfAP3/AAAKAAYAAAAfAP7/AAAMAAUAAAAfAP//AAAMAAUAAAAkAP//AAAKAAYAAAAkAP7/AAAJAAYAAAAkAP3/AAAMAAUAAAAjAP3/AAAMAAUAAAAiAP3/AAAMAAUAAAAhAP3/AAAMAAUAAAAgAP3/AAAMAAUAAAAgAP7/AAAJAAYAAAAgAP//AAAMAAUAAAAjAP//AAAMAAUAAAAjAP7/AAAMAAUAAAAiAP7/AAAMAAUAAAAhAP7/AAAMAAUAAAAhAP//AAAMAAUAAAAiAP//AAAMAAUAAAAeAAgAAAALAAYAAAAeAAcAAAALAAUAAAAeAAYAAAALAAUAAAAeAAUAAAALAAUAAAAeAAQAAAALAAUAAAAeAAMAAAALAAUAAAAeAAIAAAALAAUAAAAeAAEAAAALAAUAAAAeAAAAAAALAAUAAAAfAAgAAAAMAAYAAAAgAAgAAAAMAAYAAAAhAAgAAAAMAAYAAAAiAAgAAAAMAAYAAAAjAAgAAAAMAAYAAAAkAAgAAAAMAAYAAAAlAAgAAAAMAAYAAAAmAAgAAAANAAYAAAAmAAAAAAANAAUAAAAmAAEAAAANAAUAAAAmAAIAAAANAAUAAAAmAAMAAAANAAUAAAAmAAQAAAANAAUAAAAmAAUAAAANAAUAAAAmAAYAAAANAAUAAAAmAAcAAAANAAUAAAAfAAAAAAAMAAUAAAAfAAEAAAAMAAUAAAAfAAIAAAAMAAUAAAAfAAMAAAAMAAUAAAAfAAQAAAAMAAUAAAAfAAUAAAAMAAUAAAAfAAYAAAAKAAYAAAAfAAcAAAAMAAUAAAAgAAAAAAAMAAUAAAAgAAEAAAAMAAUAAAAgAAIAAAAMAAUAAAAgAAMAAAAMAAUAAAAgAAQAAAAMAAUAAAAgAAUAAAAMAAUAAAAgAAYAAAAMAAUAAAAgAAcAAAAMAAUAAAAhAAAAAAAMAAUAAAAhAAEAAAAMAAUAAAAhAAIAAAAKAAYAAAAhAAMAAAAMAAUAAAAhAAQAAAAMAAUAAAAhAAUAAAAMAAUAAAAhAAYAAAAMAAUAAAAhAAcAAAAMAAUAAAAiAAAAAAAMAAUAAAAiAAEAAAAMAAUAAAAiAAIAAAAMAAUAAAAiAAMAAAAMAAUAAAAiAAQAAAAKAAYAAAAiAAUAAAAKAAYAAAAiAAYAAAAMAAUAAAAiAAcAAAAMAAUAAAAjAAAAAAAMAAUAAAAjAAEAAAAMAAUAAAAjAAIAAAAMAAUAAAAjAAMAAAAMAAUAAAAjAAQAAAAMAAUAAAAjAAUAAAAMAAUAAAAjAAYAAAAMAAUAAAAjAAcAAAAMAAUAAAAkAAAAAAAKAAYAAAAkAAEAAAAMAAUAAAAkAAIAAAAMAAUAAAAkAAMAAAAMAAUAAAAkAAQAAAAMAAUAAAAkAAUAAAAMAAUAAAAkAAYAAAAMAAUAAAAkAAcAAAAKAAYAAAAlAAAAAAAMAAUAAAAlAAEAAAAMAAUAAAAlAAIAAAAMAAUAAAAlAAMAAAAMAAUAAAAlAAQAAAAMAAUAAAAlAAUAAAAMAAUAAAAlAAYAAAAMAAUAAAAlAAcAAAAMAAUAAAD6/wcAAAAMAAUAAAD7/wcAAAAMAAUAAAD8/wcAAAAMAAUAAAD9/wcAAAAMAAUAAAD5/wcAAAALAAUAAAD+/wcAAAANAAUAAAD5/wgAAAALAAYAAAD6/wgAAAAMAAYAAAD7/wgAAAAMAAYAAAD8/wgAAAAMAAYAAAD9/wgAAAAMAAYAAAD+/wgAAAANAAYAAAA=") -tile_set = SubResource("TileSet_kxirl") - -[node name="UI" type="CanvasLayer" parent="."] - -[node name="UIInventory" parent="UI" instance=ExtResource("2_5oggv")] -unique_name_in_owner = true -visible = false - -[node name="UISign" parent="UI" instance=ExtResource("3_aku7q")] -unique_name_in_owner = true -visible = false - -[node name="Camera2D" type="Camera2D" parent="."] -physics_interpolation_mode = 1 -position = Vector2(215, -73) -zoom = Vector2(2, 2) -process_callback = 0 -editor_draw_limits = true - -[node name="PhantomCameraHost" type="Node" parent="Camera2D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("4_j3ux0") - -[node name="Player" type="Node" parent="."] - -[node name="PlayerPhantomCamera2D" type="Node2D" parent="Player" node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -top_level = true -position = Vector2(215, -73) -script = ExtResource("5_uwr6r") -priority = 5 -follow_mode = 5 -follow_target = NodePath("../CharacterBody2D") -zoom = Vector2(2, 2) -tween_resource = ExtResource("6_4l0c3") -tween_on_load = false -follow_offset = Vector2(0, -45) -follow_damping = true -dead_zone_width = 0.25 -dead_zone_height = 0.8 -show_viewfinder_in_play = true -draw_limits = true - -[node name="Label" type="Label" parent="Player"] -offset_left = 167.0 -offset_top = -145.0 -offset_right = 332.0 -offset_bottom = -81.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("7_briql") -text = "[WASD] to move -[Space] to jump" - -[node name="CharacterBody2D" parent="Player" instance=ExtResource("8_i4m1d")] -position = Vector2(215, -28) -script = ExtResource("9_m3lnd") diff --git a/addons/phantom_camera/examples/example_scenes/2D/2d_follow_group_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/2D/2d_follow_group_example_scene.tscn deleted file mode 100644 index 0efde25..0000000 --- a/addons/phantom_camera/examples/example_scenes/2D/2d_follow_group_example_scene.tscn +++ /dev/null @@ -1,260 +0,0 @@ -[gd_scene load_steps=14 format=4 uid="uid://bio6mao7gtru2"] - -[ext_resource type="Texture2D" uid="uid://c77npili4pel4" path="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png" id="1_8rflf"] -[ext_resource type="PackedScene" uid="uid://dg7rhrymsrrrm" path="res://addons/phantom_camera/examples/ui/ui_inventory.tscn" id="2_tafwr"] -[ext_resource type="PackedScene" uid="uid://iq5xd1ob1res" path="res://addons/phantom_camera/examples/ui/ui_sign.tscn" id="3_37c7w"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="4_dxiro"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="5_gaaip"] -[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="6_ojk83"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="7_awenl"] -[ext_resource type="Texture2D" uid="uid://cwep0on2tthn7" path="res://addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png" id="8_ys0m4"] -[ext_resource type="PackedScene" uid="uid://7kh0xydx0b1o" path="res://addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn" id="9_witv0"] -[ext_resource type="Script" uid="uid://cnnaky2ns2pn4" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd" id="10_aivri"] - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3qxnm"] -texture = ExtResource("1_8rflf") -0:0/0 = 0 -1:0/0 = 0 -2:0/0 = 0 -3:0/0 = 0 -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -1:1/0 = 0 -2:1/0 = 0 -3:1/0 = 0 -4:1/0 = 0 -5:1/0 = 0 -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:3/0 = 0 -4:3/0 = 0 -5:3/0 = 0 -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -4:4/0 = 0 -5:4/0 = 0 -7:4/0 = 0 -3:5/0 = 0 -4:5/0 = 0 -7:5/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -7:6/0 = 0 -2:7/0 = 0 -3:7/0 = 0 -4:7/0 = 0 -5:7/0 = 0 -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:0/0 = 0 -9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:0/0 = 0 -10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:0/0 = 0 -11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:0/0 = 0 -12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:0/0 = 0 -13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:0/0 = 0 -14:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8) -14:0/0/custom_data_0 = &"Sign" -15:0/0 = 0 -16:0/0 = 0 -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:1/0 = 0 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:1/0 = 0 -10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:1/0 = 0 -11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:1/0 = 0 -12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:1/0 = 0 -13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:1/0 = 0 -15:1/0 = 0 -16:1/0 = 0 -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:2/0 = 0 -9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:2/0 = 0 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:2/0 = 0 -11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:2/0 = 0 -12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:2/0 = 0 -13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:2/0 = 0 -15:2/0 = 0 -16:2/0 = 0 -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:3/0 = 0 -9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:3/0 = 0 -10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:3/0 = 0 -12:3/0 = 0 -12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:3/0 = 0 -13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:3/0 = 0 -15:3/0 = 0 -16:3/0 = 0 -8:4/0 = 0 -9:4/0 = 0 -10:4/0 = 0 -11:4/0 = 0 -11:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-7, 2.5, -5, -2, -2.5, -5, 2, -7, 8, -8, 8, 8, -8, 8) -12:4/0 = 0 -12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:4/0 = 0 -13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -6, 4, -1.5, 6.5, 1.5, 8, 8, -8, 8) -14:4/0 = 0 -14:4/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8) -14:4/0/custom_data_0 = &"Inventory" -15:4/0 = 0 -16:4/0 = 0 -8:5/0 = 0 -9:5/0 = 0 -10:5/0 = 0 -11:5/0 = 0 -11:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:5/0 = 0 -12:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:5/0 = 0 -13:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:5/0 = 0 -15:5/0 = 0 -16:5/0 = 0 -8:6/0 = 0 -9:6/0 = 0 -10:6/0 = 0 -11:6/0 = 0 -11:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 1, 6.5, -3, 3, -6.5, -1.5) -12:6/0 = 0 -12:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:6/0 = 0 -13:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 6, -0.5, 3, 3.5, -1.5, 6.5, -8, 8) -14:6/0 = 0 -15:6/0 = 0 -16:6/0 = 0 - -[sub_resource type="TileSet" id="TileSet_14yng"] -physics_layer_0/collision_layer = 1 -physics_layer_1/collision_layer = 2 -physics_layer_1/collision_mask = 2 -custom_data_layer_0/name = "Type" -custom_data_layer_0/type = 21 -sources/0 = SubResource("TileSetAtlasSource_3qxnm") - -[sub_resource type="Resource" id="Resource_spy00"] -script = ExtResource("7_awenl") -duration = 0.3 -transition = 4 - -[node name="Root" type="Node2D"] - -[node name="Background" type="CanvasLayer" parent="."] -layer = -3 - -[node name="ColorRect" type="ColorRect" parent="Background"] -auto_translate_mode = 2 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -311.0 -offset_top = -173.0 -offset_right = 981.0 -offset_bottom = 548.0 -grow_horizontal = 2 -grow_vertical = 2 -localize_numeral_system = false -color = Color(0.137255, 0.14902, 0.196078, 1) - -[node name="Pillar" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAAAAPr/AAAKAAIAAAAAAPv/AAAKAAMAAAAAAPz/AAAKAAMAAAAAAP3/AAAKAAMAAAAAAP7/AAAKAAMAAAAAAP//AAAKAAMAAAABAPr/AAALAAIAAAABAPv/AAALAAEAAAABAPz/AAALAAEAAAABAP3/AAALAAEAAAABAP7/AAALAAEAAAABAP//AAALAAEAAAACAPr/AAAMAAIAAAACAPv/AAAMAAMAAAACAPz/AAAMAAMAAAACAP3/AAAMAAMAAAACAP7/AAAMAAMAAAACAP//AAAMAAMAAAA=") -tile_set = SubResource("TileSet_14yng") -collision_enabled = false -navigation_enabled = false - -[node name="Terrain" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAABAAAAAAALAAAAAAACAAAAAAALAAAAAAADAAAAAAALAAAAAAAEAAAAAAALAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAHAAAAAAALAAAAAAAIAAAAAAALAAAAAAAJAAAAAAAMAAAAAAAJAAEAAAAMAAEAAAAJAAIAAAAMAAEAAAAJAAMAAAAMAAEAAAAJAAQAAAAMAAEAAAAJAAUAAAAMAAEAAAAJAAYAAAAMAAEAAAABAAEAAAALAAEAAAABAAIAAAALAAEAAAABAAMAAAALAAEAAAABAAQAAAAHAAEAAAABAAUAAAALAAEAAAABAAYAAAALAAEAAAACAAEAAAALAAEAAAACAAIAAAALAAEAAAACAAMAAAALAAEAAAACAAQAAAALAAEAAAACAAUAAAALAAEAAAACAAYAAAALAAEAAAADAAEAAAALAAEAAAADAAIAAAALAAEAAAADAAMAAAALAAEAAAADAAQAAAALAAEAAAADAAUAAAALAAEAAAADAAYAAAALAAEAAAAEAAEAAAAHAAEAAAAEAAIAAAALAAEAAAAEAAMAAAALAAEAAAAEAAQAAAALAAEAAAAEAAUAAAALAAEAAAAEAAYAAAALAAEAAAAFAAEAAAALAAEAAAAFAAIAAAALAAEAAAAFAAMAAAALAAEAAAAFAAQAAAAHAAEAAAAFAAUAAAALAAEAAAAFAAYAAAALAAEAAAAGAAEAAAALAAEAAAAGAAIAAAALAAEAAAAGAAMAAAALAAEAAAAGAAQAAAALAAEAAAAGAAUAAAALAAEAAAAGAAYAAAALAAEAAAAHAAEAAAALAAEAAAAHAAIAAAALAAEAAAAHAAMAAAALAAEAAAAHAAQAAAALAAEAAAAHAAUAAAALAAEAAAAHAAYAAAAHAAEAAAAIAAEAAAALAAEAAAAIAAIAAAALAAEAAAAIAAMAAAAHAAEAAAAIAAQAAAALAAEAAAAIAAUAAAALAAEAAAAIAAYAAAALAAEAAAAKAAEAAAAIAAUAAAALAAEAAAAIAAUAAAAMAAEAAAAIAAUAAAANAAEAAAAIAAUAAAAKAAIAAAAIAAYAAAALAAIAAAAIAAYAAAAMAAIAAAAIAAYAAAANAAIAAAAIAAYAAAAKAAMAAAALAAEAAAAKAAQAAAALAAEAAAALAAMAAAALAAEAAAALAAQAAAALAAEAAAAMAAMAAAALAAEAAAAMAAQAAAALAAEAAAANAAMAAAALAAEAAAANAAQAAAALAAEAAAAOAAEAAAAIAAUAAAAPAAEAAAAIAAUAAAAQAAEAAAAIAAUAAAAOAAIAAAAIAAYAAAAPAAIAAAAIAAYAAAAQAAIAAAAIAAYAAAAOAAMAAAALAAEAAAAPAAMAAAALAAEAAAAPAAQAAAALAAEAAAAQAAQAAAALAAEAAAAQAAMAAAALAAEAAAAOAAQAAAALAAEAAAARAAAAAAALAAQAAAARAAEAAAALAAUAAAARAAIAAAALAAUAAAARAAMAAAALAAUAAAARAAQAAAALAAUAAAASAAAAAAAMAAQAAAATAAAAAAAMAAQAAAAUAAAAAAAMAAQAAAAVAAAAAAAMAAQAAAAWAAAAAAAMAAQAAAAXAAAAAAAMAAQAAAASAAEAAAAMAAUAAAASAAIAAAAMAAUAAAASAAMAAAAMAAUAAAASAAQAAAAMAAUAAAATAAEAAAAMAAUAAAATAAIAAAAJAAYAAAATAAMAAAAMAAUAAAATAAQAAAAMAAUAAAAUAAEAAAAMAAUAAAAUAAIAAAAMAAUAAAAUAAMAAAAMAAUAAAAUAAQAAAAMAAUAAAAVAAEAAAAMAAUAAAAVAAIAAAAMAAUAAAAVAAMAAAAMAAUAAAAVAAQAAAAMAAUAAAAWAAEAAAAMAAUAAAAWAAIAAAAMAAUAAAAWAAMAAAAMAAUAAAAWAAQAAAAKAAYAAAAXAAEAAAAMAAUAAAAXAAIAAAAMAAUAAAAXAAMAAAAMAAUAAAAXAAQAAAAMAAUAAAARAAUAAAALAAUAAAARAAYAAAALAAUAAAASAAUAAAAJAAYAAAASAAYAAAAMAAUAAAATAAUAAAAMAAUAAAATAAYAAAAMAAUAAAAUAAUAAAAMAAUAAAAUAAYAAAAMAAUAAAAVAAUAAAAMAAUAAAAVAAYAAAAMAAUAAAAWAAUAAAAMAAUAAAAWAAYAAAAMAAUAAAAXAAUAAAAMAAUAAAAXAAYAAAAMAAUAAAAKAP7/AAALAAQAAAALAP7/AAAMAAQAAAAMAP7/AAAMAAQAAAAKAP//AAALAAYAAAALAP//AAAMAAYAAAAMAP//AAAMAAYAAAAQAP7/AAANAAQAAAAQAP//AAANAAYAAAANAP7/AAAMAAQAAAAOAP7/AAAMAAQAAAAPAP7/AAAMAAQAAAANAP//AAAMAAYAAAAOAP//AAAMAAYAAAAPAP//AAAMAAYAAAAMAP3/AAAOAAAAAAADAP//AAAOAAIAAAAEAP//AAAPAAIAAAAFAP//AAAQAAIAAAAGAP//AAAOAAIAAAAHAP//AAAPAAIAAAAIAP//AAAQAAIAAAD//wAAAAAKAAAAAAD//wEAAAAKAAEAAAD//wIAAAAKAAEAAAD//wMAAAAKAAEAAAD//wQAAAAKAAEAAAD//wUAAAAKAAEAAAD//wYAAAAKAAEAAAD//wcAAAAKAAEAAAD//wgAAAAKAAEAAAAAAAAAAAALAAAAAAAAAAEAAAALAAEAAAAAAAIAAAALAAEAAAAAAAMAAAALAAEAAAAAAAQAAAALAAEAAAAAAAUAAAALAAEAAAAAAAYAAAALAAEAAAAAAAcAAAALAAEAAAAAAAgAAAALAAEAAAABAAgAAAALAAEAAAACAAgAAAALAAEAAAADAAgAAAALAAEAAAAEAAgAAAALAAEAAAAFAAgAAAALAAEAAAAGAAgAAAALAAEAAAAHAAgAAAALAAEAAAAIAAgAAAALAAEAAAAJAAgAAAAMAAEAAAAJAAcAAAAMAAEAAAAIAAcAAAALAAEAAAAHAAcAAAALAAEAAAAGAAcAAAAHAAEAAAAFAAcAAAALAAEAAAAEAAcAAAALAAEAAAADAAcAAAALAAEAAAACAAcAAAALAAEAAAABAAcAAAALAAEAAAD///v/AAANAAQAAAD///z/AAANAAUAAAD///3/AAANAAUAAAD///7/AAANAAUAAAD/////AAANAAYAAAD+//v/AAAMAAQAAAD9//v/AAAMAAQAAAD+//z/AAAJAAYAAAD9//z/AAAMAAUAAAD6////AAAMAAUAAAD7////AAAMAAUAAAD8////AAAMAAUAAAD9////AAAMAAUAAAD+////AAAMAAUAAAD+//7/AAAMAAUAAAD+//3/AAAMAAUAAAD9//3/AAAMAAUAAAD9//7/AAAKAAYAAAD+/wAAAAANAAUAAAD+/wEAAAANAAUAAAD+/wIAAAANAAUAAAD+/wMAAAANAAUAAAD+/wQAAAANAAUAAAD+/wUAAAANAAUAAAD+/wYAAAANAAUAAAD9/wAAAAAMAAUAAAD8/wAAAAAMAAUAAAD7/wAAAAAMAAUAAAD6/wAAAAAMAAUAAAD5/wAAAAALAAUAAAD6/wEAAAAMAAUAAAD6/wIAAAAMAAUAAAD6/wMAAAAMAAUAAAD7/wMAAAAMAAUAAAD7/wQAAAAMAAUAAAD8/wEAAAAMAAUAAAD9/wEAAAAMAAUAAAD9/wIAAAAMAAUAAAD9/wMAAAAMAAUAAAD9/wQAAAAMAAUAAAD9/wUAAAAMAAUAAAD9/wYAAAAMAAUAAAD8/wUAAAAMAAUAAAD7/wUAAAAMAAUAAAD8/wYAAAAMAAUAAAD8/wQAAAAKAAYAAAD8/wMAAAAMAAUAAAD8/wIAAAAMAAUAAAD7/wEAAAAMAAUAAAD7/wIAAAAJAAYAAAD7/wYAAAAMAAUAAAD6/wYAAAAMAAUAAAD6/wUAAAAMAAUAAAD6/wQAAAAMAAUAAAD5////AAALAAUAAAD5/wEAAAALAAUAAAD5/wIAAAALAAUAAAD5/wMAAAALAAUAAAD5/wQAAAALAAUAAAD5/wUAAAALAAUAAAD5/wYAAAALAAUAAAD8//r/AAALAAMAAAAOAP3/AAALAAMAAAALAP3/AAALAAMAAAASAP//AAALAAMAAAAUAP//AAALAAMAAAD6//r/AAAQAAUAAAD7//r/AAALAAMAAAANAP3/AAAOAAYAAAAWAP//AAAPAAYAAAD9//r/AAAPAAUAAAAXAP//AAAQAAUAAAD5//v/AAALAAQAAAD5//z/AAALAAUAAAD5//3/AAALAAUAAAD5//7/AAALAAUAAAD6//v/AAAMAAQAAAD6//z/AAAKAAYAAAD6//3/AAAMAAUAAAD6//7/AAAMAAUAAAD7//v/AAAMAAQAAAD7//z/AAAMAAUAAAD7//3/AAAMAAUAAAD7//7/AAAMAAUAAAD8//v/AAAMAAQAAAD8//z/AAAMAAUAAAD8//3/AAAMAAUAAAD8//7/AAAMAAUAAAARAAcAAAALAAUAAAARAAgAAAALAAYAAAAXAAcAAAAMAAUAAAAWAAcAAAAMAAUAAAAVAAcAAAAMAAUAAAAUAAcAAAAMAAUAAAATAAcAAAAMAAUAAAASAAcAAAAMAAUAAAASAAgAAAAMAAYAAAATAAgAAAAMAAYAAAAUAAgAAAAMAAYAAAAVAAgAAAAMAAYAAAAWAAgAAAAMAAYAAAAXAAgAAAAMAAYAAAAKAAUAAAALAAEAAAAKAAYAAAALAAEAAAAKAAcAAAALAAEAAAAKAAgAAAALAAEAAAALAAUAAAALAAEAAAALAAYAAAALAAEAAAALAAcAAAALAAEAAAALAAgAAAALAAEAAAAMAAUAAAALAAEAAAAMAAYAAAALAAEAAAAMAAcAAAALAAEAAAAMAAgAAAALAAEAAAANAAUAAAALAAEAAAANAAYAAAALAAEAAAANAAcAAAALAAEAAAANAAgAAAALAAEAAAAOAAUAAAALAAEAAAAOAAYAAAALAAEAAAAOAAcAAAALAAEAAAAOAAgAAAALAAEAAAAPAAUAAAALAAEAAAAPAAYAAAALAAEAAAAPAAcAAAALAAEAAAAPAAgAAAALAAEAAAAQAAUAAAALAAEAAAAQAAYAAAALAAEAAAAQAAcAAAALAAEAAAAQAAgAAAALAAEAAAAdAAAAAAANAAQAAAAdAAEAAAANAAUAAAAdAAIAAAANAAUAAAAdAAMAAAANAAUAAAAdAAQAAAANAAUAAAAdAAUAAAANAAUAAAAdAAYAAAANAAUAAAAdAAcAAAANAAUAAAAdAAgAAAANAAYAAAAZAP//AAAOAAQAAAAYAAAAAAAMAAQAAAAZAAAAAAAMAAQAAAAaAAAAAAAMAAQAAAAbAAAAAAAMAAQAAAAcAAAAAAAMAAQAAAAYAAEAAAAMAAUAAAAZAAEAAAAMAAUAAAAaAAEAAAAMAAUAAAAbAAEAAAAMAAUAAAAcAAEAAAAMAAUAAAAcAAIAAAAMAAUAAAAcAAMAAAAJAAYAAAAbAAIAAAAMAAUAAAAaAAIAAAAMAAUAAAAZAAIAAAAMAAUAAAAYAAIAAAAMAAUAAAAYAAMAAAAMAAUAAAAYAAQAAAAMAAUAAAAYAAUAAAAMAAUAAAAYAAYAAAAMAAUAAAAYAAcAAAAMAAUAAAAYAAgAAAAMAAYAAAAZAAMAAAAMAAUAAAAZAAQAAAAMAAUAAAAZAAUAAAAMAAUAAAAZAAYAAAAMAAUAAAAZAAcAAAAMAAUAAAAZAAgAAAAMAAYAAAAaAAMAAAAMAAUAAAAaAAQAAAAMAAUAAAAaAAUAAAAMAAUAAAAaAAYAAAAKAAYAAAAaAAcAAAAMAAUAAAAaAAgAAAAMAAYAAAAbAAMAAAAMAAUAAAAbAAQAAAAMAAUAAAAbAAUAAAAMAAUAAAAbAAYAAAAMAAUAAAAbAAcAAAAMAAUAAAAbAAgAAAAMAAYAAAAcAAQAAAAMAAUAAAAcAAUAAAAMAAUAAAAcAAYAAAAMAAUAAAAcAAcAAAAMAAUAAAAcAAgAAAAMAAYAAAAPAP3/AAAQAAYAAAAiAPr/AAAQAAYAAAAfAPr/AAAOAAYAAAAkAPr/AAAPAAYAAAAgAPr/AAAPAAUAAAAbAP//AAALAAMAAAAaAP//AAALAAMAAAAjAPr/AAALAAMAAAAhAPr/AAALAAMAAAATAP//AAALAAMAAAAVAP//AAALAAMAAAAeAPv/AAALAAQAAAAeAPz/AAALAAUAAAAeAP3/AAALAAUAAAAeAP7/AAALAAUAAAAeAP//AAALAAUAAAAmAP//AAANAAUAAAAmAP7/AAANAAUAAAAmAP3/AAANAAUAAAAmAPv/AAANAAQAAAAfAPv/AAAMAAQAAAAgAPv/AAAMAAQAAAAhAPv/AAAMAAQAAAAiAPv/AAAMAAQAAAAjAPv/AAAMAAQAAAAkAPv/AAAMAAQAAAAlAPv/AAAMAAQAAAAmAPz/AAANAAUAAAAlAP//AAAMAAUAAAAlAP7/AAAMAAUAAAAlAP3/AAAMAAUAAAAlAPz/AAAMAAUAAAAkAPz/AAAMAAUAAAAjAPz/AAAMAAUAAAAiAPz/AAAMAAUAAAAhAPz/AAAMAAUAAAAgAPz/AAAMAAUAAAAfAPz/AAAMAAUAAAAfAP3/AAAKAAYAAAAfAP7/AAAMAAUAAAAfAP//AAAMAAUAAAAkAP//AAAKAAYAAAAkAP7/AAAJAAYAAAAkAP3/AAAMAAUAAAAjAP3/AAAMAAUAAAAiAP3/AAAMAAUAAAAhAP3/AAAMAAUAAAAgAP3/AAAMAAUAAAAgAP7/AAAJAAYAAAAgAP//AAAMAAUAAAAjAP//AAAMAAUAAAAjAP7/AAAMAAUAAAAiAP7/AAAMAAUAAAAhAP7/AAAMAAUAAAAhAP//AAAMAAUAAAAiAP//AAAMAAUAAAAeAAgAAAALAAYAAAAeAAcAAAALAAUAAAAeAAYAAAALAAUAAAAeAAUAAAALAAUAAAAeAAQAAAALAAUAAAAeAAMAAAALAAUAAAAeAAIAAAALAAUAAAAeAAEAAAALAAUAAAAeAAAAAAALAAUAAAAfAAgAAAAMAAYAAAAgAAgAAAAMAAYAAAAhAAgAAAAMAAYAAAAiAAgAAAAMAAYAAAAjAAgAAAAMAAYAAAAkAAgAAAAMAAYAAAAlAAgAAAAMAAYAAAAmAAgAAAANAAYAAAAmAAAAAAANAAUAAAAmAAEAAAANAAUAAAAmAAIAAAANAAUAAAAmAAMAAAANAAUAAAAmAAQAAAANAAUAAAAmAAUAAAANAAUAAAAmAAYAAAANAAUAAAAmAAcAAAANAAUAAAAfAAAAAAAMAAUAAAAfAAEAAAAMAAUAAAAfAAIAAAAMAAUAAAAfAAMAAAAMAAUAAAAfAAQAAAAMAAUAAAAfAAUAAAAMAAUAAAAfAAYAAAAKAAYAAAAfAAcAAAAMAAUAAAAgAAAAAAAMAAUAAAAgAAEAAAAMAAUAAAAgAAIAAAAMAAUAAAAgAAMAAAAMAAUAAAAgAAQAAAAMAAUAAAAgAAUAAAAMAAUAAAAgAAYAAAAMAAUAAAAgAAcAAAAMAAUAAAAhAAAAAAAMAAUAAAAhAAEAAAAMAAUAAAAhAAIAAAAKAAYAAAAhAAMAAAAMAAUAAAAhAAQAAAAMAAUAAAAhAAUAAAAMAAUAAAAhAAYAAAAMAAUAAAAhAAcAAAAMAAUAAAAiAAAAAAAMAAUAAAAiAAEAAAAMAAUAAAAiAAIAAAAMAAUAAAAiAAMAAAAMAAUAAAAiAAQAAAAKAAYAAAAiAAUAAAAKAAYAAAAiAAYAAAAMAAUAAAAiAAcAAAAMAAUAAAAjAAAAAAAMAAUAAAAjAAEAAAAMAAUAAAAjAAIAAAAMAAUAAAAjAAMAAAAMAAUAAAAjAAQAAAAMAAUAAAAjAAUAAAAMAAUAAAAjAAYAAAAMAAUAAAAjAAcAAAAMAAUAAAAkAAAAAAAKAAYAAAAkAAEAAAAMAAUAAAAkAAIAAAAMAAUAAAAkAAMAAAAMAAUAAAAkAAQAAAAMAAUAAAAkAAUAAAAMAAUAAAAkAAYAAAAMAAUAAAAkAAcAAAAKAAYAAAAlAAAAAAAMAAUAAAAlAAEAAAAMAAUAAAAlAAIAAAAMAAUAAAAlAAMAAAAMAAUAAAAlAAQAAAAMAAUAAAAlAAUAAAAMAAUAAAAlAAYAAAAMAAUAAAAlAAcAAAAMAAUAAAD6/wcAAAAMAAUAAAD7/wcAAAAMAAUAAAD8/wcAAAAMAAUAAAD9/wcAAAAMAAUAAAD5/wcAAAALAAUAAAD+/wcAAAANAAUAAAD5/wgAAAALAAYAAAD6/wgAAAAMAAYAAAD7/wgAAAAMAAYAAAD8/wgAAAAMAAYAAAD9/wgAAAAMAAYAAAD+/wgAAAANAAYAAAA=") -tile_set = SubResource("TileSet_14yng") - -[node name="UI" type="CanvasLayer" parent="."] - -[node name="UIInventory" parent="UI" instance=ExtResource("2_tafwr")] -unique_name_in_owner = true -visible = false - -[node name="UISign" parent="UI" instance=ExtResource("3_37c7w")] -unique_name_in_owner = true -visible = false - -[node name="Camera2D" type="Camera2D" parent="."] -physics_interpolation_mode = 1 -position = Vector2(186, -172.5) -zoom = Vector2(1.5, 1.5) -process_callback = 0 -position_smoothing_speed = 8.0 -editor_draw_limits = true - -[node name="PhantomCameraHost" type="Node" parent="Camera2D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("4_dxiro") - -[node name="Label" type="Label" parent="."] -offset_left = 167.0 -offset_top = -133.0 -offset_right = 332.0 -offset_bottom = -69.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("5_gaaip") -text = "[WASD] to move -[Space] to jump" - -[node name="PhantomCamera2D" type="Node2D" parent="." node_paths=PackedStringArray("follow_targets")] -top_level = true -position = Vector2(186, -172.5) -script = ExtResource("6_ojk83") -priority = 10 -follow_mode = 3 -follow_targets = [NodePath("../CharacterBody2D"), NodePath("../GroupNPCSprite")] -zoom = Vector2(1.5, 1.5) -tween_resource = SubResource("Resource_spy00") -tween_on_load = false -follow_damping = true -auto_zoom = true -auto_zoom_min = 0.5 -auto_zoom_max = 1.5 -auto_zoom_margin = Vector4(200, 0, 200, 0) -draw_limits = true - -[node name="GroupNPCSprite" type="Sprite2D" parent="."] -unique_name_in_owner = true -position = Vector2(107, -316) -texture = ExtResource("8_ys0m4") - -[node name="CharacterBody2D" parent="." instance=ExtResource("9_witv0")] -position = Vector2(265, -29) -script = ExtResource("10_aivri") diff --git a/addons/phantom_camera/examples/example_scenes/2D/2d_follow_path_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/2D/2d_follow_path_example_scene.tscn deleted file mode 100644 index 60342a2..0000000 --- a/addons/phantom_camera/examples/example_scenes/2D/2d_follow_path_example_scene.tscn +++ /dev/null @@ -1,269 +0,0 @@ -[gd_scene load_steps=13 format=4 uid="uid://b75giavcvh1mv"] - -[ext_resource type="Texture2D" uid="uid://c77npili4pel4" path="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png" id="1_t003o"] -[ext_resource type="PackedScene" uid="uid://dg7rhrymsrrrm" path="res://addons/phantom_camera/examples/ui/ui_inventory.tscn" id="2_4ncqd"] -[ext_resource type="PackedScene" uid="uid://iq5xd1ob1res" path="res://addons/phantom_camera/examples/ui/ui_sign.tscn" id="3_tpji3"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="4_w0rat"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="5_q77r4"] -[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="6_y6hoa"] -[ext_resource type="Resource" uid="uid://euybd2w0bax" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres" id="7_wd55r"] -[ext_resource type="PackedScene" uid="uid://7kh0xydx0b1o" path="res://addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn" id="8_fy81j"] -[ext_resource type="Script" uid="uid://cnnaky2ns2pn4" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd" id="9_u6ygl"] - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_nivvc"] -texture = ExtResource("1_t003o") -0:0/0 = 0 -1:0/0 = 0 -2:0/0 = 0 -3:0/0 = 0 -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -1:1/0 = 0 -2:1/0 = 0 -3:1/0 = 0 -4:1/0 = 0 -5:1/0 = 0 -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:3/0 = 0 -4:3/0 = 0 -5:3/0 = 0 -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -4:4/0 = 0 -5:4/0 = 0 -7:4/0 = 0 -3:5/0 = 0 -4:5/0 = 0 -7:5/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -7:6/0 = 0 -2:7/0 = 0 -3:7/0 = 0 -4:7/0 = 0 -5:7/0 = 0 -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:0/0 = 0 -9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:0/0 = 0 -10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:0/0 = 0 -11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:0/0 = 0 -12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:0/0 = 0 -13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:0/0 = 0 -14:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8) -14:0/0/custom_data_0 = &"Sign" -15:0/0 = 0 -16:0/0 = 0 -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:1/0 = 0 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:1/0 = 0 -10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:1/0 = 0 -11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:1/0 = 0 -12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:1/0 = 0 -13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:1/0 = 0 -15:1/0 = 0 -16:1/0 = 0 -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:2/0 = 0 -9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:2/0 = 0 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:2/0 = 0 -11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:2/0 = 0 -12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:2/0 = 0 -13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:2/0 = 0 -15:2/0 = 0 -16:2/0 = 0 -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:3/0 = 0 -9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:3/0 = 0 -10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:3/0 = 0 -12:3/0 = 0 -12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:3/0 = 0 -13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:3/0 = 0 -15:3/0 = 0 -16:3/0 = 0 -8:4/0 = 0 -9:4/0 = 0 -10:4/0 = 0 -11:4/0 = 0 -11:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-7, 2.5, -5, -2, -2.5, -5, 2, -7, 8, -8, 8, 8, -8, 8) -12:4/0 = 0 -12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:4/0 = 0 -13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -6, 4, -1.5, 6.5, 1.5, 8, 8, -8, 8) -14:4/0 = 0 -14:4/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8) -14:4/0/custom_data_0 = &"Inventory" -15:4/0 = 0 -16:4/0 = 0 -8:5/0 = 0 -9:5/0 = 0 -10:5/0 = 0 -11:5/0 = 0 -11:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:5/0 = 0 -12:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:5/0 = 0 -13:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:5/0 = 0 -15:5/0 = 0 -16:5/0 = 0 -8:6/0 = 0 -9:6/0 = 0 -10:6/0 = 0 -11:6/0 = 0 -11:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 1, 6.5, -3, 3, -6.5, -1.5) -12:6/0 = 0 -12:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:6/0 = 0 -13:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 6, -0.5, 3, 3.5, -1.5, 6.5, -8, 8) -14:6/0 = 0 -15:6/0 = 0 -16:6/0 = 0 - -[sub_resource type="TileSet" id="TileSet_eyojy"] -physics_layer_0/collision_layer = 1 -physics_layer_1/collision_layer = 2 -physics_layer_1/collision_mask = 2 -custom_data_layer_0/name = "Type" -custom_data_layer_0/type = 21 -sources/0 = SubResource("TileSetAtlasSource_nivvc") - -[sub_resource type="Curve2D" id="Curve2D_usrhf"] -_data = { -"points": PackedVector2Array(-96.4111, 42.3785, 0, 0, 222, 0, 0, 0, 0, 0, 1580.53, 0) -} -point_count = 2 - -[node name="Root" type="Node2D"] - -[node name="Background" type="CanvasLayer" parent="."] -layer = -3 - -[node name="ColorRect" type="ColorRect" parent="Background"] -auto_translate_mode = 2 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -311.0 -offset_top = -173.0 -offset_right = 981.0 -offset_bottom = 548.0 -grow_horizontal = 2 -grow_vertical = 2 -localize_numeral_system = false -color = Color(0.137255, 0.14902, 0.196078, 1) - -[node name="Pillar" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAAAAPr/AAAKAAIAAAAAAPv/AAAKAAMAAAAAAPz/AAAKAAMAAAAAAP3/AAAKAAMAAAAAAP7/AAAKAAMAAAAAAP//AAAKAAMAAAABAPr/AAALAAIAAAABAPv/AAALAAEAAAABAPz/AAALAAEAAAABAP3/AAALAAEAAAABAP7/AAALAAEAAAABAP//AAALAAEAAAACAPr/AAAMAAIAAAACAPv/AAAMAAMAAAACAPz/AAAMAAMAAAACAP3/AAAMAAMAAAACAP7/AAAMAAMAAAACAP//AAAMAAMAAAA=") -tile_set = SubResource("TileSet_eyojy") -collision_enabled = false -navigation_enabled = false - -[node name="Terrain" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAABAAAAAAALAAAAAAACAAAAAAALAAAAAAADAAAAAAALAAAAAAAEAAAAAAALAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAHAAAAAAALAAAAAAAIAAAAAAALAAAAAAAJAAAAAAAMAAAAAAAJAAEAAAAMAAEAAAAJAAIAAAAMAAEAAAAJAAMAAAAMAAEAAAAJAAQAAAAMAAEAAAAJAAUAAAAMAAEAAAAJAAYAAAAMAAEAAAABAAEAAAALAAEAAAABAAIAAAALAAEAAAABAAMAAAALAAEAAAABAAQAAAAHAAEAAAABAAUAAAALAAEAAAABAAYAAAALAAEAAAACAAEAAAALAAEAAAACAAIAAAALAAEAAAACAAMAAAALAAEAAAACAAQAAAALAAEAAAACAAUAAAALAAEAAAACAAYAAAALAAEAAAADAAEAAAALAAEAAAADAAIAAAALAAEAAAADAAMAAAALAAEAAAADAAQAAAALAAEAAAADAAUAAAALAAEAAAADAAYAAAALAAEAAAAEAAEAAAAHAAEAAAAEAAIAAAALAAEAAAAEAAMAAAALAAEAAAAEAAQAAAALAAEAAAAEAAUAAAALAAEAAAAEAAYAAAALAAEAAAAFAAEAAAALAAEAAAAFAAIAAAALAAEAAAAFAAMAAAALAAEAAAAFAAQAAAAHAAEAAAAFAAUAAAALAAEAAAAFAAYAAAALAAEAAAAGAAEAAAALAAEAAAAGAAIAAAALAAEAAAAGAAMAAAALAAEAAAAGAAQAAAALAAEAAAAGAAUAAAALAAEAAAAGAAYAAAALAAEAAAAHAAEAAAALAAEAAAAHAAIAAAALAAEAAAAHAAMAAAALAAEAAAAHAAQAAAALAAEAAAAHAAUAAAALAAEAAAAHAAYAAAAHAAEAAAAIAAEAAAALAAEAAAAIAAIAAAALAAEAAAAIAAMAAAAHAAEAAAAIAAQAAAALAAEAAAAIAAUAAAALAAEAAAAIAAYAAAALAAEAAAAKAAEAAAAIAAUAAAALAAEAAAAIAAUAAAAMAAEAAAAIAAUAAAANAAEAAAAIAAUAAAAKAAIAAAAIAAYAAAALAAIAAAAIAAYAAAAMAAIAAAAIAAYAAAANAAIAAAAIAAYAAAAKAAMAAAALAAEAAAAKAAQAAAALAAEAAAALAAMAAAALAAEAAAALAAQAAAALAAEAAAAMAAMAAAALAAEAAAAMAAQAAAALAAEAAAANAAMAAAALAAEAAAANAAQAAAALAAEAAAAOAAEAAAAIAAUAAAAPAAEAAAAIAAUAAAAQAAEAAAAIAAUAAAAOAAIAAAAIAAYAAAAPAAIAAAAIAAYAAAAQAAIAAAAIAAYAAAAOAAMAAAALAAEAAAAPAAMAAAALAAEAAAAPAAQAAAALAAEAAAAQAAQAAAALAAEAAAAQAAMAAAALAAEAAAAOAAQAAAALAAEAAAARAAAAAAALAAQAAAARAAEAAAALAAUAAAARAAIAAAALAAUAAAARAAMAAAALAAUAAAARAAQAAAALAAUAAAASAAAAAAAMAAQAAAATAAAAAAAMAAQAAAAUAAAAAAAMAAQAAAAVAAAAAAAMAAQAAAAWAAAAAAAMAAQAAAAXAAAAAAAMAAQAAAASAAEAAAAMAAUAAAASAAIAAAAMAAUAAAASAAMAAAAMAAUAAAASAAQAAAAMAAUAAAATAAEAAAAMAAUAAAATAAIAAAAJAAYAAAATAAMAAAAMAAUAAAATAAQAAAAMAAUAAAAUAAEAAAAMAAUAAAAUAAIAAAAMAAUAAAAUAAMAAAAMAAUAAAAUAAQAAAAMAAUAAAAVAAEAAAAMAAUAAAAVAAIAAAAMAAUAAAAVAAMAAAAMAAUAAAAVAAQAAAAMAAUAAAAWAAEAAAAMAAUAAAAWAAIAAAAMAAUAAAAWAAMAAAAMAAUAAAAWAAQAAAAKAAYAAAAXAAEAAAAMAAUAAAAXAAIAAAAMAAUAAAAXAAMAAAAMAAUAAAAXAAQAAAAMAAUAAAARAAUAAAALAAUAAAARAAYAAAALAAUAAAASAAUAAAAJAAYAAAASAAYAAAAMAAUAAAATAAUAAAAMAAUAAAATAAYAAAAMAAUAAAAUAAUAAAAMAAUAAAAUAAYAAAAMAAUAAAAVAAUAAAAMAAUAAAAVAAYAAAAMAAUAAAAWAAUAAAAMAAUAAAAWAAYAAAAMAAUAAAAXAAUAAAAMAAUAAAAXAAYAAAAMAAUAAAAKAP7/AAALAAQAAAALAP7/AAAMAAQAAAAMAP7/AAAMAAQAAAAKAP//AAALAAYAAAALAP//AAAMAAYAAAAMAP//AAAMAAYAAAAQAP7/AAANAAQAAAAQAP//AAANAAYAAAANAP7/AAAMAAQAAAAOAP7/AAAMAAQAAAAPAP7/AAAMAAQAAAANAP//AAAMAAYAAAAOAP//AAAMAAYAAAAPAP//AAAMAAYAAAAMAP3/AAAOAAAAAAADAP//AAAOAAIAAAAEAP//AAAPAAIAAAAFAP//AAAQAAIAAAAGAP//AAAOAAIAAAAHAP//AAAPAAIAAAAIAP//AAAQAAIAAAD//wAAAAAKAAAAAAD//wEAAAAKAAEAAAD//wIAAAAKAAEAAAD//wMAAAAKAAEAAAD//wQAAAAKAAEAAAD//wUAAAAKAAEAAAD//wYAAAAKAAEAAAD//wcAAAAKAAEAAAD//wgAAAAKAAEAAAAAAAAAAAALAAAAAAAAAAEAAAALAAEAAAAAAAIAAAALAAEAAAAAAAMAAAALAAEAAAAAAAQAAAALAAEAAAAAAAUAAAALAAEAAAAAAAYAAAALAAEAAAAAAAcAAAALAAEAAAAAAAgAAAALAAEAAAABAAgAAAALAAEAAAACAAgAAAALAAEAAAADAAgAAAALAAEAAAAEAAgAAAALAAEAAAAFAAgAAAALAAEAAAAGAAgAAAALAAEAAAAHAAgAAAALAAEAAAAIAAgAAAALAAEAAAAJAAgAAAAMAAEAAAAJAAcAAAAMAAEAAAAIAAcAAAALAAEAAAAHAAcAAAALAAEAAAAGAAcAAAAHAAEAAAAFAAcAAAALAAEAAAAEAAcAAAALAAEAAAADAAcAAAALAAEAAAACAAcAAAALAAEAAAABAAcAAAALAAEAAAD///v/AAANAAQAAAD///z/AAANAAUAAAD///3/AAANAAUAAAD///7/AAANAAUAAAD/////AAANAAYAAAD+//v/AAAMAAQAAAD9//v/AAAMAAQAAAD+//z/AAAJAAYAAAD9//z/AAAMAAUAAAD6////AAAMAAUAAAD7////AAAMAAUAAAD8////AAAMAAUAAAD9////AAAMAAUAAAD+////AAAMAAUAAAD+//7/AAAMAAUAAAD+//3/AAAMAAUAAAD9//3/AAAMAAUAAAD9//7/AAAKAAYAAAD+/wAAAAANAAUAAAD+/wEAAAANAAUAAAD+/wIAAAANAAUAAAD+/wMAAAANAAUAAAD+/wQAAAANAAUAAAD+/wUAAAANAAUAAAD+/wYAAAANAAUAAAD9/wAAAAAMAAUAAAD8/wAAAAAMAAUAAAD7/wAAAAAMAAUAAAD6/wAAAAAMAAUAAAD5/wAAAAALAAUAAAD6/wEAAAAMAAUAAAD6/wIAAAAMAAUAAAD6/wMAAAAMAAUAAAD7/wMAAAAMAAUAAAD7/wQAAAAMAAUAAAD8/wEAAAAMAAUAAAD9/wEAAAAMAAUAAAD9/wIAAAAMAAUAAAD9/wMAAAAMAAUAAAD9/wQAAAAMAAUAAAD9/wUAAAAMAAUAAAD9/wYAAAAMAAUAAAD8/wUAAAAMAAUAAAD7/wUAAAAMAAUAAAD8/wYAAAAMAAUAAAD8/wQAAAAKAAYAAAD8/wMAAAAMAAUAAAD8/wIAAAAMAAUAAAD7/wEAAAAMAAUAAAD7/wIAAAAJAAYAAAD7/wYAAAAMAAUAAAD6/wYAAAAMAAUAAAD6/wUAAAAMAAUAAAD6/wQAAAAMAAUAAAD5////AAALAAUAAAD5/wEAAAALAAUAAAD5/wIAAAALAAUAAAD5/wMAAAALAAUAAAD5/wQAAAALAAUAAAD5/wUAAAALAAUAAAD5/wYAAAALAAUAAAD8//r/AAALAAMAAAAOAP3/AAALAAMAAAALAP3/AAALAAMAAAASAP//AAALAAMAAAAUAP//AAALAAMAAAD6//r/AAAQAAUAAAD7//r/AAALAAMAAAANAP3/AAAOAAYAAAAWAP//AAAPAAYAAAD9//r/AAAPAAUAAAAXAP//AAAQAAUAAAD5//v/AAALAAQAAAD5//z/AAALAAUAAAD5//3/AAALAAUAAAD5//7/AAALAAUAAAD6//v/AAAMAAQAAAD6//z/AAAKAAYAAAD6//3/AAAMAAUAAAD6//7/AAAMAAUAAAD7//v/AAAMAAQAAAD7//z/AAAMAAUAAAD7//3/AAAMAAUAAAD7//7/AAAMAAUAAAD8//v/AAAMAAQAAAD8//z/AAAMAAUAAAD8//3/AAAMAAUAAAD8//7/AAAMAAUAAAARAAcAAAALAAUAAAARAAgAAAALAAYAAAAXAAcAAAAMAAUAAAAWAAcAAAAMAAUAAAAVAAcAAAAMAAUAAAAUAAcAAAAMAAUAAAATAAcAAAAMAAUAAAASAAcAAAAMAAUAAAASAAgAAAAMAAYAAAATAAgAAAAMAAYAAAAUAAgAAAAMAAYAAAAVAAgAAAAMAAYAAAAWAAgAAAAMAAYAAAAXAAgAAAAMAAYAAAAKAAUAAAALAAEAAAAKAAYAAAALAAEAAAAKAAcAAAALAAEAAAAKAAgAAAALAAEAAAALAAUAAAALAAEAAAALAAYAAAALAAEAAAALAAcAAAALAAEAAAALAAgAAAALAAEAAAAMAAUAAAALAAEAAAAMAAYAAAALAAEAAAAMAAcAAAALAAEAAAAMAAgAAAALAAEAAAANAAUAAAALAAEAAAANAAYAAAALAAEAAAANAAcAAAALAAEAAAANAAgAAAALAAEAAAAOAAUAAAALAAEAAAAOAAYAAAALAAEAAAAOAAcAAAALAAEAAAAOAAgAAAALAAEAAAAPAAUAAAALAAEAAAAPAAYAAAALAAEAAAAPAAcAAAALAAEAAAAPAAgAAAALAAEAAAAQAAUAAAALAAEAAAAQAAYAAAALAAEAAAAQAAcAAAALAAEAAAAQAAgAAAALAAEAAAAdAAAAAAANAAQAAAAdAAEAAAANAAUAAAAdAAIAAAANAAUAAAAdAAMAAAANAAUAAAAdAAQAAAANAAUAAAAdAAUAAAANAAUAAAAdAAYAAAANAAUAAAAdAAcAAAANAAUAAAAdAAgAAAANAAYAAAAZAP//AAAOAAQAAAAYAAAAAAAMAAQAAAAZAAAAAAAMAAQAAAAaAAAAAAAMAAQAAAAbAAAAAAAMAAQAAAAcAAAAAAAMAAQAAAAYAAEAAAAMAAUAAAAZAAEAAAAMAAUAAAAaAAEAAAAMAAUAAAAbAAEAAAAMAAUAAAAcAAEAAAAMAAUAAAAcAAIAAAAMAAUAAAAcAAMAAAAJAAYAAAAbAAIAAAAMAAUAAAAaAAIAAAAMAAUAAAAZAAIAAAAMAAUAAAAYAAIAAAAMAAUAAAAYAAMAAAAMAAUAAAAYAAQAAAAMAAUAAAAYAAUAAAAMAAUAAAAYAAYAAAAMAAUAAAAYAAcAAAAMAAUAAAAYAAgAAAAMAAYAAAAZAAMAAAAMAAUAAAAZAAQAAAAMAAUAAAAZAAUAAAAMAAUAAAAZAAYAAAAMAAUAAAAZAAcAAAAMAAUAAAAZAAgAAAAMAAYAAAAaAAMAAAAMAAUAAAAaAAQAAAAMAAUAAAAaAAUAAAAMAAUAAAAaAAYAAAAKAAYAAAAaAAcAAAAMAAUAAAAaAAgAAAAMAAYAAAAbAAMAAAAMAAUAAAAbAAQAAAAMAAUAAAAbAAUAAAAMAAUAAAAbAAYAAAAMAAUAAAAbAAcAAAAMAAUAAAAbAAgAAAAMAAYAAAAcAAQAAAAMAAUAAAAcAAUAAAAMAAUAAAAcAAYAAAAMAAUAAAAcAAcAAAAMAAUAAAAcAAgAAAAMAAYAAAAPAP3/AAAQAAYAAAAbAP//AAALAAMAAAAaAP//AAALAAMAAAATAP//AAALAAMAAAAVAP//AAALAAMAAAD6/wcAAAAMAAUAAAD7/wcAAAAMAAUAAAD8/wcAAAAMAAUAAAD9/wcAAAAMAAUAAAD5/wcAAAALAAUAAAD+/wcAAAANAAUAAAD5/wgAAAALAAYAAAD6/wgAAAAMAAYAAAD7/wgAAAAMAAYAAAD8/wgAAAAMAAYAAAD9/wgAAAAMAAYAAAD+/wgAAAANAAYAAAAeAP//AAALAAQAAAAeAAAAAAALAAUAAAAeAAEAAAALAAUAAAAeAAIAAAALAAUAAAAeAAMAAAALAAUAAAAeAAQAAAALAAUAAAAeAAUAAAALAAUAAAAeAAYAAAALAAUAAAAeAAcAAAALAAUAAAAeAAgAAAALAAUAAAAeAAkAAAALAAUAAAAeAAoAAAALAAUAAAAeAAsAAAALAAUAAAAeAAwAAAALAAYAAAAfAP//AAAMAAQAAAAfAAAAAAAMAAUAAAAfAAEAAAAKAAYAAAAfAAIAAAAMAAUAAAAfAAMAAAAMAAUAAAAfAAQAAAAMAAUAAAAfAAUAAAAMAAUAAAAfAAYAAAAMAAUAAAAfAAcAAAAMAAUAAAAfAAgAAAAMAAUAAAAfAAkAAAAMAAUAAAAfAAoAAAAKAAYAAAAfAAsAAAAMAAUAAAAfAAwAAAAMAAYAAAAgAP//AAAMAAQAAAAgAAAAAAAMAAUAAAAgAAEAAAAMAAUAAAAgAAIAAAAJAAYAAAAgAAMAAAAMAAUAAAAgAAQAAAAMAAUAAAAgAAUAAAAMAAUAAAAgAAYAAAAMAAUAAAAgAAcAAAAMAAUAAAAgAAgAAAAMAAUAAAAgAAkAAAAMAAUAAAAgAAoAAAAMAAUAAAAgAAsAAAAMAAUAAAAgAAwAAAAMAAYAAAAhAP//AAAMAAQAAAAhAAAAAAAMAAUAAAAhAAEAAAAMAAUAAAAhAAIAAAAMAAUAAAAhAAMAAAAMAAUAAAAhAAQAAAAMAAUAAAAhAAUAAAAMAAUAAAAhAAYAAAAKAAYAAAAhAAcAAAAMAAUAAAAhAAgAAAAMAAUAAAAhAAkAAAAMAAUAAAAhAAoAAAAMAAUAAAAhAAsAAAAMAAUAAAAhAAwAAAAMAAYAAAAiAP//AAAMAAQAAAAiAAAAAAAMAAUAAAAiAAEAAAAMAAUAAAAiAAIAAAAMAAUAAAAiAAMAAAAMAAUAAAAiAAQAAAAMAAUAAAAiAAUAAAAMAAUAAAAiAAYAAAAMAAUAAAAiAAcAAAAMAAUAAAAiAAgAAAAKAAYAAAAiAAkAAAAKAAYAAAAiAAoAAAAMAAUAAAAiAAsAAAAMAAUAAAAiAAwAAAAMAAYAAAAjAP//AAAMAAQAAAAjAAAAAAAMAAUAAAAjAAEAAAAMAAUAAAAjAAIAAAAMAAUAAAAjAAMAAAAMAAUAAAAjAAQAAAAMAAUAAAAjAAUAAAAMAAUAAAAjAAYAAAAMAAUAAAAjAAcAAAAMAAUAAAAjAAgAAAAMAAUAAAAjAAkAAAAMAAUAAAAjAAoAAAAMAAUAAAAjAAsAAAAMAAUAAAAjAAwAAAAMAAYAAAAkAP//AAAMAAQAAAAkAAAAAAAMAAUAAAAkAAEAAAAMAAUAAAAkAAIAAAAJAAYAAAAkAAMAAAAKAAYAAAAkAAQAAAAKAAYAAAAkAAUAAAAMAAUAAAAkAAYAAAAMAAUAAAAkAAcAAAAMAAUAAAAkAAgAAAAMAAUAAAAkAAkAAAAMAAUAAAAkAAoAAAAMAAUAAAAkAAsAAAAKAAYAAAAkAAwAAAAMAAYAAAAlAP//AAAMAAQAAAAlAAAAAAAMAAUAAAAlAAEAAAAMAAUAAAAlAAIAAAAMAAUAAAAlAAMAAAAMAAUAAAAlAAQAAAAMAAUAAAAlAAUAAAAMAAUAAAAlAAYAAAAMAAUAAAAlAAcAAAAMAAUAAAAlAAgAAAAMAAUAAAAlAAkAAAAMAAUAAAAlAAoAAAAMAAUAAAAlAAsAAAAMAAUAAAAlAAwAAAAMAAYAAAAmAP//AAANAAQAAAAmAAAAAAANAAUAAAAmAAEAAAANAAUAAAAmAAIAAAANAAUAAAAmAAMAAAANAAUAAAAmAAQAAAANAAUAAAAmAAUAAAANAAUAAAAmAAYAAAANAAUAAAAmAAcAAAANAAUAAAAmAAgAAAANAAUAAAAmAAkAAAANAAUAAAAmAAoAAAANAAUAAAAmAAsAAAANAAUAAAAmAAwAAAANAAYAAAAnAP7/AAALAAQAAAAnAP//AAALAAUAAAAnAAAAAAALAAUAAAAnAAEAAAALAAUAAAAnAAIAAAALAAUAAAAnAAMAAAALAAUAAAAnAAQAAAALAAUAAAAnAAUAAAALAAUAAAAnAAYAAAALAAUAAAAnAAcAAAALAAUAAAAnAAgAAAALAAUAAAAnAAkAAAALAAUAAAAnAAoAAAALAAUAAAAnAAsAAAALAAYAAAAoAP7/AAAMAAQAAAAoAP//AAAMAAUAAAAoAAAAAAAKAAYAAAAoAAEAAAAMAAUAAAAoAAIAAAAMAAUAAAAoAAMAAAAMAAUAAAAoAAQAAAAMAAUAAAAoAAUAAAAMAAUAAAAoAAYAAAAMAAUAAAAoAAcAAAAMAAUAAAAoAAgAAAAMAAUAAAAoAAkAAAAKAAYAAAAoAAoAAAAMAAUAAAAoAAsAAAAMAAYAAAApAP7/AAAMAAQAAAApAP//AAAMAAUAAAApAAAAAAAMAAUAAAApAAEAAAAMAAUAAAApAAIAAAAMAAUAAAApAAMAAAAMAAUAAAApAAQAAAAMAAUAAAApAAUAAAAMAAUAAAApAAYAAAAMAAUAAAApAAcAAAAMAAUAAAApAAgAAAAMAAUAAAApAAkAAAAMAAUAAAApAAoAAAAMAAUAAAApAAsAAAAMAAYAAAAqAP7/AAAMAAQAAAAqAP//AAAMAAUAAAAqAAAAAAAMAAUAAAAqAAEAAAAJAAYAAAAqAAIAAAAKAAYAAAAqAAMAAAAKAAYAAAAqAAQAAAAMAAUAAAAqAAUAAAAMAAUAAAAqAAYAAAAMAAUAAAAqAAcAAAAMAAUAAAAqAAgAAAAMAAUAAAAqAAkAAAAMAAUAAAAqAAoAAAAKAAYAAAAqAAsAAAAMAAYAAAArAPb/AAALAAQAAAArAPf/AAALAAUAAAArAPj/AAALAAUAAAArAPn/AAALAAUAAAArAPr/AAALAAUAAAArAPv/AAALAAUAAAArAPz/AAALAAUAAAArAP3/AAALAAYAAAAsAPb/AAAMAAQAAAAsAPf/AAAMAAUAAAAsAPj/AAAKAAYAAAAsAPn/AAAMAAUAAAAsAPr/AAAMAAUAAAAsAPv/AAAMAAUAAAAsAPz/AAAMAAUAAAAsAP3/AAAMAAYAAAAtAPb/AAAMAAQAAAAtAPf/AAAMAAUAAAAtAPj/AAAMAAUAAAAtAPn/AAAJAAYAAAAtAPr/AAAMAAUAAAAtAPv/AAAMAAUAAAAtAPz/AAAMAAUAAAAtAP3/AAAMAAYAAAAuAPb/AAAMAAQAAAAuAPf/AAAMAAUAAAAuAPj/AAAMAAUAAAAuAPn/AAAMAAUAAAAuAPr/AAAMAAUAAAAuAPv/AAAMAAUAAAAuAPz/AAAMAAUAAAAuAP3/AAAMAAYAAAAvAPb/AAAMAAQAAAAvAPf/AAAMAAUAAAAvAPj/AAAMAAUAAAAvAPn/AAAMAAUAAAAvAPr/AAAMAAUAAAAvAPv/AAAMAAUAAAAvAPz/AAAMAAUAAAAvAP3/AAAMAAYAAAAwAPb/AAAMAAQAAAAwAPf/AAAMAAUAAAAwAPj/AAAMAAUAAAAwAPn/AAAMAAUAAAAwAPr/AAAMAAUAAAAwAPv/AAAMAAUAAAAwAPz/AAAMAAUAAAAwAP3/AAAMAAYAAAAxAPb/AAAMAAQAAAAxAPf/AAAMAAUAAAAxAPj/AAAMAAUAAAAxAPn/AAAMAAUAAAAxAPr/AAAMAAUAAAAxAPv/AAAMAAUAAAAxAPz/AAAMAAUAAAAxAP3/AAAMAAYAAAAyAPb/AAAMAAQAAAAyAPf/AAAMAAUAAAAyAPj/AAAMAAUAAAAyAPn/AAAMAAUAAAAyAPr/AAAMAAUAAAAyAPv/AAAMAAUAAAAyAPz/AAAMAAUAAAAyAP3/AAAMAAUAAAArAP7/AAANAAQAAAArAP//AAANAAUAAAArAAAAAAANAAUAAAArAAEAAAANAAUAAAArAAIAAAANAAUAAAArAAMAAAANAAUAAAArAAQAAAANAAUAAAArAAUAAAANAAUAAAArAAYAAAANAAUAAAArAAcAAAANAAUAAAArAAgAAAANAAUAAAArAAkAAAANAAUAAAArAAoAAAANAAUAAAArAAsAAAANAAYAAAA=") -tile_set = SubResource("TileSet_eyojy") - -[node name="UI" type="CanvasLayer" parent="."] - -[node name="UIInventory" parent="UI" instance=ExtResource("2_4ncqd")] -unique_name_in_owner = true -visible = false - -[node name="UISign" parent="UI" instance=ExtResource("3_tpji3")] -unique_name_in_owner = true -visible = false - -[node name="Camera2D" type="Camera2D" parent="."] -physics_interpolation_mode = 1 -position = Vector2(374, -190) -zoom = Vector2(1.5, 1.5) -process_callback = 0 -editor_draw_limits = true - -[node name="PhantomCameraHost" type="Node" parent="Camera2D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("4_w0rat") - -[node name="Label" type="Label" parent="."] -offset_left = 167.0 -offset_top = -133.0 -offset_right = 332.0 -offset_bottom = -69.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("5_q77r4") -text = "[WASD] to move -[Space] to jump" - -[node name="Player" type="Node" parent="."] - -[node name="Label" type="Label" parent="Player"] -visible = false -offset_left = 167.0 -offset_top = -145.0 -offset_right = 332.0 -offset_bottom = -81.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("5_q77r4") -text = "[WASD] to move -[Space] to jump" - -[node name="PlayerPhantomCamera2D" type="Node2D" parent="." node_paths=PackedStringArray("follow_target", "follow_path")] -unique_name_in_owner = true -top_level = true -position = Vector2(374, -190) -script = ExtResource("6_y6hoa") -priority = 10 -follow_mode = 4 -follow_target = NodePath("../CharacterBody2D") -follow_path = NodePath("../Path2D") -zoom = Vector2(1.5, 1.5) -tween_resource = ExtResource("7_wd55r") -tween_on_load = false -follow_damping = true -draw_limits = true - -[node name="Path2D" type="Path2D" parent="."] -position = Vector2(152, -190) -curve = SubResource("Curve2D_usrhf") - -[node name="CharacterBody2D" parent="." instance=ExtResource("8_fy81j")] -position = Vector2(225, -28) -script = ExtResource("9_u6ygl") diff --git a/addons/phantom_camera/examples/example_scenes/2D/2d_limit_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/2D/2d_limit_example_scene.tscn deleted file mode 100644 index 9709f1f..0000000 --- a/addons/phantom_camera/examples/example_scenes/2D/2d_limit_example_scene.tscn +++ /dev/null @@ -1,317 +0,0 @@ -[gd_scene load_steps=17 format=4 uid="uid://0ox7hgdpwpqp"] - -[ext_resource type="Script" uid="uid://dtcuvut1eklnd" path="res://addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd" id="1_bwr3f"] -[ext_resource type="Texture2D" uid="uid://c77npili4pel4" path="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png" id="2_f03of"] -[ext_resource type="PackedScene" uid="uid://dg7rhrymsrrrm" path="res://addons/phantom_camera/examples/ui/ui_inventory.tscn" id="3_cysy4"] -[ext_resource type="PackedScene" uid="uid://iq5xd1ob1res" path="res://addons/phantom_camera/examples/ui/ui_sign.tscn" id="4_qqut6"] -[ext_resource type="PackedScene" uid="uid://7kh0xydx0b1o" path="res://addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn" id="5_yv8tn"] -[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="6_2n5r1"] -[ext_resource type="Script" uid="uid://cnnaky2ns2pn4" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd" id="6_68ewj"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="7_ne05h"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="8_hulu3"] - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_easgx"] -texture = ExtResource("2_f03of") -0:0/0 = 0 -1:0/0 = 0 -2:0/0 = 0 -3:0/0 = 0 -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -1:1/0 = 0 -2:1/0 = 0 -3:1/0 = 0 -4:1/0 = 0 -5:1/0 = 0 -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:3/0 = 0 -4:3/0 = 0 -5:3/0 = 0 -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -4:4/0 = 0 -5:4/0 = 0 -7:4/0 = 0 -3:5/0 = 0 -4:5/0 = 0 -7:5/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -7:6/0 = 0 -2:7/0 = 0 -3:7/0 = 0 -4:7/0 = 0 -5:7/0 = 0 -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:0/0 = 0 -9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:0/0 = 0 -10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:0/0 = 0 -11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:0/0 = 0 -12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:0/0 = 0 -13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:0/0 = 0 -14:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8) -14:0/0/custom_data_0 = &"Sign" -15:0/0 = 0 -16:0/0 = 0 -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:1/0 = 0 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:1/0 = 0 -10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:1/0 = 0 -11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:1/0 = 0 -12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:1/0 = 0 -13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:1/0 = 0 -15:1/0 = 0 -16:1/0 = 0 -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:2/0 = 0 -9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:2/0 = 0 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:2/0 = 0 -11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:2/0 = 0 -12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:2/0 = 0 -13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:2/0 = 0 -15:2/0 = 0 -16:2/0 = 0 -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:3/0 = 0 -9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:3/0 = 0 -10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:3/0 = 0 -12:3/0 = 0 -12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:3/0 = 0 -13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:3/0 = 0 -15:3/0 = 0 -16:3/0 = 0 -8:4/0 = 0 -9:4/0 = 0 -10:4/0 = 0 -11:4/0 = 0 -11:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-7, 2.5, -5, -2, -2.5, -5, 2, -7, 8, -8, 8, 8, -8, 8) -12:4/0 = 0 -12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:4/0 = 0 -13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -6, 4, -1.5, 6.5, 1.5, 8, 8, -8, 8) -14:4/0 = 0 -14:4/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8) -14:4/0/custom_data_0 = &"Inventory" -15:4/0 = 0 -16:4/0 = 0 -8:5/0 = 0 -9:5/0 = 0 -10:5/0 = 0 -11:5/0 = 0 -11:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:5/0 = 0 -12:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:5/0 = 0 -13:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:5/0 = 0 -15:5/0 = 0 -16:5/0 = 0 -8:6/0 = 0 -9:6/0 = 0 -10:6/0 = 0 -11:6/0 = 0 -11:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 1, 6.5, -3, 3, -6.5, -1.5) -12:6/0 = 0 -12:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:6/0 = 0 -13:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 6, -0.5, 3, 3.5, -1.5, 6.5, -8, 8) -14:6/0 = 0 -15:6/0 = 0 -16:6/0 = 0 - -[sub_resource type="TileSet" id="TileSet_kf7eg"] -physics_layer_0/collision_layer = 1 -physics_layer_1/collision_layer = 2 -physics_layer_1/collision_mask = 2 -custom_data_layer_0/name = "Type" -custom_data_layer_0/type = 21 -sources/0 = SubResource("TileSetAtlasSource_easgx") - -[sub_resource type="Resource" id="Resource_ct1eh"] -script = ExtResource("7_ne05h") -duration = 0.9 -transition = 2 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_xmxri"] -size = Vector2(790, 410) - -[sub_resource type="Resource" id="Resource_exr3j"] -script = ExtResource("7_ne05h") -duration = 0.9 -transition = 2 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_wtfjw"] -size = Vector2(1530, 700) - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_daeuh"] -size = Vector2(1027.5, 610.5) - -[node name="ExampleScene2D" type="Node2D"] -script = ExtResource("1_bwr3f") - -[node name="Background" type="CanvasLayer" parent="."] -layer = -3 - -[node name="ColorRect" type="ColorRect" parent="Background"] -auto_translate_mode = 2 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -311.0 -offset_top = -173.0 -offset_right = 981.0 -offset_bottom = 548.0 -grow_horizontal = 2 -grow_vertical = 2 -localize_numeral_system = false -color = Color(0.137255, 0.14902, 0.196078, 1) -metadata/_edit_lock_ = true - -[node name="StartingTerrain" type="TileMapLayer" parent="."] -z_index = 1 -use_parent_material = true -position = Vector2(-97, 0) -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAD9/wAAAAALAAAAAAD+/wAAAAALAAAAAAD//wAAAAALAAAAAAAAAAAAAAALAAAAAAABAAAAAAALAAAAAAACAAAAAAALAAAAAAADAAAAAAALAAAAAAAEAAAAAAALAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAHAAAAAAALAAAAAAAIAAAAAAALAAAAAAAJAAAAAAAMAAAAAAD8/wAAAAALAAAAAAD7/wAAAAAKAAAAAAD7/wEAAAAKAAEAAAD7/wIAAAAKAAEAAAD7/wMAAAAKAAEAAAD7/wQAAAAKAAEAAAD7/wUAAAAKAAEAAAD8/wEAAAALAAEAAAD8/wIAAAALAAEAAAD8/wMAAAALAAEAAAD8/wQAAAALAAEAAAD8/wUAAAALAAEAAAD9/wEAAAALAAEAAAD9/wIAAAALAAEAAAD9/wMAAAALAAEAAAD9/wQAAAALAAEAAAD9/wUAAAALAAEAAAD+/wEAAAALAAEAAAD+/wIAAAALAAEAAAD+/wMAAAALAAEAAAD+/wQAAAALAAEAAAD+/wUAAAALAAEAAAD//wEAAAALAAEAAAD//wIAAAALAAEAAAD//wMAAAALAAEAAAD//wQAAAALAAEAAAD//wUAAAALAAEAAAAAAAEAAAALAAEAAAAAAAIAAAALAAEAAAAAAAMAAAALAAEAAAAAAAQAAAALAAEAAAAAAAUAAAALAAEAAAABAAEAAAALAAEAAAABAAIAAAALAAEAAAABAAMAAAALAAEAAAABAAQAAAALAAEAAAABAAUAAAALAAEAAAACAAEAAAALAAEAAAACAAIAAAALAAEAAAACAAMAAAALAAEAAAACAAQAAAALAAEAAAACAAUAAAALAAEAAAADAAEAAAALAAEAAAADAAIAAAALAAEAAAADAAMAAAALAAEAAAADAAQAAAALAAEAAAADAAUAAAALAAEAAAAEAAEAAAALAAEAAAAEAAIAAAALAAEAAAAEAAMAAAALAAEAAAAEAAQAAAALAAEAAAAEAAUAAAALAAEAAAAFAAEAAAALAAEAAAAFAAIAAAALAAEAAAAFAAMAAAALAAEAAAAFAAQAAAALAAEAAAAFAAUAAAALAAEAAAAGAAEAAAALAAEAAAAGAAIAAAALAAEAAAAGAAMAAAALAAEAAAAGAAQAAAALAAEAAAAGAAUAAAALAAEAAAAHAAEAAAALAAEAAAAHAAIAAAALAAEAAAAHAAMAAAALAAEAAAAHAAQAAAALAAEAAAAHAAUAAAALAAEAAAAIAAEAAAALAAEAAAAIAAIAAAALAAEAAAAIAAMAAAALAAEAAAAIAAQAAAALAAEAAAAIAAUAAAALAAEAAAAJAAEAAAAMAAEAAAAJAAIAAAAMAAEAAAAJAAMAAAAMAAEAAAAJAAQAAAAMAAEAAAAJAAUAAAAMAAEAAAD7//n/AAALAAYAAAD7//j/AAALAAUAAAD7//f/AAALAAUAAAD7//b/AAALAAUAAAD7//X/AAALAAQAAAD8//n/AAAMAAYAAAD9//n/AAAMAAYAAAD+//n/AAAMAAYAAAD///n/AAAMAAYAAAAAAPn/AAAMAAYAAAABAPn/AAAMAAYAAAACAPn/AAAMAAYAAAADAPn/AAAMAAYAAAAEAPn/AAAMAAYAAAAFAPn/AAAMAAYAAAAGAPn/AAAMAAYAAAAHAPn/AAAMAAYAAAAIAPn/AAAMAAYAAAD8//X/AAAMAAQAAAD9//X/AAAMAAQAAAD+//X/AAAMAAQAAAD///X/AAAMAAQAAAAAAPX/AAAMAAQAAAABAPX/AAAMAAQAAAACAPX/AAAMAAQAAAADAPX/AAAMAAQAAAAEAPX/AAAMAAQAAAAFAPX/AAAMAAQAAAAGAPX/AAAMAAQAAAAHAPX/AAAMAAQAAAAIAPX/AAAMAAQAAAAJAPX/AAANAAQAAAAJAPb/AAANAAUAAAAJAPf/AAANAAUAAAAJAPj/AAANAAUAAAAJAPn/AAANAAYAAAD8//b/AAAMAAUAAAD8//f/AAAMAAUAAAD8//j/AAAMAAUAAAD9//b/AAAMAAUAAAD9//f/AAAMAAUAAAD9//j/AAAMAAUAAAD+//b/AAAMAAUAAAD+//f/AAAMAAUAAAD+//j/AAAMAAUAAAD///b/AAAMAAUAAAD///f/AAAMAAUAAAD///j/AAAMAAUAAAAAAPb/AAAMAAUAAAAAAPf/AAAMAAUAAAAAAPj/AAAMAAUAAAABAPb/AAAMAAUAAAABAPf/AAAMAAUAAAABAPj/AAAMAAUAAAACAPb/AAAMAAUAAAACAPf/AAAMAAUAAAACAPj/AAAMAAUAAAADAPb/AAAMAAUAAAADAPf/AAAMAAUAAAADAPj/AAAMAAUAAAAEAPb/AAAMAAUAAAAEAPf/AAAMAAUAAAAEAPj/AAAMAAUAAAAFAPb/AAAMAAUAAAAFAPf/AAAMAAUAAAAFAPj/AAAMAAUAAAAGAPb/AAAMAAUAAAAGAPf/AAAMAAUAAAAGAPj/AAAMAAUAAAAHAPb/AAAMAAUAAAAHAPf/AAAMAAUAAAAHAPj/AAAMAAUAAAAIAPb/AAAMAAUAAAAIAPf/AAAMAAUAAAAIAPj/AAAMAAUAAAA=") -tile_set = SubResource("TileSet_kf7eg") - -[node name="OtherTerrain" type="TileMapLayer" parent="."] -z_index = 1 -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAAIAAAAAAAMAAQAAAAJAAAAAAAMAAQAAAAKAAAAAAAMAAQAAAALAAAAAAAMAAQAAAAMAAAAAAAMAAQAAAANAAAAAAAMAAQAAAAOAAAAAAAMAAQAAAD4/wAAAAANAAUAAAD3/wAAAAAMAAUAAAD2/wAAAAAMAAUAAAD1/wAAAAAMAAUAAAD0/wAAAAAMAAUAAADz/wAAAAAMAAUAAAAIAAEAAAAMAAUAAAAIAAIAAAAMAAUAAAAIAAMAAAAMAAUAAAAIAAQAAAAMAAUAAAAJAAEAAAAMAAUAAAAJAAIAAAAMAAUAAAAJAAMAAAAMAAUAAAAJAAQAAAAMAAUAAAAKAAEAAAAMAAUAAAAKAAIAAAAMAAUAAAAKAAMAAAAMAAUAAAAKAAQAAAAMAAUAAAALAAEAAAAMAAUAAAALAAIAAAAMAAUAAAALAAMAAAAMAAUAAAALAAQAAAAMAAUAAAAMAAEAAAAMAAUAAAAMAAIAAAAMAAUAAAAMAAMAAAAMAAUAAAAMAAQAAAAMAAUAAAANAAEAAAAMAAUAAAANAAIAAAAMAAUAAAANAAMAAAAMAAUAAAANAAQAAAAMAAUAAAAOAAEAAAAMAAUAAAAOAAIAAAAMAAUAAAAOAAMAAAAMAAUAAAAOAAQAAAAMAAUAAAAOAAUAAAAMAAUAAAANAAUAAAAMAAUAAAAMAAUAAAAMAAUAAAALAAUAAAAMAAUAAAAKAAUAAAAMAAUAAAAJAAUAAAAMAAUAAAAIAAUAAAAMAAUAAADv//3/AAALAAUAAADv//7/AAALAAUAAADv////AAALAAUAAADv/wAAAAALAAYAAADw//3/AAAMAAUAAADw//7/AAAMAAUAAADw////AAAMAAUAAADw/wAAAAAMAAUAAADx//3/AAAMAAUAAADx//7/AAAMAAUAAADx////AAAMAAUAAADx/wAAAAAMAAUAAADy//3/AAAMAAUAAADy//7/AAAMAAUAAADy////AAAMAAUAAADy/wAAAAAMAAUAAADz//3/AAAMAAUAAADz//7/AAAMAAUAAADz////AAAMAAUAAAD0//3/AAAMAAUAAAD0//7/AAAMAAUAAAD0////AAAMAAUAAAD1//3/AAAMAAUAAAD1//7/AAAMAAUAAAD1////AAAMAAUAAAD2//3/AAAMAAUAAAD2//7/AAAMAAUAAAD2////AAAMAAUAAAD3//3/AAAMAAUAAAD3//7/AAAMAAUAAAD3////AAAMAAUAAAD4//3/AAANAAUAAAD4//7/AAANAAUAAAD4////AAANAAUAAAD4/wEAAAANAAUAAAD4/wIAAAANAAUAAAD4/wMAAAANAAUAAAD4/wQAAAANAAUAAAD4/wUAAAANAAUAAADw/wEAAAAMAAUAAADw/wIAAAAMAAUAAADw/wMAAAAMAAUAAADw/wQAAAAMAAUAAADw/wUAAAAMAAUAAADx/wEAAAAMAAUAAADx/wIAAAAMAAUAAADx/wMAAAAMAAUAAADx/wQAAAAMAAUAAADx/wUAAAAMAAUAAADy/wEAAAAMAAUAAADy/wIAAAAMAAUAAADy/wMAAAAMAAUAAADy/wQAAAAMAAUAAADy/wUAAAAMAAUAAADz/wEAAAAMAAUAAADz/wIAAAAMAAUAAADz/wMAAAAMAAUAAADz/wQAAAAMAAUAAADz/wUAAAAMAAUAAAD0/wEAAAAMAAUAAAD0/wIAAAAMAAUAAAD0/wMAAAAMAAUAAAD0/wQAAAAMAAUAAAD0/wUAAAAMAAUAAAD1/wEAAAAMAAUAAAD1/wIAAAAMAAUAAAD1/wMAAAAMAAUAAAD1/wQAAAAMAAUAAAD1/wUAAAAMAAUAAAD2/wEAAAAMAAUAAAD2/wIAAAAMAAUAAAD2/wMAAAAMAAUAAAD2/wQAAAAMAAUAAAD2/wUAAAAMAAUAAAD3/wEAAAAMAAUAAAD3/wIAAAAMAAUAAAD3/wMAAAAMAAUAAAD3/wQAAAAMAAUAAAD3/wUAAAAMAAUAAAARAAAAAAAMAAQAAAARAAEAAAAMAAUAAAARAAIAAAAMAAUAAAARAAMAAAAMAAUAAAARAAQAAAAMAAUAAAARAAUAAAAMAAUAAAASAAAAAAAMAAQAAAASAAEAAAAMAAUAAAASAAIAAAAMAAUAAAASAAMAAAAMAAUAAAASAAQAAAAMAAUAAAASAAUAAAAMAAUAAAAPAAAAAAAMAAQAAAAPAAEAAAAMAAUAAAAPAAIAAAAMAAUAAAAPAAMAAAAMAAUAAAAPAAQAAAAMAAUAAAAPAAUAAAAMAAUAAAAQAAAAAAAMAAQAAAAQAAEAAAAMAAUAAAAQAAIAAAAMAAUAAAAQAAMAAAAMAAUAAAAQAAQAAAAMAAUAAAAQAAUAAAAMAAUAAAATAAAAAAAMAAQAAAATAAEAAAAMAAUAAAATAAIAAAAMAAUAAAATAAMAAAAMAAUAAAATAAQAAAAMAAUAAAATAAUAAAAMAAUAAADv//j/AAALAAUAAADv//n/AAALAAUAAADw//j/AAAMAAUAAADw//n/AAAMAAUAAADx//j/AAAMAAUAAADx//n/AAAMAAUAAADy//j/AAAMAAUAAADy//n/AAAMAAUAAADz//j/AAAMAAUAAADz//n/AAAMAAUAAAD0//j/AAAMAAUAAAD0//n/AAAMAAUAAAD1//j/AAAMAAUAAAD1//n/AAAMAAUAAAD2//j/AAAMAAUAAAD2//n/AAAMAAUAAAD3//j/AAAMAAUAAAD3//n/AAAMAAUAAAD4//j/AAANAAUAAAD4//n/AAANAAUAAADv//X/AAALAAQAAADv//b/AAALAAUAAADv//f/AAALAAUAAADw//X/AAAMAAQAAADw//b/AAAMAAUAAADw//f/AAAMAAUAAADx//X/AAAMAAQAAADx//b/AAAMAAUAAADx//f/AAAMAAUAAADy//X/AAAMAAQAAADy//b/AAAMAAUAAADy//f/AAAMAAUAAADz//X/AAAMAAQAAADz//b/AAAMAAUAAADz//f/AAAMAAUAAAD0//X/AAAMAAQAAAD0//b/AAAMAAUAAAD0//f/AAAMAAUAAAD1//X/AAAMAAQAAAD1//b/AAAMAAUAAAD1//f/AAAMAAUAAAD2//X/AAAMAAQAAAD2//b/AAAMAAUAAAD2//f/AAAMAAUAAAD3//X/AAAMAAQAAAD3//b/AAAMAAUAAAD3//f/AAAMAAUAAAD4//X/AAANAAQAAAD4//b/AAANAAUAAAD4//f/AAANAAUAAADv//r/AAALAAUAAADw//r/AAAMAAUAAADx//r/AAAMAAUAAADy//r/AAAMAAUAAADz//r/AAAMAAUAAAD0//r/AAAMAAUAAAD1//r/AAAMAAUAAAD2//r/AAAMAAUAAAD3//r/AAAMAAUAAAD4//r/AAANAAUAAADv//v/AAALAAUAAADw//v/AAAMAAUAAADx//v/AAAMAAUAAADy//v/AAAMAAUAAADz//v/AAAMAAUAAAD0//v/AAAMAAUAAAD1//v/AAAMAAUAAAD2//v/AAAMAAUAAAD3//v/AAAMAAUAAAD4//v/AAANAAUAAADv//z/AAALAAUAAADw//z/AAAMAAUAAADx//z/AAAMAAUAAADy//z/AAAMAAUAAADz//z/AAAMAAUAAAD0//z/AAAMAAUAAAD1//z/AAAMAAUAAAD2//z/AAAMAAUAAAD3//z/AAAMAAUAAAD4//z/AAANAAUAAAAUAAAAAAAMAAQAAAAUAAEAAAAMAAUAAAAUAAIAAAAMAAUAAAAUAAMAAAAMAAUAAAAUAAQAAAAMAAUAAAAUAAUAAAAMAAUAAAAVAAAAAAAMAAQAAAAVAAEAAAAMAAUAAAAVAAIAAAAMAAUAAAAVAAMAAAAMAAUAAAAVAAQAAAAMAAUAAAAVAAUAAAAMAAUAAAAWAAAAAAAMAAQAAAAWAAEAAAAMAAUAAAAWAAIAAAAMAAUAAAAWAAMAAAAMAAUAAAAWAAQAAAAMAAUAAAAWAAUAAAAMAAUAAAAXAAAAAAAMAAQAAAAXAAEAAAAMAAUAAAAXAAIAAAAMAAUAAAAXAAMAAAAMAAUAAAAXAAQAAAAMAAUAAAAXAAUAAAAMAAUAAAAYAAAAAAAMAAQAAAAYAAEAAAAMAAUAAAAYAAIAAAAMAAUAAAAYAAMAAAAMAAUAAAAYAAQAAAAMAAUAAAAYAAUAAAAMAAUAAAAZAAAAAAAMAAQAAAAZAAEAAAAMAAUAAAAZAAIAAAAMAAUAAAAZAAMAAAAMAAUAAAAZAAQAAAAMAAUAAAAZAAUAAAAMAAUAAAAaAAAAAAAMAAQAAAAaAAEAAAAMAAUAAAAaAAIAAAAMAAUAAAAaAAMAAAAMAAUAAAAaAAQAAAAMAAUAAAAaAAUAAAAMAAUAAAAbAAAAAAAMAAQAAAAbAAEAAAAMAAUAAAAbAAIAAAAMAAUAAAAbAAMAAAAMAAUAAAAbAAQAAAAMAAUAAAAbAAUAAAAMAAUAAAAmAAAAAAAMAAQAAAAmAAEAAAAMAAUAAAAmAAIAAAAMAAUAAAAmAAMAAAAMAAUAAAAmAAQAAAAMAAUAAAAmAAUAAAAMAAUAAAAnAAAAAAAMAAQAAAAnAAEAAAAMAAUAAAAnAAIAAAAMAAUAAAAnAAMAAAAMAAUAAAAnAAQAAAAMAAUAAAAnAAUAAAAMAAUAAAAoAAAAAAAMAAQAAAAoAAEAAAAMAAUAAAAoAAIAAAAMAAUAAAAoAAMAAAAMAAUAAAAoAAQAAAAMAAUAAAAoAAUAAAAMAAUAAAApAAAAAAAMAAQAAAApAAEAAAAMAAUAAAApAAIAAAAMAAUAAAApAAMAAAAMAAUAAAApAAQAAAAMAAUAAAApAAUAAAAMAAUAAAAqAAAAAAAMAAQAAAAqAAEAAAAMAAUAAAAqAAIAAAAMAAUAAAAqAAMAAAAMAAUAAAAqAAQAAAAMAAUAAAAqAAUAAAAMAAUAAAArAAAAAAAMAAQAAAArAAEAAAAMAAUAAAArAAIAAAAMAAUAAAArAAMAAAAMAAUAAAArAAQAAAAMAAUAAAArAAUAAAAMAAUAAAAsAAAAAAAMAAQAAAAsAAEAAAAMAAUAAAAsAAIAAAAMAAUAAAAsAAMAAAAMAAUAAAAsAAQAAAAMAAUAAAAsAAUAAAAMAAUAAAAtAAAAAAAMAAQAAAAtAAEAAAAMAAUAAAAtAAIAAAAMAAUAAAAtAAMAAAAMAAUAAAAtAAQAAAAMAAUAAAAtAAUAAAAMAAUAAAAuAAAAAAAMAAQAAAAuAAEAAAAMAAUAAAAuAAIAAAAMAAUAAAAuAAMAAAAMAAUAAAAuAAQAAAAMAAUAAAAuAAUAAAAMAAUAAAAvAAAAAAAMAAQAAAAvAAEAAAAMAAUAAAAvAAIAAAAMAAUAAAAvAAMAAAAMAAUAAAAvAAQAAAAMAAUAAAAvAAUAAAAMAAUAAAAwAAAAAAAMAAQAAAAwAAEAAAAMAAUAAAAwAAIAAAAMAAUAAAAwAAMAAAAMAAUAAAAwAAQAAAAMAAUAAAAwAAUAAAAMAAUAAAAxAAAAAAANAAQAAAAxAAEAAAANAAUAAAAxAAIAAAANAAUAAAAxAAMAAAANAAUAAAAxAAQAAAANAAUAAAAxAAUAAAANAAUAAAAyAPf/AAALAAQAAAAyAPj/AAALAAUAAAAyAPn/AAALAAUAAAAyAPr/AAALAAUAAAAyAPv/AAALAAUAAAAyAPz/AAALAAUAAAAyAP3/AAALAAUAAAAyAP7/AAALAAUAAAAyAP//AAALAAUAAAAyAAAAAAALAAUAAAAyAAEAAAALAAUAAAAyAAIAAAALAAUAAAAyAAMAAAALAAUAAAAyAAQAAAALAAUAAAAyAAUAAAALAAUAAAAzAPf/AAAMAAQAAAAzAPj/AAAMAAUAAAAzAPn/AAAMAAUAAAAzAPr/AAAMAAUAAAAzAPv/AAAMAAUAAAAzAPz/AAAMAAUAAAAzAP3/AAAMAAUAAAAzAP7/AAAMAAUAAAAzAP//AAAMAAUAAAAzAAAAAAAMAAUAAAAzAAEAAAAMAAUAAAAzAAIAAAAMAAUAAAAzAAMAAAAMAAUAAAAzAAQAAAAMAAUAAAAzAAUAAAAMAAUAAAA0APf/AAAMAAQAAAA0APj/AAAMAAUAAAA0APn/AAAMAAUAAAA0APr/AAAMAAUAAAA0APv/AAAMAAUAAAA0APz/AAAMAAUAAAA0AP3/AAAMAAUAAAA0AP7/AAAMAAUAAAA0AP//AAAMAAUAAAA0AAAAAAAMAAUAAAA0AAEAAAAMAAUAAAA0AAIAAAAMAAUAAAA0AAMAAAAMAAUAAAA0AAQAAAAMAAUAAAA0AAUAAAAMAAUAAAA1APf/AAAMAAQAAAA1APj/AAAMAAUAAAA1APn/AAAMAAUAAAA1APr/AAAMAAUAAAA1APv/AAAMAAUAAAA1APz/AAAMAAUAAAA1AP3/AAAMAAUAAAA1AP7/AAAMAAUAAAA1AP//AAAMAAUAAAA1AAAAAAAMAAUAAAA1AAEAAAAMAAUAAAA1AAIAAAAMAAUAAAA1AAMAAAAMAAUAAAA1AAQAAAAMAAUAAAA1AAUAAAAMAAUAAAA2APf/AAAMAAQAAAA2APj/AAAMAAUAAAA2APn/AAAMAAUAAAA2APr/AAAMAAUAAAA2APv/AAAMAAUAAAA2APz/AAAMAAUAAAA2AP3/AAAMAAUAAAA2AP7/AAAMAAUAAAA2AP//AAAMAAUAAAA2AAAAAAAMAAUAAAA2AAEAAAAMAAUAAAA2AAIAAAAMAAUAAAA2AAMAAAAMAAUAAAA2AAQAAAAMAAUAAAA2AAUAAAAMAAUAAAA3APf/AAAMAAQAAAA3APj/AAAMAAUAAAA3APn/AAAMAAUAAAA3APr/AAAMAAUAAAA3APv/AAAMAAUAAAA3APz/AAAMAAUAAAA3AP3/AAAMAAUAAAA3AP7/AAAMAAUAAAA3AP//AAAMAAUAAAA3AAAAAAAMAAUAAAA3AAEAAAAMAAUAAAA3AAIAAAAMAAUAAAA3AAMAAAAMAAUAAAA3AAQAAAAMAAUAAAA3AAUAAAAMAAUAAAA4APf/AAAMAAQAAAA4APj/AAAMAAUAAAA4APn/AAAMAAUAAAA4APr/AAAMAAUAAAA4APv/AAAMAAUAAAA4APz/AAAMAAUAAAA4AP3/AAAMAAUAAAA4AP7/AAAMAAUAAAA4AP//AAAMAAUAAAA4AAAAAAAMAAUAAAA4AAEAAAAMAAUAAAA4AAIAAAAMAAUAAAA4AAMAAAAMAAUAAAA4AAQAAAAMAAUAAAA4AAUAAAAMAAUAAAA5APf/AAAMAAQAAAA5APj/AAAMAAUAAAA5APn/AAAMAAUAAAA5APr/AAAMAAUAAAA5APv/AAAMAAUAAAA5APz/AAAMAAUAAAA5AP3/AAAMAAUAAAA5AP7/AAAMAAUAAAA5AP//AAAMAAUAAAA5AAAAAAAMAAUAAAA5AAEAAAAMAAUAAAA5AAIAAAAMAAUAAAA5AAMAAAAMAAUAAAA5AAQAAAAMAAUAAAA5AAUAAAAMAAUAAAA6APf/AAAMAAQAAAA6APj/AAAMAAUAAAA6APn/AAAMAAUAAAA6APr/AAAMAAUAAAA6APv/AAAMAAUAAAA6APz/AAAMAAUAAAA6AP3/AAAMAAUAAAA6AP7/AAAMAAUAAAA6AP//AAAMAAUAAAA6AAAAAAAMAAUAAAA6AAEAAAAMAAUAAAA6AAIAAAAMAAUAAAA6AAMAAAAMAAUAAAA6AAQAAAAMAAUAAAA6AAUAAAAMAAUAAAA7APf/AAANAAQAAAA7APj/AAANAAUAAAA7APn/AAANAAUAAAA7APr/AAANAAUAAAA7APv/AAANAAUAAAA7APz/AAANAAUAAAA7AP3/AAANAAUAAAA7AP7/AAANAAUAAAA7AP//AAANAAUAAAA7AAAAAAANAAUAAAA7AAEAAAANAAUAAAA7AAIAAAANAAUAAAA7AAMAAAANAAUAAAA7AAQAAAANAAUAAAA7AAUAAAANAAUAAAAcAAAAAAAMAAQAAAAcAAEAAAAMAAUAAAAcAAIAAAAMAAUAAAAcAAMAAAAMAAUAAAAcAAQAAAAMAAUAAAAcAAUAAAAMAAUAAAAdAAAAAAAMAAQAAAAdAAEAAAAMAAUAAAAdAAIAAAAMAAUAAAAdAAMAAAAMAAUAAAAdAAQAAAAMAAUAAAAdAAUAAAAMAAUAAAAeAAAAAAAMAAQAAAAeAAEAAAAMAAUAAAAeAAIAAAAMAAUAAAAeAAMAAAAMAAUAAAAeAAQAAAAMAAUAAAAeAAUAAAAMAAUAAAAfAAAAAAAMAAQAAAAfAAEAAAAMAAUAAAAfAAIAAAAMAAUAAAAfAAMAAAAMAAUAAAAfAAQAAAAMAAUAAAAfAAUAAAAMAAUAAAAgAAAAAAAMAAQAAAAgAAEAAAAMAAUAAAAgAAIAAAAMAAUAAAAgAAMAAAAMAAUAAAAgAAQAAAAMAAUAAAAgAAUAAAAMAAUAAAAhAAAAAAAMAAQAAAAhAAEAAAAMAAUAAAAhAAIAAAAMAAUAAAAhAAMAAAAMAAUAAAAhAAQAAAAMAAUAAAAhAAUAAAAMAAUAAAAiAAAAAAAMAAQAAAAiAAEAAAAMAAUAAAAiAAIAAAAMAAUAAAAiAAMAAAAMAAUAAAAiAAQAAAAMAAUAAAAiAAUAAAAMAAUAAAAjAAAAAAAMAAQAAAAjAAEAAAAMAAUAAAAjAAIAAAAMAAUAAAAjAAMAAAAMAAUAAAAjAAQAAAAMAAUAAAAjAAUAAAAMAAUAAAAkAAAAAAAMAAQAAAAkAAEAAAAMAAUAAAAkAAIAAAAMAAUAAAAkAAMAAAAMAAUAAAAkAAQAAAAMAAUAAAAkAAUAAAAMAAUAAAAlAAAAAAAMAAQAAAAlAAEAAAAMAAUAAAAlAAIAAAAMAAUAAAAlAAMAAAAMAAUAAAAlAAQAAAAMAAUAAAAlAAUAAAAMAAUAAAAmAP//AAAOAAMAAAAnAP//AAAPAAMAAAAoAP//AAAPAAMAAAApAP//AAAPAAMAAAAqAP//AAAPAAMAAAArAP//AAAPAAMAAAAsAP//AAAPAAMAAAAtAP//AAAPAAMAAAAuAP//AAAPAAMAAAAvAP//AAAPAAMAAAAwAP//AAAQAAMAAAAxAPf/AAAHAAQAAAAxAPj/AAAHAAUAAAAxAPn/AAAHAAUAAAAxAPr/AAAHAAUAAAAxAPv/AAAHAAUAAAAxAPz/AAAHAAUAAAAxAP3/AAAHAAUAAAAxAP7/AAAHAAUAAAAxAP//AAAHAAYAAAA=") -tile_set = SubResource("TileSet_kf7eg") - -[node name="UI" type="CanvasLayer" parent="."] - -[node name="UIInventory" parent="UI" instance=ExtResource("3_cysy4")] -unique_name_in_owner = true -visible = false - -[node name="UISign" parent="UI" instance=ExtResource("4_qqut6")] -unique_name_in_owner = true -visible = false - -[node name="CharacterBody2D" parent="." instance=ExtResource("5_yv8tn")] -unique_name_in_owner = true -z_index = 1 -position = Vector2(66, -28) -script = ExtResource("6_68ewj") - -[node name="RoomLeftPhantomCamera2D" type="Node2D" parent="." node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -top_level = true -position = Vector2(66, -91.205) -script = ExtResource("6_2n5r1") -priority = 5 -follow_mode = 2 -follow_target = NodePath("../CharacterBody2D") -zoom = Vector2(2, 2) -tween_resource = SubResource("Resource_ct1eh") -follow_offset = Vector2(0, -63.205) -follow_damping = true -draw_limits = true -limit_target = NodePath("../StartingTerrain") -limit_margin = Vector4i(-50, 0, -50, 0) - -[node name="RoomLeftArea2D" type="Area2D" parent="."] -unique_name_in_owner = true -position = Vector2(117, -174) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomLeftArea2D"] -position = Vector2(-79, 43) -shape = SubResource("RectangleShape2D_xmxri") -debug_color = Color(0, 0.6, 0.701961, 0.0313726) - -[node name="RoomCentrePhantomCamera2D" type="Node2D" parent="."] -unique_name_in_owner = true -top_level = true -position = Vector2(1218, -217) -script = ExtResource("6_2n5r1") -follow_mode = 2 -zoom = Vector2(1.5, 1.5) -tween_resource = SubResource("Resource_exr3j") -follow_damping = true -draw_limits = true -limit_target = NodePath("../RoomCentreArea2D/CollisionShape2D") - -[node name="RoomCentreArea2D" type="Area2D" parent="."] -unique_name_in_owner = true -position = Vector2(755, -179) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomCentreArea2D"] -position = Vector2(338, -28) -shape = SubResource("RectangleShape2D_wtfjw") -debug_color = Color(0, 0.6, 0.701961, 0) - -[node name="RoomRightArea2D" type="Area2D" parent="."] -unique_name_in_owner = true -position = Vector2(2065, -160) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="RoomRightArea2D"] -position = Vector2(255.75, -3.25) -shape = SubResource("RectangleShape2D_daeuh") -debug_color = Color(0, 0.6, 0.701961, 0) - -[node name="RoomRightPhantomCamera2D" type="Node2D" parent="."] -unique_name_in_owner = true -top_level = true -position = Vector2(2347, -156) -scale = Vector2(1.0024, 1) -script = ExtResource("6_2n5r1") -follow_mode = 2 -zoom = Vector2(2, 2) -tween_resource = SubResource("Resource_exr3j") -follow_damping = true -draw_limits = true - -[node name="Camera2D" type="Camera2D" parent="."] -physics_interpolation_mode = 1 -position = Vector2(66, -91.205) -zoom = Vector2(2, 2) -process_callback = 0 -limit_left = -387 -limit_top = -528 -limit_right = 433 -limit_bottom = 288 -position_smoothing_speed = 10.0 -editor_draw_limits = true - -[node name="PhantomCameraHost" type="Node" parent="Camera2D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("8_hulu3") diff --git a/addons/phantom_camera/examples/example_scenes/2D/2d_noise_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/2D/2d_noise_example_scene.tscn deleted file mode 100644 index 62dff92..0000000 --- a/addons/phantom_camera/examples/example_scenes/2D/2d_noise_example_scene.tscn +++ /dev/null @@ -1,278 +0,0 @@ -[gd_scene load_steps=16 format=4 uid="uid://chw6g32u86uve"] - -[ext_resource type="Texture2D" uid="uid://c77npili4pel4" path="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png" id="1_2m0x8"] -[ext_resource type="PackedScene" uid="uid://dg7rhrymsrrrm" path="res://addons/phantom_camera/examples/ui/ui_inventory.tscn" id="2_4bfy0"] -[ext_resource type="PackedScene" uid="uid://iq5xd1ob1res" path="res://addons/phantom_camera/examples/ui/ui_sign.tscn" id="3_vdqsb"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="4_w2gh7"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="5_d6fcf"] -[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="6_bdmii"] -[ext_resource type="Resource" uid="uid://euybd2w0bax" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres" id="7_dpnkg"] -[ext_resource type="PackedScene" uid="uid://7kh0xydx0b1o" path="res://addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn" id="8_u5o87"] -[ext_resource type="Script" uid="uid://cnnaky2ns2pn4" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd" id="9_suxld"] -[ext_resource type="Script" uid="uid://bhd4nuiu23e7l" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd" id="10_p43w0"] -[ext_resource type="Script" uid="uid://dimvdouy8g0sv" path="res://addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd" id="11_d6abr"] - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_lvmak"] -texture = ExtResource("1_2m0x8") -0:0/0 = 0 -1:0/0 = 0 -2:0/0 = 0 -3:0/0 = 0 -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -1:1/0 = 0 -2:1/0 = 0 -3:1/0 = 0 -4:1/0 = 0 -5:1/0 = 0 -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:3/0 = 0 -4:3/0 = 0 -5:3/0 = 0 -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -4:4/0 = 0 -5:4/0 = 0 -7:4/0 = 0 -3:5/0 = 0 -4:5/0 = 0 -7:5/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -7:6/0 = 0 -2:7/0 = 0 -3:7/0 = 0 -4:7/0 = 0 -5:7/0 = 0 -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:0/0 = 0 -9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:0/0 = 0 -10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:0/0 = 0 -11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:0/0 = 0 -12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:0/0 = 0 -13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:0/0 = 0 -14:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8) -14:0/0/custom_data_0 = &"Sign" -15:0/0 = 0 -16:0/0 = 0 -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:1/0 = 0 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:1/0 = 0 -10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:1/0 = 0 -11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:1/0 = 0 -12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:1/0 = 0 -13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:1/0 = 0 -15:1/0 = 0 -16:1/0 = 0 -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:2/0 = 0 -9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:2/0 = 0 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:2/0 = 0 -11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:2/0 = 0 -12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:2/0 = 0 -13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:2/0 = 0 -15:2/0 = 0 -16:2/0 = 0 -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:3/0 = 0 -9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:3/0 = 0 -10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:3/0 = 0 -12:3/0 = 0 -12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:3/0 = 0 -13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:3/0 = 0 -15:3/0 = 0 -16:3/0 = 0 -8:4/0 = 0 -9:4/0 = 0 -10:4/0 = 0 -11:4/0 = 0 -11:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-7, 2.5, -5, -2, -2.5, -5, 2, -7, 8, -8, 8, 8, -8, 8) -12:4/0 = 0 -12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:4/0 = 0 -13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -6, 4, -1.5, 6.5, 1.5, 8, 8, -8, 8) -14:4/0 = 0 -14:4/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8) -14:4/0/custom_data_0 = &"Inventory" -15:4/0 = 0 -16:4/0 = 0 -8:5/0 = 0 -9:5/0 = 0 -10:5/0 = 0 -11:5/0 = 0 -11:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:5/0 = 0 -12:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:5/0 = 0 -13:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:5/0 = 0 -15:5/0 = 0 -16:5/0 = 0 -8:6/0 = 0 -9:6/0 = 0 -10:6/0 = 0 -11:6/0 = 0 -11:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 1, 6.5, -3, 3, -6.5, -1.5) -12:6/0 = 0 -12:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:6/0 = 0 -13:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 6, -0.5, 3, 3.5, -1.5, 6.5, -8, 8) -14:6/0 = 0 -15:6/0 = 0 -16:6/0 = 0 - -[sub_resource type="TileSet" id="TileSet_kf7eg"] -physics_layer_0/collision_layer = 1 -physics_layer_1/collision_layer = 2 -physics_layer_1/collision_mask = 2 -custom_data_layer_0/name = "Type" -custom_data_layer_0/type = 21 -sources/0 = SubResource("TileSetAtlasSource_lvmak") - -[sub_resource type="Resource" id="Resource_87ddr"] -script = ExtResource("11_d6abr") -amplitude = 30.0 -randomize_noise_seed = 1 - -[sub_resource type="Resource" id="Resource_rmnw1"] -script = ExtResource("11_d6abr") -amplitude = 40.0 -frequency = 30.0 -randomize_noise_seed = 1 -noise_seed = 96 -rotational_noise = true - -[node name="Root" type="Node2D"] - -[node name="Background" type="CanvasLayer" parent="."] -layer = -3 - -[node name="ColorRect" type="ColorRect" parent="Background"] -auto_translate_mode = 2 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -311.0 -offset_top = -173.0 -offset_right = 981.0 -offset_bottom = 548.0 -grow_horizontal = 2 -grow_vertical = 2 -localize_numeral_system = false -color = Color(0.137255, 0.14902, 0.196078, 1) - -[node name="Pillar" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAAAAPr/AAAKAAIAAAAAAPv/AAAKAAMAAAAAAPz/AAAKAAMAAAAAAP3/AAAKAAMAAAAAAP7/AAAKAAMAAAAAAP//AAAKAAMAAAABAPr/AAALAAIAAAABAPv/AAALAAEAAAABAPz/AAALAAEAAAABAP3/AAALAAEAAAABAP7/AAALAAEAAAABAP//AAALAAEAAAACAPr/AAAMAAIAAAACAPv/AAAMAAMAAAACAPz/AAAMAAMAAAACAP3/AAAMAAMAAAACAP7/AAAMAAMAAAACAP//AAAMAAMAAAA=") -tile_set = SubResource("TileSet_kf7eg") -collision_enabled = false -navigation_enabled = false - -[node name="Terrain" type="TileMapLayer" parent="."] -z_index = 1 -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAABAAAAAAALAAAAAAACAAAAAAALAAAAAAADAAAAAAALAAAAAAAEAAAAAAALAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAHAAAAAAALAAAAAAAIAAAAAAALAAAAAAAJAAAAAAAMAAAAAAAJAAEAAAAMAAEAAAAJAAIAAAAMAAEAAAAJAAMAAAAMAAEAAAAJAAQAAAAMAAEAAAAJAAUAAAAMAAEAAAAJAAYAAAAMAAEAAAABAAEAAAALAAEAAAABAAIAAAALAAEAAAABAAMAAAALAAEAAAABAAQAAAAHAAEAAAABAAUAAAALAAEAAAABAAYAAAALAAEAAAACAAEAAAALAAEAAAACAAIAAAALAAEAAAACAAMAAAALAAEAAAACAAQAAAALAAEAAAACAAUAAAALAAEAAAACAAYAAAALAAEAAAADAAEAAAALAAEAAAADAAIAAAALAAEAAAADAAMAAAALAAEAAAADAAQAAAALAAEAAAADAAUAAAALAAEAAAADAAYAAAALAAEAAAAEAAEAAAAHAAEAAAAEAAIAAAALAAEAAAAEAAMAAAALAAEAAAAEAAQAAAALAAEAAAAEAAUAAAALAAEAAAAEAAYAAAALAAEAAAAFAAEAAAALAAEAAAAFAAIAAAALAAEAAAAFAAMAAAALAAEAAAAFAAQAAAAHAAEAAAAFAAUAAAALAAEAAAAFAAYAAAALAAEAAAAGAAEAAAALAAEAAAAGAAIAAAALAAEAAAAGAAMAAAALAAEAAAAGAAQAAAALAAEAAAAGAAUAAAALAAEAAAAGAAYAAAALAAEAAAAHAAEAAAALAAEAAAAHAAIAAAALAAEAAAAHAAMAAAALAAEAAAAHAAQAAAALAAEAAAAHAAUAAAALAAEAAAAHAAYAAAAHAAEAAAAIAAEAAAALAAEAAAAIAAIAAAALAAEAAAAIAAMAAAAHAAEAAAAIAAQAAAALAAEAAAAIAAUAAAALAAEAAAAIAAYAAAALAAEAAAAKAAEAAAAIAAUAAAALAAEAAAAIAAUAAAAMAAEAAAAIAAUAAAANAAEAAAAIAAUAAAAKAAIAAAAIAAYAAAALAAIAAAAIAAYAAAAMAAIAAAAIAAYAAAANAAIAAAAIAAYAAAAKAAMAAAALAAEAAAAKAAQAAAALAAEAAAALAAMAAAALAAEAAAALAAQAAAALAAEAAAAMAAMAAAALAAEAAAAMAAQAAAALAAEAAAANAAMAAAALAAEAAAANAAQAAAALAAEAAAAOAAEAAAAIAAUAAAAPAAEAAAAIAAUAAAAQAAEAAAAIAAUAAAAOAAIAAAAIAAYAAAAPAAIAAAAIAAYAAAAQAAIAAAAIAAYAAAAOAAMAAAALAAEAAAAPAAMAAAALAAEAAAAPAAQAAAALAAEAAAAQAAQAAAALAAEAAAAQAAMAAAALAAEAAAAOAAQAAAALAAEAAAARAAAAAAALAAQAAAARAAEAAAALAAUAAAARAAIAAAALAAUAAAARAAMAAAALAAUAAAARAAQAAAALAAUAAAASAAAAAAAMAAQAAAATAAAAAAAMAAQAAAAUAAAAAAAMAAQAAAAVAAAAAAAMAAQAAAAWAAAAAAAMAAQAAAAXAAAAAAAMAAQAAAASAAEAAAAMAAUAAAASAAIAAAAMAAUAAAASAAMAAAAMAAUAAAASAAQAAAAMAAUAAAATAAEAAAAMAAUAAAATAAIAAAAJAAYAAAATAAMAAAAMAAUAAAATAAQAAAAMAAUAAAAUAAEAAAAMAAUAAAAUAAIAAAAMAAUAAAAUAAMAAAAMAAUAAAAUAAQAAAAMAAUAAAAVAAEAAAAMAAUAAAAVAAIAAAAMAAUAAAAVAAMAAAAMAAUAAAAVAAQAAAAMAAUAAAAWAAEAAAAMAAUAAAAWAAIAAAAMAAUAAAAWAAMAAAAMAAUAAAAWAAQAAAAKAAYAAAAXAAEAAAAMAAUAAAAXAAIAAAAMAAUAAAAXAAMAAAAMAAUAAAAXAAQAAAAMAAUAAAARAAUAAAALAAUAAAARAAYAAAALAAUAAAASAAUAAAAJAAYAAAASAAYAAAAMAAUAAAATAAUAAAAMAAUAAAATAAYAAAAMAAUAAAAUAAUAAAAMAAUAAAAUAAYAAAAMAAUAAAAVAAUAAAAMAAUAAAAVAAYAAAAMAAUAAAAWAAUAAAAMAAUAAAAWAAYAAAAMAAUAAAAXAAUAAAAMAAUAAAAXAAYAAAAMAAUAAAAKAP7/AAALAAQAAAALAP7/AAAMAAQAAAAMAP7/AAAMAAQAAAAKAP//AAALAAYAAAALAP//AAAMAAYAAAAMAP//AAAMAAYAAAAQAP7/AAANAAQAAAAQAP//AAANAAYAAAANAP7/AAAMAAQAAAAOAP7/AAAMAAQAAAAPAP7/AAAMAAQAAAANAP//AAAMAAYAAAAOAP//AAAMAAYAAAAPAP//AAAMAAYAAAAMAP3/AAAOAAAAAAADAP//AAAOAAIAAAAEAP//AAAPAAIAAAAFAP//AAAQAAIAAAAGAP//AAAOAAIAAAAHAP//AAAPAAIAAAAIAP//AAAQAAIAAAD//wAAAAAKAAAAAAD//wEAAAAKAAEAAAD//wIAAAAKAAEAAAD//wMAAAAKAAEAAAD//wQAAAAKAAEAAAD//wUAAAAKAAEAAAD//wYAAAAKAAEAAAD//wcAAAAKAAEAAAD//wgAAAAKAAEAAAAAAAAAAAALAAAAAAAAAAEAAAALAAEAAAAAAAIAAAALAAEAAAAAAAMAAAALAAEAAAAAAAQAAAALAAEAAAAAAAUAAAALAAEAAAAAAAYAAAALAAEAAAAAAAcAAAALAAEAAAAAAAgAAAALAAEAAAABAAgAAAALAAEAAAACAAgAAAALAAEAAAADAAgAAAALAAEAAAAEAAgAAAALAAEAAAAFAAgAAAALAAEAAAAGAAgAAAALAAEAAAAHAAgAAAALAAEAAAAIAAgAAAALAAEAAAAJAAgAAAAMAAEAAAAJAAcAAAAMAAEAAAAIAAcAAAALAAEAAAAHAAcAAAALAAEAAAAGAAcAAAAHAAEAAAAFAAcAAAALAAEAAAAEAAcAAAALAAEAAAADAAcAAAALAAEAAAACAAcAAAALAAEAAAABAAcAAAALAAEAAAD///v/AAANAAQAAAD///z/AAANAAUAAAD///3/AAANAAUAAAD///7/AAANAAUAAAD/////AAANAAYAAAD+//v/AAAMAAQAAAD9//v/AAAMAAQAAAD+//z/AAAJAAYAAAD9//z/AAAMAAUAAAD6////AAAMAAUAAAD7////AAAMAAUAAAD8////AAAMAAUAAAD9////AAAMAAUAAAD+////AAAMAAUAAAD+//7/AAAMAAUAAAD+//3/AAAMAAUAAAD9//3/AAAMAAUAAAD9//7/AAAKAAYAAAD+/wAAAAANAAUAAAD+/wEAAAANAAUAAAD+/wIAAAANAAUAAAD+/wMAAAANAAUAAAD+/wQAAAANAAUAAAD+/wUAAAANAAUAAAD+/wYAAAANAAUAAAD9/wAAAAAMAAUAAAD8/wAAAAAMAAUAAAD7/wAAAAAMAAUAAAD6/wAAAAAMAAUAAAD5/wAAAAALAAUAAAD6/wEAAAAMAAUAAAD6/wIAAAAMAAUAAAD6/wMAAAAMAAUAAAD7/wMAAAAMAAUAAAD7/wQAAAAMAAUAAAD8/wEAAAAMAAUAAAD9/wEAAAAMAAUAAAD9/wIAAAAMAAUAAAD9/wMAAAAMAAUAAAD9/wQAAAAMAAUAAAD9/wUAAAAMAAUAAAD9/wYAAAAMAAUAAAD8/wUAAAAMAAUAAAD7/wUAAAAMAAUAAAD8/wYAAAAMAAUAAAD8/wQAAAAKAAYAAAD8/wMAAAAMAAUAAAD8/wIAAAAMAAUAAAD7/wEAAAAMAAUAAAD7/wIAAAAJAAYAAAD7/wYAAAAMAAUAAAD6/wYAAAAMAAUAAAD6/wUAAAAMAAUAAAD6/wQAAAAMAAUAAAD5////AAALAAUAAAD5/wEAAAALAAUAAAD5/wIAAAALAAUAAAD5/wMAAAALAAUAAAD5/wQAAAALAAUAAAD5/wUAAAALAAUAAAD5/wYAAAALAAUAAAD8//r/AAALAAMAAAAOAP3/AAALAAMAAAALAP3/AAALAAMAAAASAP//AAALAAMAAAAUAP//AAALAAMAAAD6//r/AAAQAAUAAAD7//r/AAALAAMAAAANAP3/AAAOAAYAAAAWAP//AAAPAAYAAAD9//r/AAAPAAUAAAAXAP//AAAQAAUAAAD5//v/AAALAAQAAAD5//z/AAALAAUAAAD5//3/AAALAAUAAAD5//7/AAALAAUAAAD6//v/AAAMAAQAAAD6//z/AAAKAAYAAAD6//3/AAAMAAUAAAD6//7/AAAMAAUAAAD7//v/AAAMAAQAAAD7//z/AAAMAAUAAAD7//3/AAAMAAUAAAD7//7/AAAMAAUAAAD8//v/AAAMAAQAAAD8//z/AAAMAAUAAAD8//3/AAAMAAUAAAD8//7/AAAMAAUAAAARAAcAAAALAAUAAAARAAgAAAALAAYAAAAXAAcAAAAMAAUAAAAWAAcAAAAMAAUAAAAVAAcAAAAMAAUAAAAUAAcAAAAMAAUAAAATAAcAAAAMAAUAAAASAAcAAAAMAAUAAAASAAgAAAAMAAYAAAATAAgAAAAMAAYAAAAUAAgAAAAMAAYAAAAVAAgAAAAMAAYAAAAWAAgAAAAMAAYAAAAXAAgAAAAMAAYAAAAKAAUAAAALAAEAAAAKAAYAAAALAAEAAAAKAAcAAAALAAEAAAAKAAgAAAALAAEAAAALAAUAAAALAAEAAAALAAYAAAALAAEAAAALAAcAAAALAAEAAAALAAgAAAALAAEAAAAMAAUAAAALAAEAAAAMAAYAAAALAAEAAAAMAAcAAAALAAEAAAAMAAgAAAALAAEAAAANAAUAAAALAAEAAAANAAYAAAALAAEAAAANAAcAAAALAAEAAAANAAgAAAALAAEAAAAOAAUAAAALAAEAAAAOAAYAAAALAAEAAAAOAAcAAAALAAEAAAAOAAgAAAALAAEAAAAPAAUAAAALAAEAAAAPAAYAAAALAAEAAAAPAAcAAAALAAEAAAAPAAgAAAALAAEAAAAQAAUAAAALAAEAAAAQAAYAAAALAAEAAAAQAAcAAAALAAEAAAAQAAgAAAALAAEAAAAdAAAAAAANAAQAAAAdAAEAAAANAAUAAAAdAAIAAAANAAUAAAAdAAMAAAANAAUAAAAdAAQAAAANAAUAAAAdAAUAAAANAAUAAAAdAAYAAAANAAUAAAAdAAcAAAANAAUAAAAdAAgAAAANAAYAAAAZAP//AAAOAAQAAAAYAAAAAAAMAAQAAAAZAAAAAAAMAAQAAAAaAAAAAAAMAAQAAAAbAAAAAAAMAAQAAAAcAAAAAAAMAAQAAAAYAAEAAAAMAAUAAAAZAAEAAAAMAAUAAAAaAAEAAAAMAAUAAAAbAAEAAAAMAAUAAAAcAAEAAAAMAAUAAAAcAAIAAAAMAAUAAAAcAAMAAAAJAAYAAAAbAAIAAAAMAAUAAAAaAAIAAAAMAAUAAAAZAAIAAAAMAAUAAAAYAAIAAAAMAAUAAAAYAAMAAAAMAAUAAAAYAAQAAAAMAAUAAAAYAAUAAAAMAAUAAAAYAAYAAAAMAAUAAAAYAAcAAAAMAAUAAAAYAAgAAAAMAAYAAAAZAAMAAAAMAAUAAAAZAAQAAAAMAAUAAAAZAAUAAAAMAAUAAAAZAAYAAAAMAAUAAAAZAAcAAAAMAAUAAAAZAAgAAAAMAAYAAAAaAAMAAAAMAAUAAAAaAAQAAAAMAAUAAAAaAAUAAAAMAAUAAAAaAAYAAAAKAAYAAAAaAAcAAAAMAAUAAAAaAAgAAAAMAAYAAAAbAAMAAAAMAAUAAAAbAAQAAAAMAAUAAAAbAAUAAAAMAAUAAAAbAAYAAAAMAAUAAAAbAAcAAAAMAAUAAAAbAAgAAAAMAAYAAAAcAAQAAAAMAAUAAAAcAAUAAAAMAAUAAAAcAAYAAAAMAAUAAAAcAAcAAAAMAAUAAAAcAAgAAAAMAAYAAAAPAP3/AAAQAAYAAAAiAPr/AAAQAAYAAAAfAPr/AAAOAAYAAAAkAPr/AAAPAAYAAAAgAPr/AAAPAAUAAAAbAP//AAALAAMAAAAaAP//AAALAAMAAAAjAPr/AAALAAMAAAAhAPr/AAALAAMAAAATAP//AAALAAMAAAAVAP//AAALAAMAAAAeAPv/AAALAAQAAAAeAPz/AAALAAUAAAAeAP3/AAALAAUAAAAeAP7/AAALAAUAAAAeAP//AAALAAUAAAAmAP//AAANAAUAAAAmAP7/AAANAAUAAAAmAP3/AAANAAUAAAAmAPv/AAANAAQAAAAfAPv/AAAMAAQAAAAgAPv/AAAMAAQAAAAhAPv/AAAMAAQAAAAiAPv/AAAMAAQAAAAjAPv/AAAMAAQAAAAkAPv/AAAMAAQAAAAlAPv/AAAMAAQAAAAmAPz/AAANAAUAAAAlAP//AAAMAAUAAAAlAP7/AAAMAAUAAAAlAP3/AAAMAAUAAAAlAPz/AAAMAAUAAAAkAPz/AAAMAAUAAAAjAPz/AAAMAAUAAAAiAPz/AAAMAAUAAAAhAPz/AAAMAAUAAAAgAPz/AAAMAAUAAAAfAPz/AAAMAAUAAAAfAP3/AAAKAAYAAAAfAP7/AAAMAAUAAAAfAP//AAAMAAUAAAAkAP//AAAKAAYAAAAkAP7/AAAJAAYAAAAkAP3/AAAMAAUAAAAjAP3/AAAMAAUAAAAiAP3/AAAMAAUAAAAhAP3/AAAMAAUAAAAgAP3/AAAMAAUAAAAgAP7/AAAJAAYAAAAgAP//AAAMAAUAAAAjAP//AAAMAAUAAAAjAP7/AAAMAAUAAAAiAP7/AAAMAAUAAAAhAP7/AAAMAAUAAAAhAP//AAAMAAUAAAAiAP//AAAMAAUAAAAeAAgAAAALAAYAAAAeAAcAAAALAAUAAAAeAAYAAAALAAUAAAAeAAUAAAALAAUAAAAeAAQAAAALAAUAAAAeAAMAAAALAAUAAAAeAAIAAAALAAUAAAAeAAEAAAALAAUAAAAeAAAAAAALAAUAAAAfAAgAAAAMAAYAAAAgAAgAAAAMAAYAAAAhAAgAAAAMAAYAAAAiAAgAAAAMAAYAAAAjAAgAAAAMAAYAAAAkAAgAAAAMAAYAAAAlAAgAAAAMAAYAAAAmAAgAAAANAAYAAAAmAAAAAAANAAUAAAAmAAEAAAANAAUAAAAmAAIAAAANAAUAAAAmAAMAAAANAAUAAAAmAAQAAAANAAUAAAAmAAUAAAANAAUAAAAmAAYAAAANAAUAAAAmAAcAAAANAAUAAAAfAAAAAAAMAAUAAAAfAAEAAAAMAAUAAAAfAAIAAAAMAAUAAAAfAAMAAAAMAAUAAAAfAAQAAAAMAAUAAAAfAAUAAAAMAAUAAAAfAAYAAAAKAAYAAAAfAAcAAAAMAAUAAAAgAAAAAAAMAAUAAAAgAAEAAAAMAAUAAAAgAAIAAAAMAAUAAAAgAAMAAAAMAAUAAAAgAAQAAAAMAAUAAAAgAAUAAAAMAAUAAAAgAAYAAAAMAAUAAAAgAAcAAAAMAAUAAAAhAAAAAAAMAAUAAAAhAAEAAAAMAAUAAAAhAAIAAAAKAAYAAAAhAAMAAAAMAAUAAAAhAAQAAAAMAAUAAAAhAAUAAAAMAAUAAAAhAAYAAAAMAAUAAAAhAAcAAAAMAAUAAAAiAAAAAAAMAAUAAAAiAAEAAAAMAAUAAAAiAAIAAAAMAAUAAAAiAAMAAAAMAAUAAAAiAAQAAAAKAAYAAAAiAAUAAAAKAAYAAAAiAAYAAAAMAAUAAAAiAAcAAAAMAAUAAAAjAAAAAAAMAAUAAAAjAAEAAAAMAAUAAAAjAAIAAAAMAAUAAAAjAAMAAAAMAAUAAAAjAAQAAAAMAAUAAAAjAAUAAAAMAAUAAAAjAAYAAAAMAAUAAAAjAAcAAAAMAAUAAAAkAAAAAAAKAAYAAAAkAAEAAAAMAAUAAAAkAAIAAAAMAAUAAAAkAAMAAAAMAAUAAAAkAAQAAAAMAAUAAAAkAAUAAAAMAAUAAAAkAAYAAAAMAAUAAAAkAAcAAAAKAAYAAAAlAAAAAAAMAAUAAAAlAAEAAAAMAAUAAAAlAAIAAAAMAAUAAAAlAAMAAAAMAAUAAAAlAAQAAAAMAAUAAAAlAAUAAAAMAAUAAAAlAAYAAAAMAAUAAAAlAAcAAAAMAAUAAAD6/wcAAAAMAAUAAAD7/wcAAAAMAAUAAAD8/wcAAAAMAAUAAAD9/wcAAAAMAAUAAAD5/wcAAAALAAUAAAD+/wcAAAANAAUAAAD5/wgAAAALAAYAAAD6/wgAAAAMAAYAAAD7/wgAAAAMAAYAAAD8/wgAAAAMAAYAAAD9/wgAAAAMAAYAAAD+/wgAAAANAAYAAAA=") -tile_set = SubResource("TileSet_kf7eg") - -[node name="UI" type="CanvasLayer" parent="."] - -[node name="UIInventory" parent="UI" instance=ExtResource("2_4bfy0")] -unique_name_in_owner = true -visible = false - -[node name="UISign" parent="UI" instance=ExtResource("3_vdqsb")] -unique_name_in_owner = true -visible = false - -[node name="Controls" type="Label" parent="."] -offset_left = 167.0 -offset_top = -145.0 -offset_right = 332.0 -offset_bottom = -81.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("4_w2gh7") -text = "[WASD] to move -[Space] to jump -[Q] to trigger Noise Emitter" - -[node name="Camera2D" type="Camera2D" parent="."] -physics_interpolation_mode = 1 -position = Vector2(227, -28) -offset = Vector2(3.7613766, -1.1727414) -ignore_rotation = false -zoom = Vector2(1.5, 1.5) -process_callback = 0 -editor_draw_limits = true - -[node name="PhantomCameraHost" type="Node" parent="Camera2D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("5_d6fcf") - -[node name="Player" type="Node" parent="."] - -[node name="PlayerPhantomCamera2D" type="Node2D" parent="Player" node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -process_priority = -1 -top_level = true -position = Vector2(227, -28) -script = ExtResource("6_bdmii") -priority = 10 -follow_mode = 2 -follow_target = NodePath("../CharacterBody2D") -zoom = Vector2(1.5, 1.5) -frame_preview = false -tween_resource = ExtResource("7_dpnkg") -tween_on_load = false -follow_damping = true -draw_limits = true -noise = SubResource("Resource_87ddr") -noise_emitter_layer = 1 - -[node name="PlayerPhantomCameraNoiseEmitter2D" type="Node2D" parent="Player"] -unique_name_in_owner = true -script = ExtResource("10_p43w0") -noise = SubResource("Resource_rmnw1") -duration = 0.1 -decay_time = 0.1 - -[node name="CharacterBody2D" parent="Player" instance=ExtResource("8_u5o87")] -z_index = 2 -position = Vector2(227, -28) -script = ExtResource("9_suxld") diff --git a/addons/phantom_camera/examples/example_scenes/2D/2d_tweening_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/2D/2d_tweening_example_scene.tscn deleted file mode 100644 index bf3e98b..0000000 --- a/addons/phantom_camera/examples/example_scenes/2D/2d_tweening_example_scene.tscn +++ /dev/null @@ -1,399 +0,0 @@ -[gd_scene load_steps=20 format=4 uid="uid://cpyb3ucwcqj8l"] - -[ext_resource type="Texture2D" uid="uid://c77npili4pel4" path="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png" id="1_h1rbo"] -[ext_resource type="PackedScene" uid="uid://dg7rhrymsrrrm" path="res://addons/phantom_camera/examples/ui/ui_inventory.tscn" id="2_1f2t2"] -[ext_resource type="PackedScene" uid="uid://iq5xd1ob1res" path="res://addons/phantom_camera/examples/ui/ui_sign.tscn" id="3_o6nri"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="4_j7670"] -[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="5_gvv7r"] -[ext_resource type="Resource" uid="uid://euybd2w0bax" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres" id="6_rwobr"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="7_ylx0h"] -[ext_resource type="PackedScene" uid="uid://7kh0xydx0b1o" path="res://addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn" id="8_ytsgf"] -[ext_resource type="Script" uid="uid://t8wa4e5y5hcf" path="res://addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd" id="9_3r1pw"] -[ext_resource type="Script" uid="uid://cnnaky2ns2pn4" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd" id="9_5jy5e"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="10_guf2v"] - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_cvmao"] -texture = ExtResource("1_h1rbo") -0:0/0 = 0 -1:0/0 = 0 -2:0/0 = 0 -3:0/0 = 0 -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -0:1/0 = 0 -1:1/0 = 0 -2:1/0 = 0 -3:1/0 = 0 -4:1/0 = 0 -5:1/0 = 0 -7:1/0 = 0 -7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -2:2/0 = 0 -3:2/0 = 0 -4:2/0 = 0 -7:2/0 = 0 -7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:3/0 = 0 -4:3/0 = 0 -5:3/0 = 0 -7:3/0 = 0 -7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -3:4/0 = 0 -4:4/0 = 0 -5:4/0 = 0 -7:4/0 = 0 -3:5/0 = 0 -4:5/0 = 0 -7:5/0 = 0 -3:6/0 = 0 -4:6/0 = 0 -7:6/0 = 0 -2:7/0 = 0 -3:7/0 = 0 -4:7/0 = 0 -5:7/0 = 0 -8:0/0 = 0 -8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:0/0 = 0 -9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:0/0 = 0 -10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:0/0 = 0 -11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:0/0 = 0 -12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:0/0 = 0 -13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:0/0 = 0 -14:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8) -14:0/0/custom_data_0 = &"Sign" -15:0/0 = 0 -16:0/0 = 0 -8:1/0 = 0 -8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:1/0 = 0 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:1/0 = 0 -10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:1/0 = 0 -11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:1/0 = 0 -12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:1/0 = 0 -13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:1/0 = 0 -15:1/0 = 0 -16:1/0 = 0 -8:2/0 = 0 -8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:2/0 = 0 -9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:2/0 = 0 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:2/0 = 0 -11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:2/0 = 0 -12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:2/0 = 0 -13:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:2/0 = 0 -15:2/0 = 0 -16:2/0 = 0 -8:3/0 = 0 -8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -9:3/0 = 0 -9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -10:3/0 = 0 -10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -11:3/0 = 0 -12:3/0 = 0 -12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:3/0 = 0 -13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:3/0 = 0 -15:3/0 = 0 -16:3/0 = 0 -8:4/0 = 0 -9:4/0 = 0 -10:4/0 = 0 -11:4/0 = 0 -11:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-7, 2.5, -5, -2, -2.5, -5, 2, -7, 8, -8, 8, 8, -8, 8) -12:4/0 = 0 -12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:4/0 = 0 -13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 0, -6, 4, -1.5, 6.5, 1.5, 8, 8, -8, 8) -14:4/0 = 0 -14:4/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8) -14:4/0/custom_data_0 = &"Inventory" -15:4/0 = 0 -16:4/0 = 0 -8:5/0 = 0 -9:5/0 = 0 -10:5/0 = 0 -11:5/0 = 0 -11:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -12:5/0 = 0 -12:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:5/0 = 0 -13:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -14:5/0 = 0 -15:5/0 = 0 -16:5/0 = 0 -8:6/0 = 0 -9:6/0 = 0 -10:6/0 = 0 -11:6/0 = 0 -11:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 1, 6.5, -3, 3, -6.5, -1.5) -12:6/0 = 0 -12:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) -13:6/0 = 0 -13:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 6, -0.5, 3, 3.5, -1.5, 6.5, -8, 8) -14:6/0 = 0 -15:6/0 = 0 -16:6/0 = 0 - -[sub_resource type="TileSet" id="TileSet_na7gm"] -physics_layer_0/collision_layer = 1 -physics_layer_1/collision_layer = 2 -physics_layer_1/collision_mask = 2 -custom_data_layer_0/name = "Type" -custom_data_layer_0/type = 21 -sources/0 = SubResource("TileSetAtlasSource_cvmao") - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_tgk1y"] -size = Vector2(140, 160) - -[sub_resource type="Resource" id="Resource_mtp70"] -script = ExtResource("10_guf2v") -duration = 0.6 -transition = 1 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_clm0y"] -size = Vector2(104, 160) - -[sub_resource type="Resource" id="Resource_8jg5c"] -script = ExtResource("10_guf2v") -duration = 0.3 -transition = 8 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_uka0w"] -size = Vector2(560, 160) - -[sub_resource type="Resource" id="Resource_e4e41"] -script = ExtResource("10_guf2v") -duration = 1.2 -transition = 10 - -[node name="Root" type="Node2D"] - -[node name="Background" type="CanvasLayer" parent="."] -layer = -3 - -[node name="ColorRect" type="ColorRect" parent="Background"] -auto_translate_mode = 2 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -311.0 -offset_top = -173.0 -offset_right = 981.0 -offset_bottom = 548.0 -grow_horizontal = 2 -grow_vertical = 2 -localize_numeral_system = false -color = Color(0.137255, 0.14902, 0.196078, 1) - -[node name="Pillar" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAAAAPr/AAAKAAIAAAAAAPv/AAAKAAMAAAAAAPz/AAAKAAMAAAAAAP3/AAAKAAMAAAAAAP7/AAAKAAMAAAAAAP//AAAKAAMAAAABAPr/AAALAAIAAAABAPv/AAALAAEAAAABAPz/AAALAAEAAAABAP3/AAALAAEAAAABAP7/AAALAAEAAAABAP//AAALAAEAAAACAPr/AAAMAAIAAAACAPv/AAAMAAMAAAACAPz/AAAMAAMAAAACAP3/AAAMAAMAAAACAP7/AAAMAAMAAAACAP//AAAMAAMAAAA=") -tile_set = SubResource("TileSet_na7gm") -collision_enabled = false -navigation_enabled = false - -[node name="Terrain" type="TileMapLayer" parent="."] -use_parent_material = true -scale = Vector2(3, 3) -tile_map_data = PackedByteArray("AAABAAAAAAALAAAAAAACAAAAAAALAAAAAAADAAAAAAALAAAAAAAEAAAAAAALAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAHAAAAAAALAAAAAAAIAAAAAAALAAAAAAAJAAAAAAAMAAAAAAAJAAEAAAAMAAEAAAAJAAIAAAAMAAEAAAAJAAMAAAAMAAEAAAAJAAQAAAAMAAEAAAAJAAUAAAAMAAEAAAAJAAYAAAAMAAEAAAABAAEAAAALAAEAAAABAAIAAAALAAEAAAABAAMAAAALAAEAAAABAAQAAAAHAAEAAAABAAUAAAALAAEAAAABAAYAAAALAAEAAAACAAEAAAALAAEAAAACAAIAAAALAAEAAAACAAMAAAALAAEAAAACAAQAAAALAAEAAAACAAUAAAALAAEAAAACAAYAAAALAAEAAAADAAEAAAALAAEAAAADAAIAAAALAAEAAAADAAMAAAALAAEAAAADAAQAAAALAAEAAAADAAUAAAALAAEAAAADAAYAAAALAAEAAAAEAAEAAAAHAAEAAAAEAAIAAAALAAEAAAAEAAMAAAALAAEAAAAEAAQAAAALAAEAAAAEAAUAAAALAAEAAAAEAAYAAAALAAEAAAAFAAEAAAALAAEAAAAFAAIAAAALAAEAAAAFAAMAAAALAAEAAAAFAAQAAAAHAAEAAAAFAAUAAAALAAEAAAAFAAYAAAALAAEAAAAGAAEAAAALAAEAAAAGAAIAAAALAAEAAAAGAAMAAAALAAEAAAAGAAQAAAALAAEAAAAGAAUAAAALAAEAAAAGAAYAAAALAAEAAAAHAAEAAAALAAEAAAAHAAIAAAALAAEAAAAHAAMAAAALAAEAAAAHAAQAAAALAAEAAAAHAAUAAAALAAEAAAAHAAYAAAAHAAEAAAAIAAEAAAALAAEAAAAIAAIAAAALAAEAAAAIAAMAAAAHAAEAAAAIAAQAAAALAAEAAAAIAAUAAAALAAEAAAAIAAYAAAALAAEAAAAKAAEAAAAIAAUAAAALAAEAAAAIAAUAAAAMAAEAAAAIAAUAAAANAAEAAAAIAAUAAAAKAAIAAAAIAAYAAAALAAIAAAAIAAYAAAAMAAIAAAAIAAYAAAANAAIAAAAIAAYAAAAKAAMAAAALAAEAAAAKAAQAAAALAAEAAAALAAMAAAALAAEAAAALAAQAAAALAAEAAAAMAAMAAAALAAEAAAAMAAQAAAALAAEAAAANAAMAAAALAAEAAAANAAQAAAALAAEAAAAOAAEAAAAIAAUAAAAPAAEAAAAIAAUAAAAQAAEAAAAIAAUAAAAOAAIAAAAIAAYAAAAPAAIAAAAIAAYAAAAQAAIAAAAIAAYAAAAOAAMAAAALAAEAAAAPAAMAAAALAAEAAAAPAAQAAAALAAEAAAAQAAQAAAALAAEAAAAQAAMAAAALAAEAAAAOAAQAAAALAAEAAAARAAAAAAALAAQAAAARAAEAAAALAAUAAAARAAIAAAALAAUAAAARAAMAAAALAAUAAAARAAQAAAALAAUAAAASAAAAAAAMAAQAAAATAAAAAAAMAAQAAAAUAAAAAAAMAAQAAAAVAAAAAAAMAAQAAAAWAAAAAAAMAAQAAAAXAAAAAAAMAAQAAAASAAEAAAAMAAUAAAASAAIAAAAMAAUAAAASAAMAAAAMAAUAAAASAAQAAAAMAAUAAAATAAEAAAAMAAUAAAATAAIAAAAJAAYAAAATAAMAAAAMAAUAAAATAAQAAAAMAAUAAAAUAAEAAAAMAAUAAAAUAAIAAAAMAAUAAAAUAAMAAAAMAAUAAAAUAAQAAAAMAAUAAAAVAAEAAAAMAAUAAAAVAAIAAAAMAAUAAAAVAAMAAAAMAAUAAAAVAAQAAAAMAAUAAAAWAAEAAAAMAAUAAAAWAAIAAAAMAAUAAAAWAAMAAAAMAAUAAAAWAAQAAAAKAAYAAAAXAAEAAAAMAAUAAAAXAAIAAAAMAAUAAAAXAAMAAAAMAAUAAAAXAAQAAAAMAAUAAAARAAUAAAALAAUAAAARAAYAAAALAAUAAAASAAUAAAAJAAYAAAASAAYAAAAMAAUAAAATAAUAAAAMAAUAAAATAAYAAAAMAAUAAAAUAAUAAAAMAAUAAAAUAAYAAAAMAAUAAAAVAAUAAAAMAAUAAAAVAAYAAAAMAAUAAAAWAAUAAAAMAAUAAAAWAAYAAAAMAAUAAAAXAAUAAAAMAAUAAAAXAAYAAAAMAAUAAAAKAP7/AAALAAQAAAALAP7/AAAMAAQAAAAMAP7/AAAMAAQAAAAKAP//AAALAAYAAAALAP//AAAMAAYAAAAMAP//AAAMAAYAAAAQAP7/AAANAAQAAAAQAP//AAANAAYAAAANAP7/AAAMAAQAAAAOAP7/AAAMAAQAAAAPAP7/AAAMAAQAAAANAP//AAAMAAYAAAAOAP//AAAMAAYAAAAPAP//AAAMAAYAAAADAP//AAAOAAIAAAAEAP//AAAPAAIAAAAFAP//AAAQAAIAAAAGAP//AAAOAAIAAAAHAP//AAAPAAIAAAAIAP//AAAQAAIAAAD//wAAAAAKAAAAAAD//wEAAAAKAAEAAAD//wIAAAAKAAEAAAD//wMAAAAKAAEAAAD//wQAAAAKAAEAAAD//wUAAAAKAAEAAAD//wYAAAAKAAEAAAD//wcAAAAKAAEAAAD//wgAAAAKAAEAAAAAAAAAAAALAAAAAAAAAAEAAAALAAEAAAAAAAIAAAALAAEAAAAAAAMAAAALAAEAAAAAAAQAAAALAAEAAAAAAAUAAAALAAEAAAAAAAYAAAALAAEAAAAAAAcAAAALAAEAAAAAAAgAAAALAAEAAAABAAgAAAALAAEAAAACAAgAAAALAAEAAAADAAgAAAALAAEAAAAEAAgAAAALAAEAAAAFAAgAAAALAAEAAAAGAAgAAAALAAEAAAAHAAgAAAALAAEAAAAIAAgAAAALAAEAAAAJAAgAAAAMAAEAAAAJAAcAAAAMAAEAAAAIAAcAAAALAAEAAAAHAAcAAAALAAEAAAAGAAcAAAAHAAEAAAAFAAcAAAALAAEAAAAEAAcAAAALAAEAAAADAAcAAAALAAEAAAACAAcAAAALAAEAAAABAAcAAAALAAEAAAD///v/AAANAAQAAAD///z/AAANAAUAAAD///3/AAANAAUAAAD///7/AAANAAUAAAD/////AAANAAYAAAD+//v/AAAMAAQAAAD9//v/AAAMAAQAAAD+//z/AAAJAAYAAAD9//z/AAAMAAUAAAD6////AAAMAAUAAAD7////AAAMAAUAAAD8////AAAMAAUAAAD9////AAAMAAUAAAD+////AAAMAAUAAAD+//7/AAAMAAUAAAD+//3/AAAMAAUAAAD9//3/AAAMAAUAAAD9//7/AAAKAAYAAAD+/wAAAAANAAUAAAD+/wEAAAANAAUAAAD+/wIAAAANAAUAAAD+/wMAAAANAAUAAAD+/wQAAAANAAUAAAD+/wUAAAANAAUAAAD+/wYAAAANAAUAAAD9/wAAAAAMAAUAAAD8/wAAAAAMAAUAAAD7/wAAAAAMAAUAAAD6/wAAAAAMAAUAAAD5/wAAAAALAAUAAAD6/wEAAAAMAAUAAAD6/wIAAAAMAAUAAAD6/wMAAAAMAAUAAAD7/wMAAAAMAAUAAAD7/wQAAAAMAAUAAAD8/wEAAAAMAAUAAAD9/wEAAAAMAAUAAAD9/wIAAAAMAAUAAAD9/wMAAAAMAAUAAAD9/wQAAAAMAAUAAAD9/wUAAAAMAAUAAAD9/wYAAAAMAAUAAAD8/wUAAAAMAAUAAAD7/wUAAAAMAAUAAAD8/wYAAAAMAAUAAAD8/wQAAAAKAAYAAAD8/wMAAAAMAAUAAAD8/wIAAAAMAAUAAAD7/wEAAAAMAAUAAAD7/wIAAAAJAAYAAAD7/wYAAAAMAAUAAAD6/wYAAAAMAAUAAAD6/wUAAAAMAAUAAAD6/wQAAAAMAAUAAAD5////AAALAAUAAAD5/wEAAAALAAUAAAD5/wIAAAALAAUAAAD5/wMAAAALAAUAAAD5/wQAAAALAAUAAAD5/wUAAAALAAUAAAD5/wYAAAALAAUAAAD8//r/AAALAAMAAAAOAP3/AAALAAMAAAALAP3/AAALAAMAAAASAP//AAALAAMAAAAUAP//AAALAAMAAAD6//r/AAAQAAUAAAD7//r/AAALAAMAAAANAP3/AAAOAAYAAAAWAP//AAAPAAYAAAD9//r/AAAPAAUAAAAXAP//AAAQAAUAAAD5//v/AAALAAQAAAD5//z/AAALAAUAAAD5//3/AAALAAUAAAD5//7/AAALAAUAAAD6//v/AAAMAAQAAAD6//z/AAAKAAYAAAD6//3/AAAMAAUAAAD6//7/AAAMAAUAAAD7//v/AAAMAAQAAAD7//z/AAAMAAUAAAD7//3/AAAMAAUAAAD7//7/AAAMAAUAAAD8//v/AAAMAAQAAAD8//z/AAAMAAUAAAD8//3/AAAMAAUAAAD8//7/AAAMAAUAAAARAAcAAAALAAUAAAARAAgAAAALAAYAAAAXAAcAAAAMAAUAAAAWAAcAAAAMAAUAAAAVAAcAAAAMAAUAAAAUAAcAAAAMAAUAAAATAAcAAAAMAAUAAAASAAcAAAAMAAUAAAASAAgAAAAMAAYAAAATAAgAAAAMAAYAAAAUAAgAAAAMAAYAAAAVAAgAAAAMAAYAAAAWAAgAAAAMAAYAAAAXAAgAAAAMAAYAAAAKAAUAAAALAAEAAAAKAAYAAAALAAEAAAAKAAcAAAALAAEAAAAKAAgAAAALAAEAAAALAAUAAAALAAEAAAALAAYAAAALAAEAAAALAAcAAAALAAEAAAALAAgAAAALAAEAAAAMAAUAAAALAAEAAAAMAAYAAAALAAEAAAAMAAcAAAALAAEAAAAMAAgAAAALAAEAAAANAAUAAAALAAEAAAANAAYAAAALAAEAAAANAAcAAAALAAEAAAANAAgAAAALAAEAAAAOAAUAAAALAAEAAAAOAAYAAAALAAEAAAAOAAcAAAALAAEAAAAOAAgAAAALAAEAAAAPAAUAAAALAAEAAAAPAAYAAAALAAEAAAAPAAcAAAALAAEAAAAPAAgAAAALAAEAAAAQAAUAAAALAAEAAAAQAAYAAAALAAEAAAAQAAcAAAALAAEAAAAQAAgAAAALAAEAAAAdAAAAAAANAAQAAAAdAAEAAAANAAUAAAAdAAIAAAANAAUAAAAdAAMAAAANAAUAAAAdAAQAAAANAAUAAAAdAAUAAAANAAUAAAAdAAYAAAANAAUAAAAdAAcAAAANAAUAAAAdAAgAAAANAAYAAAAYAAAAAAAMAAQAAAAZAAAAAAAMAAQAAAAaAAAAAAAMAAQAAAAbAAAAAAAMAAQAAAAcAAAAAAAMAAQAAAAYAAEAAAAMAAUAAAAZAAEAAAAMAAUAAAAaAAEAAAAMAAUAAAAbAAEAAAAMAAUAAAAcAAEAAAAMAAUAAAAcAAIAAAAMAAUAAAAcAAMAAAAJAAYAAAAbAAIAAAAMAAUAAAAaAAIAAAAMAAUAAAAZAAIAAAAMAAUAAAAYAAIAAAAMAAUAAAAYAAMAAAAMAAUAAAAYAAQAAAAMAAUAAAAYAAUAAAAMAAUAAAAYAAYAAAAMAAUAAAAYAAcAAAAMAAUAAAAYAAgAAAAMAAYAAAAZAAMAAAAMAAUAAAAZAAQAAAAMAAUAAAAZAAUAAAAMAAUAAAAZAAYAAAAMAAUAAAAZAAcAAAAMAAUAAAAZAAgAAAAMAAYAAAAaAAMAAAAMAAUAAAAaAAQAAAAMAAUAAAAaAAUAAAAMAAUAAAAaAAYAAAAKAAYAAAAaAAcAAAAMAAUAAAAaAAgAAAAMAAYAAAAbAAMAAAAMAAUAAAAbAAQAAAAMAAUAAAAbAAUAAAAMAAUAAAAbAAYAAAAMAAUAAAAbAAcAAAAMAAUAAAAbAAgAAAAMAAYAAAAcAAQAAAAMAAUAAAAcAAUAAAAMAAUAAAAcAAYAAAAMAAUAAAAcAAcAAAAMAAUAAAAcAAgAAAAMAAYAAAAPAP3/AAAQAAYAAAAiAPr/AAAQAAYAAAAfAPr/AAAOAAYAAAAkAPr/AAAPAAYAAAAgAPr/AAAPAAUAAAAbAP//AAALAAMAAAAaAP//AAALAAMAAAAjAPr/AAALAAMAAAAhAPr/AAALAAMAAAATAP//AAALAAMAAAAVAP//AAALAAMAAAAeAPv/AAALAAQAAAAeAPz/AAALAAUAAAAeAP3/AAALAAUAAAAeAP7/AAALAAUAAAAeAP//AAALAAUAAAAmAP//AAANAAUAAAAmAP7/AAANAAUAAAAmAP3/AAANAAUAAAAmAPv/AAANAAQAAAAfAPv/AAAMAAQAAAAgAPv/AAAMAAQAAAAhAPv/AAAMAAQAAAAiAPv/AAAMAAQAAAAjAPv/AAAMAAQAAAAkAPv/AAAMAAQAAAAlAPv/AAAMAAQAAAAmAPz/AAANAAUAAAAlAP//AAAMAAUAAAAlAP7/AAAMAAUAAAAlAP3/AAAMAAUAAAAlAPz/AAAMAAUAAAAkAPz/AAAMAAUAAAAjAPz/AAAMAAUAAAAiAPz/AAAMAAUAAAAhAPz/AAAMAAUAAAAgAPz/AAAMAAUAAAAfAPz/AAAMAAUAAAAfAP3/AAAKAAYAAAAfAP7/AAAMAAUAAAAfAP//AAAMAAUAAAAkAP//AAAKAAYAAAAkAP7/AAAJAAYAAAAkAP3/AAAMAAUAAAAjAP3/AAAMAAUAAAAiAP3/AAAMAAUAAAAhAP3/AAAMAAUAAAAgAP3/AAAMAAUAAAAgAP7/AAAJAAYAAAAgAP//AAAMAAUAAAAjAP//AAAMAAUAAAAjAP7/AAAMAAUAAAAiAP7/AAAMAAUAAAAhAP7/AAAMAAUAAAAhAP//AAAMAAUAAAAiAP//AAAMAAUAAAAeAAgAAAALAAYAAAAeAAcAAAALAAUAAAAeAAYAAAALAAUAAAAeAAUAAAALAAUAAAAeAAQAAAALAAUAAAAeAAMAAAALAAUAAAAeAAIAAAALAAUAAAAeAAEAAAALAAUAAAAeAAAAAAALAAUAAAAfAAgAAAAMAAYAAAAgAAgAAAAMAAYAAAAhAAgAAAAMAAYAAAAiAAgAAAAMAAYAAAAjAAgAAAAMAAYAAAAkAAgAAAAMAAYAAAAlAAgAAAAMAAYAAAAmAAgAAAANAAYAAAAmAAAAAAANAAUAAAAmAAEAAAANAAUAAAAmAAIAAAANAAUAAAAmAAMAAAANAAUAAAAmAAQAAAANAAUAAAAmAAUAAAANAAUAAAAmAAYAAAANAAUAAAAmAAcAAAANAAUAAAAfAAAAAAAMAAUAAAAfAAEAAAAMAAUAAAAfAAIAAAAMAAUAAAAfAAMAAAAMAAUAAAAfAAQAAAAMAAUAAAAfAAUAAAAMAAUAAAAfAAYAAAAKAAYAAAAfAAcAAAAMAAUAAAAgAAAAAAAMAAUAAAAgAAEAAAAMAAUAAAAgAAIAAAAMAAUAAAAgAAMAAAAMAAUAAAAgAAQAAAAMAAUAAAAgAAUAAAAMAAUAAAAgAAYAAAAMAAUAAAAgAAcAAAAMAAUAAAAhAAAAAAAMAAUAAAAhAAEAAAAMAAUAAAAhAAIAAAAKAAYAAAAhAAMAAAAMAAUAAAAhAAQAAAAMAAUAAAAhAAUAAAAMAAUAAAAhAAYAAAAMAAUAAAAhAAcAAAAMAAUAAAAiAAAAAAAMAAUAAAAiAAEAAAAMAAUAAAAiAAIAAAAMAAUAAAAiAAMAAAAMAAUAAAAiAAQAAAAKAAYAAAAiAAUAAAAKAAYAAAAiAAYAAAAMAAUAAAAiAAcAAAAMAAUAAAAjAAAAAAAMAAUAAAAjAAEAAAAMAAUAAAAjAAIAAAAMAAUAAAAjAAMAAAAMAAUAAAAjAAQAAAAMAAUAAAAjAAUAAAAMAAUAAAAjAAYAAAAMAAUAAAAjAAcAAAAMAAUAAAAkAAAAAAAKAAYAAAAkAAEAAAAMAAUAAAAkAAIAAAAMAAUAAAAkAAMAAAAMAAUAAAAkAAQAAAAMAAUAAAAkAAUAAAAMAAUAAAAkAAYAAAAMAAUAAAAkAAcAAAAKAAYAAAAlAAAAAAAMAAUAAAAlAAEAAAAMAAUAAAAlAAIAAAAMAAUAAAAlAAMAAAAMAAUAAAAlAAQAAAAMAAUAAAAlAAUAAAAMAAUAAAAlAAYAAAAMAAUAAAAlAAcAAAAMAAUAAAD6/wcAAAAMAAUAAAD7/wcAAAAMAAUAAAD8/wcAAAAMAAUAAAD9/wcAAAAMAAUAAAD5/wcAAAALAAUAAAD+/wcAAAANAAUAAAD5/wgAAAALAAYAAAD6/wgAAAAMAAYAAAD7/wgAAAAMAAYAAAD8/wgAAAAMAAYAAAD9/wgAAAAMAAYAAAD+/wgAAAANAAYAAAA=") -tile_set = SubResource("TileSet_na7gm") - -[node name="UI" type="CanvasLayer" parent="."] - -[node name="UIInventory" parent="UI" instance=ExtResource("2_1f2t2")] -unique_name_in_owner = true -visible = false - -[node name="UISign" parent="UI" instance=ExtResource("3_o6nri")] -unique_name_in_owner = true -visible = false - -[node name="Camera2D" type="Camera2D" parent="."] -physics_interpolation_mode = 1 -position = Vector2(227, -28) -process_callback = 0 -position_smoothing_speed = 10.0 -editor_draw_limits = true - -[node name="PhantomCameraHost" type="Node" parent="Camera2D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("4_j7670") - -[node name="Player" type="Node" parent="."] - -[node name="PlayerPhantomCamera2D" type="Node2D" parent="Player" node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -top_level = true -position = Vector2(227, -28) -script = ExtResource("5_gvv7r") -priority = 5 -follow_mode = 2 -follow_target = NodePath("../CharacterBody2D") -tween_resource = ExtResource("6_rwobr") -tween_on_load = false -follow_damping = true -draw_limits = true - -[node name="Label" type="Label" parent="Player"] -offset_left = 167.0 -offset_top = -132.0 -offset_right = 332.0 -offset_bottom = -68.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("7_ylx0h") -text = "[WASD] to move -[Space] to jump" - -[node name="CharacterBody2D" parent="Player" instance=ExtResource("8_ytsgf")] -position = Vector2(227, -28) -script = ExtResource("9_5jy5e") - -[node name="WideArea" type="Area2D" parent="." node_paths=PackedStringArray("area_pcam")] -position = Vector2(393, -40) -collision_layer = 2 -collision_mask = 2 -script = ExtResource("9_3r1pw") -area_pcam = NodePath("PhantomCamera2D") - -[node name="CollisionShape2D" type="CollisionShape2D" parent="WideArea"] -position = Vector2(0, -40) -shape = SubResource("RectangleShape2D_tgk1y") - -[node name="ColorRect" type="ColorRect" parent="WideArea"] -offset_left = -70.0 -offset_top = -120.0 -offset_right = 70.0 -offset_bottom = 40.0 -size_flags_horizontal = 0 -size_flags_vertical = 0 -color = Color(0.556863, 0.447059, 0.545098, 0.698039) - -[node name="Label" type="Label" parent="WideArea"] -offset_left = -77.0 -offset_top = -250.0 -offset_right = 76.0 -offset_bottom = -120.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("7_ylx0h") -text = "Transition Type: -Sine - -Duration: -0.6s" -horizontal_alignment = 1 - -[node name="PhantomCamera2D" type="Node2D" parent="WideArea"] -position = Vector2(4, -100) -script = ExtResource("5_gvv7r") -zoom = Vector2(0.8, 0.8) -tween_resource = SubResource("Resource_mtp70") -draw_limits = true - -[node name="UpperZoomArea" type="Area2D" parent="." node_paths=PackedStringArray("area_pcam")] -position = Vector2(649, -135) -collision_layer = 2 -collision_mask = 2 -script = ExtResource("9_3r1pw") -area_pcam = NodePath("PhantomCamera2D") - -[node name="CollisionShape2D" type="CollisionShape2D" parent="UpperZoomArea"] -position = Vector2(0, -40) -shape = SubResource("RectangleShape2D_clm0y") - -[node name="CollisionShape2D2" type="CollisionShape2D" parent="UpperZoomArea"] -position = Vector2(0, -40) -shape = SubResource("RectangleShape2D_clm0y") - -[node name="ColorRect" type="ColorRect" parent="UpperZoomArea"] -offset_left = -52.0 -offset_top = -120.0 -offset_right = 52.0 -offset_bottom = 40.0 -size_flags_horizontal = 0 -size_flags_vertical = 0 -color = Color(0.556863, 0.447059, 0.545098, 0.698039) - -[node name="Label" type="Label" parent="UpperZoomArea"] -offset_left = -74.0 -offset_top = -251.0 -offset_right = 79.0 -offset_bottom = -121.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("7_ylx0h") -text = "Transition Type: -Circ - -Duration: -0.3s" -horizontal_alignment = 1 - -[node name="PhantomCamera2D" type="Node2D" parent="UpperZoomArea"] -position = Vector2(2, -83) -script = ExtResource("5_gvv7r") -zoom = Vector2(2, 2) -tween_resource = SubResource("Resource_8jg5c") -draw_limits = true - -[node name="ForwardArea" type="Area2D" parent="." node_paths=PackedStringArray("area_pcam")] -position = Vector2(1136, -38) -collision_layer = 2 -collision_mask = 2 -script = ExtResource("9_3r1pw") -area_pcam = NodePath("PhantomCamera2D") - -[node name="CollisionShape2D" type="CollisionShape2D" parent="ForwardArea"] -position = Vector2(0, -42) -shape = SubResource("RectangleShape2D_uka0w") - -[node name="ColorRect" type="ColorRect" parent="ForwardArea"] -offset_left = -280.0 -offset_top = -122.0 -offset_right = 280.0 -offset_bottom = 38.0 -size_flags_horizontal = 0 -size_flags_vertical = 0 -color = Color(0.556863, 0.447059, 0.545098, 0.698039) - -[node name="Label" type="Label" parent="ForwardArea"] -offset_left = -76.0 -offset_top = -252.0 -offset_right = 77.0 -offset_bottom = -122.0 -theme_override_colors/font_color = Color(0.294118, 1, 0.631373, 1) -theme_override_fonts/font = ExtResource("7_ylx0h") -text = "Transition Type: -Back - -Duration: -1.2s" -horizontal_alignment = 1 - -[node name="PhantomCamera2D" type="Node2D" parent="ForwardArea"] -position = Vector2(344, -46) -script = ExtResource("5_gvv7r") -zoom = Vector2(0.9, 0.9) -tween_resource = SubResource("Resource_e4e41") -draw_limits = true diff --git a/addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn b/addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn deleted file mode 100644 index f0dca01..0000000 --- a/addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn +++ /dev/null @@ -1,120 +0,0 @@ -[gd_scene load_steps=10 format=3 uid="uid://7kh0xydx0b1o"] - -[ext_resource type="Script" uid="uid://cb46ypjv5p72s" path="res://addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd" id="1_jnc14"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_62b2n"] -[ext_resource type="Texture2D" uid="uid://cscjjt55iw2cu" path="res://addons/phantom_camera/examples/textures/2D/player_sprite.svg" id="2_yr8cm"] -[ext_resource type="Script" uid="uid://bhexx6mj1xv3q" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="4_rloon"] -[ext_resource type="Resource" uid="uid://cecrnq0wnkexh" path="res://addons/phantom_camera/examples/resources/tween/item_focus_phantom_camera_2d_tween.tres" id="5_4iyk1"] -[ext_resource type="Resource" uid="uid://cllveybboaqk5" path="res://addons/phantom_camera/examples/resources/tween/inventory_phantom_camera_2d_tween.tres" id="6_2h6fv"] - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5hryl"] -bg_color = Color(0.85098, 0.894118, 0.937255, 1) -border_width_left = 2 -border_width_top = 2 -border_width_right = 2 -border_width_bottom = 2 -border_color = Color(0.113725, 0.113725, 0.113725, 1) -corner_radius_top_left = 7 -corner_radius_top_right = 7 -corner_radius_bottom_right = 7 -corner_radius_bottom_left = 7 - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_xj4ar"] -size = Vector2(64, 57) - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_18i13"] -size = Vector2(64, 57) - -[node name="CharacterBody2D" type="CharacterBody2D"] -script = ExtResource("1_jnc14") - -[node name="DarkOverlay" type="ColorRect" parent="."] -unique_name_in_owner = true -visible = false -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -1000.0 -offset_top = -1000.0 -offset_right = 1000.0 -offset_bottom = 1000.0 -grow_horizontal = 2 -grow_vertical = 2 -color = Color(0, 0, 0, 0.615686) - -[node name="PlayerVisuals" type="Node2D" parent="."] -unique_name_in_owner = true - -[node name="PlayerSprite" type="Sprite2D" parent="PlayerVisuals"] -unique_name_in_owner = true -scale = Vector2(0.5, 0.5) -texture = ExtResource("2_yr8cm") - -[node name="InteractionPrompt" type="Panel" parent="PlayerVisuals"] -unique_name_in_owner = true -visible = false -anchors_preset = 7 -anchor_left = 0.5 -anchor_top = 1.0 -anchor_right = 0.5 -anchor_bottom = 1.0 -offset_left = -16.0 -offset_top = -66.0 -offset_right = 16.0 -offset_bottom = -34.0 -grow_horizontal = 2 -grow_vertical = 0 -size_flags_vertical = 0 -theme_override_styles/panel = SubResource("StyleBoxFlat_5hryl") - -[node name="Label" type="Label" parent="PlayerVisuals/InteractionPrompt"] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_top = -3.0 -offset_bottom = 5.0 -grow_horizontal = 2 -grow_vertical = 2 -theme_override_colors/font_color = Color(0, 0, 0, 1) -theme_override_fonts/font = ExtResource("2_62b2n") -theme_override_font_sizes/font_size = 26 -text = "F" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2(0, -0.5) -shape = SubResource("RectangleShape2D_xj4ar") - -[node name="PlayerArea2D" type="Area2D" parent="."] -unique_name_in_owner = true -collision_layer = 2 -collision_mask = 2 -priority = 20 - -[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerArea2D"] -position = Vector2(0, -0.5) -shape = SubResource("RectangleShape2D_18i13") - -[node name="ItemFocusPhantomCamera2D" type="Node2D" parent="."] -unique_name_in_owner = true -position = Vector2(0, -122) -script = ExtResource("4_rloon") -zoom = Vector2(2, 2) -frame_preview = false -tween_resource = ExtResource("5_4iyk1") -follow_damping_value = Vector2(0, 0) -draw_limits = true - -[node name="InventoryPhantomCamera2D" type="Node2D" parent="."] -unique_name_in_owner = true -position = Vector2(-183, -5) -script = ExtResource("4_rloon") -zoom = Vector2(2.5, 2.5) -frame_preview = false -tween_resource = ExtResource("6_2h6fv") -follow_damping_value = Vector2(0, 0) -draw_limits = true diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_example_scene.tscn deleted file mode 100644 index 37f3cbf..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_example_scene.tscn +++ /dev/null @@ -1,357 +0,0 @@ -[gd_scene load_steps=40 format=3 uid="uid://cypbptekk8etg"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_u86qq"] -[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="2_jl1he"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="3_an0dt"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="4_iy6qn"] -[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="5_0ku52"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="6_prr6u"] -[ext_resource type="Script" uid="uid://uvw6pg1ut0ms" path="res://addons/phantom_camera/examples/scripts/3D/npc.gd" id="7_nl3ax"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="8_xvqcg"] -[ext_resource type="Script" uid="uid://bnhxcejvr6wi3" path="res://addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd" id="9_hqgwi"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="10_cd0kn"] - -[sub_resource type="Resource" id="Resource_jtk1d"] -script = ExtResource("6_prr6u") - -[sub_resource type="Resource" id="Resource_o161n"] -script = ExtResource("6_prr6u") - -[sub_resource type="BoxMesh" id="BoxMesh_7tjw4"] -size = Vector3(2, 0.5, 4) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hpllm"] -transparency = 1 -albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961) - -[sub_resource type="BoxShape3D" id="BoxShape3D_65o6h"] -size = Vector3(2, 0.5, 4) - -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_tpc7d"] - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_g0eml"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v5iy7"] -albedo_color = Color(0.988235, 0.478431, 0.905882, 1) - -[sub_resource type="Resource" id="Resource_tpvee"] -script = ExtResource("8_xvqcg") -duration = 0.0 - -[sub_resource type="Resource" id="Resource_bxbnv"] -script = ExtResource("6_prr6u") - -[sub_resource type="BoxShape3D" id="BoxShape3D_wcrbb"] -size = Vector3(6.8, 0.1, 5.4) - -[sub_resource type="Resource" id="Resource_7ih0k"] -script = ExtResource("8_xvqcg") -duration = 0.0 - -[sub_resource type="Resource" id="Resource_4iyps"] -script = ExtResource("6_prr6u") - -[sub_resource type="BoxShape3D" id="BoxShape3D_ctyr8"] -size = Vector3(7.4, 0.1, 3.6) - -[sub_resource type="Resource" id="Resource_x5y0u"] -script = ExtResource("8_xvqcg") -duration = 0.0 - -[sub_resource type="Resource" id="Resource_pgiyx"] -script = ExtResource("6_prr6u") - -[sub_resource type="BoxShape3D" id="BoxShape3D_ua072"] -size = Vector3(6.8, 0.1, 3.6) - -[sub_resource type="BoxMesh" id="BoxMesh_ugc3s"] -size = Vector3(1, 1, 2) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_68thd"] -albedo_color = Color(0.34902, 0.862745, 0.854902, 1) - -[sub_resource type="BoxMesh" id="BoxMesh_wphly"] -size = Vector3(1, 0.5, 1) - -[sub_resource type="BoxMesh" id="BoxMesh_gyp5s"] -size = Vector3(20, 40, 30) - -[sub_resource type="BoxShape3D" id="BoxShape3D_lfaqs"] -size = Vector3(20, 40, 30) - -[sub_resource type="BoxMesh" id="BoxMesh_n70lt"] -size = Vector3(14, 40, 6) - -[sub_resource type="BoxShape3D" id="BoxShape3D_jxmqm"] -size = Vector3(14, 40, 6) - -[sub_resource type="BoxMesh" id="BoxMesh_x0tgm"] -size = Vector3(8, 40, 1) - -[sub_resource type="BoxShape3D" id="BoxShape3D_t67ef"] -size = Vector3(50, 40, 1) - -[sub_resource type="BoxMesh" id="BoxMesh_rmslh"] -size = Vector3(0.5, 6, 13.5) - -[sub_resource type="BoxMesh" id="BoxMesh_242ij"] -size = Vector3(2, 3, 3) - -[sub_resource type="BoxMesh" id="BoxMesh_niuda"] -size = Vector3(8, 6, 0.5) - -[node name="Root" type="Node3D"] - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.999858, 0, 0, 0, 0.94884, 0.315632, 0, -0.315637, 0.948825, -2.53871, 2, 9.76232) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("1_u86qq") - -[node name="PlayerGroup" type="Node" parent="."] - -[node name="PlayerCharacterBody3D" parent="PlayerGroup" instance=ExtResource("2_jl1he")] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.53871, 0.5, 7.26232) - -[node name="MovementInstructionsLabel" type="Label3D" parent="PlayerGroup"] -transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, -2.47682, -0.0708016, 7.93048) -modulate = Color(0.294118, 1, 0.631373, 1) -text = "[WASD] to move" -font = ExtResource("3_an0dt") -font_size = 48 - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="PlayerGroup" node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.999858, 0, 0, 0, 0.94884, 0.315632, 0, -0.315637, 0.948825, -2.53871, 2, 9.76232) -top_level = true -script = ExtResource("4_iy6qn") -priority = 10 -follow_mode = 2 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = ExtResource("5_0ku52") -tween_on_load = false -camera_3d_resource = SubResource("Resource_jtk1d") -follow_offset = Vector3(0, 1.5, 2.5) -follow_damping = true -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="NPCGroup" type="Node" parent="."] - -[node name="NPCPhantomCamera3D" type="Node3D" parent="NPCGroup"] -unique_name_in_owner = true -transform = Transform3D(0.616596, -0.109786, 0.779587, -2.23517e-08, 0.990229, 0.13945, -0.78728, -0.0859841, 0.610571, -2.98802, 1.50739, 1.19719) -script = ExtResource("4_iy6qn") -tween_resource = ExtResource("5_0ku52") -camera_3d_resource = SubResource("Resource_o161n") - -[node name="NPCDescriptionLabel" type="Label3D" parent="NPCGroup"] -transform = Transform3D(1, 0, 0, 0, 0.866026, 0.5, 0, -0.5, 0.866025, -3.04693, 0.367287, 0.953757) -text = "Input Example" -font = ExtResource("3_an0dt") - -[node name="NPCDialogueExampleLabel" type="Label3D" parent="NPCGroup"] -unique_name_in_owner = true -transform = Transform3D(1, 4.54671e-10, 1.65487e-10, 4.25644e-10, 0.939693, 0.34202, 0, -0.34202, 0.939693, -4.46738, 1.58641, -0.253679) -modulate = Color(1, 0.603922, 0.254902, 1) -text = "Press [ F ] to change camera" -font = ExtResource("3_an0dt") - -[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="NPCGroup"] -transform = Transform3D(0.819152, 4.83851e-10, -0.573576, -3.92481e-09, 1, -6.3473e-09, 0.573576, 7.45058e-09, 0.819152, -3.46138, -0.4, 0.875321) -mesh = SubResource("BoxMesh_7tjw4") -skeleton = NodePath("../..") -surface_material_override/0 = SubResource("StandardMaterial3D_hpllm") -metadata/_edit_group_ = true - -[node name="NPCInteractionArea3D" type="Area3D" parent="NPCGroup/NPCInteractionZoneMesh"] -unique_name_in_owner = true -transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -monitorable = false - -[node name="NPCInterationCollisionShape3D" type="CollisionShape3D" parent="NPCGroup/NPCInteractionZoneMesh/NPCInteractionArea3D"] -shape = SubResource("BoxShape3D_65o6h") - -[node name="NPC" type="StaticBody3D" parent="NPCGroup"] -transform = Transform3D(1, 4.83851e-10, 0, 4.25644e-10, 1, -7.45058e-09, 0, 7.45058e-09, 1, -4.56338, 0.5, -0.272679) -script = ExtResource("7_nl3ax") - -[node name="PlayerCollisionShape3D2" type="CollisionShape3D" parent="NPCGroup/NPC"] -transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -shape = SubResource("CapsuleShape3D_tpc7d") - -[node name="NPCMesh" type="MeshInstance3D" parent="NPCGroup/NPC"] -transform = Transform3D(1, -2.68591e-26, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -mesh = SubResource("CapsuleMesh_g0eml") -skeleton = NodePath("../../..") -surface_material_override/0 = SubResource("StandardMaterial3D_v5iy7") - -[node name="MoveToLocation" type="Node3D" parent="NPCGroup"] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.70084, 0.5, 0.962891) - -[node name="FixedCameraTriggerZone" type="Node" parent="."] - -[node name="FixedCameraLabel" type="Label3D" parent="FixedCameraTriggerZone"] -unique_name_in_owner = true -transform = Transform3D(0.939693, 0.280167, -0.196175, 1.49012e-08, 0.573577, 0.819152, 0.34202, -0.769751, 0.538986, -0.538716, -0.247626, 3.13456) -text = "Fixed Camera -Example" -font = ExtResource("3_an0dt") - -[node name="NorthRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"] -transform = Transform3D(0.38357, -0.555836, 0.737507, -0.105898, 0.766851, 0.633027, -0.917417, -0.320912, 0.235279, 6.89638, 4.73986, 0.115512) -script = ExtResource("4_iy6qn") -tween_resource = SubResource("Resource_tpvee") -camera_3d_resource = SubResource("Resource_bxbnv") - -[node name="NorthRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, -0.45, -0.9) -priority = 5 -script = ExtResource("9_hqgwi") -area_pcam = NodePath("../NorthRoomPhantomCamera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/NorthRoomTrigger"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, -0.4) -shape = SubResource("BoxShape3D_wcrbb") - -[node name="EntryRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"] -transform = Transform3D(0.258818, -0.482963, 0.836515, 1.3027e-15, 0.866025, 0.499999, -0.965924, -0.129409, 0.224143, 6.69741, 4.73364, 4.02374) -script = ExtResource("4_iy6qn") -tween_resource = SubResource("Resource_7ih0k") -camera_3d_resource = SubResource("Resource_4iyps") - -[node name="EntryRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.00003, -0.454982, 3.00572) -priority = 5 -script = ExtResource("9_hqgwi") -area_pcam = NodePath("../EntryRoomPhantomCamera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/EntryRoomTrigger"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 0, 0.2) -shape = SubResource("BoxShape3D_ctyr8") - -[node name="SouthRoomPhantomCamera3D" type="Node3D" parent="FixedCameraTriggerZone"] -transform = Transform3D(-0.766043, -0.492403, 0.413175, 0, 0.642787, 0.766043, -0.642786, 0.586825, -0.492403, 6.89741, 4.73364, 5.62374) -script = ExtResource("4_iy6qn") -tween_resource = SubResource("Resource_x5y0u") -camera_3d_resource = SubResource("Resource_pgiyx") - -[node name="SouthRoomTrigger" type="Area3D" parent="FixedCameraTriggerZone" node_paths=PackedStringArray("area_pcam")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, -0.45, 6.7) -priority = 5 -script = ExtResource("9_hqgwi") -area_pcam = NodePath("../SouthRoomPhantomCamera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="FixedCameraTriggerZone/SouthRoomTrigger"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 0.1) -shape = SubResource("BoxShape3D_ua072") - -[node name="CSGMesh3D" type="CSGMesh3D" parent="FixedCameraTriggerZone"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.14238, 1.82571, 2.88655) -mesh = SubResource("BoxMesh_ugc3s") -material = SubResource("StandardMaterial3D_68thd") - -[node name="CSGMesh3D2" type="CSGMesh3D" parent="FixedCameraTriggerZone/CSGMesh3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00192642, -0.0120339, 0.00494432) -operation = 2 -mesh = SubResource("BoxMesh_wphly") -material = SubResource("StandardMaterial3D_68thd") - -[node name="Environment" type="Node" parent="."] - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="Environment" type="Node3D" parent="Environment"] - -[node name="Floor" parent="Environment/Environment" instance=ExtResource("10_cd0kn")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="West Wall" type="StaticBody3D" parent="Environment/Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0.5, 0) -metadata/_edit_group_ = true -metadata/_edit_lock_ = true - -[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/West Wall"] -mesh = SubResource("BoxMesh_gyp5s") -skeleton = NodePath("") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/West Wall"] -shape = SubResource("BoxShape3D_lfaqs") - -[node name="East Wall" type="StaticBody3D" parent="Environment/Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.999, 0.502, 0) -metadata/_edit_group_ = true -metadata/_edit_lock_ = true - -[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/East Wall"] -mesh = SubResource("BoxMesh_gyp5s") -skeleton = NodePath("") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/East Wall"] -shape = SubResource("BoxShape3D_lfaqs") - -[node name="North Wall" type="StaticBody3D" parent="Environment/Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -6.90828) -metadata/_edit_group_ = true -metadata/_edit_lock_ = true - -[node name="MeshInstance3D2" type="MeshInstance3D" parent="Environment/Environment/North Wall"] -mesh = SubResource("BoxMesh_n70lt") -skeleton = NodePath("") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/North Wall"] -shape = SubResource("BoxShape3D_jxmqm") - -[node name="South Wall" type="StaticBody3D" parent="Environment/Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 0.5, 9.087) -metadata/_edit_group_ = true - -[node name="MeshInstance3D3" type="MeshInstance3D" parent="Environment/Environment/South Wall"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0) -mesh = SubResource("BoxMesh_x0tgm") -skeleton = NodePath("") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Environment/Environment/South Wall"] -shape = SubResource("BoxShape3D_t67ef") - -[node name="FixedCamOuterWall" type="CSGMesh3D" parent="Environment/Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 2) -use_collision = true -mesh = SubResource("BoxMesh_rmslh") - -[node name="FixedCamOuterDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamOuterWall"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5, 1) -operation = 2 -mesh = SubResource("BoxMesh_242ij") - -[node name="FixedCamNorthWall" type="CSGMesh3D" parent="Environment/Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 2.5, 1) -use_collision = true -mesh = SubResource("BoxMesh_niuda") - -[node name="FixedCamNorthDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamNorthWall"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5, 0) -operation = 2 -mesh = SubResource("BoxMesh_242ij") - -[node name="FixedCamSouthWall" type="CSGMesh3D" parent="Environment/Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 2.5, 5.1) -use_collision = true -mesh = SubResource("BoxMesh_niuda") - -[node name="FixedCamSouthDoorway" type="CSGMesh3D" parent="Environment/Environment/FixedCamSouthWall"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.50541, 1.19209e-07) -operation = 2 -mesh = SubResource("BoxMesh_242ij") diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_framed_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_follow_framed_example_scene.tscn deleted file mode 100644 index b341d67..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_framed_example_scene.tscn +++ /dev/null @@ -1,148 +0,0 @@ -[gd_scene load_steps=10 format=3 uid="uid://cx7x48cpi8gcd"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_6uslv"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_5cpe8"] -[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="3_422w7"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_4qurp"] -[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_uw36d"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_i060b"] -[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_iyghi"] - -[sub_resource type="Resource" id="Resource_wg1pr"] -script = ExtResource("4_4qurp") - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"] -albedo_texture = ExtResource("7_iyghi") -uv1_triplanar = true -uv1_world_triplanar = true - -[node name="Root" type="Node3D"] - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.99995, 0, 0, 0, 0.79324, 0.608671, 0, -0.608675, 0.793235, 0, 2.934684, 3.17294) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("1_6uslv") - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="Player" type="Node" parent="."] - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.99995, 0, 0, 0, 0.79324, 0.608671, 0, -0.608675, 0.793235, 0, 2.934684, 3.17294) -top_level = true -script = ExtResource("2_5cpe8") -follow_mode = 5 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = ExtResource("3_422w7") -tween_on_load = false -camera_3d_resource = SubResource("Resource_wg1pr") -follow_damping = true -follow_distance = 4.0 -dead_zone_width = 0.139 -dead_zone_height = 0.14 -show_viewfinder_in_play = true -spring_length = 4.0 -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("5_uw36d")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("6_i060b")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.636134, 0.805455, -6.37532) -use_collision = true -radius = 1.71971 -height = 2.61091 -sides = 32 - -[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.54597, -0.540694, -3.39517) -use_collision = true -radius = 1.53269 -height = 2.5036 -sides = 32 - -[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.64877, -1.50101, 1.22863) -use_collision = true -radius = 1.57419 -height = 3.47475 -sides = 32 - -[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.4732, 0.805455, -8.78984) -use_collision = true -radius = 0.956285 -height = 2.61091 -sides = 32 - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.40027, -1.69814, 3.36997) -use_collision = true -radius = 3.34732 -rings = 32 - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.13768, -0.599204, -1.04651) -use_collision = true -radius = 2.65844 -rings = 32 - -[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.7976, -0.599204, -2.42244) -use_collision = true -radius = 2.14606 -rings = 32 - -[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.84078, -0.497663, 4.44352) -use_collision = true -inner_radius = 0.971543 -outer_radius = 2.15226 -sides = 32 -ring_sides = 18 - -[node name="CSGBox3D" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_auy8m") - -[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.88916, 0.760708, -6.1376) -use_collision = true -size = Vector3(2.64182, 2.52142, 2.30997) - -[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.83837, -0.241718, 7.14677) -use_collision = true -size = Vector3(3.80964, 1.67049, 0.932048) - -[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.34377, 0.138478, -4.36159) -use_collision = true -size = Vector3(1.53893, 1.27695, 1.80814) - -[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.9834, 0.138478, -1.89037) -use_collision = true -size = Vector3(4.03502, 1.27695, 5.2198) - -[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.38147, 0.0440434, 8.36617) -use_collision = true -size = Vector3(4.57784, 1.08809, 3.11285) diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_glued_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_follow_glued_example_scene.tscn deleted file mode 100644 index 51a6401..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_glued_example_scene.tscn +++ /dev/null @@ -1,198 +0,0 @@ -[gd_scene load_steps=14 format=3 uid="uid://d2lx45noxq685"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_7a3wq"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_158c0"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_ganw1"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_kig2n"] -[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_caky3"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_kkbaa"] -[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_i1dbs"] - -[sub_resource type="Resource" id="Resource_ucp3e"] -script = ExtResource("3_ganw1") - -[sub_resource type="Resource" id="Resource_ab013"] -script = ExtResource("4_kig2n") - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"] -albedo_color = Color(0.227451, 0.337255, 0.576471, 1) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"] -albedo_color = Color(0.227451, 0.337255, 0.576471, 1) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"] -albedo_texture = ExtResource("7_i1dbs") -uv1_triplanar = true -uv1_world_triplanar = true - -[node name="Node3D" type="Node3D"] - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.999954, 0, 0, 0, 0.638683, 0.769345, 0, -0.769298, 0.638723, 0, 6.39, 7) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("1_7a3wq") - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="Player" type="Node" parent="."] - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.999954, 0, 0, 0, 0.638683, 0.769345, 0, -0.769298, 0.638723, 0, 6.39, 7) -top_level = true -script = ExtResource("2_158c0") -priority = 5 -follow_mode = 1 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = SubResource("Resource_ucp3e") -tween_on_load = false -camera_3d_resource = SubResource("Resource_ab013") -follow_damping = true -follow_damping_value = Vector3(0.3, 0.3, 0.3) -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("5_caky3")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6.39, 7) -enable_gravity = false - -[node name="PlayerVisual" parent="Player/PlayerCharacterBody3D" index="2"] -visible = false - -[node name="NPCs" type="Node" parent="."] - -[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.04486, 0.519002, -1.52506) -mesh = SubResource("CapsuleMesh_2h36r") -skeleton = NodePath("") -surface_material_override/0 = SubResource("StandardMaterial3D_w3olp") - -[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.51494, 0.519, 4.06618) -mesh = SubResource("CapsuleMesh_2h36r") -skeleton = NodePath("") -surface_material_override/0 = SubResource("StandardMaterial3D_cw102") - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("6_kkbaa")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.62737, 0.805455, -6.37532) -use_collision = true -radius = 1.71971 -height = 2.61091 -sides = 32 - -[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.9378, 0.31181, -5.46661) -use_collision = true -radius = 2.77591 -height = 1.62362 -sides = 32 - -[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.58617, 0.31181, 6.6322) -use_collision = true -radius = 1.57419 -height = 3.47475 -sides = 32 - -[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.774, 0.201103, 2.71259) -use_collision = true -radius = 1.41311 -height = 1.40221 -sides = 32 - -[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.40488, 0.201101, 11.6804) -use_collision = true -radius = 2.21673 -height = 7.88261 -sides = 32 - -[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.20971, 0.805455, -8.78984) -use_collision = true -radius = 0.956285 -height = 2.61091 -sides = 32 - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.9771, -1.69814, -6.51262) -use_collision = true -radius = 3.34732 -rings = 32 - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.555532, -0.599204, 8.81048) -use_collision = true -radius = 2.65844 -rings = 32 - -[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.0611, -0.599204, -2.42244) -use_collision = true -radius = 2.14606 -rings = 32 - -[node name="CSGTorus3D" type="CSGTorus3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.21187, -1.90735e-06, 0.346393) -use_collision = true -inner_radius = 1.3 -outer_radius = 2.0 -sides = 32 -ring_sides = 18 - -[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.9283, -1.90735e-06, 7.89765) -use_collision = true -inner_radius = 0.971543 -outer_radius = 2.15226 -sides = 32 -ring_sides = 18 - -[node name="CSGBox3D" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.49828, 6.53866, -12.6331) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_auy8m") - -[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.15267, 0.760708, -6.1376) -use_collision = true -size = Vector3(2.64182, 2.52142, 2.30997) - -[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.3427, 0.335247, 8.22829) -use_collision = true -size = Vector3(3.80964, 1.67049, 0.932048) - -[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.08027, 0.138478, -4.36159) -use_collision = true -size = Vector3(1.53893, 1.27695, 1.80814) - -[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.7748, 0.138478, 5.20734) -use_collision = true -size = Vector3(4.03502, 1.27695, 5.2198) - -[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.1473, 1.78638, -1.60318) -use_collision = true -size = Vector3(4.57784, 4.57276, 3.11285) - -[editable path="Player/PlayerCharacterBody3D"] diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_group_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_follow_group_example_scene.tscn deleted file mode 100644 index 4d67690..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_group_example_scene.tscn +++ /dev/null @@ -1,172 +0,0 @@ -[gd_scene load_steps=13 format=3 uid="uid://cqy81q5p0tsda"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_3iw7y"] -[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="2_m6p13"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="3_65wck"] -[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="4_b0eay"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_i3ale"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_5hq8j"] -[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_7lab4"] - -[sub_resource type="Resource" id="Resource_1iman"] -script = ExtResource("5_i3ale") - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"] -albedo_color = Color(0.227451, 0.337255, 0.576471, 1) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"] -albedo_color = Color(0.227451, 0.337255, 0.576471, 1) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"] -albedo_texture = ExtResource("7_7lab4") -uv1_triplanar = true -uv1_world_triplanar = true - -[node name="Node3D" type="Node3D"] - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.999954, 0, 0, 0, 0.621285, 0.783464, 0, -0.783416, 0.621322, -7.2611566, 10.181164, 8.761762) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("1_3iw7y") - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="Player" type="Node" parent="."] - -[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("2_m6p13")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.083587, 0.5, 2.05493) - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_targets")] -unique_name_in_owner = true -transform = Transform3D(0.999954, 0, 0, 0, 0.621285, 0.783464, 0, -0.783416, 0.621322, -7.2611566, 10.181164, 8.761762) -top_level = true -script = ExtResource("3_65wck") -priority = 5 -follow_mode = 3 -follow_targets = [NodePath("../PlayerCharacterBody3D"), NodePath("../../NPCs/PlayerMeshInstance3D"), NodePath("../../NPCs/PlayerMeshInstance3D2")] -tween_resource = ExtResource("4_b0eay") -tween_on_load = false -camera_3d_resource = SubResource("Resource_1iman") -follow_damping = true -follow_distance = 5.0 -auto_follow_distance = true -auto_follow_distance_min = 5.0 -auto_follow_distance_max = 15.0 -auto_follow_distance_divisor = 20.0 -spring_length = 5.0 -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="NPCs" type="Node" parent="."] - -[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.6059, 0.519002, 0.128472) -mesh = SubResource("CapsuleMesh_2h36r") -skeleton = NodePath("") -surface_material_override/0 = SubResource("StandardMaterial3D_w3olp") - -[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.0461, 0.519, 0.249913) -mesh = SubResource("CapsuleMesh_2h36r") -skeleton = NodePath("") -surface_material_override/0 = SubResource("StandardMaterial3D_cw102") - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("6_5hq8j")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="Wall" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_auy8m") - -[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.6511, 0.805455, -6.37532) -use_collision = true -radius = 1.71971 -height = 2.61091 -sides = 32 - -[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.9141, 0.31181, -5.46661) -use_collision = true -radius = 2.77591 -height = 1.62362 -sides = 32 - -[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.6099, 0.31181, 6.6322) -use_collision = true -radius = 1.57419 -height = 3.47475 -sides = 32 - -[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.81402, 0.805455, -8.78984) -use_collision = true -radius = 0.956285 -height = 2.61091 -sides = 32 - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.95333, -1.69814, -6.51262) -use_collision = true -radius = 3.34732 -rings = 32 - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.4682, -0.599204, 8.81048) -use_collision = true -radius = 2.65844 -rings = 32 - -[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.0848, -0.599204, -2.42244) -use_collision = true -radius = 2.14606 -rings = 32 - -[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.90455, -1.90735e-06, 7.89765) -use_collision = true -inner_radius = 0.971543 -outer_radius = 2.15226 -sides = 32 -ring_sides = 18 - -[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.1764, 0.760708, -6.1376) -use_collision = true -size = Vector3(2.64182, 2.52142, 2.30997) - -[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.31901, 0.335247, 8.22829) -use_collision = true -size = Vector3(3.80964, 1.67049, 0.932048) - -[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.94346, 0.138478, -4.36159) -use_collision = true -size = Vector3(1.53893, 1.27695, 1.80814) - -[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.7985, 0.138478, 5.20734) -use_collision = true -size = Vector3(4.03502, 1.27695, 5.2198) - -[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.1236, 1.78638, -1.60318) -use_collision = true -size = Vector3(4.57784, 4.57276, 3.11285) diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_path_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_follow_path_example_scene.tscn deleted file mode 100644 index e0465aa..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_path_example_scene.tscn +++ /dev/null @@ -1,217 +0,0 @@ -[gd_scene load_steps=24 format=3 uid="uid://oo1y1sjdmr6k"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_p8ccw"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_8itog"] -[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="3_xqpq0"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_akuuo"] -[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_0nadx"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="6_mkxip"] -[ext_resource type="Script" uid="uid://cgknbkjar73w" path="res://addons/phantom_camera/examples/scripts/3D/path_follow.gd" id="7_g1m51"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="8_a1h2k"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="9_rk5lh"] - -[sub_resource type="Resource" id="Resource_ofv2c"] -script = ExtResource("4_akuuo") - -[sub_resource type="Resource" id="Resource_01tho"] -script = ExtResource("6_mkxip") -duration = 1.2 -transition = 3 - -[sub_resource type="Resource" id="Resource_syh5m"] -script = ExtResource("4_akuuo") - -[sub_resource type="Curve3D" id="Curve3D_b33df"] -_data = { -"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10), -"tilts": PackedFloat32Array(0, 0) -} -point_count = 2 - -[sub_resource type="BoxShape3D" id="BoxShape3D_aovgi"] -size = Vector3(6, 0.1, 10) - -[sub_resource type="BoxMesh" id="BoxMesh_0hdeh"] -size = Vector3(6, 0.1, 10) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fsm1b"] -transparency = 1 -albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961) - -[sub_resource type="Resource" id="Resource_xci4c"] -script = ExtResource("4_akuuo") - -[sub_resource type="Curve3D" id="Curve3D_8uw2x"] -_data = { -"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0), -"tilts": PackedFloat32Array(0, 0) -} -point_count = 2 - -[sub_resource type="BoxShape3D" id="BoxShape3D_ctnqu"] -size = Vector3(12, 0.1, 4) - -[sub_resource type="BoxMesh" id="BoxMesh_f6dp8"] -size = Vector3(12, 0.1, 4) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gwnkj"] -transparency = 1 -albedo_color = Color(0.568403, 0.988235, 0.762724, 0.0901961) - -[sub_resource type="BoxMesh" id="BoxMesh_7l3dh"] - -[sub_resource type="BoxMesh" id="BoxMesh_as6ok"] - -[node name="Root" type="Node3D"] - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.999807, -0.00216249, 0.00184445, 0, 0.648836, 0.760728, -0.00284214, -0.760718, 0.648839, 0, 2.5, 1.5) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("1_p8ccw") - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.999807, -0.00216249, 0.00184445, 0, 0.648836, 0.760728, -0.00284214, -0.760718, 0.648839, 0, 2.5, 1.5) -top_level = true -script = ExtResource("2_8itog") -priority = 10 -follow_mode = 2 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = ExtResource("3_xqpq0") -tween_on_load = false -camera_3d_resource = SubResource("Resource_ofv2c") -follow_offset = Vector3(0, 2, 1.5) -follow_damping = true -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("5_0nadx")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) - -[node name="Paths" type="Node" parent="."] - -[node name="PathPhantomCamera3D" type="Node3D" parent="Paths" node_paths=PackedStringArray("follow_target", "follow_path")] -transform = Transform3D(-4.37114e-08, -1, -4.37114e-08, 0, -4.37114e-08, 1, -1, 4.37114e-08, 1.91069e-15, -0.31028, 7.9199, -1.60976) -top_level = true -script = ExtResource("2_8itog") -priority = 2 -follow_mode = 4 -follow_target = NodePath("../../PlayerCharacterBody3D") -follow_path = NodePath("../FollowPath") -tween_resource = SubResource("Resource_01tho") -camera_3d_resource = SubResource("Resource_syh5m") -follow_damping = true -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="FollowPath" type="Path3D" parent="Paths"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.31028, 7.9199, -1.60976) -curve = SubResource("Curve3D_b33df") - -[node name="StraightPathFollowTrigger" type="Area3D" parent="Paths" node_paths=PackedStringArray("path_pcam")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0420399, -0.45, -6.73666) -priority = 5 -script = ExtResource("7_g1m51") -path_pcam = NodePath("../PathPhantomCamera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Paths/StraightPathFollowTrigger"] -shape = SubResource("BoxShape3D_aovgi") - -[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Paths/StraightPathFollowTrigger/CollisionShape3D"] -mesh = SubResource("BoxMesh_0hdeh") -skeleton = NodePath("../../../..") -surface_material_override/0 = SubResource("StandardMaterial3D_fsm1b") -metadata/_edit_group_ = true - -[node name="PathPhantomCamera3D2" type="Node3D" parent="Paths" node_paths=PackedStringArray("follow_target", "follow_path")] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 7.9199, -13.4572) -top_level = true -script = ExtResource("2_8itog") -priority = 2 -follow_mode = 4 -follow_target = NodePath("../../PlayerCharacterBody3D") -follow_path = NodePath("../FollowPath2") -tween_resource = SubResource("Resource_01tho") -camera_3d_resource = SubResource("Resource_xci4c") -follow_damping = true -follow_damping_value = Vector3(0.6, 0.1, 0.1) -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="FollowPath2" type="Path3D" parent="Paths"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.97141, 7.9199, -13.4572) -curve = SubResource("Curve3D_8uw2x") - -[node name="StraightPathFollowTrigger2" type="Area3D" parent="Paths" node_paths=PackedStringArray("path_pcam")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0420399, 0, -13.7367) -priority = 5 -script = ExtResource("7_g1m51") -path_pcam = NodePath("../PathPhantomCamera3D2") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Paths/StraightPathFollowTrigger2"] -shape = SubResource("BoxShape3D_ctnqu") - -[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Paths/StraightPathFollowTrigger2/CollisionShape3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.45, 0) -mesh = SubResource("BoxMesh_f6dp8") -skeleton = NodePath("../../../..") -surface_material_override/0 = SubResource("StandardMaterial3D_gwnkj") -metadata/_edit_group_ = true - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("8_a1h2k")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="Floor3" parent="Environment" instance=ExtResource("8_a1h2k")] -transform = Transform3D(6, 0, 0, 0, 1, 0, 0, 0, 1, -0.44204, 0, 1.76334) - -[node name="Floor2" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")] -transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 14, -0.516667, 1, -6.5) - -[node name="Floor5" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")] -transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 14, 0.65, 1, -6.5) - -[node name="Floor4" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")] -transform = Transform3D(2, 0, 0, 0, 3, 0, 0, 0, 1, 0.0666667, 1, -18) - -[node name="Floor6" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")] -transform = Transform3D(0.333333, 0, 0, 0, 3, 0, 0, 0, 1, -0.766667, 1, -13) -mesh = SubResource("BoxMesh_7l3dh") - -[node name="Floor8" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")] -transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 6, -1.01667, 1, -15.5) -mesh = SubResource("BoxMesh_as6ok") - -[node name="Floor9" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")] -transform = Transform3D(0.166667, 0, 0, 0, 3, 0, 0, 0, 6, 1.15, 1, -15.5) -mesh = SubResource("BoxMesh_as6ok") - -[node name="Floor7" parent="Environment/Floor3" instance=ExtResource("8_a1h2k")] -transform = Transform3D(0.333333, 0, 0, 0, 3, 0, 0, 0, 1, 0.9, 1, -13) -mesh = SubResource("BoxMesh_7l3dh") - -[node name="NPCDescriptionLabel" type="Label3D" parent="Environment"] -transform = Transform3D(5.21541e-08, -1, -7.7486e-07, -1.10675e-15, 2.23517e-07, 0.999999, -0.999999, -7.45058e-08, -5.68829e-14, -3.47306, 2.59595, -5.51755) -text = "Camera follows player while confined to a Path3D" -font = ExtResource("9_rk5lh") -font_size = 64 - -[node name="MovementInstructionsLabel" type="Label3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.02174, -0.455369, 0.570585) -modulate = Color(0.294118, 1, 0.631373, 1) -text = "[WASD] to move" -font = ExtResource("9_rk5lh") -font_size = 48 diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_simple_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_follow_simple_example_scene.tscn deleted file mode 100644 index 002e0b9..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_simple_example_scene.tscn +++ /dev/null @@ -1,151 +0,0 @@ -[gd_scene load_steps=11 format=3 uid="uid://c7uyfhhnrmkbx"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_gt67h"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_4ltlo"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_hldrt"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_pqibl"] -[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_o4k7v"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_m6ich"] -[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_pagh0"] - -[sub_resource type="Resource" id="Resource_28vpp"] -script = ExtResource("3_hldrt") - -[sub_resource type="Resource" id="Resource_axopo"] -script = ExtResource("4_pqibl") - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"] -albedo_texture = ExtResource("7_pagh0") -uv1_triplanar = true -uv1_world_triplanar = true - -[node name="Node3D2" type="Node3D"] - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.999954, 0, 0, 0, 0.906188, 0.422588, 0, -0.422562, 0.906243, -13.2122, 2.5, 10.40162) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("1_gt67h") - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="Player" type="Node" parent="."] - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="Player" node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.999954, 0, 0, 0, 0.906188, 0.422588, 0, -0.422562, 0.906243, -13.2122, 2.5, 10.40162) -top_level = true -script = ExtResource("2_4ltlo") -priority = 10 -follow_mode = 2 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = SubResource("Resource_28vpp") -tween_on_load = false -camera_3d_resource = SubResource("Resource_axopo") -follow_offset = Vector3(0, 2, 2) -follow_damping = true -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="PlayerCharacterBody3D" parent="Player" instance=ExtResource("5_o4k7v")] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.2122, 0.5, 8.40162) - -[node name="NPCs" type="Node" parent="."] - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("6_m6ich")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.6511, 0.805455, -6.37532) -use_collision = true -radius = 1.71971 -height = 2.61091 -sides = 32 - -[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.8332, -0.540694, -3.39517) -use_collision = true -radius = 1.53269 -height = 2.5036 -sides = 32 - -[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.936, -1.50101, 1.22863) -use_collision = true -radius = 1.57419 -height = 3.47475 -sides = 32 - -[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.81402, 0.805455, -8.78984) -use_collision = true -radius = 0.956285 -height = 2.61091 -sides = 32 - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23.6875, -1.69814, 3.36997) -use_collision = true -radius = 3.34732 -rings = 32 - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.14955, -0.599204, -1.04651) -use_collision = true -radius = 2.65844 -rings = 32 - -[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.0848, -0.599204, -2.42244) -use_collision = true -radius = 2.14606 -rings = 32 - -[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.44645, -0.497663, 4.44352) -use_collision = true -inner_radius = 0.971543 -outer_radius = 2.15226 -sides = 32 -ring_sides = 18 - -[node name="CSGBox3D" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.52545, 6.53866, -12.6331) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_auy8m") - -[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.1764, 0.760708, -6.1376) -use_collision = true -size = Vector3(2.64182, 2.52142, 2.30997) - -[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.1256, 0.335247, 7.14677) -use_collision = true -size = Vector3(3.80964, 1.67049, 0.932048) - -[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.94346, 0.138478, -4.36159) -use_collision = true -size = Vector3(1.53893, 1.27695, 1.80814) - -[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.30382, 0.138478, -1.89037) -use_collision = true -size = Vector3(4.03502, 1.27695, 5.2198) - -[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.04727, 0.0440434, 8.36617) -use_collision = true -size = Vector3(4.57784, 1.08809, 3.11285) diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_attribtues_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_attribtues_example_scene.tscn deleted file mode 100644 index 16abe44..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_attribtues_example_scene.tscn +++ /dev/null @@ -1,195 +0,0 @@ -[gd_scene load_steps=21 format=3 uid="uid://bklrp02eywxsx"] - -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="1_s26cy"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="2_m2d6w"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="3_l7kg8"] -[ext_resource type="PackedScene" uid="uid://bhd1kwv2fwj1y" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn" id="4_qcyfd"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="5_8von1"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_o1fj6"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="7_amcmx"] -[ext_resource type="Texture2D" uid="uid://c3mskbmvnpwux" path="res://addons/phantom_camera/examples/textures/3D/target.png" id="8_rjcgw"] - -[sub_resource type="Resource" id="Resource_8fhct"] -script = ExtResource("2_m2d6w") -duration = 0.3 -transition = 2 -ease = 1 - -[sub_resource type="Resource" id="Resource_7m0fv"] -script = ExtResource("3_l7kg8") - -[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_i42vj"] -dof_blur_far_enabled = true -dof_blur_far_distance = 5.99 -dof_blur_near_enabled = true -dof_blur_near_distance = 0.05 -dof_blur_amount = 0.21 - -[sub_resource type="Resource" id="Resource_e7t18"] -script = ExtResource("2_m2d6w") -duration = 0.4 -transition = 2 -ease = 1 - -[sub_resource type="Resource" id="Resource_jogxh"] -script = ExtResource("3_l7kg8") -h_offset = 1.0 - -[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_fvhx5"] -dof_blur_far_enabled = true -dof_blur_far_distance = 31.1 -dof_blur_near_enabled = true -dof_blur_near_distance = 1.79 - -[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_pst8q"] -dof_blur_far_enabled = true -dof_blur_far_distance = 5.99 -dof_blur_near_enabled = true -dof_blur_near_distance = 0.05 -dof_blur_amount = 0.21 - -[sub_resource type="BoxMesh" id="BoxMesh_wsigl"] -size = Vector3(1, 10, 20) - -[sub_resource type="Resource" id="Resource_afrr1"] -script = ExtResource("2_m2d6w") -duration = 0.6 -transition = 3 -ease = 1 - -[sub_resource type="Resource" id="Resource_unpfd"] -script = ExtResource("3_l7kg8") - -[sub_resource type="CylinderMesh" id="CylinderMesh_sm466"] -top_radius = 1.51 -height = 0.2 - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hp48l"] -transparency = 1 -albedo_texture = ExtResource("8_rjcgw") -uv1_scale = Vector3(1.91, 1.91, 1.91) -uv1_offset = Vector3(0.025, -0.927, 0) - -[node name="Root" type="Node3D"] - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.99990255, 0.013962194, 0, -0.013962194, 0.99990255, 0, 0, 0, 1, -0.019, 0.5, 8.769) -script = ExtResource("1_s26cy") -priority = 10 -follow_mode = 6 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = SubResource("Resource_8fhct") -tween_on_load = false -camera_3d_resource = SubResource("Resource_7m0fv") -attributes = SubResource("CameraAttributesPractical_i42vj") -follow_damping = true -follow_distance = 3.5 -spring_length = 3.5 -align_transform_with_view = Callable() -align_position_with_view = Callable() -align_rotation_with_view = Callable() - -[node name="PlayerAimPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.99990255, 0.013962194, 0, -0.013962194, 0.99990255, 0, 0, 0, 1, -0.019, 1.47, 6.37) -script = ExtResource("1_s26cy") -follow_mode = 6 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = SubResource("Resource_e7t18") -tween_on_load = false -camera_3d_resource = SubResource("Resource_jogxh") -attributes = SubResource("CameraAttributesPractical_fvhx5") -follow_offset = Vector3(0, 0.97, -0.399) -follow_damping_value = Vector3(0, 0, 0) -follow_distance = 1.5 -spring_length = 1.5 -align_transform_with_view = Callable() -align_position_with_view = Callable() -align_rotation_with_view = Callable() - -[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("4_qcyfd")] -unique_name_in_owner = true -transform = Transform3D(0.999903, 0.0139622, 0, -0.0139622, 0.999903, 0, 0, 0, 1, -0.019, 0.5, 5.269) - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.99990255, 0.013962194, 0, -0.013962194, 0.99990255, 0, 0, 0, 1, -0.019, 0.5, 8.769) -attributes = SubResource("CameraAttributesPractical_pst8q") - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("5_8von1") - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("6_o1fj6")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="Wall" parent="Environment" instance=ExtResource("6_o1fj6")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.5, 4.5, 0) -mesh = SubResource("BoxMesh_wsigl") -metadata/_edit_lock_ = true - -[node name="Wall2" parent="Environment" instance=ExtResource("6_o1fj6")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 4.5, 0) -mesh = SubResource("BoxMesh_wsigl") -metadata/_edit_lock_ = true - -[node name="Wall3" parent="Environment" instance=ExtResource("6_o1fj6")] -transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, 10.5) -mesh = SubResource("BoxMesh_wsigl") -metadata/_edit_lock_ = true - -[node name="Wall4" parent="Environment" instance=ExtResource("6_o1fj6")] -transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, -9.5) -mesh = SubResource("BoxMesh_wsigl") -metadata/_edit_lock_ = true - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="CeilingPhantomCamera3D" type="Node3D" parent="."] -unique_name_in_owner = true -transform = Transform3D(-4.37114e-08, -1, 2.98023e-08, 0, 2.98023e-08, 1, -1, 4.37114e-08, -1.3027e-15, -0.200665, 13.366, -0.162648) -script = ExtResource("1_s26cy") -tween_resource = SubResource("Resource_afrr1") -camera_3d_resource = SubResource("Resource_unpfd") - -[node name="MovementInstructionsLabel" type="Label3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 1.44357) -visible = false -modulate = Color(0.294118, 1, 0.631373, 1) -text = "[WASD] to move" -font = ExtResource("7_amcmx") -font_size = 48 - -[node name="MovementInstructionsLabel3" type="Label3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 0.817134) -visible = false -modulate = Color(0.294118, 1, 0.631373, 1) -text = "[Right Mouse Click] to \"aim\"" -font = ExtResource("7_amcmx") -font_size = 48 - -[node name="MovementInstructionsLabel2" type="Label3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.0440154, -0.490478, -6.30248) -visible = false -modulate = Color(0.294118, 1, 0.631373, 1) -text = "[Space] to toggle PCam" -font = ExtResource("7_amcmx") -font_size = 48 - -[node name="MeshInstance3D" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0.260217, 1.60477, -9.07797) -mesh = SubResource("CylinderMesh_sm466") -surface_material_override/0 = SubResource("StandardMaterial3D_hp48l") - -[node name="MeshInstance3D3" type="MeshInstance3D" parent="."] -transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 0.0525861, 1.60477, 9.98156) -mesh = SubResource("CylinderMesh_sm466") -surface_material_override/0 = SubResource("StandardMaterial3D_hp48l") diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_example_scene.tscn deleted file mode 100644 index 7018007..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_example_scene.tscn +++ /dev/null @@ -1,166 +0,0 @@ -[gd_scene load_steps=16 format=3 uid="uid://ceelq6qrb41uf"] - -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="2_47xf2"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_whx47"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="4_lii5s"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_jt2lp"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="5_oc4q1"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="7_kg7u1"] -[ext_resource type="PackedScene" uid="uid://bhd1kwv2fwj1y" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn" id="7_kut0u"] - -[sub_resource type="Resource" id="Resource_8fhct"] -script = ExtResource("2_47xf2") -duration = 0.3 -transition = 2 -ease = 1 - -[sub_resource type="Resource" id="Resource_7m0fv"] -script = ExtResource("5_jt2lp") - -[sub_resource type="Resource" id="Resource_e7t18"] -script = ExtResource("2_47xf2") -duration = 0.3 -transition = 2 -ease = 1 - -[sub_resource type="Resource" id="Resource_jogxh"] -script = ExtResource("5_jt2lp") -h_offset = 1.0 - -[sub_resource type="BoxMesh" id="BoxMesh_wsigl"] -size = Vector3(1, 10, 20) - -[sub_resource type="BoxMesh" id="BoxMesh_bj3re"] -size = Vector3(1, 7, 7) - -[sub_resource type="Resource" id="Resource_afrr1"] -script = ExtResource("2_47xf2") -duration = 0.6 -transition = 3 -ease = 1 - -[sub_resource type="Resource" id="Resource_ioijp"] -script = ExtResource("5_jt2lp") - -[node name="Root" type="Node3D"] - -[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("7_kut0u")] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 0.8660252, 0.5000003, 0, -0.5000003, 0.8660252, 0, 2.250001, 3.0310884) -script = ExtResource("2_whx47") -priority = 10 -follow_mode = 6 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = SubResource("Resource_8fhct") -tween_on_load = false -camera_3d_resource = SubResource("Resource_7m0fv") -follow_damping = true -follow_distance = 3.5 -vertical_rotation_offset = 0.523599 -spring_length = 3.5 -align_transform_with_view = Callable() -align_position_with_view = Callable() -align_rotation_with_view = Callable() - -[node name="PlayerAimPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.584, 1.3, 1.1010001) -script = ExtResource("2_whx47") -follow_mode = 6 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = SubResource("Resource_e7t18") -tween_on_load = false -camera_3d_resource = SubResource("Resource_jogxh") -follow_offset = Vector3(0.584, 0.8, -0.399) -follow_distance = 1.5 -spring_length = 1.5 -align_transform_with_view = Callable() -align_position_with_view = Callable() -align_rotation_with_view = Callable() - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(1, 0, 0, 0, 0.8660252, 0.5000003, 0, -0.5000003, 0.8660252, 0, 2.250001, 3.0310884) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("5_oc4q1") - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("4_lii5s")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="Wall" parent="Environment" instance=ExtResource("4_lii5s")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.5, 4.5, 0) -mesh = SubResource("BoxMesh_wsigl") -metadata/_edit_lock_ = true - -[node name="Wall5" parent="Environment" instance=ExtResource("4_lii5s")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.133, 3, -6.5) -mesh = SubResource("BoxMesh_bj3re") -metadata/_edit_lock_ = true - -[node name="Wall6" parent="Environment" instance=ExtResource("4_lii5s")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 3, 0) -mesh = SubResource("BoxMesh_bj3re") -metadata/_edit_lock_ = true - -[node name="Wall7" parent="Environment" instance=ExtResource("4_lii5s")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, 3, 0) -mesh = SubResource("BoxMesh_bj3re") -metadata/_edit_lock_ = true - -[node name="Wall2" parent="Environment" instance=ExtResource("4_lii5s")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 4.5, 0) -mesh = SubResource("BoxMesh_wsigl") -metadata/_edit_lock_ = true - -[node name="Wall3" parent="Environment" instance=ExtResource("4_lii5s")] -transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, 10.5) -mesh = SubResource("BoxMesh_wsigl") -metadata/_edit_lock_ = true - -[node name="Wall4" parent="Environment" instance=ExtResource("4_lii5s")] -transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 4.5, -9.5) -mesh = SubResource("BoxMesh_wsigl") -metadata/_edit_lock_ = true - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="CeilingPhantomCamera3D" type="Node3D" parent="."] -unique_name_in_owner = true -transform = Transform3D(-4.37114e-08, -1, 2.98023e-08, 0, 2.98023e-08, 1, -1, 4.37114e-08, -1.3027e-15, -0.200665, 13.366, -0.162648) -script = ExtResource("2_whx47") -tween_resource = SubResource("Resource_afrr1") -camera_3d_resource = SubResource("Resource_ioijp") - -[node name="MovementInstructionsLabel" type="Label3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 1.44357) -modulate = Color(0.294118, 1, 0.631373, 1) -text = "[WASD] to move" -font = ExtResource("7_kg7u1") -font_size = 48 - -[node name="MovementInstructionsLabel3" type="Label3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.0505604, -0.484909, 0.817134) -modulate = Color(0.294118, 1, 0.631373, 1) -text = "[Right Mouse Click] to \"aim\"" -font = ExtResource("7_kg7u1") -font_size = 48 - -[node name="MovementInstructionsLabel2" type="Label3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, -0.0440154, -0.490478, -6.30248) -modulate = Color(0.294118, 1, 0.631373, 1) -text = "[Space] to toggle PCam" -font = ExtResource("7_kg7u1") -font_size = 48 diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_look_at_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_look_at_example_scene.tscn deleted file mode 100644 index d058f10..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_look_at_example_scene.tscn +++ /dev/null @@ -1,187 +0,0 @@ -[gd_scene load_steps=14 format=3 uid="uid://dsfixtpa5xwqt"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_jbmnd"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="2_t3gk2"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="3_b2lea"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="4_mqo2b"] -[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="5_pxkua"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="6_uuxs3"] -[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="7_0dyt0"] - -[sub_resource type="Resource" id="Resource_pwcgo"] -script = ExtResource("3_b2lea") - -[sub_resource type="Resource" id="Resource_ft2w3"] -script = ExtResource("4_mqo2b") - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_2h36r"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w3olp"] -albedo_color = Color(0.227451, 0.337255, 0.576471, 1) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cw102"] -albedo_color = Color(0.227451, 0.337255, 0.576471, 1) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_auy8m"] -albedo_texture = ExtResource("7_0dyt0") -uv1_triplanar = true -uv1_world_triplanar = true - -[node name="Root" type="Node3D"] - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.99976534, 0.0105280895, -0.018931806, -4.656613e-10, 0.873953, 0.48601043, 0.021662269, -0.4858964, 0.87374794, -0.137901, 4.03222, 6.36446) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("1_jbmnd") - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="PhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("look_at_target")] -transform = Transform3D(0.999765, 0.01052809, -0.018931821, -4.6566112e-10, 0.8739531, 0.48601085, 0.021662261, -0.48589647, 0.87374866, -0.137901, 4.03222, 6.36446) -script = ExtResource("2_t3gk2") -priority = 10 -look_at_mode = 2 -look_at_target = NodePath("../PlayerCharacterBody3D") -tween_resource = SubResource("Resource_pwcgo") -tween_on_load = false -camera_3d_resource = SubResource("Resource_ft2w3") -look_at_damping = true -align_transform_with_view = Callable() -align_rotation_with_view = Callable() - -[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("5_pxkua")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) - -[node name="NPCs" type="Node" parent="."] - -[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="NPCs"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.96028, 0.519002, -1.52506) -mesh = SubResource("CapsuleMesh_2h36r") -skeleton = NodePath("") -surface_material_override/0 = SubResource("StandardMaterial3D_w3olp") - -[node name="PlayerMeshInstance3D2" type="MeshInstance3D" parent="NPCs"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.59952, 0.519, 4.06618) -mesh = SubResource("CapsuleMesh_2h36r") -skeleton = NodePath("") -surface_material_override/0 = SubResource("StandardMaterial3D_cw102") - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("6_uuxs3")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.00548, 0.805455, -6.37532) -use_collision = true -radius = 1.71971 -height = 2.61091 -sides = 32 - -[node name="CSGCylinder3D5" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.5597, 0.31181, -5.46661) -use_collision = true -radius = 2.77591 -height = 1.62362 -sides = 32 - -[node name="CSGCylinder3D6" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.96428, 0.31181, 6.6322) -use_collision = true -radius = 1.57419 -height = 3.47475 -sides = 32 - -[node name="CSGCylinder3D3" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.3959, 0.201103, 2.71259) -use_collision = true -radius = 1.41311 -height = 1.40221 -sides = 32 - -[node name="CSGCylinder3D4" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.02677, 0.201101, 11.6804) -use_collision = true -radius = 2.21673 -height = 7.88261 -sides = 32 - -[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.8316, 0.805455, -8.78984) -use_collision = true -radius = 0.956285 -height = 2.61091 -sides = 32 - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.5989, -1.69814, -6.51262) -use_collision = true -radius = 3.34732 -rings = 32 - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.17742, -0.599204, 8.81048) -use_collision = true -radius = 2.65844 -rings = 32 - -[node name="CSGSphere3D3" type="CSGSphere3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.4392, -0.599204, -2.42244) -use_collision = true -radius = 2.14606 -rings = 32 - -[node name="CSGTorus3D" type="CSGTorus3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.58998, -1.90735e-06, 0.346393) -use_collision = true -inner_radius = 1.3 -outer_radius = 2.0 -sides = 32 -ring_sides = 18 - -[node name="CSGTorus3D2" type="CSGTorus3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22.5502, -1.90735e-06, 7.89765) -use_collision = true -inner_radius = 0.971543 -outer_radius = 2.15226 -sides = 32 -ring_sides = 18 - -[node name="CSGBox3D" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.1202, 6.53866, -12.6331) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_auy8m") - -[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53078, 0.760708, -6.1376) -use_collision = true -size = Vector3(2.64182, 2.52142, 2.30997) - -[node name="CSGBox3D5" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.9646, 0.335247, 8.22829) -use_collision = true -size = Vector3(3.80964, 1.67049, 0.932048) - -[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.70216, 0.138478, -4.36159) -use_collision = true -size = Vector3(1.53893, 1.27695, 1.80814) - -[node name="CSGBox3D6" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.1529, 0.138478, 5.20734) -use_collision = true -size = Vector3(4.03502, 1.27695, 5.2198) - -[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.7692, 1.78638, -1.60318) -use_collision = true -size = Vector3(4.57784, 4.57276, 3.11285) diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_noise_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_noise_example_scene.tscn deleted file mode 100644 index 846ae98..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_noise_example_scene.tscn +++ /dev/null @@ -1,170 +0,0 @@ -[gd_scene load_steps=21 format=3 uid="uid://d0fyuvesb472p"] - -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="1_25rmy"] -[ext_resource type="Script" uid="uid://x5g7kf5k2mac" path="res://addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd" id="2_7nd2u"] -[ext_resource type="Script" uid="uid://cuffvge5ad4aa" path="res://addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd" id="3_t4fhv"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="4_tnm2f"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="5_4webr"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="6_dmm4a"] -[ext_resource type="Script" uid="uid://ccmiitq0sdh7j" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd" id="7_2vtho"] -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="8_bw5oq"] -[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="9_jpkpr"] -[ext_resource type="FontFile" uid="uid://dve7mgsjik4dg" path="res://addons/phantom_camera/fonts/Nunito-Regular.ttf" id="10_8pr3k"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="11_vp57v"] - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_yvgu3"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vc6km"] -albedo_color = Color(0.988235, 0.498039, 0.498039, 1) - -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_lsrh7"] -radius = 0.269454 - -[sub_resource type="Resource" id="Resource_lhgur"] -script = ExtResource("5_4webr") - -[sub_resource type="Resource" id="Resource_ghjuj"] -script = ExtResource("6_dmm4a") - -[sub_resource type="Resource" id="Resource_2l4w0"] -script = ExtResource("3_t4fhv") -amplitude = 40.0 -randomize_noise_seed = 0 -rotational_multiplier_z = 0.0 -positional_multiplier_x = 0.1 -positional_multiplier_y = 0.1 -positional_multiplier_z = 0.1 - -[sub_resource type="Resource" id="Resource_6tnhy"] -script = ExtResource("3_t4fhv") -frequency = 20.0 -randomize_noise_seed = 0 -noise_seed = 928 -rotational_multiplier_z = 0.1 - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qi01t"] -albedo_texture = ExtResource("9_jpkpr") -uv1_triplanar = true -uv1_world_triplanar = true - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ey47a"] -bg_color = Color(0.0784314, 0.109804, 0.129412, 1) -border_width_right = 4 -border_width_bottom = 4 -border_color = Color(0.227451, 0.72549, 0.603922, 1) -corner_radius_bottom_right = 20 -expand_margin_bottom = 6.0 - -[node name="Root" type="Node3D"] - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.096600816, -0.02989527, 0.9948742, 0, 0.99954885, 0.030035738, -0.99532324, -0.0029014763, 0.09655723, -16.46, 0.5, 4.249) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("1_25rmy") - -[node name="PlayerCharacterBody3D" type="CharacterBody3D" parent="."] -unique_name_in_owner = true -transform = Transform3D(0.999897, 0.0143636, 0, -0.0143636, 0.999897, 0, 0, 0, 1, -16.46, 0.5, 4.249) -script = ExtResource("2_7nd2u") - -[node name="PlayerVisual" type="MeshInstance3D" parent="PlayerCharacterBody3D"] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.76837e-05, 0.00331134, 0) -mesh = SubResource("CapsuleMesh_yvgu3") -surface_material_override/0 = SubResource("StandardMaterial3D_vc6km") - -[node name="PlayerArea3D" type="Area3D" parent="PlayerCharacterBody3D"] - -[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerCharacterBody3D/PlayerArea3D"] -shape = SubResource("CapsuleShape3D_lsrh7") - -[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="PlayerCharacterBody3D"] -shape = SubResource("CapsuleShape3D_lsrh7") - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.00441533, 0, 0.999915, 0, 0.999995, 0, -0.999923, 0, 0.00441529, -16.46, 0.5, 4.249) -top_level = true -script = ExtResource("4_tnm2f") -priority = 10 -follow_mode = 2 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = SubResource("Resource_lhgur") -tween_on_load = false -camera_3d_resource = SubResource("Resource_ghjuj") -noise = SubResource("Resource_2l4w0") -noise_emitter_layer = 1 -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="PlayerPhantomCameraNoiseEmitter3D" type="Node3D" parent="."] -unique_name_in_owner = true -transform = Transform3D(-4.37085e-08, 0, 0.999925, 0, 0.999995, 0, -0.999933, 0, -4.37081e-08, -16.46, 0.503767, 4.249) -script = ExtResource("7_2vtho") -noise = SubResource("Resource_6tnhy") -duration = 0.1 -decay_time = 0.1 - -[node name="Environment" type="Node" parent="."] - -[node name="Floor" parent="Environment" instance=ExtResource("8_bw5oq")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="CSGBox3D" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.525, 6.539, 2.5) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_qi01t") - -[node name="CSGBox3D3" type="CSGBox3D" parent="Environment"] -transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 8.83707, 6.53866, -1.80739) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_qi01t") - -[node name="CSGBox3D4" type="CSGBox3D" parent="Environment"] -transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -38.9392, 6.53866, -1.80739) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_qi01t") - -[node name="CSGBox3D2" type="CSGBox3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.525, 6.539, 6) -use_collision = true -size = Vector3(178.429, 14.0773, 1) -material = SubResource("StandardMaterial3D_qi01t") - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="EmitterTip" type="Panel" parent="."] -unique_name_in_owner = true -visible = false -anchors_preset = -1 -anchor_right = 0.3 -anchor_bottom = 0.1 -theme_override_styles/panel = SubResource("StyleBoxFlat_ey47a") - -[node name="Guidance" type="RichTextLabel" parent="EmitterTip"] -layout_mode = 1 -anchors_preset = -1 -anchor_top = 0.5 -anchor_right = 1.0 -anchor_bottom = 0.5 -grow_horizontal = 2 -grow_vertical = 2 -size_flags_vertical = 8 -theme_override_fonts/normal_font = ExtResource("10_8pr3k") -theme_override_fonts/bold_font = ExtResource("11_vp57v") -theme_override_font_sizes/normal_font_size = 18 -theme_override_font_sizes/bold_font_size = 24 -bbcode_enabled = true -text = "[center]Press [b]Q[/b] to trigger Noise Emitter" -fit_content = true diff --git a/addons/phantom_camera/examples/example_scenes/3D/3d_tweening_example_scene.tscn b/addons/phantom_camera/examples/example_scenes/3D/3d_tweening_example_scene.tscn deleted file mode 100644 index b86c70f..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/3d_tweening_example_scene.tscn +++ /dev/null @@ -1,238 +0,0 @@ -[gd_scene load_steps=22 format=3 uid="uid://cvnbgtbaxwj5p"] - -[ext_resource type="PackedScene" uid="uid://cixlwqycoox8h" path="res://addons/phantom_camera/examples/models/3d_cube_dark.tscn" id="1_d55xf"] -[ext_resource type="Script" uid="uid://bd046eokvcnu2" path="res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd" id="2_d1opf"] -[ext_resource type="Script" uid="uid://csjccrhj5wnx7" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd" id="3_4whss"] -[ext_resource type="Resource" uid="uid://cptfoggk2ok67" path="res://addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres" id="4_8ap1e"] -[ext_resource type="Script" uid="uid://b8hhnqsugykly" path="res://addons/phantom_camera/scripts/resources/camera_3d_resource.gd" id="5_1sgnu"] -[ext_resource type="PackedScene" uid="uid://cb83in8f0tbb1" path="res://addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn" id="6_lr46m"] -[ext_resource type="Script" uid="uid://bnhxcejvr6wi3" path="res://addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd" id="7_istoq"] -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="8_qepee"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="9_ptb3h"] - -[sub_resource type="Resource" id="Resource_0dtvs"] -script = ExtResource("5_1sgnu") - -[sub_resource type="BoxShape3D" id="BoxShape3D_j6fha"] -size = Vector3(5, 0.1, 4) - -[sub_resource type="BoxMesh" id="BoxMesh_xg4en"] -size = Vector3(5, 0.1, 4) - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2dct5"] -transparency = 1 -albedo_color = Color(0.988235, 0.478431, 0.905882, 0.0901961) - -[sub_resource type="Resource" id="Resource_v8ndi"] -script = ExtResource("8_qepee") -duration = 0.6 - -[sub_resource type="Resource" id="Resource_kmep1"] -script = ExtResource("5_1sgnu") - -[sub_resource type="Resource" id="Resource_uxg44"] -script = ExtResource("8_qepee") -duration = 0.3 -transition = 1 - -[sub_resource type="Resource" id="Resource_eu3bc"] -script = ExtResource("5_1sgnu") - -[sub_resource type="Resource" id="Resource_0nci0"] -script = ExtResource("8_qepee") -duration = 0.3 -transition = 8 - -[sub_resource type="Resource" id="Resource_u0lff"] -script = ExtResource("5_1sgnu") - -[sub_resource type="Resource" id="Resource_50m5g"] -script = ExtResource("8_qepee") -duration = 1.2 -transition = 10 - -[sub_resource type="Resource" id="Resource_rexf8"] -script = ExtResource("5_1sgnu") - -[node name="Root" type="Node3D"] - -[node name="Environment" type="Node" parent="."] - -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"] -transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 8, 0) -metadata/_edit_lock_ = true - -[node name="Floor" parent="Environment" instance=ExtResource("1_d55xf")] -transform = Transform3D(1000, 0, 0, 0, 1, 0, 0, 0, 1000, 0, -1, 0) -metadata/_edit_lock_ = true - -[node name="MainCamera3D" type="Camera3D" parent="."] -unique_name_in_owner = true -physics_interpolation_mode = 1 -transform = Transform3D(0.999889, 0, 0, 0, 0.707092, 0.707088, 0, -0.707092, 0.707088, 0, 2.5, 3.19136) - -[node name="PhantomCameraHost" type="Node" parent="MainCamera3D"] -process_priority = 300 -process_physics_priority = 300 -script = ExtResource("2_d1opf") - -[node name="------------------" type="Node" parent="."] - -[node name="PlayerPhantomCamera3D" type="Node3D" parent="." node_paths=PackedStringArray("follow_target")] -unique_name_in_owner = true -transform = Transform3D(0.999889, 0, 0, 0, 0.707092, 0.707088, 0, -0.707092, 0.707088, 0, 2.5, 3.19136) -top_level = true -script = ExtResource("3_4whss") -priority = 3 -follow_mode = 2 -follow_target = NodePath("../PlayerCharacterBody3D") -tween_resource = ExtResource("4_8ap1e") -tween_on_load = false -camera_3d_resource = SubResource("Resource_0dtvs") -follow_offset = Vector3(0, 2, 2) -follow_damping = true -align_transform_with_view = Callable() -align_position_with_view = Callable() - -[node name="PlayerCharacterBody3D" parent="." instance=ExtResource("6_lr46m")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 1.19136) - -[node name="-------------------" type="Node" parent="."] - -[node name="Tweening Example" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.97) - -[node name="Linear" type="Node3D" parent="Tweening Example"] - -[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Linear" node_paths=PackedStringArray("area_pcam")] -priority = 5 -script = ExtResource("7_istoq") -area_pcam = NodePath("../PhantomCamera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Linear/EntryRoomTrigger"] -shape = SubResource("BoxShape3D_j6fha") - -[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Linear/EntryRoomTrigger"] -mesh = SubResource("BoxMesh_xg4en") -skeleton = NodePath("../../../../..") -surface_material_override/0 = SubResource("StandardMaterial3D_2dct5") -metadata/_edit_group_ = true - -[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Linear"] -transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3) -script = ExtResource("3_4whss") -tween_resource = SubResource("Resource_v8ndi") -camera_3d_resource = SubResource("Resource_kmep1") - -[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Linear"] -transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, -1.8, 0.5, 0) -text = "Transition Type: -Linear - -Duration: -0.6s" -font = ExtResource("9_ptb3h") -font_size = 48 - -[node name="Sine" type="Node3D" parent="Tweening Example"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -7.4) - -[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Sine" node_paths=PackedStringArray("area_pcam")] -priority = 5 -script = ExtResource("7_istoq") -area_pcam = NodePath("../PhantomCamera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Sine/EntryRoomTrigger"] -shape = SubResource("BoxShape3D_j6fha") - -[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Sine/EntryRoomTrigger"] -mesh = SubResource("BoxMesh_xg4en") -skeleton = NodePath("../../../../..") -surface_material_override/0 = SubResource("StandardMaterial3D_2dct5") -metadata/_edit_group_ = true - -[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Sine"] -transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3) -script = ExtResource("3_4whss") -tween_resource = SubResource("Resource_uxg44") -camera_3d_resource = SubResource("Resource_eu3bc") - -[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Sine"] -transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, 1.7, 0.5, 0) -text = "Transition Type: -Sine - -Duration: -0.3s" -font = ExtResource("9_ptb3h") -font_size = 72 - -[node name="Circ" type="Node3D" parent="Tweening Example"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -14.1) - -[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Circ" node_paths=PackedStringArray("area_pcam")] -priority = 5 -script = ExtResource("7_istoq") -area_pcam = NodePath("../PhantomCamera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Circ/EntryRoomTrigger"] -shape = SubResource("BoxShape3D_j6fha") - -[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Circ/EntryRoomTrigger"] -mesh = SubResource("BoxMesh_xg4en") -skeleton = NodePath("../../../../..") -surface_material_override/0 = SubResource("StandardMaterial3D_2dct5") -metadata/_edit_group_ = true - -[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Circ"] -transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 4.8, 3.3) -script = ExtResource("3_4whss") -tween_resource = SubResource("Resource_0nci0") -camera_3d_resource = SubResource("Resource_u0lff") - -[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Circ"] -transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, -1.8, 0.5, 0) -text = "Transition Type: -Circ - -Duration: -0.3s" -font = ExtResource("9_ptb3h") -font_size = 72 - -[node name="Back" type="Node3D" parent="Tweening Example"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -21) - -[node name="EntryRoomTrigger" type="Area3D" parent="Tweening Example/Back" node_paths=PackedStringArray("area_pcam")] -priority = 5 -script = ExtResource("7_istoq") -area_pcam = NodePath("../PhantomCamera3D") -metadata/_edit_group_ = true - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Tweening Example/Back/EntryRoomTrigger"] -shape = SubResource("BoxShape3D_j6fha") - -[node name="NPCInteractionZoneMesh" type="MeshInstance3D" parent="Tweening Example/Back/EntryRoomTrigger"] -mesh = SubResource("BoxMesh_xg4en") -skeleton = NodePath("../../../../..") -surface_material_override/0 = SubResource("StandardMaterial3D_2dct5") -metadata/_edit_group_ = true - -[node name="PhantomCamera3D" type="Node3D" parent="Tweening Example/Back"] -transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, -0.8, 4.8, 3.3) -script = ExtResource("3_4whss") -tween_resource = SubResource("Resource_50m5g") -camera_3d_resource = SubResource("Resource_rexf8") - -[node name="TweenNameLabel" type="Label3D" parent="Tweening Example/Back"] -transform = Transform3D(1, 0, 0, 0, 0.695913, 0.718126, 0, -0.718126, 0.695913, 1.7, 0.5, 0) -text = "Transition Type: -Back - -Duration: -1.2s" -font = ExtResource("9_ptb3h") -font_size = 48 diff --git a/addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn b/addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn deleted file mode 100644 index e2538df..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn +++ /dev/null @@ -1,30 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://cb83in8f0tbb1"] - -[ext_resource type="Script" uid="uid://tgv6xpi88sd0" path="res://addons/phantom_camera/examples/scripts/3D/player_controller.gd" id="1_pl87s"] - -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_8efyg"] - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_2cfaw"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r3ldp"] -albedo_color = Color(0.988235, 0.498039, 0.498039, 1) - -[node name="PlayerCharacterBody3D" type="CharacterBody3D"] -script = ExtResource("1_pl87s") -metadata/_edit_group_ = true - -[node name="PlayerArea3D" type="Area3D" parent="."] - -[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerArea3D"] -shape = SubResource("CapsuleShape3D_8efyg") - -[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource("CapsuleShape3D_8efyg") - -[node name="PlayerVisual" type="Node3D" parent="."] -unique_name_in_owner = true - -[node name="PlayerModel" type="MeshInstance3D" parent="PlayerVisual"] -mesh = SubResource("CapsuleMesh_2cfaw") -skeleton = NodePath("../..") -surface_material_override/0 = SubResource("StandardMaterial3D_r3ldp") diff --git a/addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn b/addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn deleted file mode 100644 index f113ac5..0000000 --- a/addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn +++ /dev/null @@ -1,43 +0,0 @@ -[gd_scene load_steps=6 format=3 uid="uid://bhd1kwv2fwj1y"] - -[ext_resource type="Script" uid="uid://bkr71vxe2t18n" path="res://addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd" id="1_skas8"] - -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_s61dn"] - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_47f0o"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mv4do"] -albedo_color = Color(0.988235, 0.498039, 0.498039, 1) - -[sub_resource type="PrismMesh" id="PrismMesh_wg1x3"] -size = Vector3(0.5, 0.5, 0.3) - -[node name="PlayerCharacterBody3D" type="CharacterBody3D"] -transform = Transform3D(0.999903, 0.0139622, 0, -0.0139622, 0.999903, 0, 0, 0, 1, -0.0194088, 0.506884, -0.0163251) -collision_layer = 2 -script = ExtResource("1_skas8") -metadata/_edit_group_ = true - -[node name="PlayerArea3D" type="Area3D" parent="."] - -[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerArea3D"] -shape = SubResource("CapsuleShape3D_s61dn") - -[node name="PlayerCollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource("CapsuleShape3D_s61dn") - -[node name="PlayerVisual" type="Node3D" parent="."] -unique_name_in_owner = true - -[node name="PlayerMeshInstance3D" type="MeshInstance3D" parent="PlayerVisual"] -transform = Transform3D(1, 0, 0, 0, 1, 4.65661e-10, 0, 0, 1, 0, 0, 0) -mesh = SubResource("CapsuleMesh_47f0o") -skeleton = NodePath("../..") -surface_material_override/0 = SubResource("StandardMaterial3D_mv4do") - -[node name="PlayerDirection" type="MeshInstance3D" parent="PlayerVisual"] -unique_name_in_owner = true -transform = Transform3D(1, 0, 0, -9.31323e-10, 1, 4.65661e-10, 2.98023e-08, 0, 1, -0.0156226, 1.08631, 0) -mesh = SubResource("PrismMesh_wg1x3") -skeleton = NodePath("../..") -surface_material_override/0 = SubResource("StandardMaterial3D_mv4do") diff --git a/addons/phantom_camera/examples/models/3d_cube_dark.tscn b/addons/phantom_camera/examples/models/3d_cube_dark.tscn deleted file mode 100644 index feab949..0000000 --- a/addons/phantom_camera/examples/models/3d_cube_dark.tscn +++ /dev/null @@ -1,15 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://cixlwqycoox8h"] - -[ext_resource type="Texture2D" uid="uid://bj7h2fc5jx4ax" path="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" id="1_836jx"] - -[sub_resource type="BoxMesh" id="BoxMesh_d24c3"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aox6v"] -albedo_texture = ExtResource("1_836jx") -uv1_triplanar = true -uv1_world_triplanar = true - -[node name="3DPrototypeCube" type="CSGMesh3D"] -use_collision = true -mesh = SubResource("BoxMesh_d24c3") -material = SubResource("StandardMaterial3D_aox6v") diff --git a/addons/phantom_camera/examples/resources/tween/fixed_camera_tween.tres b/addons/phantom_camera/examples/resources/tween/fixed_camera_tween.tres deleted file mode 100644 index 8888f93..0000000 --- a/addons/phantom_camera/examples/resources/tween/fixed_camera_tween.tres +++ /dev/null @@ -1,9 +0,0 @@ -[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://c1v786g5agaw5"] - -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_ptlie"] - -[resource] -script = ExtResource("1_ptlie") -duration = 0.0 -transition = 0 -ease = 2 diff --git a/addons/phantom_camera/examples/resources/tween/inventory_phantom_camera_2d_tween.tres b/addons/phantom_camera/examples/resources/tween/inventory_phantom_camera_2d_tween.tres deleted file mode 100644 index 5a0708e..0000000 --- a/addons/phantom_camera/examples/resources/tween/inventory_phantom_camera_2d_tween.tres +++ /dev/null @@ -1,9 +0,0 @@ -[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://cllveybboaqk5"] - -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_7yoy0"] - -[resource] -script = ExtResource("1_7yoy0") -duration = 0.6 -transition = 5 -ease = 1 diff --git a/addons/phantom_camera/examples/resources/tween/item_focus_phantom_camera_2d_tween.tres b/addons/phantom_camera/examples/resources/tween/item_focus_phantom_camera_2d_tween.tres deleted file mode 100644 index 8464eff..0000000 --- a/addons/phantom_camera/examples/resources/tween/item_focus_phantom_camera_2d_tween.tres +++ /dev/null @@ -1,9 +0,0 @@ -[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://cecrnq0wnkexh"] - -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_sq5ls"] - -[resource] -script = ExtResource("1_sq5ls") -duration = 0.6 -transition = 8 -ease = 1 diff --git a/addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres b/addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres deleted file mode 100644 index 5258ea7..0000000 --- a/addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres +++ /dev/null @@ -1,9 +0,0 @@ -[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://euybd2w0bax"] - -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_by4ei"] - -[resource] -script = ExtResource("1_by4ei") -duration = 0.6 -transition = 3 -ease = 1 diff --git a/addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres b/addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres deleted file mode 100644 index e586199..0000000 --- a/addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres +++ /dev/null @@ -1,9 +0,0 @@ -[gd_resource type="Resource" script_class="PhantomCameraTween" load_steps=2 format=3 uid="uid://cptfoggk2ok67"] - -[ext_resource type="Script" uid="uid://8umksf8e80fw" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="1_q5tix"] - -[resource] -script = ExtResource("1_q5tix") -duration = 0.6 -transition = 3 -ease = 2 diff --git a/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd b/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd deleted file mode 100644 index 06e9180..0000000 --- a/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd +++ /dev/null @@ -1,36 +0,0 @@ -extends Node2D - -@onready var pcam_room_left: PhantomCamera2D = %RoomLeftPhantomCamera2D -@onready var pcam_room_centre: PhantomCamera2D = %RoomCentrePhantomCamera2D -@onready var pcam_room_right: PhantomCamera2D = %RoomRightPhantomCamera2D - -@onready var player: Node2D = %CharacterBody2D/%PlayerVisuals - -@onready var area_2d_room_left: Area2D = %RoomLeftArea2D -@onready var area_2d_room_centre: Area2D = %RoomCentreArea2D -@onready var area_2d_room_right: Area2D = %RoomRightArea2D - - -func _ready(): - pcam_room_left.set_follow_offset(Vector2(0, -80)) - pcam_room_right.set_follow_offset(Vector2(0, -80)) - - area_2d_room_left.body_entered.connect(_on_body_entered.bind(pcam_room_left)) - area_2d_room_centre.body_entered.connect(_on_body_entered.bind(pcam_room_centre)) - area_2d_room_right.body_entered.connect(_on_body_entered.bind(pcam_room_right)) - - area_2d_room_left.body_exited.connect(_on_body_exited.bind(pcam_room_left)) - area_2d_room_centre.body_exited.connect(_on_body_exited.bind(pcam_room_centre)) - area_2d_room_right.body_exited.connect(_on_body_exited.bind(pcam_room_right)) - - -func _on_body_entered(body: Node2D, pcam: PhantomCamera2D) -> void: - if body == player.get_parent(): - pcam.set_follow_target(player) - pcam.set_priority(20) - - -func _on_body_exited(body: Node2D, pcam: PhantomCamera2D) -> void: - if body == player.get_parent(): - pcam.set_priority(0) - pcam.set_follow_target(null) diff --git a/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd.uid b/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd.uid deleted file mode 100644 index 1a32325..0000000 --- a/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c5yewe1hewu7j diff --git a/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd b/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd deleted file mode 100644 index 8be7e44..0000000 --- a/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd +++ /dev/null @@ -1,33 +0,0 @@ -extends Node2D - -@onready var pcam_room_left: PhantomCamera2D = %RoomLeftPhantomCamera2D -@onready var pcam_room_centre: PhantomCamera2D = %RoomCentrePhantomCamera2D -@onready var pcam_room_right: PhantomCamera2D = %RoomRightPhantomCamera2D - -@onready var player: Node2D = %CharacterBody2D - -@onready var area_2d_room_left: Area2D = %RoomLeftArea2D -@onready var area_2d_room_centre: Area2D = %RoomCentreArea2D -@onready var area_2d_room_right: Area2D = %RoomRightArea2D - - -func _ready(): - area_2d_room_left.body_entered.connect(_on_body_entered.bind(pcam_room_left)) - area_2d_room_centre.body_entered.connect(_on_body_entered.bind(pcam_room_centre)) - area_2d_room_right.body_entered.connect(_on_body_entered.bind(pcam_room_right)) - - area_2d_room_left.body_exited.connect(_on_body_exited.bind(pcam_room_left)) - area_2d_room_centre.body_exited.connect(_on_body_exited.bind(pcam_room_centre)) - area_2d_room_right.body_exited.connect(_on_body_exited.bind(pcam_room_right)) - - -func _on_body_entered(body: Node2D, pcam: PhantomCamera2D) -> void: - if body == player: - pcam.set_follow_target(player) - pcam.set_priority(20) - - -func _on_body_exited(body: Node2D, pcam: PhantomCamera2D) -> void: - if body == player: - pcam.set_priority(0) - pcam.set_follow_target(null) diff --git a/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd.uid b/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd.uid deleted file mode 100644 index fc56f1c..0000000 --- a/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dtcuvut1eklnd diff --git a/addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd b/addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd deleted file mode 100644 index db0209c..0000000 --- a/addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd +++ /dev/null @@ -1,16 +0,0 @@ -extends Area2D - -@export var area_pcam: PhantomCamera2D - -func _ready() -> void: - connect("area_entered", _entered_area) - connect("area_exited", _exited_area) - -func _entered_area(area_2d: Area2D) -> void: - if area_2d.get_parent() is CharacterBody2D: - area_pcam.set_priority(20) - -func _exited_area(area_2d: Area2D) -> void: - if area_2d.get_parent() is CharacterBody2D: - area_pcam.set_priority(0) - diff --git a/addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd.uid b/addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd.uid deleted file mode 100644 index c5ac45f..0000000 --- a/addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://t8wa4e5y5hcf diff --git a/addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd b/addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd deleted file mode 100644 index 8003bb3..0000000 --- a/addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd +++ /dev/null @@ -1,189 +0,0 @@ -extends CharacterBody2D - -@onready var _player_area2d = %PlayerArea2D -@onready var _player_visuals: Node2D = %PlayerVisuals -@onready var _player_sprite: Sprite2D = %PlayerSprite -@onready var _interaction_prompt: Panel = %InteractionPrompt -@onready var _ui_sign: Control -@onready var _dark_overlay: ColorRect = %DarkOverlay - -const KEY_STRINGNAME: StringName = "Key" -const ACTION_STRINGNAME: StringName = "Action" -const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left" -const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right" - -const SPEED = 350.0 -const JUMP_VELOCITY = -750.0 - -# Get the gravity from the project settings to be synced with RigidBody nodes. -var gravity: int = 2400 -var _is_interactive: bool -var _can_open_inventory: bool -var _movement_disabled: bool -var tween: Tween -var _interactive_UI: Control -var _active_pcam: PhantomCamera2D - -var _physics_body_trans_last: Transform2D -var _physics_body_trans_current: Transform2D - -enum InteractiveType { - NONE = 0, - ITEM = 1, - INVENTORY = 2, -} -var _interactive_object: InteractiveType = InteractiveType.NONE - -var InputMovementDic: Dictionary = { - INPUT_MOVE_LEFT_STRINGNAME: { - KEY_STRINGNAME: KEY_A, - ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME - }, - INPUT_MOVE_RIGHT_STRINGNAME: { - KEY_STRINGNAME: KEY_D, - ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME - }, -} - - -func _ready() -> void: - _player_area2d.body_shape_entered.connect(_show_prompt) - _player_area2d.body_shape_exited.connect(_hide_prompt) - - _ui_sign = owner.get_node("%UISign") - - for input in InputMovementDic: - var key_val = InputMovementDic[input].get(KEY_STRINGNAME) - var action_val = InputMovementDic[input].get(ACTION_STRINGNAME) - - var movement_input = InputEventKey.new() - movement_input.physical_keycode = key_val - InputMap.add_action(action_val) - InputMap.action_add_event(action_val, movement_input) - - _player_visuals.top_level = true - - if Engine.get_version_info().major == 4 and \ - Engine.get_version_info().minor >= 3: - printerr("Please run the other 2D example scenes, in the 2D-4.3 directory, for more up-to-date example setups.") - - -func _unhandled_input(event: InputEvent) -> void: - if _is_interactive: - if Input.is_physical_key_pressed(KEY_F): - if tween: - tween.kill() - - if not _movement_disabled: - tween = get_tree().create_tween() - - _movement_disabled = true - _active_pcam.set_priority(10) - - _show_interactive_node(_interactive_UI) - _interactive_node_logic() - - else: - _hide_interactive_node(_interactive_UI) - _interactive_node_logic() - - - if Input.is_physical_key_pressed(KEY_ESCAPE) and _movement_disabled: - _hide_interactive_node(_interactive_UI) - _interactive_node_logic() - - -func _show_interactive_node(UI: Control) -> void: - UI.modulate.a = 0 - UI.visible = true - tween.tween_property(UI, "modulate", Color.WHITE, 1).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_CIRC) - - -func _hide_interactive_node(UI: Control) -> void: - _movement_disabled = false - _active_pcam.set_priority(0) - UI.visible = false - - -func _interactive_node_logic() -> void: - match _interactive_object: - 2: - if _movement_disabled: - _dark_overlay.set_visible(true) - else: - _dark_overlay.set_visible(false) - - -func _physics_process(delta: float) -> void: - _physics_body_trans_last = _physics_body_trans_current - _physics_body_trans_current = global_transform - - if not is_on_floor(): - velocity.y += gravity * delta - - if Input.is_action_just_pressed("ui_accept") and is_on_floor(): - velocity.y = JUMP_VELOCITY - - if _movement_disabled: return - - var input_dir: = Input.get_axis( - INPUT_MOVE_LEFT_STRINGNAME, - INPUT_MOVE_RIGHT_STRINGNAME - ) - - if input_dir: - velocity.x = input_dir * SPEED - if input_dir > 0: - _player_sprite.set_flip_h(false) - elif input_dir < 0: - _player_sprite.set_flip_h(true) - else: - velocity.x = move_toward(velocity.x, 0, SPEED) - - move_and_slide() - - -func _process(delta) -> void: - _player_visuals.global_position = _physics_body_trans_last.interpolate_with( - _physics_body_trans_current, - Engine.get_physics_interpolation_fraction() - ).origin - - -func _show_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void: - if body is TileMap: - var tile_map: TileMap = body - - var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid) - var cell_data: TileData = tile_map.get_cell_tile_data(1, tile_coords) - - if cell_data: - var cell_data_type: StringName = cell_data.get_custom_data("Type") -# var cell_global_pos: Vector2 = tile_map.to_global(tile_map.map_to_local(tile_coords)) - _is_interactive = true - _interaction_prompt.set_visible(true) - - match cell_data_type: - "Sign": - _interactive_UI = owner.get_node("%UISign") - _active_pcam = %ItemFocusPhantomCamera2D - _interactive_object = InteractiveType.ITEM - "Inventory": - _interactive_UI = owner.get_node("%UIInventory") - _interactive_object = InteractiveType.INVENTORY - _active_pcam = %InventoryPhantomCamera2D - - -func _hide_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void: - if body is TileMap: - var tile_map: TileMap = body - - var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid) - var cell_data: TileData = tile_map.get_cell_tile_data(1, tile_coords) - - if cell_data: - _interaction_prompt.set_visible(false) - _is_interactive = false - _interactive_UI = null - _interactive_object = InteractiveType.NONE - _active_pcam = null diff --git a/addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd.uid b/addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd.uid deleted file mode 100644 index 2f250b4..0000000 --- a/addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cb46ypjv5p72s diff --git a/addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd b/addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd deleted file mode 100644 index 4688f50..0000000 --- a/addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd +++ /dev/null @@ -1,180 +0,0 @@ -extends CharacterBody2D - -@onready var _player_area2d = %PlayerArea2D -@onready var _player_visuals: Node2D = %PlayerVisuals -@onready var _player_sprite: Sprite2D = %PlayerSprite -@onready var _interaction_prompt: Panel = %InteractionPrompt -@onready var _ui_sign: Control -@onready var _dark_overlay: ColorRect = %DarkOverlay -@onready var _noise_emitter: PhantomCameraNoiseEmitter2D - -const KEY_STRINGNAME: StringName = "Key" -const ACTION_STRINGNAME: StringName = "Action" -const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left" -const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right" - -const SPEED = 350.0 -const JUMP_VELOCITY = -750.0 - -# Get the gravity from the project settings to be synced with RigidBody nodes. -var gravity: int = 2400 -var _is_interactive: bool -var _can_open_inventory: bool -var _movement_disabled: bool -var tween: Tween -var _interactive_UI: Control -var _active_pcam: PhantomCamera2D - -enum InteractiveType { - NONE = 0, - ITEM = 1, - INVENTORY = 2, -} -var _interactive_object: InteractiveType = InteractiveType.NONE - -var InputMovementDic: Dictionary = { - INPUT_MOVE_LEFT_STRINGNAME: { - KEY_STRINGNAME: KEY_A, - ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME - }, - INPUT_MOVE_RIGHT_STRINGNAME: { - KEY_STRINGNAME: KEY_D, - ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME - }, -} - - -func _ready() -> void: - _player_area2d.body_shape_entered.connect(_show_prompt) - _player_area2d.body_shape_exited.connect(_hide_prompt) - - _ui_sign = owner.get_node("%UISign") - - for input in InputMovementDic: - var key_val = InputMovementDic[input].get(KEY_STRINGNAME) - var action_val = InputMovementDic[input].get(ACTION_STRINGNAME) - - var movement_input = InputEventKey.new() - movement_input.physical_keycode = key_val - InputMap.add_action(action_val) - InputMap.action_add_event(action_val, movement_input) - - if Engine.get_version_info().major == 4 and \ - Engine.get_version_info().minor < 3: - printerr("This scene is designed to only work properly in Godot 4.3 or later that supports 2D Physics Interpolation.") - printerr("Please run the other 2D example scenes in the other directory.") - - -func _unhandled_input(event: InputEvent) -> void: - if _is_interactive: - if Input.is_physical_key_pressed(KEY_F): - if tween: - tween.kill() - - if not _movement_disabled: - tween = get_tree().create_tween() - - _movement_disabled = true - _active_pcam.set_priority(10) - - _show_interactive_node(_interactive_UI) - _interactive_node_logic() - - else: - _hide_interactive_node(_interactive_UI) - _interactive_node_logic() - - - if Input.is_physical_key_pressed(KEY_ESCAPE) and _movement_disabled: - _hide_interactive_node(_interactive_UI) - _interactive_node_logic() - - if Input.is_physical_key_pressed(KEY_Q): - if get_node_or_null("%PlayerPhantomCameraNoiseEmitter2D"): - %PlayerPhantomCameraNoiseEmitter2D.emit() - - -func _show_interactive_node(UI: Control) -> void: - UI.modulate.a = 0 - UI.visible = true - tween.tween_property(UI, "modulate", Color.WHITE, 1).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_CIRC) - - -func _hide_interactive_node(UI: Control) -> void: - _movement_disabled = false - _active_pcam.set_priority(0) - UI.visible = false - - -func _interactive_node_logic() -> void: - match _interactive_object: - 2: - if _movement_disabled: - _dark_overlay.set_visible(true) - else: - _dark_overlay.set_visible(false) - - -func _physics_process(delta: float) -> void: - if not is_on_floor(): - velocity.y += gravity * delta - - if Input.is_action_just_pressed("ui_accept") and is_on_floor(): - velocity.y = JUMP_VELOCITY - - if _movement_disabled: return - - var input_dir: = Input.get_axis( - INPUT_MOVE_LEFT_STRINGNAME, - INPUT_MOVE_RIGHT_STRINGNAME - ) - - if input_dir: - velocity.x = input_dir * SPEED - if input_dir > 0: - _player_sprite.set_flip_h(false) - elif input_dir < 0: - _player_sprite.set_flip_h(true) - else: - velocity.x = move_toward(velocity.x, 0, SPEED) - - move_and_slide() - - -func _show_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void: - if body.is_class("TileMapLayer"): # TODO - Using string reference to support Godot 4.2 - var tile_map := body - tile_map.set("physics_quadrant_size", 1) # Fix for Godot 4.4 - var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid) - var cell_data: TileData = tile_map.get_cell_tile_data(tile_coords) - - if cell_data: - var cell_data_type: StringName = cell_data.get_custom_data("Type") -# var cell_global_pos: Vector2 = tile_map.to_global(tile_map.map_to_local(tile_coords)) - _is_interactive = true - _interaction_prompt.set_visible(true) - - match cell_data_type: - "Sign": - _interactive_UI = owner.get_node("%UISign") - _active_pcam = %ItemFocusPhantomCamera2D - _interactive_object = InteractiveType.ITEM - "Inventory": - _interactive_UI = owner.get_node("%UIInventory") - _interactive_object = InteractiveType.INVENTORY - _active_pcam = %InventoryPhantomCamera2D - - -func _hide_prompt(body_rid: RID, body: Node2D, body_shape_index: int, local_shape: int) -> void: - if body.is_class("TileMapLayer"): # TODO - Using string reference to support Godot 4.2 - var tile_map := body - - var tile_coords: Vector2i = tile_map.get_coords_for_body_rid(body_rid) - var cell_data: TileData = tile_map.get_cell_tile_data(tile_coords) - - if cell_data: - _interaction_prompt.set_visible(false) - _is_interactive = false - _interactive_UI = null - _interactive_object = InteractiveType.NONE - _active_pcam = null diff --git a/addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd.uid b/addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd.uid deleted file mode 100644 index 411f7c4..0000000 --- a/addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cnnaky2ns2pn4 diff --git a/addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd b/addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd deleted file mode 100644 index 4fc9764..0000000 --- a/addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd +++ /dev/null @@ -1,26 +0,0 @@ -extends Area3D - -@export var area_pcam: PhantomCamera3D - -var initial_camera_position: Vector3 -var initial_camera_rotation: Vector3 - -var tween: Tween -var tween_duration: float = 0.9 - - -func _ready() -> void: - connect("area_entered", _entered_area) - connect("area_exited", _exited_area) - - -func _entered_area(area_3D: Area3D) -> void: - if area_3D.get_parent() is CharacterBody3D: - area_pcam.set_priority(20) - - -func _exited_area(area_3D: Area3D) -> void: - if area_3D.get_parent() is CharacterBody3D: - area_pcam.set_priority(0) - - diff --git a/addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd.uid b/addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd.uid deleted file mode 100644 index 5499427..0000000 --- a/addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bnhxcejvr6wi3 diff --git a/addons/phantom_camera/examples/scripts/3D/npc.gd b/addons/phantom_camera/examples/scripts/3D/npc.gd deleted file mode 100644 index 3d9a523..0000000 --- a/addons/phantom_camera/examples/scripts/3D/npc.gd +++ /dev/null @@ -1,71 +0,0 @@ -extends Node3D - -@onready var npc_pcam: PhantomCamera3D = %NPCPhantomCamera3D -@onready var dialogueArea: Area3D = %NPCInteractionArea3D -@onready var dialogueLabel3D: Label3D = %NPCDialogueExampleLabel - -@onready var player: CharacterBody3D = %PlayerCharacterBody3D - -@onready var move_to_location: Vector3 = %MoveToLocation.get_global_position() - -var dialogue_label_initial_position: Vector3 -var dialogue_label_initial_rotation: Vector3 - -var tween: Tween -var tween_duration: float = 0.9 -var tween_transition: Tween.TransitionType = Tween.TRANS_QUAD - -var interactable: bool -var is_interacting: bool - -func _ready() -> void: - dialogueArea.connect("area_entered", _interactable) - dialogueArea.connect("area_exited", _not_interactable) - - dialogueLabel3D.set_visible(false) - - dialogue_label_initial_position = dialogueLabel3D.get_global_position() - dialogue_label_initial_rotation = dialogueLabel3D.get_global_rotation() - - npc_pcam.tween_completed.connect(_on_tween_started) - - - -func _on_tween_started() -> void: - player.movement_enabled = false - - -func _interactable(area_3D: Area3D) -> void: - if area_3D.get_parent() is CharacterBody3D: - dialogueLabel3D.set_visible(true) - interactable = true - - var tween: Tween = get_tree().create_tween().set_trans(tween_transition).set_ease(Tween.EASE_IN_OUT).set_loops() - tween.tween_property(dialogueLabel3D, "global_position", dialogue_label_initial_position - Vector3(0, -0.2, 0), tween_duration) - tween.tween_property(dialogueLabel3D, "position", dialogue_label_initial_position, tween_duration) - - -func _not_interactable(area_3D: Area3D) -> void: - if area_3D.get_parent() is CharacterBody3D: - dialogueLabel3D.set_visible(false) - interactable = false - - -func _input(event) -> void: - if not interactable: return - - if event is InputEventKey and event.pressed: - if event.keycode == KEY_F: - var tween: Tween = get_tree().create_tween() \ - .set_parallel(true) \ - .set_trans(Tween.TRANS_QUART) \ - .set_ease(Tween.EASE_IN_OUT) - if not is_interacting: - npc_pcam.priority = 20 - tween.tween_property(player, "global_position", move_to_location, 0.6).set_trans(tween_transition) - tween.tween_property(dialogueLabel3D, "rotation", Vector3(deg_to_rad(-20), deg_to_rad(53), 0), 0.6).set_trans(tween_transition) - else: - npc_pcam.priority = 0 - tween.tween_property(dialogueLabel3D, "rotation", dialogue_label_initial_rotation, 0.9) - player.movement_enabled = true - is_interacting = !is_interacting diff --git a/addons/phantom_camera/examples/scripts/3D/npc.gd.uid b/addons/phantom_camera/examples/scripts/3D/npc.gd.uid deleted file mode 100644 index 7464c88..0000000 --- a/addons/phantom_camera/examples/scripts/3D/npc.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://uvw6pg1ut0ms diff --git a/addons/phantom_camera/examples/scripts/3D/path_follow.gd b/addons/phantom_camera/examples/scripts/3D/path_follow.gd deleted file mode 100644 index 9bf865b..0000000 --- a/addons/phantom_camera/examples/scripts/3D/path_follow.gd +++ /dev/null @@ -1,14 +0,0 @@ -extends Area3D - -@export var path_pcam: PhantomCamera3D - -func _ready() -> void: - area_shape_entered.connect(_area_shape_entered) - area_shape_exited.connect(_area_shape_exited) - - -func _area_shape_entered(area_rid: RID, area: Area3D, area_shape_index: int, local_shape_index: int) -> void: - path_pcam.set_priority(20) - -func _area_shape_exited(area_rid: RID, area: Area3D, area_shape_index: int, local_shape_index: int) -> void: - path_pcam.set_priority(0) diff --git a/addons/phantom_camera/examples/scripts/3D/path_follow.gd.uid b/addons/phantom_camera/examples/scripts/3D/path_follow.gd.uid deleted file mode 100644 index c2f56ca..0000000 --- a/addons/phantom_camera/examples/scripts/3D/path_follow.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cgknbkjar73w diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller.gd b/addons/phantom_camera/examples/scripts/3D/player_controller.gd deleted file mode 100644 index e907eca..0000000 --- a/addons/phantom_camera/examples/scripts/3D/player_controller.gd +++ /dev/null @@ -1,84 +0,0 @@ -extends CharacterBody3D - -@export var SPEED: float = 5.0 -@export var JUMP_VELOCITY: float = 4.5 -@export var enable_gravity = true - -@onready var _camera: Camera3D - -# Get the gravity from the project settings to be synced with RigidBody nodes. -var gravity: float = 9.8 - -var movement_enabled: bool = true - -const KEY_STRINGNAME: StringName = "Key" -const ACTION_STRINGNAME: StringName = "Action" - -const INPUT_MOVE_UP_STRINGNAME: StringName = "move_up" -const INPUT_MOVE_DOWM_STRINGNAME: StringName = "move_down" -const INPUT_MOVE_LEFT_STRINGNAME: StringName = "move_left" -const INPUT_MOVE_RIGHT_STRINGNAME: StringName = "move_right" - -var InputMovementDic: Dictionary = { - INPUT_MOVE_UP_STRINGNAME: { - KEY_STRINGNAME: KEY_W, - ACTION_STRINGNAME: INPUT_MOVE_UP_STRINGNAME - }, - INPUT_MOVE_DOWM_STRINGNAME: { - KEY_STRINGNAME: KEY_S, - ACTION_STRINGNAME: INPUT_MOVE_DOWM_STRINGNAME - }, - INPUT_MOVE_LEFT_STRINGNAME: { - KEY_STRINGNAME: KEY_A, - ACTION_STRINGNAME: INPUT_MOVE_LEFT_STRINGNAME - }, - INPUT_MOVE_RIGHT_STRINGNAME: { - KEY_STRINGNAME: KEY_D, - ACTION_STRINGNAME: INPUT_MOVE_RIGHT_STRINGNAME - }, -} - - -func _ready() -> void: - for input in InputMovementDic: - var key_val = InputMovementDic[input].get(KEY_STRINGNAME) - var action_val = InputMovementDic[input].get(ACTION_STRINGNAME) - - _camera = owner.get_node("%MainCamera3D") - - var movement_input = InputEventKey.new() - movement_input.physical_keycode = key_val - InputMap.add_action(action_val) - InputMap.action_add_event(action_val, movement_input) - - -func _physics_process(delta: float) -> void: - # Add the gravity. - if enable_gravity and not is_on_floor(): - velocity.y -= gravity * delta - - if not movement_enabled: return - - # Get the input direction and handle the movement/deceleration. - # As good practice, you should replace UI actions with custom gameplay actions. - var input_dir: Vector2 = Input.get_vector( - INPUT_MOVE_LEFT_STRINGNAME, - INPUT_MOVE_RIGHT_STRINGNAME, - INPUT_MOVE_UP_STRINGNAME, - INPUT_MOVE_DOWM_STRINGNAME - ) - - var direction: Vector3 = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized() - if direction: - var move_dir: Vector3 = Vector3.ZERO - move_dir.x = direction.x - move_dir.z = direction.z - - move_dir = move_dir.rotated(Vector3.UP, _camera.rotation.y).normalized() - velocity.x = move_dir.x * SPEED - velocity.z = move_dir.z * SPEED - else: - velocity.x = move_toward(velocity.x, 0, SPEED) - velocity.z = move_toward(velocity.z, 0, SPEED) - - move_and_slide() diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller.gd.uid b/addons/phantom_camera/examples/scripts/3D/player_controller.gd.uid deleted file mode 100644 index 182faff..0000000 --- a/addons/phantom_camera/examples/scripts/3D/player_controller.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://tgv6xpi88sd0 diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd b/addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd deleted file mode 100644 index 7e2da3f..0000000 --- a/addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd +++ /dev/null @@ -1,54 +0,0 @@ -extends "player_controller.gd" - -@onready var _player_pcam: PhantomCamera3D = %PlayerPhantomCamera3D - -@onready var _player_character: CharacterBody3D = %PlayerCharacterBody3D - -@export var mouse_sensitivity: float = 0.05 - -@export var min_pitch: float = -89.9 -@export var max_pitch: float = 50 - -@export var min_yaw: float = 0 -@export var max_yaw: float = 360 - -@export var run_noise: PhantomCameraNoise3D - -func _ready() -> void: - super() - Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) - - if get_node_or_null("%PlayerPhantomCameraNoiseEmitter3D"): - %EmitterTip.visible = true - - -func _physics_process(delta: float) -> void: - super(delta) - - -func _unhandled_input(event: InputEvent) -> void: - if event is InputEventKey: - if get_node_or_null("%PlayerPhantomCameraNoiseEmitter3D"): - if event.keycode == KEY_Q and event.is_pressed(): - %PlayerPhantomCameraNoiseEmitter3D.emit() - - if event is InputEventMouseMotion: - var pcam_rotation_degrees: Vector3 - - # Assigns the current 3D rotation of the SpringArm3D node - so it starts off where it is in the editor - pcam_rotation_degrees = _player_pcam.rotation_degrees - - # Change the X rotation - pcam_rotation_degrees.x -= event.relative.y * mouse_sensitivity - - # Clamp the rotation in the X axis so it go over or under the target - pcam_rotation_degrees.x = clampf(pcam_rotation_degrees.x, min_pitch, max_pitch) - - # Change the Y rotation value - pcam_rotation_degrees.y -= event.relative.x * mouse_sensitivity - - # Sets the rotation to fully loop around its target, but witout going below or exceeding 0 and 360 degrees respectively - pcam_rotation_degrees.y = wrapf(pcam_rotation_degrees.y, min_yaw, max_yaw) - - # Change the SpringArm3D node's rotation and rotate around its target - _player_pcam.rotation_degrees = pcam_rotation_degrees diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd.uid b/addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd.uid deleted file mode 100644 index ee16763..0000000 --- a/addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://x5g7kf5k2mac diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd b/addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd deleted file mode 100644 index 32528fc..0000000 --- a/addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd +++ /dev/null @@ -1,86 +0,0 @@ -extends "player_controller.gd" - -@onready var _player_pcam: PhantomCamera3D -@onready var _aim_pcam: PhantomCamera3D -@onready var _player_direction: Node3D = %PlayerDirection -@onready var _ceiling_pcam: PhantomCamera3D - -@export var mouse_sensitivity: float = 0.05 - -@export var min_pitch: float = -89.9 -@export var max_pitch: float = 50 - -@export var min_yaw: float = 0 -@export var max_yaw: float = 360 - - -func _ready() -> void: - super() - - _player_pcam = owner.get_node("%PlayerPhantomCamera3D") - _aim_pcam = owner.get_node("%PlayerAimPhantomCamera3D") - _ceiling_pcam = owner.get_node("%CeilingPhantomCamera3D") - - if _player_pcam.get_follow_mode() == _player_pcam.FollowMode.THIRD_PERSON: - Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) - - -func _physics_process(delta: float) -> void: - super(delta) - - if velocity.length() > 0.2: - var look_direction: Vector2 = Vector2(velocity.z, velocity.x) - _player_direction.rotation.y = look_direction.angle() - - -func _unhandled_input(event: InputEvent) -> void: - if _player_pcam.get_follow_mode() == _player_pcam.FollowMode.THIRD_PERSON: - var active_pcam: PhantomCamera3D - - _set_pcam_rotation(_player_pcam, event) - _set_pcam_rotation(_aim_pcam, event) - if _player_pcam.get_priority() > _aim_pcam.get_priority(): - _toggle_aim_pcam(event) - else: - _toggle_aim_pcam(event) - - if event is InputEventKey and event.pressed: - if event.keycode == KEY_SPACE: - if _ceiling_pcam.get_priority() < 30 and _player_pcam.is_active(): - _ceiling_pcam.set_priority(30) - else: - _ceiling_pcam.set_priority(1) - - -func _set_pcam_rotation(pcam: PhantomCamera3D, event: InputEvent) -> void: - if event is InputEventMouseMotion: - var pcam_rotation_degrees: Vector3 - - # Assigns the current 3D rotation of the SpringArm3D node - so it starts off where it is in the editor - pcam_rotation_degrees = pcam.get_third_person_rotation_degrees() - - # Change the X rotation - pcam_rotation_degrees.x -= event.relative.y * mouse_sensitivity - - # Clamp the rotation in the X axis so it go over or under the target - pcam_rotation_degrees.x = clampf(pcam_rotation_degrees.x, min_pitch, max_pitch) - - # Change the Y rotation value - pcam_rotation_degrees.y -= event.relative.x * mouse_sensitivity - - # Sets the rotation to fully loop around its target, but witout going below or exceeding 0 and 360 degrees respectively - pcam_rotation_degrees.y = wrapf(pcam_rotation_degrees.y, min_yaw, max_yaw) - - # Change the SpringArm3D node's rotation and rotate around its target - pcam.set_third_person_rotation_degrees(pcam_rotation_degrees) - - -func _toggle_aim_pcam(event: InputEvent) -> void: - if event is InputEventMouseButton \ - and event.is_pressed() \ - and event.button_index == 2 \ - and (_player_pcam.is_active() or _aim_pcam.is_active()): - if _player_pcam.get_priority() > _aim_pcam.get_priority(): - _aim_pcam.set_priority(30) - else: - _aim_pcam.set_priority(0) diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd.uid b/addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd.uid deleted file mode 100644 index 6346cec..0000000 --- a/addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bkr71vxe2t18n diff --git a/addons/phantom_camera/examples/textures/2D/inventory_container.png b/addons/phantom_camera/examples/textures/2D/inventory_container.png deleted file mode 100644 index 7dd51782c1814bfcb8e61ac54b642432a3870030..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68739 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 z zBiT8DSUC&`u>f4{=YZT1I}^a)g`wNcHBq0?_k#4<2f-N5Fqhgi)d$lPvtB0q0^swO zf#-5MARZOl?N1ZqdP%kpw(-1j*7^XypNX`a=~d&gu}Sis5C9TB z8U}={;7;akTOhn)N(|ssKnwEE!)0Ocbqj>b5YnCeYU2FcPGAP1i_k-p0LkDXwPO4L z$3Qs@8zS!YxJ=ISNUWP(5^Gmis|P-h4n5Lqi3{>nm!F$-yhRHPX9I7T*MPCmDXXHO zSYbT1%d6F|6vu?3@1L(kd%$XQ2+T~|CEo{`^g5@3+M9zX`+lfvBI_u<6ceVSr zTW-#g7~k)q6>@a%JOH{yeX@PgzPjN^>BDsr6_cXpdnUk74v*&?-*^yhhVHQXc$WRG z%}#?(eL)Lav1VpNFX5(W6r*e8{0HErELHsyu%9UL%`G^$waMOrvV?2!RPj8ROaQd! zYtLCwi<)N!VRJ5J*>Nl9ZBR;0K{mpa(7;-EH8O{Z$l!mxPNknI_=;yY**i4(Z2na7 zDC}Uo5gxa^@~TWR^hE+UMzj9ZjBinW5pgpZixdP;VUi9M zVtxD9fUsV>iI)jCRQCPt-X-eqvjw%Ahk!R9nvtubvodbc{}T!xa&dr)KfNLbIh*2? zObg@XYwkl&v%f7Y2DGhJ?!fa@6BN{wq*~x~~ci zEEKSt^>15=9HWnk5nslZju3_&X5r|;KP4bVsEUcIPX{NtSadRjAKdN`%bFW;fY=4Q z=^~%~ZnbDsu%0_Pd$EzNV`Mpb)i2dZ^we}CLib*2`}kLW0-R}GQ`SoCa50M=R2s5l z)3r;XOKf|HIbGwb@H45HMHrJuy7z-O^S{lYij(W2@p*-&F0oAt9%e*CyLHX+2Gp$} zzw(Wy&Ds9_lB=&cB^N$vn8Nd0(~~(0pIS1Q5V>WGj}9v*kx(PPzgvTF`nuB^C{}y# z4p*Q46S|QJ2})J0I1MVbDl+5-=32_e>B&a0jLP&Vcrz@TO zG>$sHcu>eA9lprT!`O^*im8nkjO4tiMWwvo zu5y2HuUTzRRRjF#+dRi!`ol@~6b{#bCSQ}ieA}qRw#W}nQwW?y;d#6Gr;Gi@vi+3~ z|2*A$!zIH<2u|xl1ED+C=4;7H9j7q81Y6g}!r%7ttD>-*zC@!ItBU;&E)z+_{> z%asNxp2n2$arIyIN~9hes)x;y*s-EC(qPhTh$J--3e1JwQdJ*(H11q%w!BlJA6YRa z3(?~K__W1N1C+r}WxmpOh}UI2-xl7Vt@II$|J%JZVc=NemvKK?vGA^X`cYncA!7R` z5onozM`0csUDl3ZXze@*%aX51)UxrkL5MslJ4L4vg@#rlQnE!~3$^wy^i*aWq!53$ zvXy<&Tt1qeO^y(8D5<&8p3DepV#R*v9wu}FMf04v)g~FcuJwaOZUv z{G32GdqdLt;OW{utNY(IHu}&DrcuX%Z=9qwY+sE)uss}*u#2ga&TbX&XYGH!Q1j)YwAMNCNLef|Di?ju?s%DUkg0sx;E(r^iW9H9A(Iz=c`9yly&LVmkqg>_- zCFL0-qM_E~x%sUK5|wGzE7>duxnp9Fy-G?r4xx>e(Yl;RbVZlVF z(*4zqETaBNha=W{9LS~h?|wg;1C@Zcj804}^UM0|{j)F-m$1Ewd&NWoKdc30C6y#9 I#Eb*}4+*yQXaE2J diff --git a/addons/phantom_camera/examples/textures/2D/level_spritesheet.png.import b/addons/phantom_camera/examples/textures/2D/level_spritesheet.png.import deleted file mode 100644 index 6c9b22c..0000000 --- a/addons/phantom_camera/examples/textures/2D/level_spritesheet.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c77npili4pel4" -path="res://.godot/imported/level_spritesheet.png-26a44dd21a040a5480d5ccba54377d99.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/phantom_camera/examples/textures/2D/level_spritesheet.png" -dest_files=["res://.godot/imported/level_spritesheet.png-26a44dd21a040a5480d5ccba54377d99.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png b/addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png deleted file mode 100644 index 2012b3ad9fe1d9a52d62b126548c02bbc7ca9abe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmV-02G9A4P)jT;RVtNwE}H)5boaS5z??aAzGno4;Ma?r+>?y`3_;`t zU>*^2bf>KErdJ5iqR$spPW|AZE*zl(GE&9jCUq=Z%g&*T*xLoyF=CECtLS|Z57hO^q;Zc?3RXr;)jjQs&p;*kaL zn5T!ihBTnzaIn3&4++y3fR{OyS@=xvBnK&>6l}bHvDAPB=??*32=pd=-f%A5I2a-;@@~l2pI_$mmh8-bPl@@t_#wCs&BB3yg zQnc7NfB@Kyx1_zU0M-PEmCnSh8k5u^A_+h=s52XbjlchSTNT3O&wJkEMwGNTcU(&Q z2#g-AXbOqdSI?JDM%^odAK+2s1ggJ*f15f_F~dpMb#6jPDwnqv>ih`z9liXI8D_pi(ki|U|Oj+ls7SP3uCyJ)dOUo@p?L3=( zxU5xhmdS>gK?!A(@6U9iN7zKL^Sy~oSnA691`YpP>yG(QbhAw7IxC1-08u^MUefyh zmD){Sfn8DEvD`^dBR{OC8i@ilhW&NKB7`T4PcxkL8j4S*Gz9eM!d`}pFVuOC{fohO zz#U4}f2w#{t7y26v!-j0Q2m3*aXnc`ZOEwq?3TfrfC(5MF2D;MrndeCH+n*x_72y@vH)9i1|B?Qqt7v?H>;| zdc~I~)=@kH#JQ<{P@mf7% znglVYtM5_T`yWUcDXevV7E=%v+bW=|@7azzhlI1fL{Tl+*A$Ft9{KPE)``{JcbO|#``~m - - - diff --git a/addons/phantom_camera/examples/textures/2D/player_sprite.svg.import b/addons/phantom_camera/examples/textures/2D/player_sprite.svg.import deleted file mode 100644 index 55eb0bc..0000000 --- a/addons/phantom_camera/examples/textures/2D/player_sprite.svg.import +++ /dev/null @@ -1,43 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cscjjt55iw2cu" -path="res://.godot/imported/player_sprite.svg-8862ecb19e12152eb892607676f3831f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/phantom_camera/examples/textures/2D/player_sprite.svg" -dest_files=["res://.godot/imported/player_sprite.svg-8862ecb19e12152eb892607676f3831f.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 -svg/scale=8.0 -editor/scale_with_editor_scale=false -editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/examples/textures/2D/sign_prompt.png b/addons/phantom_camera/examples/textures/2D/sign_prompt.png deleted file mode 100644 index a730837097daacd1e658959c81f529fcea7ff885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175934 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 Ani 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

7F|KGB*rUJ0G^2NGTBGNd4i2xtBw_6ZKF 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 Zr;80l#Kucx>8VaWkM8SeRH|8q{y$8cqYeN7 diff --git a/addons/phantom_camera/examples/textures/2D/sign_prompt.png.import b/addons/phantom_camera/examples/textures/2D/sign_prompt.png.import deleted file mode 100644 index 0db7219..0000000 --- a/addons/phantom_camera/examples/textures/2D/sign_prompt.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bloouh2jtndx1" -path="res://.godot/imported/sign_prompt.png-18d451127e1cd1a16367acd23cec47e5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://addons/phantom_camera/examples/textures/2D/sign_prompt.png" -dest_files=["res://.godot/imported/sign_prompt.png-18d451127e1cd1a16367acd23cec47e5.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png b/addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png deleted file mode 100644 index 4aeae6c6aadbee8c0335d4134fb372c403aa46fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2861 zcmd^>|4$QV9LFENWI;BkWyzA$z2903Jkw=y z01Cy1y4@c*N0PsfpDqoqufKZarR@WirP9_f%Y_ZK`Pmow6Y$#YOXuGFes;&T3y@FTQ$6Ht2#C#x!#0TYVxodZ83gJ_?>k?s17 zoTX8O#;O%UP1bnvK`8(gs~q3+EIB9kv~)woK;*I8Zn$xATi18GE-60Z;-WLu zZL=X)_S+wcx*<0XPGJ@)|Jl02mHdnBnQ}Q6Ux}nLk4fE}eBLKlxw-%Jwg~qXS9YM> zBMlFYL+!V-Bje%W$pfDFnJM6$idM1gT?Q}P$-7e+pG}> zGo;FAzfmj@DOXy(M##XM^y%rX)`Wj%B_gI4ivZZL1|Ftok-eL`?D+-Z^efhnglejt zQ%_XYw2xKW#}Zl=M`28N?wYTmCKR(PxR2Os2CS$XH?dvUV>|uJ5yre3l3D5W8XTq!vL>%I?DZN2yy$!) sSXf?s_(sPpj9I9O@FP4J;8a;JF3x4Daw4XaWc~#W^^J9&+K-R_3yfXaJ^%m! diff --git a/addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png.import b/addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png.import deleted file mode 100644 index 9bfe7d0..0000000 --- a/addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png.import +++ /dev/null @@ -1,41 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bj7h2fc5jx4ax" -path.s3tc="res://.godot/imported/checker_pattern_dark.png-70cedad2d3abf4ad6166d6614eefa7fb.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} - -[deps] - -source_file="res://addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png" -dest_files=["res://.godot/imported/checker_pattern_dark.png-70cedad2d3abf4ad6166d6614eefa7fb.s3tc.ctex"] - -[params] - -compress/mode=2 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/addons/phantom_camera/examples/textures/3D/target.png b/addons/phantom_camera/examples/textures/3D/target.png deleted file mode 100644 index 96fed6562974104c8764f7ad79acc8d46c4300f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96068 zcmdRU19K%^wDyUOi6)tNVoq$FIGKrU+qP{^Y#S%G?TKyM#?AYEb$`U|s@}U7`st^7 zt*Tyo^$wGj7DIyn0S^EGkR-%~(_`Vi4Z+puS`< z2YE3;K-DDPF#rHgFDt1iB4#W3rT;&1e13j@@dO74{~BRnVBX)~At50@K0Xi;5noTwGipA0Ol5;?U92b8~a+>+5lGaYI8x&(F_&eSPol?ov}z2?z+3 zl$0bTB_AFh+S=MQH8oF8PRh#4uCA^Q4-eno-k6!0g@uI&1_rjbw-*-|cXoC-IXRDy zk1sDTv9Ym5MMZ6FY*trSCnhG=*VpOj=*Gsz*x1dGxPWFUmy^8 zc6Qd&({pokE!c?*8l7uZV~UK|#Uj=x81u9xpGik&zK`aq;>2c}7M?Sy|bk zp`oClAbENDl9H0XzP`@RP8AiE&CN||X=xG?5*;0#l$4a;zkk!v(3qNE4gj7~m78Dd185t=nD=R80CM6}6mX_YoO;Ucn zeNIPtX$1hdQOMmlsQ1fP3`Hqwzr5B%9Bq;Eu>nHT2A;=LmsF%U_$_8wo34fF<=wSk zYBj)O_9)LpbB8QncDV)sfCwNVETHJRa<*>fuwse^*b+$T3mqduecT2NGD@E<70Ew* ze(IbmP8gcFFso4<#P;8MN|NdL&#m7(mv8ca063zJau;=I^C%GmbXiLe4`+|Pif>z% zEuGuePbZ9-=|7F`-qw#^38QsBNAFK{yxw85xiepn?}&A>EBuKN^G!iVkMMs!hXBA} zO!o#o4Crd3x%z)*gXzNqHhfl^~OYg z72)Ru)DR}Fn#+E!XvSpAOuF(usiTxNsfPl(rRzHb%RNapBD35Gtg1Tk&ArUr=mEYu zDwcG;BaYL&3QF&`EZ*oYHv)=ncLe~zXIIUM*y@{?r-Hn2hZ*$;dFPZ3iGezxI|idO zQ{Q zxZptmNSD{X%v5cbS3F!+c<9*pq`K_@h*k^d8HQ2Ve*MnwdqCPfE;!*p05BCV#VF4< zS1fU!V0-dv((*LxpIp26RJKSBxh%Xsu^*6nAb{qW!R2O_bJTH0%EeV?umCff z%8SMy{!}Rw?kgLZJe7c0&r0)-I<~TVn*~03ytAkv+#h%)RsX-c%Q8fVVl;{<+@P;@{TWX<015n<|Ybll{OY zvJo%U7gm>I*>lxS_~WwVDm?=vU;s0m7O>=HS4bD?Obj@iH2QnlTA%8bX&A(Oi4CA2 zZ%SeDq8rxEbh(Y=RRd&1dQXE6!vi=hq_H+Q08G{M)|%q4crzk>Yuo@FWxN;7Sc51- zrQ{7DpjJ#LcK63I7I-XO^1rtLNEx)&AibVfSRfWH!LCDUX1}KfHb2)eIMKeC%KUNE zU+I}hZYvlyK!KvqyrZLtV4^1GW_6VO|(N%O}+o{|rLkvbr3Nt5RXQza#x zLpD~KZ8!lTN^qJ1LJt-dIXhY~Te9%yekb7xvf(O8>;T))I+}S*b6S9`mfsHqz&vIN z2*43^Lfu?jmN{Dms`B?22XtR(22WOPH4K`stOL5OY0umIFGT|y@e2U$3iRfG_Z6So z>Z02m0j^?BPV7orJt&dIE}Y-MeK%#xePYG7v)9JI=RpFxiW*KvbFLgt-DN5OTb0J= zeu;=z(1ou1t%86JqVLb9s2kQSuu<(0R}Os?2Ip7hB$qNe{m6h135y%Ks=&=_;?3^@ zfG3@?=`GB56Fi!fFcQF9$iUo}QQKt{|dg3q(V*nIWes`KI6j(}@p9PoqO_)t@9>IAy>+R?6rcw)* zayYkzUEh-L2jhTivhMTiqnfhFL+*yd(;ji%!bb32KRz6a$H&{ows5EU02n@8jqYJ` z41#xW|2GolhNzsYItT2wz0_mG0GRTWTwI~x7$+b5NqrG(YVgqt=MWvh(ScXK6hOyYTRCX|9;1#%Zb-o>u%u_S-Ced0cWCa=|J#AB3MWP=ds|0 z0;Jkt1$|8QckuGNE5RLJyx?ToMyww|aHaH-&G`~6*f z4Vc}bfT+1v>w?rh$Rw2@H0)&yIi=R!b1;T5P+Laqs0zYdPBsE{0I1%WTAGFy6@qk{f0iR z@46|kst45D@mVezHF$eh`)Eu7#@42&0vXn){^f>GdBqgK7lE#08Veo@3UUQ}KN_vh zkOs-+H`U)p0(Zas`Y^qoNp;iM2t+)@5O|~6*?&0tNGCHa-y%m+Mt#_|)`Au4GsZkN z#tv^uj%6}#`KBDQE^qmCh}i%9NL1Rg6prGy^Btnn(Ioi|ZYZan z_=mWA$`O=Q`Hc!JYdGytqX1V8nYOSgp)VOdZJytg&3d|RfWCI5!WQv5F z(F43|E!vm>@fYTBojn=Wf3ruJkr_m{0d1*@Hkewns&WkY+mie`4bk_+F14TW;BVc6 z$vXhfWYsD^XxIKVw0+E+e(>S^;6%(B@L0k^G6!KL-(qE|YG2Q?ltrRia5xn<4?jo1 z-eP#7R31(2-c6Zxog!dwvuN4qCvB{v5^f<_4g;HV7zp^2_cam&fH66%F`!0dXO4yN z3Dldf`exxLY)6BP>WlSw2!PYCrbIt_5ZRWW3hNLJYS*NKQNnZM`Yx%PGegL-G_d9|pb9zQ(ula`xVFo}_D@k)BZChd z1PKyp8_(0Bt~|rhd7#7~XAqp7bFRENuU1Y@DxTOSFGg)LE_0 zCz!|}dGoT(z4s8#;uFS5u6fm4k9I+5xloAmU5FQdF!8ZG+;5fEQB=PmE;U;9{ba-m z4N5Z-bQe75=5c!I16jCqy18CAY*+10h`6*{xbE$UZLYPjJ!~JB_Pu%v!YQ?hXhQ#- zvh?UZ87-Jm0Vd?X<5%fLX zV1F>^k)UytC+*p>ZHi-%O(kp^C|s#V5jynmqIA_@y)^n)4C~Ma=oh#Au0d0=^XuHM zX{H=4Q8?B@a>UkkT2o-Unm<98DI6SE zN*X6K!aB?oUg*gm8wtORiw~{ zh?7&Gu@q~q{n5ee_`Y*R;57GZnc4IDrDZky;x3ah97@*K;RlkAi1Rr0t=812-WK|z z+Iwkk&lvq-7^Mctmoi1ENw7OQ>%7{B_2a-TQAt{x=kvgI>eQKASav}DI|ev$lT&~$ zKB#CODC6S3(|ki|Q}nv30rU83EHdW)W!G!8?F8cEx5>QKz3(Pt3PaJ<@$nn^C8g|Q(0le<4GQ?6hRP|T+#9f<%ps!fV z0;eLqj#)NOj&9fib%>A<1U)li+)CjNw=9d4G>njeOVPP@G8fs3wWRX{!JQWJ7^j{@ z0yYZ9&_a~It?CaI5@e`deN`G7TDG=qR7&Va4vo%7?4QfJ*fI}CUdVJjg(uIEkEH5El^l3l;| zey}B6iqv(>(-Oh{S%hmAp{d$XGN-JC%_>v{_9Rx)VOn9TP}as9J-0LcBcvqlI~QRn zYu@=bM9}DcQp#|K+&@x=)^`rJx|#4pS^g@&=h5+0Pe!b}@8TZG9w3W7pANZ9q=kQ0 zAMQ6)Z7Y6%cK;WW>r9&r0RW}z;1R1X?I?30CvgkS_tv}tLLa-(?_ ztA#i|-FB>uunD06S}=AYsy5I1rXB#AY9U(Az-nz}Aex#Rh5>H;ohZjp31DzK*UvWh zv%J&#@e)8m37gne3j!NXpu>fn2db-7Q=$(KXhl^3E1JHvA>?g1@Rv~wcS!eOZl;F! zO=gCenr`pZsbItNb+|#Zz2+m1(Uge8yTZz^Th3ETdRE$`>;O))l1DUGfpfywkOfS) zNBNh!fUGM25BfBIF>gSvNrS0?7Qso=X*l>Y;|%W>4h@lom|w+2gL-`qOaOW~0Nz`* zdA3fOA>wcp4ajz)9GU}FTg`r7dnSY0I-{alqCiQLl|bQ3(Rk&yUB@8ZsLexiiJk$G ztp4b60pGXI*_}`}(@7o59;qdl;a5?Y)hSq#LZ<;(Q5j&HXFJBi3pdJR-o=^g2d}T* zVVmQdwvyu(ac<%@xC|%9%JIU?J~_!e4PJo@IzBC)S4~s(eNe(HE0=t&Z6W(syx34OFw+O~bFUIC7`JfRH$-Js{<#ze^%mK(qT*IjCGF!NiA6E) z?Xf=YL7;Yq%rlt>rEl0N>4Y-28MyiG+=hFz*k6_;;+s7!`wMtb+1g6vfR5?1ss*3f zM81HR3i%}WYMyYE@?9)gJE1Nt3C?5V*6?1r1@g(SDBd2#h$5|x8&?^Y*M;0t&G4%( z`M!J)ealCCiIU;KT4##)5fM#|n_R=iBiy0sSq%s3Nqd>+ynM~48JVD!SPb3D%d8yN zUPVowyd1Dux=ciRz_YMnwv7pzPP|dqn`E<$Q}Hb}uB^a7akw39w#W#Z9e%AO$vRo1 z{k*4bfr_^t;p$-+>M8%wl4lwOJ^4BPG5jvxNUgHF$KskOfz$r8Xje6W;7U_*Zsb?2 zF4ApK4<4RbU1cVA+a~7;)s$aleypa(Io8C+1x++`SjRW9AWqc|r6fP$+6-ctOP-?y zPYM6;D47rKCcHw^OQf^F8`a6!h6Jmw1Q&^Dg!K*TartL=1Y9CJ<79a6<#%#?NsUG6 z-m{}ikS`1On2P!mAgs1Vd24J`4M9YrD0x-q@y(>rIX4nw1Z3)0k{ncSkZ?mA)^OS} z^$-TGrYc8w2oz*tZ47n$uW-vw zauq5FB7*XZ6VNrMsX0-0Zir^X;I6|mp53XssDIt03nkJ8ryx#tn0$PHDV=?w;PmE0 zIdq$Rgj*{q%!&@OoM?n06+k_N=i?N;1fbcr^1_liQ=G%oB3WZopnwmmxd8n!q?=%_ zZ_NGmp>o{h*dwjyOx#Va6muSjIi&;p7A&9Q6+5cnM_}_WNsR9#Qg_GG=%BY0?&9U zQ2HjjLb|W~L{WM{uzqAe_!7ZichrW7u^wk4qJ3%ZMIp)oaay1l(-f+C_#-soY!Yy* zlSw&_5FUR`f(Gm*)*)V4p(yzj+D}(%8EY8TsCH`Rk1xRMoAi2nW^(gEO{O_|0$nhM`fwug_Bo)>KiN4X!aUo^g-~pm!xj z5dv!5Am6hP^gS2wDtko{tM+9`bzKn{v}}-a{aXaiLUBv9-4LX$fJ6oxD3hH!qN?F7 zHOxkw({L^j9AT}uqVyXKd|Ty8qxz`a{KMS(ViXl07%d!-}_eI(+&m&fKWWh zGs7r@tq^4cSI$1+pV$RU04H011BN8RNGF&%DynSHn~rw-ns#tS!<6NG?~JENa)>#K zpku_&WEJP4aB%8bBTAC=ltq9k_$-bm4K8lpIN(0@oR&EIOIM<^V`o1Sg4Tx_jwoCF zXDz3%9U6FVUn^1g80GRI8U}VUZ*3U1FVv&Pg(N$1U5?0f%scO6Roo45ve>3eLc!rS zWd&l|*TIq!rU$GYA({fwZ9p8MP$d}2yI+)+DEEl4e5ZdO+Gji_t7LS5*VoIL?nU%Q zJvg8ugx2C~M)%#oPq)$_S}jo$$9O~JxxJkr=$r1|oS+#&nNFSg;PAFy6DiZ0 zDN*CpOM~8N!r`Zn(8juctaM0$?i- z_eT%nJIwRov%9nO6 z!^v>we5J#D9Q570V za^jz0+m3&C&&RN^J)uIkJb@c_bNI0A(M?@SLx#}6aCsGo)F#h4-efGu-heMR>Ixls zE?>MuI;Fjhc%hLyB2;8N8=u!>U4$TrVWu9KAR7$ZF93)yfNktNOMqMOS;1!B(z+ut zsyUvGj{W^l5r|=y5wdAKCm6wBkBB|;ii#%m#YTYAQLXm^UAcdq96!FnW@ZjaB<9&o zHbT^Tjofqo5nD$;7A8`hk&dMrFvzfi=}$Lk^pN{E!lM2SHtLRqbX4o05kmFu9_fbR zgQWvDQ1G|^6UVWW91S4J%_lA^v<*$(R8;r%A>4;V+o&{G0Z>uG5=O|Q{zkkGYl+^p zi}AT4oC{Dbf7jXZx!&8r)Ac|b@ZodaB{Kro&F?YeBQGHK+Y0;ij2%${c;5c*f_O1R z!-s=Bb!gBZG-78upQ^9js`n+dKQGu@7np_m0pV+3c%a@Bmpai54FuK2 z+qf9JpaNb4!9q%EzYb<@)-V+Our&)>0=k{KbrIWEbb` z4EbaxC@Hx~JH29a!^8e@=%d6-L1+GRcb(#~^S$Z#zVcFCb@)_1Vyh)zjj^7hre%#; zA0jV#B+p%*nf;62CEX7bkQ+qeDW|WUC_d8`^YwVwz0YP$1gN1yG)~+=3p8(g1PEBW#Sv0^@ad?C^jzY+sp_4 zUvf~?J|_DhC%zLpn%*|v^9`{~Hk8?&`OcVk;l0_BVL4rh++7jQwJPJqHRF7P!27@a zO1IDn3A<|42bJj0y55stE>Rq*yCOrba5)s>T!7<0ZE)kg4pzZ2djTnv;~_ z>%0zT4BsE@kZS6n@fnmU|Nf!4xcu($%n;Hn14gD6Ev*p$5N{@J{vmlY?ny2751Wz< z6A39pX=fR!0u?{9pF>SD%q?0X_$-zLrsYOn7(Xz-XoPGM%P7Sa`6CI+ZB3>{R+uRh?)3law*-M#x)CwCJY)aGnkhv z)x~eJGg~k38wndm6BI|+7ng(ur&p~1i9h=DH|9A=3EO041RX@WIhSMUt3zuVHA1ER+_`92 z>>jf&)5SqfPNri0g9prVXbM<1i@C?5eM#N)vCNA8`hc=dIX?E=n=}l56#nzY8`JLu zqi5=t)@)TxN!X}^_n=J`28A(QhW=<8kIPZ>+Zd(mBK4E@#%xvY@3L086T#+U__#ZBGjW(=h(y|4kCz_Qcxw+9I9@lT z=27SG_&Qo*R}h{TEKaJ+0t)OD7NPp2xxOuz2d$x6<*9b$HBtF|pZ~t|TJ9-A>=o~X zJc}3I;#p5bt&9+J)0mDWqQ^xGj8tj~@9g3|n`adpyV`7SR*QpsR7J4qphAYExo;P1 z;V$WpwNxw3GPNco@=C9DAU!B6Je)4#+cQea;5;Sne&2s1JQF$7YB_sVo%&HLbI(_Bv!}p3fHCzw8{etQ68tA{;I- zIFD$#BqS0{TAm1LJ@Bd8$S|1eS|9%b=1>mjkskKlz#IFs$sZXZr>nMjgM`#f=pmp# zFZmcRmePb{Nq7!>JKdU#*7svHnjWOC=L`LdorC1qi&Y`3uV4B_H1D@|ipZSNaE-WF zzcSxX-r~v;Tw@{#`Ew9WFxmWBjjU$m;_?s%H9g*+2TfdjUeXRj7WnEDef7t9IMXjIqm_D@OL`^$9A^ zFl29&|3RfXwzo4yO)7;GK}L0?!fr0zI@eW)II6ZBQ4&Lz-YDowPeZY|hZ+oP-4#5U%xM_P#xo@+9<)tfMk&jrAuC->0hWb%@Rud8J9SlLSe0r_O#Wrbb@SCzzzFOwA2#(d@x+Z4e-d5%jJSyuzWFQWC*hyBXxKPtEZakK*)M zu`tfF%R*-o?x(fK(51kP4x08pby1`cugcLxe4lOfy(MACmK3)j+MPYNqkfjn`1hZC z7dhd5Rn8+9)p&mIhD(t4wpWOlxXVRTK2b}Vt6*J1&LIuqT*w~o>^hD|^J3!FaBuCc z+Cm^vw$`^@vmF=fCLHkL8WiD1ikd*fCqtGvq&0b^M5 zV|x5#wXZb6O;a6gM|uX_wHd#rfuvIcPv=uMNwO1q>@Y05*7v`hPwK|0s ze@(LjRPOkED``p(Ym$4V;z_Drne9)`1_hCSGaK604{$1Qw1s>p?E+{d$^O%$uweTW z-DIQ2nxd4M>=1xjIMo+~RACmD@@( z`!F0;Z4He)xusX{UyHztw`~*pa*PDK5!#UU5=g`)=-Tphrz#pSt7nfQSp) zD}osEq~>8N<&d$o%`_)=k@m2y$<#-PvUZn%n>CB`VAa$9#!8S{m#=u%i0~`S;Ro*q zF+5#;>uD(ojO1>{5>hJESjo-s-}@H%-O-_>h~on$S5FKz(}i!QF=J(dSdfLUGhK1cEaYdlH~@j@|jS~UvRqP&pdlADm*|oPd9%NQ==uyaCpo$ln)4@@ZU>R>kqjS(486euA zYeBmO+XJe7PM^`^PU)~v`=i|x>7HOgy++lPVcn>e@*EQwky!7?mpkQt4Nc8g!EzZR zD0D1}?sl`^p;E8X?TAOLUXjeIiTP5}d;x{iN_aq#F6rZwh`njgW9G`F zMP%#ciU{5oW@CI=ru7S{DOrqc>4<5Wb&L@~9q(lMaxhRBIRpCT+>2VN`ypnSx1WU9 ztz>gPDHapPVR5^j!t$OUKARJT96)Ndey5bTYe~tyiNf^F90=c3LuA`(LUNK1^L`zP zTu6C`<#kEq=lMAGFqEgMNXL+{FZ-o2(QRD^dXIWIY3yKA+9#^pUg;!p*pv$e$+{jv z9K>1|j{uuz-stKdKggL~1bf_m1*Xf1WvTCgx{4%h#>J5kna9Gx7s_bh%S-#~2!%ch zx^)4HFK74-Z@IiBf=2wFzs13>CZaM7gD}1-O9TJ$N zWS5WbCFgG2=p&BhLeF}+jRd1D%E(6NmUfO*j^7`+a11IK3_*3-5TpAEl{W-uHw})E z3^VQLH+g&1%hlmMD!y(f@0xa8UtOrf7p&bHT~a@Y8tZvGM_Ye1*p$*3h#8UKy^oshR-Jc;lfE@CG$BQaQtt{HrOFh2E(|%O1u@^tLKl-vUh;fIS+Nm z!;C4<83HrDFDAadbTdEu9%Y{w_i*3|bSrZoolG+A>|8QC6~tY99j#P}>FCL$%cULj z^}_K#rZ$#+M6^uo-W198P8-#a8Ao_T_y5h**K*-y;RNgHV+W^-0*xgZ`%ww6iBWzV z=T@ZsVLYfMI*wC?a$L-M=vqy5Xk0&EVjG9>@! zX&Xdt@U8NM^8u*c{9RFD)NRGj+sE!W2OtQJJm44M^6x|ITlEkEoq38Lq~1*3-jvp} zkF8)-8K}EzcwFn>JsMm)!-RY-UDeMc7>%_lpWFVufv%bEZ$+ZWof_c6fY%u!0~S@dYoA(BcGxt7`BzQ?v~vdeP1#Wz!V7Z` zaTWlGrYVIt25oLuCzL@*-MB1}=f-)AAU4@xR-iGhx5(+AlJ{Xt`PGKxJm@WaXz5fb zQQiji-2a~1k5ze@^9XjY-A-KIal%v{4fjO*hSVGEV9+9>fX|Oc zbn~2rsTse!F43*+-=>#TpS&F{^&n%nrfR3$2}HA&5mQtm)G3udV55+0+M0XZi&4BE3R4pnYP#+Ojd&Swh5afJ+ks+Y5-zmfEw@j1OtMl{Ia0 z%e$Q{FXxH12spm+pgR5>F?>lg&v6861{P1WSo5@u@2Gcv{Md8L zNhwtU)}YND*@{Q=z@Nhkf(#G7HB8bD+<@lp2T_mZ6aN{tSNKLW|3a9+d1xPunKk4s za;)@qkCPzqVP(N5qy@_Tau1d!2w!GwOJ^CX_n(F|#BVxT-&TOGcMKEffGt$$^mQ4Q z)4=L27gyLPCuQE;{QC_vi&S$*e{iTRwpSPRF%3eznXnD?KX%`)EON| zBMdRTZKoH&UY+6503oW#vyLL<_97Z~=vRLN+4c~-Y^Yfq78IfYb0yJB_NpF6KZhpq zp2!4o?e(3Cw6`Ki)an(lPP4QolUF{?!7pF>iI$&RL)^hjxl3Uu{a@{_4 zNIv^N6EX!s+lcX?AjR2ZQd zmQh0<1hFR{-*=->Qs$lK&j^PI->l3Z2>W*{H$}j6|9Ec>n9?rC9a&UWZGS2Rjfz7d zkMY8*>{4$XLO&W&w|1^uQ{YBXQ1R1qmj#FAs`{vKpl1A#k~(O$srkxLE=OTJg{j}j|4WfDejmO-A=WkB%&js4q*eK7Z)MtA?RljdpVE@Vmk zYMP#N8Y0otu?H{ScS8j44(%#^<1KTQ46 z=`Qt5xb+4Y<6^Be{ks@8w?4u{Q)1MvRjl~Jqmn5zos_96uZa@s_#!+^WxiSU>$MEf zu(WC%(j~qM(0rI5B2h<)O;)&zy_pO-BOp}kKQ5_#ira949-t=-*3eo9a5)fvtYJ1A z^y|z&AID$!I_ZuRo-x+Rx0iWP&t>Z-C4HYfKDAYq2EoPXr7mKHJ<*W7pBK|B7}O{) z(Y8tAvG3Ff7qQZ+hmX~at=#{hW@FN+rvZ;TdM2&Y*lCUA4iLmi^Ma|ZXoI;_!bXf1K1TW{^ zO5MwDwrjo;k(IXg%?ip1aV5A&>R z@m*@xHHvLFSIpexR!xT9vi({xFIM#&M_29i&GH>DnNjD_DN3ZWUMf>b@D~IBi^u03 z4Fnmra__&P^S=+GR)h?Cj~21a_00M24Ylc^61J(_m+MZw36X>?@B+h6vhh@P|S<+}A%ipER{TqLz zxaD{7QS+#diZZEs%;1gqEffS&i4c68dKdDdUT84}i-*$ZqlQPQNSj+e8`g;)qEP2? z^c{PCgQuLnZk5OC7pPT_(~@4gzy9OtYq^Z03i&>O&{o!H5{UX z34Tx6*#|!$0`7jkPMoc3+^jPKgTx-No|5%^aCMxHWcmwbPG-cSc)tpm5w6|mwzPGv z0=4HZ?ww?}&KNE>St=3C(W2gc+H1=CW1Mp}eJ-djUxi4rx@y291*kW0EB735t(9Dg z$9bV5@wD5HrKwxyE-3K=?=ap^<+SXXGd=W3yU_=3gCO4Eoa`v1#;O^`s}Za9*WAhO&T+vxn+S=EBDoNiB~nw+Xk^K!=TpVT zI}xV!fX^_yZU?0-Ll>G1Ibzr7ddHSumzKrQlxy6B#Wp1P#PYXFPkD?Kjn^GCyiksG zsL8&eeg%m@UJ_3E-?U6oao0?AJ(RZ_4nl6?nluLBX4jl}p==hAXd@mw_|%J3SS?#6 zHsMLmFeMSM9+PpwiKR0`nLBpZVP)4u!X+}Q~$YNSrdzvDW@(e#QKo9E&%x6JgA zkKQFU$RGb?pvY~TYr-O_YLn+>3U%(@>o$6#MVxilH4i>7c(-oUb)xf^)5XtTgqV_8 zsj}$0rTnU|{)0`QM#j#EZ{YT|CX4b~3GuHpczvBggKH)vUa3j(-Ph`!Io=I`Pz<#^ zI{mS)KYfjR!=SRKW~bzVG)MMGa>pbsoS^@RTQh0KZf7qR4~4E5tQE#$h?ILUUfTYv zGMfGnLQygDyPRR=E0Su{*xz5`y=00ZQ;>DXX`1CmWjf=EC?y;Y#|5g13KoxYpmzmgDBR~=inF)M>5G#q z8r6o~$FxRsSWC$Iq{D&a6XZr8{BABYrFYdDM-@$|S3{N9Arwy-TDs<COLKbQl<_EzKL1p-MrYe^(ecXBS^K zRiQh{M(0~cF{+rmUg814>*V$BU`9uPgk79B+=`gTN6d!QW42f;(WRvbh4~#nW_*yW86Av`o4(JF>mTI5=H#<%f-u0X@b-6= zAc@Y1J8b25*9@JsIvkfBzF*w*ylm(b8W&bUfZZqkFr&eq4^p9^LpmN4o!krH(>gR;=H3VY5#`bF$>EV>cYxwUwi18_6u8qUPOIEfh zA9c@yS7Vm&yFlo3hxj}5bhX@9avYz|&bVpL0*EzS)_oG;aUMtHrFt);BImF_0)F3xv-JD*k=OOK^zA(_kC@;i^C0dTJq!Q)`a|iNn4ZrIN>xLW zG!2CyAwNWMaf#nINuC>8iG#h0rRX1e3QEmPAlF!bZ4h&^R1H-BW?1J;A{{UwIW6Sz zY6>?l?Q9}vg9*Y6e5F*#aw9^!NBPlgo0;BqS4 zu9mGUHWlFCwyprTiEeHlcXVLct3Gkrgl=|oygYsB3GJ#scQm+J5jrEB{dFuX#K zk44oO?bz`HJRIEr#!%xN(f11OmozQnGE585XNy{>Awd!9OZohh*0=ewh&zGPBEC#8 zHcbz2DNnHdk=PPTxHskYLo6Jd8s3h$c#r&=y%OJGI3tQ5i*0B}swBDJ_ z?w<3X8cF*u=W8=a*5)(%?Y+GH7nFNOwXV_ELg%&K2WQCST!Za`}f6%h&H1VMyzVs=x{UR zsyDG^a*#DxF z^D&>KWf63VqAfZ?N?tlr%lG9)yjvZsLi7`a4fTeejdMCZz5d$Hg-O>3r6lxJ!o;Vu~PP)M600ELd`q;IXNQvdi#a$IC5^Q_tuDx#@w-KdU&*^#MPmO4>TE*1( zBgnrSkJ?Q17N)J>w{D-L*-`1=qC(VfOOX7s0IlyeK}IYbtzx)dx;&SyK(|}nc+L$R zfu@UAL2XLj1R4J8?a)L6{~lObr0x{VyzI*(-julaPrP3_|m9qWCDhqyB|Omd(ms%R+HpKo52n{NIWl-2pt0n}>q zVi_>D*EwV!SauSyoxfoDK^RkB%aflz5i3+PIg-+DrI*-~RrQ9Gmo21_Q{Mw$>F`}6 zpR*CE$dUJ6lE`Fk^6k3EOAjyv;Z!hOc+f6D2^Cc&TR9%aGYF{Gs^6=ajmr{+ z@R;n?X<-=E^b;@c`XeB!)e1kv+rq7o6T3>y2YA<@52zL674J%uGy8HXQ4qoH?Wi(;&+S_s~mq zc)wD=PN;(Z+$$X^-$}K*Dc!e3WOinrPiQ;XuA-7*TRI%)Ego&O4Mlz{7M6UK zS?HuZ;nGQg+xV9*jea#5PkZt!#pJAD7C>0aYS33x0;er5wA-IJkr!=X;_s0#dv3Ix z{cjbSo)VE$%Wt03dLWRqOo1IM&u(X=h*YZSn8Sq39=D3ys?$90%Ky7)W~07SiWz8) z-W@Tuo*)sOAB(s8n3WK}39YFQpC0|Pm_^5r=7sNm8TzUd6QYc*)kZaNG7NW2xUaGQ z_uN;7KHl1s$3;#5^fSL;sj&B?Q6D%j`bc+_;RHPUIm7ykHX;xgNRBaGF8?YH~rHxd^~ zuZ=q;cWwSe%&i4pJ-?>MKtdcjRk}2X+{H?P>;9C=_~`i6pw9Tc8?sUA?q7}#oPPi< ziEN1MxtunR%;6#UoR8gqqbScu?i026;ThF1w%C|PGv5uM1}(8KAV#XQ>)|HQXYo04 zN!LlIL?g3oA7V{aAfPaHx$-}qi)yTwYF6Dws;34sQfftJBsNy9ehS(=&8QT9wYSE* zm!vV02!hfy$TorZ{m~}MRITF9B!?>YhQVL$t(0#j6BnY^aBXD2TnOEu*U_1?^1*1V z@0w>+{<}H4+W4`1l|1qxe{aYKYaN{?E7mbKpWMH0M!|>stM}%xQ@+f*I9Lxo(J&R0 z>#5HIZV{B{QIDw(E2VNP;=(Ei1UoRU{~kmpx~)B6)8((H8rhwexFvuPr*lem%N z3O+t%Se`F*&WC`7ORxO)-~)W^_rH%PsgYDXg%IFRt>3{*MBmaj9l1^TUMuBj6iwy* zQgC0AeN+duhg_h*%BwA3lKNq_{{+94#kp;wFLV_P6%d5U|8Da=$0u)+@P7byK#9K< zJ>%OP12H+_M_=`Br)C1&J2id|v4RH-*egf!`RD8CpJx{IWlSx`uY1bC=(5hsUON5=JSbxiQPuVU$Q^mta#A->m- z!&)DIrJXEx26$)&kN8knqxz;&+;a3dIw)E^Cg=_$`aL~+Zn{XAbYB5Pg56;k31dWm zSl$lBU*{B*P;^+kPR|(v6Y@dWzt=;yY#pO80z`%$7jKT+^yj&p&ei+u>(-)$=y3m; zKgow+`+g6(lFfqvk)x%`L)Q3Qzi0D|;AdZk7K#SXtkQFZEAjzYcf~=X43<+80gY+4 zY5)Kr07*naR3b@rv4g~MO@9U2HNCICm_Bzp+;34Te@mZr-a(q&H%>hSh%61C+s_>7 zRaxq0+AcWZkUn=h+;4@S{!s8!_LF2FltDEFi1^Q0d9MBJaa7(+eS%{(=yRvT{lApS z2Va@}4Ef#!r4S$*3^;fn^Od}n3g~kO#SZs2`3w3p=F?+lK|6I2AUfof*`GRkLEcEs z^tsdFuGirnlwYPWWj;He9HIyUM2|uH`=38hx6whpl{w6Fr^8)-Mb3>(>#331q5#pQ z|9kVN;PNB%O6YT^!(EN9)uZlez<6Q|9;5sLM4QQ=@kEl_r*0y_sb%!JN3z3xqn!P( z*NDelm-V#Rc97Z!5PcfHHJ(bc52+tB>aCAlmxeBi7|ZmIjR(a;t~=j&QVi!%`2b>p z`Cj+@0dWgm(rX9Vf-Z^_Pd_4Oef7t?O*{X?-no7?d1Ya|T3f_Rt#;a_w%%J?r`pjq zI#bLF5D0`M5-=nr1W7Cg!w5u?n}SpYL_qSg|4yx-4yEuA-6d^u`Gk$jww!0MwfBRE< zj5&`G1tZEs*%74@Jfb9@fm`weR7R0uKVJDX`1j1oPSL?otxsjfBScA3^|Bw$+yO7T z1?<(ZpV}xAEZYNTc_X&3Rmq+rR#V4xM~KptRf-NPSF^Cq(*(ETdzMihMS$IKhQAN~ zt!Wn>2rsoW*Ab#T?HQs2%K-RHQw!XRFQ+;RpO3b{6+Gr(JDTVL&zealIzpBPhv?of z*RhRL;6YpPm8+fsiA2lY|7tW88S zdNa0{{UNz!O$J9h6S9P)=>&%t)daS2TF@3eaUT^@n0$+7^GEs6KGr7qt&ipb6I^Ul zI5^&Bn|NSuHQm-derg$Vxt-2Ojek;|KEn*W%v zwT%xJaus76$&+)`*u&$qD$o}ETPmdR_yNwv#-UxTS8(*Z*ud--YaBg$+&|g+Tl3TV zH=T`<*?THOqx0tdr_H~$P98a4&T-x`NAV-MF~)%1(!CDt^EzQQHBwkZ2zQ}*SQoT| zjRZ1M%8*Iwk77+FBAIa0eAM2eI={2-2=_~=U%q)Uuuk6v4N)IB(h=f z8oF<#N(!9~XhR4uLqAeWbBPUmd40@kOLYs_aO7o&{mgI--9D%*ui86a9%;y@b(V;- zMzNs=yWuEYL-!RMsFOnGM>OX$Bm0)%2BX#-<}}60YH*k`T#d2(DmC3{(HXt0i(i7n z^1EV#%@gQBT&-x!y^T64RQ4r++1dr|T4EcFs&ZLG(xg@;XrUX9 zqD_6?%T^7cuodklssz}ldJQrooo0e*EPAy2%(bI}TmPqw+4Z(-v~%=uT$Z_W48_1k zft&ign`$X|R;>iHvLD%{hGoXNVK#4%5+{9n`5i9@$H}I9(04sy#SCOXNDEdxtVN_#wy_X$7B21A^=5DzJY?DH;k!gu* zshEP~Q!sbB0PIe=A_JV-$mA8#pli#u8V<)jn$cQE33o#zIWKc?&OKn0*ud6$GZj;C ztU)_00d^*b%sU+~Ggrju{jYuaFnLR*-CWFF5i#njMedUGz$QVP$Ne{IreIk19WMx# z!YlIov72Sdk-8N$+w&-?W|L_(@xCxZ6o~AIrS0P-p;GKwM%5Gq%fVc!9@mowGbP40 zmS07rJf^{H;jQ38_k}K#kIk|oK$^%xEYAsE5-P=KR84`ib3HEz6{5XDU|>@>F=d6F z@_hGtG?Y*Qh^&V%j#JKu&7{PG^iJT1r(l~CAy#ala+29&^f9gvH3(p9fhXF(FUlYjE}U1+10+2enfm ze2Hb%r?BpGtx{YtV|USzs;-O{z88%2L6%GZj5{lM>g3h`0ndE~yR-e0>L~!efU>Cv zcAjw6RdJ!L^CxDgU}-Rovg#^2jOl!QS{N)NPI3DHckXizR+GdpsGb(*2Q24-y^<0* z;rZ@S=BJ>@x7B7-2St-iyQ7`^EGUi+iQ5Ig!WzSYwa}}npBCfey-*e%fOVaF;=t@vvR8t(odI+_f3Tk1tZ-KI>5!G*sr9B`t^fNC7 zN`cXuLe-;iiXGLn4Qasm48qK>>4g=$Q0u&9J2jM`Avry$Uei7%EPz!OGb;tg2{YBz zQfVyHS?<5UICW8&@oP}8iBn6V*7*}^C^@HwV3WT4!PE+VCCGIXZ zZwTxTTiP4vA=C=dL8wYi4$N7QLr^}`iW zP1I5IasbJaYSglyURkg6Q<|8I7NN+-jtsGd*5c=>>tYyX6$`@7%xQr7G+Rd9cw`6 zA0+pP3R<2r=Anf+*O5mp6RT8roZ=2$h;dni21<)S>kFXXbZ(}Snw$Mlbre3(m~~y& zMUKK7-(9kW)*bhL>0QIDkGoSINJbOT|)9bX7!qwe;W}ta^W~!uiK_O2!$Q?W1 z^^`@Fng*?C$bl;3TthWA$CT&4Bbjgl(@(BdONv%4obEhNQgX0cI~FRJ@hJE0oD{W4 zGITZQnLE_Y$9K!9r)IGn$$}3ty(CRkdt|o1n&*_VC7p@|4@1j1_wJnNC7JmqXnPK* z;UAw-Prc7K-vilCa{|*zBz+62Cz*NXJiKCEJ1kB!kFn-LR70$0OdCK=%-QuZ71ev} zM)DCoXq*xhrr7>!F3#x;lqtxhXEbmZ&qh>3te-J$(1oU~B`>?kS(4<8lIzM&HID0Ue03Az_)RQ$iGsiw1iB`?vVOzM!F2=(Y0GtLZ>Z5BQo z6oksW8UGq*1A7 zi}#r)@NPNA?ZS*RNP~+GQdPZU)e0cXVYa~PSBZ&EH<@{+Q?6rI29anoin+U|akNy7 zX;a!DEr8SvYvo7ORd4wxkl{)(57^}ti4J8k*Sy2WyFtM>g;q|{nMT$B#8}od0%-xH z7BC-DSG{4wS2$+VmLobw+8HsS=@Q>qy~{X`(^Mg{=`?d3)LV+4im~fe$QrwIKo8MZ zY@o7w%{Cy%xCa@Tu8Rpwwfv-iLy0My0z^KUIzH)mL#muW)&XgNT%Z-+L1pz98xwJi zRs(rIR}31Y z1SLH)%g|og1Ji>xHz^Xv(5O77v_nx7QnI)+tmrX_E8ci*q6ecBk4Kl2GxdCwT z(>i&C1;kpQ1FYkSCmurXlQPGdSITSoa4_ys+u7eesV-B7F>4UVuK9R`1;pn#*1CZh zii9*j&b$)$Nu^;xMR`FEA67l-jeBS46*8G(0CDl3;H>XD9$>-P3bMlemW(*$X^4Ay zWv9F%ZzPtrF5dm2SV$=%Vp;DooH~VswLHM0D@2bz8Bdz?PElS_R*>luE8a^I&&g0& z>RyG&vBuPMIG205?3aC2c10GIMNmKlqeYE^3ldb^8jBhcQIIHB z{qOoiPfuG`1n7EIU!+`9pqbN|S1ef24)fd!m!PwTg! zKA!8V;bhHT2|tIzPQMXS+hoClO=&#lFRO*62G;ap1h~Wfj0NrKFL9eZ#*>4p9)zDq zaQCp=AjvUt_WS^k_;5RhUAI$MpkD~PcoC3kL3ytCdd(cYsoL5u{GSLU*LsbUIujMv z1dsSGP7BNHkA$2ZSTBM7kB9-?sVQ@sHuAD{b5M8-B&3$9!r~$V9E9MEhkl?2R&*nY z*Mg59u+YEC@tHG@x;ckRNs#Fm;s%jCYI2dn$(9ogV9}k7Fq2$;!j|exHHg&zeeHri+P_ zDiwrZhNlxQL#D*Qwua#MINHx+jupkkIxMhuVtoHK&h>K&_=?kB?lD(1pHrD2{BoRg zc|WJtz{b%6-aJGGhTIMQ>Z@2x1M5);=lM7IdeiE0|JAq_UkSewg&ub{lpARK-o~*W z8dM7_YO#T0o484w!p|6Yr~r@z=;;q8se`Cir z9*?wAsC~y%eYJ1_#VokRG9@Ya`l{PkUI^z$R1OH!kHmCmi$|;Z+K1asQ>qqL6k;jG zD(7$_Q-n_o&NlhwoK}!1{#Z?JsEF-bfdiq&`<)2h+9rN|@Pz%5`-E zdQT7BUI__0_!1 z5PP)In(IgDueTrk?g8b(TzphU{*|7@w$1QivsHlil@JZIXZrY z`!hdTAhS(rUzo+m;&DH*^&{L?BeaKo28G%8TohQFAl9e}!TkI*Tv!gcNde{hcTkw^ z?}X!S!s`OuR2OKYzm*VTH+iV9-lw?v_b@l_gAX6v4>{5QP)0=gUYKnpx;X(If?o@Z zyF*Jo6lPaCD6m#TZ1EE2x@Vdr&eYFKLD3k!Zx>?JSLiTkSN0@6A z?Q;=ob^T~7MQHhla*|?;@d9fb#16EL0T0k}a&Odw=7-MeFpenC>WtBuPTCfLvN>|ylBr)>K=-+f34U5L6iy@N0Fx5x(S zfqf)|%$P3QXtu!m8sgavD8CNvC#%Rq`|Yc2triuc5W&n&yJGzUXfgTnXW}@D>rRN)y{|LRbBQx71tDMEYArD???Y-| z3DMoenlv7Qz3pJ@JYaDRIheCbXP)N}up>Dq!17T)Y+Kty`TBWKh;jt7<84P_BYENI z6pHH69tNv6Pd=|kCFlA1Hkb(T}Qe+i}vJ6lkgIQ)vXrmt0jyx z&yg~eN8jLThxG-cr4i+Bfq=w(+mU!2JO_Cf#dH}%^A>$IrAC5{DkDoz1$Ck?KyU} zJe01}I06vCT*C_+a=4G4dX!j}GDuxvtialYVEqv4_|q6xG9sOJmAv+vQnkRuz^L80 ztmZDXxsQ5ZGA`S1vQ=NLWO(u}k|#gmK9%p-)$v{R%F_ZBDTZg=`?!te<0PIl8JvD; zs=)dX!TBJ`kL$Sqso7n-6V8oOmKMP1usa-i3Tu=C)N;la1gC4XWOUZiM{?t2tX!m; zmGI#jWoUto%7bRZ^E9{YMYReMl*TPFRAB8yP>#B+c@x_zxoviowlq=sS)e0f%4&SZ z-=*3lZV!p)Dg>v7mW@J|jFL{{h5M;maoy^^o%6{`&VmK(K5sQdv8ve=2GQJ%pmd#` zWuuHGqlF}?xJ6ZpdaIXZ8?^jNFoJfgXV^!vgR9?>Xl8T@%`6+;xE|4k9U=|;^gwkY z>8erb*77UC4gzPbK7+8r*$85}8!^AK>|G-T)(V6Nqn3?4fXYPNgwbyge^XKxEMd&( zXTs;y+0|<#md6m3T3I%_ia>Ud^g=jBmF;Yss$D&zj4YT!Tzj|8SiMEH2&P1i5b+b&}wsP0gO_Q9>51A>o+KX#ES+9`&SUSd8P^e=<>EZ6i<}7zTOo zL#Ra5q*)Z~v<@X>!6K4PE*%XILd`*1hBb^BN!@0lzFHnbp!y8Rd9Omp26(lRpqcUbtQ2E>krq;fg!4C9zN zfi4+P-W9x{#oi#+6w?x*X_iq!4I2}y9St*$3ml(?uE0vQ_W*8F))oAqz+Mab0MZbo zWmsnjgubI44Ks`$&g-m#xdN-o+^^opG=3$xLLkFh3|Cx38lo~D!|*s^3JbldVFkfs zK@(VKk&@76ZNR-k<5z+^m>a~(xrekvzFJt*3i74~!j6Uj=YUI2geV9J-PVM;O4(NM zhy6Lm0(la-QZUksAsF!^;c9MuwT0lXpeuwgkh=Wbm@HSfE7uAhanIUQiMjIzl(7&O z2|vXaSUUmi206=d8;}$3myC(>@dRaB!6y=)7z^gpL@UG{#qir01n{|mT3;<(0AM#6 zMSFU^QZV^#oB1QbuhF z@);#r!82aidN7sO6OAy1;rAe+h4mS zA$Fue``pI>bZ(x9tgluQTHc))Pety`G*T zwFbcKZjPe{fjUqWvLwZOQj}c>@w|i}T;{exM8# z^jcElV*%w>L9n*fJ%@PpstQAIH=u>Jh>u^GlVk&Oa)L}0MvkdLn53urmQLm|HAD&L%~hFKvsY;z*PX7z=MQ@ zGlbVL5^xD90b_;ka)2U>l#1TflGgAsrtUi>Ev85+{i?}LKy1|oax zM0hpu{?%;^yMz-YOJD`o?*N=;QXI4kD8Hq4)OR9D*;EkTM314%gv7JY$1ws5Aagrx z#QitXPia48Nz;+`f3SD%Urk?G6km0$kB&Nywo^M+>vWd2(@t%zbyhJ82!W7Vroh=X3AbKe706-*eB|Irn_` z;a&cyIl1?nRIQ~miPX&6n$nQF-4p1^^A|N2#Kx+B#-=BDx~8S>>7P&jcQ97aT;$K| z33%EchDsx~S$a}43ddt}ZaHuVRx4#|k#k5snXoZ;!if9#l)HbCclT?I*;uCb3^Reu zp)jE5#ptb$A$``J0eFmY684_wvENG}*AF0bt&X_I7gtLl z(OJx!4@fg+0M_+TtLXHF$#80Jv_;f`W9rB><-*5!e$I^$YQyRBxm>Fw?(suEBrr>caChEkNV@Gz*V;KHr1iOd zgI?K(>>BWU^0V};riAoCL#})ej{4J-Pqn(`bNMbsUwsDXvQP#GuH&x!IYYkO&erC} z6iRMi)IX4dIqTt(VE#@$wMiqR*^E2y|GZvX%w07*naRB|yv zU%e;46}T4?k_T!1>h#M-6xZ8YEys<_{6H)v$w;IOLf^J6dKDexv)0aq+gs^6532fK1j zIPa4*+93^tlveRfe)@)Zfwe$>JVLBPT(r#%S4~)vliQ(n^0jDj7i~(i3SA>^-JA4! z^cj%?YGJImLf&Tc!c!Bk~cn&FRo_(-uo_fK6G)>q5rSBfe|DBgml)#LoET0ErH@g?fY zH>|4ac@+Bdbs+1-Xf+^MdSRTmF=z$s%lT5Y!1`J|f8R19@fhqEaw*>rsrate#uuxr zV%1YGeDLt+Cu@AX0Q*PrXPW{uYjKP*c)cN>$qyv!t5vhb^Vg|?I1NZI$EVcowOSc} z|MYO>L0Fa4%TcKs>qV%q#-Hpc%+MXuI4BTL5DMpa1fSJ58)H)C_!zv|0|aZuSBE6VFwxhyR14 zFE3Zs(&XSR(s8U`QH%eU@Ft7!`v_9yn~i=VRbPD}J_H#iqb04Vd)-Pe$UD@Z;n$}@ z9lV;FRu8CH|3zWZ{jhTPqxjy>n17LPHo9C*uqFw{V99mVwN5}RZ zIEoL#k9FtLQ|zH{e(q-VpS=iDOQrKD)Cy~<_yA-KWB0Hg2)*nSTB)0RpEa*k7sa=Y zm7!7fvucNbU+iT~5BLzIj)>=Rtw@2jM*K`b3gYK)7U@bm2I0+y8m)pGYXgNUiQ=x@ z^K`UtJaHD9ns0F=_w=y zA>9XE0e^UoqS(HN;8gr3ZIM=3UrA>z4Y5_N5H%s&!v2CVcdzaBFSCDGmC*EIv_I4K z2>X$(uyRobvgwGSw=VHDZlyqh^@()SqKFH90M-5IL?_R>U6vQW(|KD|1Wj{{`E4I~ zKf|8Vyo4gV8^P&O=`;$o!dfmq_7ENomy=1?nQbvz64JLp#q?t^WVik3w=VSYq3lMJ z5$>)H;xELP;sn+P>69@%8m^IUb3MBI@4Rhu)k|~hw!s-gwa4l$I@i!bJ{Pq|%Z=dl zoOBxhCQV<>Ss|UWMnd3~p{8OR(N(YA;*wYI3#;szNrZcCUMJ4(bQh4QPDT7~%9c*! ziaEjr)&l8_F+3U`>5rwELeSoNx5w{N$urYP8L`-L?IQZ*!Ah?Re~^>Z*9=|(CtUkZVd;bh2@h@<2qUTYSsI~`C@o9 zpr)>y$vN|Zt#ilu+f?Wz4!hedjXTF7^08%;s7AD~!bgO&ID3^Sfi+8d)Ey;6-2f^3 zo+M|?5j!0qQ`-hq2l1*kLHuz z>e(&?J3KaSf=-KpkF1E)!fGHe`lE0b=PnT>uvSWsxu3Lw6<>tF$+FDC^(7fml~;mL zXrsi+Yyh9w6%f(a2!uY6&f-Uc1lB*Kzh@CXOK$)*u+qSfO@+1Am9`@)uT)|s9`(iG zhh5N)SVRk}PWsQ>zsS*7pGl9nAmIw%0;S61+)UYZUgecSg2W1@*%pZr@al&i5YLDY zkWNWwaiJK2wO%+=sf2z@1L(uHni6cDblJAxIk~-1#f(hsuS@jk1tk5gFtj)dA2?V8YL;M(Hdr7b37e z5YAI8;a3x=fwh@CNs(t&F)NL!fRT@5c1bMm_+}SqW6o{DYl8HJgd1e&t2rx#^W*~r z+dfbOi)(>pm4SQBB^56W4DPk*(VCk+inN6lSM&-eam5@F0&9VAnlcEUHS1bwx7o^X~3KbSxbEFU#H+G8-99IaHzLPMp; z8qbCntl=og49g9mvr{;S^HvKGSbr2w(jGvdRdX6x5vm1NZp4=QrOpgYl(*Rup%q)G zjYf_cR_bK{pLd0mxIlowdPg`%gs)aO=1h*=(A4Ps!II)tGpJI9inD!|1nDEH9oAWn z8P-hzozlnL*Ck$Gt$JTJMT8M|Py?%-TDv@URId6Wl__92zu#;}oc2>s=qP7Upd9cn zE_@;9>{SUDSWAV68Nt)`Cg##&EwKDnl&y^578NOMYzf*iisgr%Pnctd6$Q{K-TrZH z!Ufh}g)?+Pevs|Rz}(sU(6l&cMb*mJ;VT1R$0$~EC-is@aei(U%4bvhnEU66)>m)N zmrW31#GSLgXUydI6m-Rj-8JQ`erZGR8iT#(oYhkMDyrNTOG%?!5s7W{k_ zaY5dQqJlg{zy}J55RHHcN(GJicb!hB(`l=T;yLH8weMR0;H)ZSL_NFJYvN zH`Rf545^fvJny<`c{QQEgXYm?`?7mJw*4@Yw>etLuQpt)c1~;ff_TV0EywmV?#!8Gng3FU z&*gn=2E(2Yxu8C+QAvd)fp31xG5z=)C@h7bHkvJ&h62jbc zqp7Gwv#%l;Dal3$yJr{k{fs!4o^24GO7MBxVd)WW!R`=N!K;G!Y!d%0;ER2E`9|~5 zZHbJ?M!_AMmfb-kiR z*6nNN`x9j(7dnSuJJq%DMhqS)jL^Mo?K zKf$u=6n|L$6=?pVqCFQ_E3qvq4c?-rNy;Wi=%QYV#no;8%vdQ4;a`Xg`VE?Ri0}PI z2FX$GE|(s>Br(FmFxn^3gJJvX7R3j8{dBzAi3v} zi%#Sb?4jG6z1CODK7{7u61-=U3>mHE+hWmZF!hY+cDwN332EA(nWxeHhWJ_zX7PuO z9){-c!(|=|thLzo)P-(Nhe&G6Gjt*E^m%i6Cow2NA^b1W>=}AsknS(clic)xZ@)HS z6ZpBu0&6!k8#VAlu=aEKWd~ir>uxcZb|y|sO$h&wLVI)FYrEYXVH0##U2a! zk;ek-6KFQ@XR4G_c%`p`F5VqBmvq`RyIpvG8Qk7&!!f#_P|q=2e*(VdfIYkL6L0m^ zU$CvIQ1wtpaF;IJ1K{8(0QD~E<3FEP+)C>X5t>aM+PW7vX3p&-LjQwvWKJ| zgkMKRjV-%hVEX}&DQFGApO^cg`TMJf0_%M_sNGuVzmc9r7Uxa{Oy!w-8ZIil6gq9~ zCJZ!?@qZ|tg4Y3b909TOzKV`Qrr`v7A+&MKvFIj`LP^Zi_m9` z#it^(7ZvT1z*-4yM6Kw~c!|Ono5>=arSwvgC%quND)N#IxxmRdF7h8zu=)g@#z|=U z)_NqcHbb+3zCQ0b#deD;WZC7ho!kuIOfHMNUz!bb_#0p~<>-F+l)(+Bxnf(BnWUoW zqQYx7Su)Ky1KB&91B&bppaq$|_q@0HA~8W`?@#uS6Icon*{^R5R1>q}?@LYD@^43TY;E2BI$l2B5+qz;7FM?sPi zhZy1F{Q(1~`@l&ogl2Dv2LfvYG65lQ^ND3xLzp;471z>?q?3tpX#>Ftlsz)y5{*=} zA7kiFoI$^Y06nsGXQYpDM_(8|!w}X=sKVN8f{kQy{fLx-;0%r!8M~WsjEZ)Ow>Ico zh@dALdN9l#dW^eo7TkL7F|_GtnSxquzl~gSH(t6xa0>BHY}7)n?-(d&TF z?72V8eK+#wcc2>&!&6?a=g|W;GD&irRDs|etUM+RQn9{=fKea%O$6wf_#e40u(l$9 z{*U0c)2jlO!x%L2WXkuWB!S>8E|^$u5ObP|bBbG7ncyTsuR8hEZGE*0`Rn~T;DvjJ zc>--ztq>EFtIy9!4+u`H$0|d8_Wnm!JFcaep zC9EFx2p5l)t_rNLkUt&#Db^u^iI`Lctic%mMFm%p_kiC^LU}}lUm_qh4V%JQMf9Mk|kqyfA`IHLlVlPEjS-u2LW9Kka@WbdaZp5h_9fuLa6 zq~r6V;ohKz&Bz_XTx^pW!FRgDL=D19=_^5aX*9DhChQ=34>E>N=NLAF$B?<(?V7;a z3jEbquq~#O;0Q@HZl<06K>n?AzThRg0^}~UpNH!?f&*SBHigJ52tIX7U#&v681Ngz z1XqR*@k1f;J7&oN4_u%>yazKzf3QEUbqkh%NPC4sd8_?s_d+e-z$$Ax&}S2Oupd`Q_| z2tyD`<@TGsJX8}5m7c?9umza9o$lzX=qTWC&crsCHhhQUxpkdY!>zBbDc1|(Kqz~ZdLEz6R%`})fvJmH=8C{ti)=0zp{=DFKeDy(jPmQDP7|s1%Jf2bP|vNfdTEG` zdxRf{us1$K_k2EZMPPk_e7M2(w_EtZi)ZZRMe3=E2^GroLbxzTt+4!aG(=y(XLBA~ zqGkhAx6~DZwFCHzd$8RN|5ZtLHB0DJJLxtYJ~VzYWop+2ga}$pn8jUI$Fw zdv55fcai7Q7C_s|EdFTUAWe#(9)T4YQjQnGi6QE@ggnEr`ta+4*mEzCUt%s_;exllMFF$I;u(h3jUT7_pb5-N0;cXyE(ol*fxmYW z+u3U2eJztFKOA7zSDJq%gdL;IYdm?@dG*3`S&O}W=m9WwU%4Q#Rs(-8_Ug(m{LG)j z61JE}V8t{my9?pRx6GTLn^;&b#^3%p1Wn)!FmqcYYfnx9`^D)ccuy-~iCWAfuwwQq zw+jepB34*chgevigy(V(G=C|`z3lZ7wI}B(wkUwV^xz*?-Q9hXXO!6m3_K*BbV75R zp$wkn0QTh8o50jLzb$7c@YgOt+sRq@n01aNW}V_adixrc*98Zvf}6PG~#HhxfCKEFtS4@4-8$tS;byc-YAZ3&*AKR9=VXuNe3g@WyW( z7FZtun@I<>ndHJB7V}vmRugYl7*? zTgd=?z+$<4U0q9?6Y7-F1uV4EI#X2&3B~v;pWC7NdkoCnCWi&qcHnPqfVPqle7s`W zKQT<363)dbp$k}udqC?>eIyje-a%*bJ~V%Wz|6hltiJmFM%+(*1Z^azbc%5Zv$P|q zZ^kR13uwsuiPfJ1Ec4v)yBF9m2C8t0+ZgSrz*-AzBgxP<0)N*bfn`h17;8T0Pf<1( z@KAk{)uUMEx#RE4!M+=c+{XUgQGxXZ@RwpQdVYlNVm&0mYLqn_gu0c>1<3q=l+~xY zNEj|bC$a^aKIDbZOC1$hJ8(ZVDG%91D$qU5M>19>zMM1{{DZx7e~Rin z8)GNat4Wi_v}tBylIrfjBJ9GlT;*a|xmiS44M7nEgb0eduz+|2L=eQ-Am9azYoz~O zFEec?6OHaUi}`%t^FBYFU*GR@Ja)DdBCXE5s%U}t) zPZp5OBD#W2YZ$7%Ihu|jxZ8ShNB^$#-P481_~cON+o}4Cb-l+UIsc;n93Kh%`zvz1 zx9(#7)V0viWIS0o-Ca{_F>^wrCq@5Tq8j+l(19#R&yXJjBey<{0oEtnX9lXRe!0oD zi#P(&nR5SK>%&u^)}}IgKq?VE2Yz$Q^|CG)zY)gipMHTZ_iugA6=lWmsGD2jk$)s8E_mI(eRaXf!pGR7A*7? z-NB$uv801mBptw#O`Ck5b|i`?ezeKjqKV?f4$Fh@ClfV)V0tvrr6&l3=tam6xWH}p zLJQWHWZ@{Fo2X?83pE&1H2;w!)^mTCI(tGRKe{OijNI%wXnFBnYLZ-sRiqItpP}Q3 z9&`eC*`%!r3*3Sg+({M=dTaJ!4f8MAg_~g)V137hmsNq1{jrMt<}AyU|I>7aqK=8o zkX(erScy(~gC+B2^INdcvJs`Pm^mh4pY8+|jepX5?f+6kd?LbQQ0`RRF4_MdT~*Yv z;2sHVlW-UVQ8Ieq2Ek3{w_u?!CeW|D)}?`6p*Aj;Vig4gmPfj2;$aDB zTj>Q@v=_a=#ci|sEm*T;(P)J0)maJi)S(0TVDU>&6V_k2FI+;Gw&2di-y~t3&I=m;Iygua*+ z%LP@fPy$-|v=h2Uc$$mbCevH6(93)e!?o(Rf@!Ml)ie6RW=}inzvVATUXJwFm3q7D zy+d%CWKLq+DE%+7o($e?E^eC*Z^6nSFKM995SB}rranPWeayp7x^wcfPnhby@$!zW zq#(x%Bz_a&$-zLB+-$&2hOb>?_7<%DWTm2Csh?D^Oku&YMV@CJ^g!8yPo9>Fy<00h zrN^!|iBV|!K|=IW{C+NO={QHYh5NhpjL$+0STPyyHpxV-NJW7omO?U(N3tG8alzOIO@QS>{6Gd8on8nnIJ zgKoLARB-_9N!F$Pj0ah{d^CM!SX<5WHcs*4#f!Ii(c;D3EkTOAOK^9W;O@nOyIUzx zToSxMaRQX$g+kvvzxVoo%(>3&$j;8*o1HVGovcOFk8k4kdNPK!rK{7<)PD*T+8)ME z(m6q?H>qF!IZ7>O;oJijoPA_`WmfzXrLw9lAt<8A@+e4{>mcLRP#!1)?<*}< zVT>r%>Z1v}`#~0d#+wpu6lTwvPi%UO#oe{a-FXysfbtoXe7G zgH9oPYNW{Ab%4^dmPGS8Jc<5~$2u-~hmQ#cfX+ka!l_A?qb2jb=@4yDgUvys-`Kyb z&4fQ||zhG%3@=_C9szf1u@mYHhw6#mfne~pkF~;=E+v2Lik+Qp@{09fTPKJ5Rtmq{t zIU+m86BwIZA^!lMZRck2FKFe5JsF65y(l(zMC6v!tBv9LdNVDfrvP$fn12I*YBqaz z`E9kBHc~SZiHt2p+R~$fHzrd zS=AatrH;%^Y}0pbt@Lx99g@7Z+V1mC1ExzB3PN-XAE~5y!#AJQ8Y%rw{;&YZSQZRP zHphizb+o@c`?gQI2<9D~jNwYkhRyd)7Hn66GThQq>;!tx3~{5AMRR`r{BiBMsWP{} zw|&OP!0Lp;KI7uuIjrt|3DIYt<@=JJt@@c;lnvyfO^?WClfPtm)6GOCKz?5&xx==E z^pIUlLpyyrld3KHYWWPeHGSX^PxE)BVn@n7s?-MH1%6t))==W{QUNR%`B0nn zM+Yq-H!+FH!so>YfY}ZWGxZ;!y+t+mKz}w$xS$@!g>1%y<{0J;5#^^VCKjLj1^sbk zSaGv!&lG8-(+#KbKaL+5G-=9a=e*197mnEuLx0@gzoz8T#l29eYff}p zDs*?0=Z+9KMly_e5Q=lm=s;=9?Jh0tUa);HSIg&_)7E1gi%Id#W&ev5uUTw{ZDUbGjiVH@hOu&wf+qy?Z2xa|BnQ&w+BlM zH){H}fDs#_Q6{1=QACh?tmU(ITCyZ!4$KO>a{CmED*QK*Hz3Y~mHeX%an`6_`CNbO zvjJMCS)mMk&ZO@-mxTAo)BJk#L`qcjI2>Onhn3L0(wgSz(ye72gUc;!PtaW0Sl|)+ zPHLZw!;9DwUxMKkj&sK}KyWtKhJ2&<LV8R|mm0uT1iR_; z_yFc+xL!D|3&C#EpZHWh0oSOf8!ak^?#fE`Z*ftJ(mpTm1H57^kpgS7HX?6(%8}s2 zM#sv9U^{qv303hr8I8_>*?Lk&p`SL@MD;$wIgcuj1Hnm22+1H_ueSe@%2N zyh8?Ae+Be=kZ}cxME@-SN_fSnnO3GrN7yKhSK!~oT$+`Q^Lh^Z`8g588n@kFn*~K? zhIu!R{gGUIg3YGtR?Ct@bY9-i$8EDsGFX{F2wD%S${$h zUYBa(5Aa$-=iU(rJ5qk@9&h7D?=b{5iIUYA_MYfsJR+`PEW)SVgQ`FhgrJBHn(0%s z5Gf1r8eJ;glVDZ5D%xTcq*a!j0p&0;W_yK7S~h!0F&b~$G?zI4N1zd;ierFsQG%zz zx^-EQ+PurScGxvL9oYNip!ZJGL6buGsRj3<^B5plvWt4e-Qxo{H z0{NKa)!Sb(H^`TJ#cH}}1U(jTcFp|{QTUX`lA zeZKDC#}E_1;l!nJ-FtPuO_zugXeFCvM{>0FUB$uT5zgTxAM=Ncu`3r2JGv@FV2Fj% zx{(z+fi6b{#M$mPB%R~us117d*p*ej8ADVj%szjLX(>*m_4y=%laDB8cz^`gSgula zhknU{2#R}^GxB{W;~len5x3hbhE|yszrXU3LBE>vVw##bHre^9uQYacuDe%fYPLq; z!d#2#s8)jJ;%Q@r{hHaPYpQTmLZw4B2L*3}e*oXWP#X?x+8?*ZHfr{LX zicg3}+U$`ldWk-ZxUOqvQxS8C{&+wYcAc@}GDf8aLX2)sr(VPq@l=iniTa>wk+1D% z40Ecdf9LxBZ1eE_Nm%g0FIs;p(SC#@QwQgTr$b*wlqjOhBjbS?;@@7S z8t4XIy+-~$EQ74|TA<_=<@NUMk@ttuKrOg!$kEy0PVjxdPcfps!KUZt{K&m*^7v(l zg3TaKmioFdVaJl%C0Xzm;kQM>r~{`smD4WIVz(LaEyj=5Q6aXn4QH-b;8y*@-Tt== zc!+d9+9&-#YhuZ%lTUamMsKFp9DMe>B==k>JTl+-(~Z~=uFZDdu#b*3PoayC#K?8I zL|y~X4)Hg+dgH&Z`6J$qsFEP=v+UV%VAL+B=b@*gGivn5{e`#nD6q_eN~ycVF3^YM znLS#0E|%HqoQw<0UY^@2Y7t6LoN5Bm{N9wiXp~YrgBM?vbG~3F%zWR7nVTw zuRkARjqP>J(Y)^wVP(p zg5AuTI?sfK)HhFO$e;sxYrRIPv^`9i{ z)Ndez+L85awdj}tX z-p{*UdQiPhHKG%<#hH=AYM-6VN{&0Y3w#~9u(uvlN?DI2vdU3}s3;lnRIXTgMi3IW zX6D@4%QX&0l@Oq_hO4?LO4r*~$XLkLc2g25vsYv+F z=M}*tj%Sc`cHv?6U%JY6w}c12t7ZojzP4ySnFh;*SjnzUN=*MUJ=2>OYchgpTZbQW z9EE=C6(KI;o}%B{N&p5R##t zYS6*hD#CP{qSut46@PX~b<4_R`BAWV<8aq{#A)MMI}wE(@Mdc}H^bWMqrRolkqGpA92g<^_Sl1o3tdr!lj(l z#*qG%dd;_?QwdKVFKR^{6B9n{o0fmvlN!~{m2S_=ZCkDu*9I!pG1!}jg*!fm0(N1) zQ?Tv4DjnE7+S`4|hB$#Sm730NS^a*);xYal^^(zQB&*g2uQ14KPDa7e=iq01RSbAQZ;gAbv|A0bw?Z-|;sWXR zufw!u>X12<58{ICQCvo`Im*nnUk(_RW{iA9KT6;MG`KU)~+t}a&l=I*b?Omp>anAL|=!my&bemjg` zZgF*09?|tf9U>SJ?L{IFN~d0?yDn)#c2t_9wuB$#qHLCkzBUWTI)K5j3%p#P3ltymgaz9aFnZX`)U2!`?xsI{s13+G(v1 z!x7VKpZ*M^=Icd@R!f7`b>Wa)zn#JCppSs8)JZIjc|YoQyi3(gkZMqbGDXMD{-Ylr zOz?OjMe9f;$q4I^P(&{_#GH?w96r*1sMV%L+QA6vOo_01>5_wMH%&SklqS~ate81> zEGgR_AASFh3)Fw;kG;ij@=%#BtuE&^a#=GONncm^@{23G6MJgPJ(~0SPu+HXL~>x3 z2=ruiYj+DrKePXVXx<+a5EZ!OkmIw0|G1yr^bnBC5mmow``-p-TN+va^y!w+oETJF zZ04hY1HR#R0{v3#1L_5-hW95L+1^W1FX;Lycdz_9 zj3{((SbS*sxKsvz4I}G;ui_8F936kZ9VeC%YrC4;kABI$`Gl3s!5CWCiNMmhKLd}BkXl{c}`G1XH;Ce(Xq4=wxfd+NG;GLL}4KhE~ zYM77dVy;h^eO!(PM#NMq6Z396-_;JUW6=l*t|V_Lu%SX&AK1$Aw1?~8E?K(KD7TAX z?GR|)M@;TzHEqaMCO-C@T~}i`5_>JL+7xd7>mY0@@)~XLl4l$HI3x19he)VG-<$_i z{pbUa-|c2=Ae;3vesV~nL(>Zyjevl8FHOLTocgdsC3&!VwuopGnoo9_ssqKM$_8`V z6QRXiN&mU#w`u~^7qS^s&Mu-TQBYNwSXwlRm!}PFzx40cPj+ zY}Gaecqj7(l8%|xx9q*K?Mm4q-?5>J*>U~RR~1!ec*l25e=+9U0fxp5;;Ez2sd}=T zn;RKw5ZYH9J%3obarbFtzIA-P?k(|5k!J7yL8<^2tM8GdoHB|%bSiWv))(Yie9$gs_kDpKC;ZJ51Y>;myW}=Loi$T}hw~mfnqOs> ztekd#y*i_2*xys0ROxtC_2mSu&E!yWGet!@S~64ZfRPI{V8v#?%0I;L&OB{H+%+os zjZwp3R?qt(zx7~W)9lZMzJit)jI=zJtqcKcsy5-S|7!Yg#g3{I#Y2fY#LI>a(P-R7 zyrR27n*m+Y+QYD&3Z+~-Z+@#oM%q*{hE^ulU2)1;x0=x}`Mx!k($)2-`f~gLI%x&f zAQ*^%or$$e8j+wh9Kkybxoq}Jc^E=`Lsr%|XXBAKWh|N17W~d~Mspxbfgi9frC^Ly zxa)PA^@_wJsv?$i*pIi_X{bPXJlmjd2%%FNH&XX)f#Qp)g+t_`z zQe(uBz|Q!zRtiyI1_Ps_eMk6mtLlMH48sC|>dZ-TId6)euM!w3Ano&50~m$d4rdf2 zger@GH`<1JC~I<_G`}P9GeHzKbdYczj*X_HDyeste>6w*<#_;grF)e&Z_OM>nLYmb zETPyv2bB0AG5A03*k~HMc&^poHO? zf=i~=;IwzJ&z41u1DBp16N^rk*Q*oO7x zWY3=lm>lHnqzNbc$`pQIr&d_9TR*0qjV}!hs@AKdPc!sHGK#4VV`n%^&wgh3;56}9 zesg$(rR8H|lLkunS8GjSQFLaGS2Onsx>e>lo?Wb^OYqSz#F>@?`@DvMM(YC70Kq5D zzTGVVYMRQ3%zHaZS4#v|&?YPKej_rz@2G|rkvT+t!7f_j6|LLw;9c5oz&zGJyD2Xw zeZag+%%5-q`05O%y_wbq2BDnW`M|14K*8D-XTDXuA^Oo0C>VaPX=2Xy2j{g?6|Yh(dp>urM*bR(y@}&f=3M@Kbo$C&ILt5;VVf zF_u}?7;9$fzs6}tb6?h||zd{ppj^ZJd#p!vO7ccx}{rBoP5 z$}fmmU`S+0?2NwJBcYi9%XmsuR9s752YqvYv?_X%eh|uA1*qw+6&HhTZj!2>~CtV6l+_BFgf<7zv!kJ=FUjNmd!(HFB4s0g9#P z{PAmzPL0&)V1dSrMq3+1(Pm>YUXg@wZKmBak$F*tsiw^m0l8Jd5sY_@;s`F!)8*@h zs?f(8Sj0xu89mij9T5>KP-I{p%(naGE){FmvYA;YO-kjTb_vCE*E?hw<)KzxNwGBR zt&VSGJMEfPd4O8z%GC+B4=0&VQD|NKtiI{EMF1jlJ2OV=7dj;qnVnnHW{Sv?ZODF< z6QG?%Ynq_}r;^#V+bvjNsdUvHn1yn&X0A)tOjJ8Z&V$&BWwDwhY-t5b3Jbgc89^q+ zrMwOMQ37Gi0k~frrHRQ$7=4Pp^hq!xBuu}UTRjF2o0-cUrS~%K;t-dQ(EJ9`tMCV#50TpKk4k*h#=~ofXA=}Jv+OK~<$akHakFvq6tOdoK zaJKD|D|bAlhpfeGLaIo3;H}YGa*6B7<-Ctyn@U#=)@s#+5zKtCYe#pkOC}!07!kY5UuXmi{cvgN4MV< zh5QZpklKlj?qSNF{qdPW^EGNWVYeAgv<>sz_tNZ;C%WAu#;qrebo<<0fVpNh=}Atkt?x<}aezD<+ARHDd-N2SsU zRfm6S=*7L%N9Wj4AT!eu+6nMk>A?tONPjHlG{1+pkSuRgnbUwBY;x zbxko;a_A`g02{M>V27g)681DdMYEKCt?LgayU@!z9L@9MhLw%9dRiAZ?-zxGTPze zM8c~-%%f81#2*Cu$9`e_X#PQYd%PC$pb|iyNYI=yX^QPxST*d&Id|E(0aIaut~h{}?l>BQ&r!{f6L z>Jl4R$JTR1{7dvB``S1eGH`CIv#vUy+fV8?z- zC@)(Zj;7hNp!BhE!mliJ09EcdN2o()&s|hccbajEd109-+fANRx`pIlTA}kwto55 z-Ff+h^YZ+eX{6`s6Vy~}H6$|N(i5xz|>T(;ta6~oL9~CPyKH3pv z==(fp|Ac&H&}$!<54McG*Y)!e6)oaDV^pJps;N4DngB%MGcixq zMnB7u8Zjq7N}Y0qTm} zf>1JvGTl#?U$f;cGdL>SsLuTug9Dbv-t$+)jOdSJIthBExyLElXn_11g1p=iQ@gk` z@!DMH-Mlq&Hv*7??<=>;a8(}`ChA{054VMTWh#}t5%@q=FCKR(oxjCgSWQ23Vj`1| z=wk8`M|IPGXXKl{Hy5q8Upse+JGmqWR4Lr)a!>{0g{9;(7F6(-cMwW9t^-->yO@z- zHiz`$s+otM29caBRfS>S7s z5Y%ZI35(i{9ze>v?CMxOV|a@Dz0z!BR~~gVk~@Dlnv8mAm08F*c(kFvM50dcgZlxm zeNZpc(E5njKCVvX@(CB7W&*McEV>F{gWmg6wv9{g(W1?BxV`2y{LDF@n5czwfL{3K zRiWke0T{`V{5o}hkncEEIzV9ABGJtGjH1J*R)QJ!YlH9jnww0iPr;?e$WS2voSviG z>)i)Lpm;+}?uEBOfDrY3`bOvmCp3#h{L4Dv;$0O}ho>?r{BAChvW!Wane3K2pQ97+ z4uh29hKuY|@k4IDTqk#OBaA;IF!cX&0X|sT9Iqme%N=5d7K-FVw>N97&enXYT^ii9 zewEJEe9eQsYStY=iGM<;&3r{8plAqR;lyqlFmoX3nK8q5;Hg%N90L$L-j)XGRB2|r zI(|S?b|}-_JhRpac8N)#i-#y&^D@qhI~kFq0|t3g9zH#Z^IdUQ_uG9nTz$Q9fMcQ< z_|76WW1WxJPtwxz;39B(K}k}Fcls+RObIUf^47;rIa(yUU|sfOczct zogcmX=ZNf}l;(D4K!RWXB>Y`EjFF|@6rs*jjzZ)tMbw?QR&Vlk6EMuFtr7Frt?BQq@1c@Rc_lI!gw#kVhnBLI1b@81n8TeKN75SlTLcx z=%IKMyhvgRPVIe;V_8o)kUt;9<#Vt6U{7PY_~@h+dP{!jiOPR~*G{(l!4%)y``IZvxoni&hln0-{AVEVoG&*il^1@h7QunQ?AI~s#+CpCLxHQvb5)SG0l9`u zy__(#Pl7d|vH{IrJ(%~0rYtqG{h3LwRne**aGCx=3Ss`J10*6?%)f+2nDoEc+|x*| zSe3}fP7+aQpZ|pVdzHKt+c|8W_Xd><8q7;y$;{VsTtCZ8v}Ly^$2le{!5eXqVdLvo z`Kdq_&f}l*!Oh0wui{2 zd^ni7Z6lgS3(5iw$L|4?WqrK@Q<~~6R(K!<*Ps#g5$sQ4g;2@gEER~|bx%6w^66PP?KakeAHPuB z!8XP!^a$EXKi9e^g^DjqY0VZ=*VY~(iZ}oJm!`$mrt|nD#Q2$|UK-(3C;1*Z35X57 zgJGiY@0jjJ-VRzo#Sz%}DYmqFT6uBg%^NELZyI_p;H!4DbYVQE6fC$a!Undg1QUHv zc&g6pB^qeUHRf5`O)}rp+dMuxy<q?s<(cg!QVY5eIC#@H{7sav1C?yDg51Nt=ZO8GG zIJP4{Mw`H@t{f61JPdu-DyHrXCh2!Q2914SQ6P>mOHR_YLw?t^r)sRGYB*gQCdq+@ z__X0D;F~Us*90GkisIIN2s>CS7tBX*_9^W-B7_NgZlP-~`E3j!9rYjNc43$?TkJ`W zysgUq4aJ0mCYt=iF1YSKaYj)&0Dpz``wz;+Z{AVGCp5|@@~#iPsUcY^=_}cYD%ohx zonxZw$88ei$;9FWhe>QxTP<`39+UATJzzf0DobME857mDn-?5WK={$@ zTf4Yz!#g(V;{aFEbh2eANE^=)XN4jTn4a!C5{n$iq`aVzisN4N9oIjqwEuJlLDO^W ze5Mzfq-xDOQ{SGagtH;*8wXF6ulRUl%*e7IMG_Q>IRHDQ~PKp(>k$ zYrWSOkXrWSy-rQUH#?eg&8wB5>QF9)A&+86YNQmHhZ$EHDN326iRATE1{!h%ZzK<+ z^ruhOytvl7fj&XLp=`SQhXnAWtFvwPkMQ0(@qlg5J2&wmN*k^@YU}VH^6Ck6&AkVA z=$vnR^mOtUTNd`M|1>F?Y@+<&H27z86gG0=t2xs^HTtTU!9Zwz^TDoz#eYd02$Hik zF<3U9h+reHvaZPdqv*ALK-5>wEAzBl&tqR&_-h99xO4>-GO&L-zs7ARcdVWc3%&)2 zPx_bf{psQetK$j5OPY()VzV&12OOuM_@@N@sIdOQlhQ?NhR0-ZUvID6Hg+MG4r9L2 z4H^Xbt;Ni&QpzhcicVkDplfZJ=*}5mTIT~7SoM#byUiG5n!FAZnGr*>IC62Y zs4f#hw?yyvFQ_mLfvZvKoNqMEHTa?0PyDLP_R##MX>jPEaYEyZgUer)3TDSWAqZw( z6m6{l6hb~XY`43hu-LNPw=m#**elwLAqTU&dW2P2CtDd=j`;VGn2FnPHDtCit@C+D z`zdlH+lJ9%&p7uhIWF?*1>h&{b+F1XVzdeS`L9-hq9X-{BX2d|5BbB43xwle7y3uC zKx+KRae&-yP@i3@H5IU_5mdPP(#hnNfGPVTpyK?VlRC z|CeOj{?{VmXRMUhT814WS6Hq^He^Nq|AZ#L>e((D(h#Vu-6|v4Od4}BcYItJ@qe`($}x% zd+NSx)e>uO>xL|YTOe=yO0{0_7&pQy$efuvM!((;C^_~jO`XxM){&UuF|I`G&vEg0 zia&0MEL60|f_AFB?oHZxIUNi4Hj;|W*6Ibq)CBAWa@%0}ZPP#Dtjfr+dAIO2YnXSS z#fXD!(7ZVelaqaC9h}t-gOeG4FO#WC)LRC()sCmO&HID+e1Dl>Hx)6hbS&`i%M-yo zh+($X1QzV|KcM~hRIT5|hw{dR*evspFXY3{1>AG_WXN)wrfJ`fsvyG{_t)ovbK^X zT!fp#__t!7E}X3kcZ1bjT}P9?N`w|C3`YN@!?;!hz!d?g2qs7#&NeOM?^+XIbUate zP5A1T8AcqQ|JZweHL&-8CA1hwT3{&Oweb}+A||E)ZkqntDpiT($kW}ywV2F0!}zn$ zPj;Hep2k32lj@>pFyZ*L7JtXaurl1p#zzJJnHCd7aQXE9Q$y ziF4EHM`VrRT8W={>`2u2&xN zh#*) zSspFW1_G^i#nuHcldbDIwNS4|qp6t-@NrDPDE-P6g@;*$-gb5Kw;C)6G1XZgA~!E> z0;%-wTNS<61@ajnk6LO1E%iUNnsa9+7YrJ`*s$QdleMr-U?YOn(+nn-=Ujf&w;2`= zFD@<-#<$M0Pdwky^@H#31oQ;TmZ$&efWrR}5y9HJE~Xk@#*pBZzT=Zzp0H~J7Kr_! zyFcFoq@G=#Dke7wn4Q=3gWg=+0Jn)YF=672Qf-7coxg6uAOnB- zX~J24VeWV5GXAQuL*2q8OM`OjQZiqiM!o4_fLf311nZtl$D;feEH#X$S;dffdb=P;a%!y)D6{Ar zhaPY8vqm^W(f28wSphZaT+le3gLkQYu#I@LaKD4>havw+V<4)%oL3G^i3lb|OlC-! zO6#@-I@ssG8PwRxY#75YpZ=EHHBFu1#{!vC1oSHDHMfK2+$M}vc1PBFJN1=1egd7=?*KIo zDTUq<1&6;bTc1hoYR*o&pci4&yiT4Tdn90J3Bmx8#%lx>q#H{5b|#zeuX(l{7uRu3 zV`Sr>=4$FoKR3>T&y<+f43lApg%Go(4iq_kVpcov+^xwO#Q%Z)FHshuAnxv#u?o@|!}+w8RT`1Xk)1gSB`3 zUQ{&JNrI9|IrO~_h~TLRupzh<1nU(u{mJ+Hl(RKG-NwKt*E+fhu$*bV5xQzPve-@jhn&Ix_=!hb%QK=d#C<2TW^{Hk;Xgn>q(#34J&P*#v$j#h?}b;$9v=M_UYS6fc71Qz`5q(h%yMiHM6?C7_2jtZydx!~4*l)9%gy}1bk zP>tUwYYk~XY`>ky!aFHhC3jj{fpAvPhirpnlX{7)_piF4jbFXmUZtme-2z;gkgEQ+3dbi3#Dr%BK` zgY(C!&CA1g>FQu8!_s+Mt&1T|_sFph)FVdqvkkjXtLP6UPupCz(L5#ndsgl=c%IC< zTSxbM5+G^VLd z(@K>m63Z&%B}bwTm<}Rd(lu+B&T&{%5W^6m&#Jt223OSG4WJ6V`&7u6yqHm5qO7%B zi6G3|MH>()v)6-4>DpIoGV=TxzNI)O$i0&O7E|33m~{e_s}z%uSbC+|f9~7AMOq8G zoAXsN_ebU7J2QV|{*2r*b(U%ho$EC=?L#7r>fw5;qg<5S;RhVeX#< z%1v+@Kp~lyjALf1Yh_|@Rj>BBBI$0}s=%9B)3iaKCcJ*@%xF#{9dtADs`%;=4tY^2 z;4?3zH_y#nXR0fmOh?#s-;gh4$jLrT9VD(aB8_QDZX^HTW!qlzjqmyGD~2Whm_ zG6J1hfk}#wVEFo{^`-heXv zdfWTZuBd4U!nPVp`ZiKXBJl1FuZ0C0{`7hMaz0hVTP6-Z_b0T;+Au5Y!(V-QeX0#` zB72!u&0$CvKMqP(Ov3E*Z2Z%>am+YfdJ}&1C|1lh`*E7p+wO*h-!f@Hn=xzAN$hh` zw@t5wJx1T}zw{NJ_DW4Sr!l_TSQq@UxYc7IcAObclL7@$_(7ME7thACZAe(aZox^A=8Vuf=g0#vGecq2YAmr<0GxJ&=MJe zxp=V%r=Ko`qkK4VFHhJ*34=bsYs8ahvB1>kUWBQ+hTUx|MKfWY?BqXA0X2#HtmTi``EQ<@sv3`%z)3Qhc z$okBzU7?glCi^}9hHKG@U9NdFBwH=GZOGGRbJx?R5zgIp6i|FEcK@_FbF-~S1j7eI z-NBhaQ8%8D5evKqj5GwMMBJL3EL-H>IvgIWdJ+cK^Ofr4im3g|{c|~kSTqe2ssS^s zKpJMC_-AqX_4de{T~#o&rSFc^k#h3;W^CAnGYM2#WZp^pW2Ql_MJ}V$4CoEQT_b8= zDohYvYA=|9{|zmV+X^|hm|ggm_2)n!-pbnBYnlnjiBo4$$PBz~!~lDP(j<(PTl_^K z@z%2jy`NhAnZtByl2h>ulv{X@NOKdY8YA_Zxmbs4WzH)IBoPAPA!y$sW)+!^$&C%F zyBKy@0%&cpdq4TT;FFV!FVBj3H8PBAG3HP?5o8YCX$(4yM)EurfA6_?ObCV=f}vz! z=t2`43&~lo90idZMU`>M@M(IVg zu1mM@`WS=rfbu1bgT5;cqDFn;^u5Oq+T6pj2t+va3yJNBc3= z34);qO>FuKC=e0;u$x^wF!ZJgyN)(h*feR`u>uvb-}a2KLHs`zGSwN?Ay=5BE75g; zA?u_6Jv)3L(6$ln7mg2+0+7~;L*fPKk@ac(i*9xm!O#(e?p;l6S!=I9eLuTHgr0Nk zI*TNnx@dx?$29MHhM{DNiQA)Q^QvN3wrA>=+Xl4mLWP}Y_9|eMjXP$`!Kf-SUGpMe!BObmVsd$xshh10k zD&&yFJbrU3bL70~R2-tc{~1Ekoy{(HaiE+QP>xyt%=@Jj-}>eg;FeaOVo4K{X#dXO ze_ANgETu}7AAG-@{*R8=t_?uJZ`go4hg!WMgFt31s>LGp5h3zw#WQuvX--M0PxPZfg^y+AWK{*I26QgpABT^%d-*?hm6!> zwh1EK{WBv?SF9D3^grcJRYUb+rVVou2+jZ?@Uc#bscs3YKv^KlYlj646$9&0O`duH zNT(nMaHCu1^V11A0L1S<2SP-^0p%UtT7+{*BHWZ2sD@pKVcX7wn0a2DPJ?vFY_wkU z^vJm-Qyl^E$4m#zlc58qx=g0JYo)fp)1yD}q|q{U*Gf}*~o zl0E_@DvZ_wY{hE9>NcJdRJ( z&e+cjNKDgEA0)sGx|cjtD6<*#S!W1|x`3$F2X>O4?_yowsLO zSO2wScBBi-V?7gx^Qu^1SvJayE9w6_YHu9= z7a37ETw!8kk|x|}Cp3AAJ9&yUdFpr_E{FsB6lC-Giv-J&Zt}a+tB-0e>q;%Wa42mJ zt^jpAiwP@pE1_KK*xe>B)&G1w5szbHbjX&lM)W(k1xe z@zaIw8wjo}#F`C0L?W4!1$^@->)#TuF%4p@Wh1}47tO{fB@_rB>#Ac3eFV1I7Gk(j_Y_@XNj=BteqO!!;ce& z`AUwG2-tP}5n&rDlmP~yI3keR?B205)yXi`IWw_)Jx`4vlJ*M^>+HQOJC3Uwj$i3; z!+M$O&Y9{Qnd(^USe1Gai=Yz$FU7esC$pnle6qH2EwUZ{1+#-|>iQpWVIqH83hL$|{O$ zNI(X|i^BZea0Kzb_-WrQQ++E7hiCI21;jiCAK`$Ze9&UWUi<@Ejx6ANK2}Wo?r8yn zQxrng4XvYG_&3<$Xq~YQsF9TYvzq zqZvl~LP2x2x8|Izz+4%&84;KSwD6A?SC(*62=}Bz4shDR8>gPv9BMcX7J#du+-{{3 zGI6!`c8&dY=43X{4LF;Q*{`bGPWMhyW~l-=PLGymMq0xN_&KFbrKT(48GtAxUVS>t>=uC$@5yLLNo#?dWP39dqv)jdaA|3_fZE7;( z*z|xGZZ+S+z*oH9Cf#2>Gt-cWUmg6kxer>a0A)rB2r7koB(a!3cR#Y*uP83X9g0od zA{JQKZ_?{*>$@Q@xMFxU{6r7xYD4F})MA)Ck0B|&FrKo@1QD$jRqUOIq90mq1qMUu zJ?CVWs7~d!c)7HeH5{q)*Mp|eIzCh(s;VGQU(t98Y`E5K=M4J(Hyw($WUr?MLjd_R z2}ia5T6IIXYF1m(>h`NPiz2EcyiY2P)G<2&bUt+A!^~@N*S>Z?Avdqo~##pr@e8c6X=>_mS#y{=ED}jhSFdCfkyC&PVo@{Hf&B?CG6Tj#EUDx;jS!eCN&emD` zUiZx+y_Uy&PTR9G*oi!SnZ@8`lPn83{xsH5P9;l@+vWscJx5-vuZy;Q{?_F$OIfJE0{~mZeK|R&Jl<-k(n`!pJ!f!a&T7b9woRDS!NOCGJu1rd+@6cTWzr2 zRcnj>=_TrQ18XIZlBh|d?K`gVs*!gyVp^leGf?xWn6gtLi{?3ahq7Fp^ zELxZ;%i^XslPBnxGMVG-BJUCS2xYZiB=|k;Lif6W|KTWLy$koG>c3l8^jZyYgAp-F z1`UA;%Q5SQ$GoZO={H$8@@RN8G&ndsIJ`Wud8!0aPXsnJM&%=N5J7LySKS|ip=sXM zj*8sb8KDc7wR^p{nnwYjn--ibzdikHl@x6Zn<@o?)TExUCnsr(jw(f_nIxb_7H~oq zfEfX`g5_+MTShot?s}>Wz3~7ebR)mC$mgTXSjBFKT^oKe8c3mO6U2fVi~nsV1Qvt8pyOKQ;{J&rPnyw;mSv*zba+s`@D*on0hpw}cMr|c+_oJh59@Eb#NCP|D zM8Z6==6bfv?0MLqsL3rOdnX4bpVwp|tC)tYvrQH2DzbDrUc>zD%p`SFIC)hndBrz5 zjqhb;={i6Gu_k>#`8OLO|K3(;sS>7_nxZJr<#4X8;;{P#J&)O2r989+cZbSY<6}lM zj11s-GxuZx;zH8d?pTNaK?~iRX3=t?vxueuT);^>e`NnWEq8RgSsU8IeKYPUs~H7! zy$EY#{j+?ZmFrDW#RkVs&Q8dgF|1Hvu%2+<9Klh;yp>6>w@BF6H z3q6;f%qTN9z(5AECgNZ>x*6&)sSBcoc%+X+C#jmsAqw zj{e;z(3Z+*I~NBK5O?D}W`AtL-`p&5mE#pREoN|bCh(|le^EV6w=H4c#?ApRg-la> zM8nkdg5*c|Q4floXdROk|DBG@X7*w;#)X3RxG@*(_R^w9bH3U07jU1lJA}FVl3vBm zdu}*P$yvy7f&FNVUhYF0ku z&%)v4XR%O4ZuFQ5q$!17!E$k$lu<4Ua}qL7;0+&Ly0V3FINyT+#EJ1Z&{!p@bXaj zcYu{cB0lUKD=`z6!sj$nR6?v7GpQ7G*D)XLw1kOzp3Cr#oEHD^M~ImHa(+M>RSs;c zfu?R<1a-;3Pjv8gBlOWy8#J46Jz^hB&1&!(fzXx;O!PlMsm(5b6c)bJ?ANN6-_MFn zKHY$Vh3fc6OC0l+_5$VNuPhvZ*K=~r+wj&iHB}9=3ucWqXJ5a=;={NO$F_3s+#n0=#`km^Imp6uW!8svx5Zl6`k?Z5`N>q+m-}6 z%Ija%z^Nu2fH$XF_JuRczTTvU7iZw?Afx{AXcpXC>#+;AnDH0t1>+}2g4I11E>f2iuk=;C?P-3f!|DJ_+$Dz?%Ma} zIfrBa$xdf^gKfA$x_{TLy(R1t5jI(~t;_elFc>R@Ll75Q&TiCY41KIT{%x|=O32me z+qxv;4cb`LZ!WS1$TT626a49WzNz@$>#;j21z+mNpzDF^>PQjt&tadIBD7`>ECNLKVZX?Ahua63&?7=e%=<|v3Y0i$iaCT-I+HQby^ zMBfjr>$9WhjKD>jLPny98jeST+D$Vj(Q13+G>W?8GTNtFpUV{hn4tK7ckw!&i_oK~ z@tEf=L?OEfT^=a6Y0cYHj=g)s&c(c>K#*!$9@1uH3QEmD{Z4YiLXj@WxG~ZoD83jECb_h08 zVEM%x^$II+RtCATNGLxN2NYDZCi5C}~xqN~8Xa%vkO2g@p>zfcQHa}z{!1{vJp$@|rgz>1}e(bf6 zR}=eD1>&@1xb@b@!PTrPI%J_2qatJ19`6{`g|AR_pnHk(s6A=z)i?5yd;Ot6YRvsG z5{-dNFKRzdY@Um1n*~|HnsnrZrDilQ@klOP+oqOd2cW51rxWUa5>z8hz&i|4#aGWQ zQHVcGYkT=tri4usp#x4?2e-=vRx_II3mS~|7!e!Wg2TU2y%`IhS6_*B6tvNeC6YJOmPC1v# z*XM04o89n(K079@Ww(BfPSw&dHy?YyM)ptmMCO5J0x(Qm|^Z(EX)uEV=KThI9*i?B1+R*gNxjuUo&JWtr zHY+O0L#jBgEO3%MsBahE{$3RD;)qeSvvV05PIcI+z{$X^QsaPHVJMTB_tdjrP|e40 z(u4WC&<1w@o>}_mqWYO9d@R?09|ac)sc3jka}%`fhSAiHu|whTGn`bN&2cB=Y?M&V zk8xx1%b%3m{GooW@b)-;JI96W)%WU3kk+aM%-6UIICgCR6_V zm`H`hgnQB7{Y_qu?L;P7=*;U?CM0zOE+!NVPiuU|HO*ERDWNwXCRQ(5TIV3x?+7&2HP|s%3 z0P)%Kx>o!T5S?GkUiFH$q0{xnYRNhQ|8|-14=+!$7DSykz1<5D>*)LmSxGz}vzkdj z;dtJWW>z7tkKkT67f4=hBzFf11#cFKUfuW39WDot{?KY$Gu$>_gTY?6O4fvrp1iDf z-tEDMV7Rezj+LyCUd&8$Ww)Kpq=f(EPXvk+gfZl<}PjHVKfK&FIF- zY(|()K9OdBRNsjylbrD=owH_8o6HI{o4A44X%#KJ*xzb*okv;X>arx z>qD*mJ+k*v;-MHEj07 zBJ95`gT#3aReoE`5#XDOy7!9Ov;R5Fim8cKHf?O+vrchiXz}@bxl0^o8v&7_xYo&Q zIgHJ_gOj#}j*Y*uDl7C?z;GdpPtLHgcB@MP=7tp8hd|uT5H|@`6+o+^wF}nn!w!l1MfGhh`iVDPq!!gDD;M_3w18*7e5!YV$ zx|E;CdKuJQCHQbF^)b0ZHH*K$eLj6a_DgTYD3q9O%xPj&Evjjphvl zGz-n#5)}|rR;AZ9$}D?hmod&oYEKE&mVef}1uG&;#aDlgXLS-XSV@Moihm{7MO$<5jnp#Xj~p>3R&Q>vZRTm{#iNaBTHL`(M*K zrdG9C0F6f0Yv1<5H=Mn**sFf3K$-6^qrMXhdUL7ZXLxyz2~CDQCrtd(#uZgBnZsTF zK!>=%JZ7(q1ytG7X_i(suQ-VyckiClrQD!}PF8rRvw9&lo?o$R|9J)830?%?+ zJw8^D_*-WJcVq%E$${LWZP**oS>EJ}VaTniTL2%-{7UhK%?@c{o`=wMLZkL_b*Atc zaFDI@nYwYIqG*(!(SB9nzBVB_up(D#mbJ|dud}v}(|U^+LP;I_P>fZdfZWKMP6p38Ct zMJ)8^?o1D$tQA@LI=)(ZHtdEuSoki!V(ztKI69-d!0*Om1`}|Ri8#H$qHk>(X64v? zHFiROkX2d0=i_(N;}9Z3Ia^E71-5I^HShwwsg5t`cP{KU&uIVTR5m0wWagBFMU{7t zCEyi2+p@fPI!IOzRe+rgv#JoeG8pm`dLbCp^vX=gyKV|wEa2HBT zimlDof*107Bg>4rTIU4;q60XoP4B3`TAG_zKqfv6V!37&F-T;AN*mPOjtG%wKdYql zY~L*9Wdzr(3p>0RvZ8MRr*H64(6^eCTeiE0S~;1E4a1pysf7JwaoMJY!Mk^Si>cuh zTiMMAo2{+H46`tvW}~O{$md3V`;n?Ekr8^tBQFWVL{Y*G++kHV^m`XLmJ69n7WHe8 z9g)(#OBN#*F*1rsVe)#qQ2dLm;}20y`denYx*5L67yMcq<(MbD6oy#OmL&LY0(1fK z5$y#r`B(E;wbDhQ!Yq_}ZS8MxPNNib31g$U-d$JCXhY!5zXzRed>loQXXw!xK07E2 zg}|n`B=DU9IH?7UXU*`^H`O${)}{ znH?sSErsXjz%QPGtQ#n! z`!}X_>07==iMTu!R7@h$wMb}^0t%6 zGYu1MXcDV65G^StASEhq{hq{GQKFG2$|_DaJK^BOM*0g z?3o@TLPCD%^EAvC{~~hz`h%X(DtNfSXg6tmL_yRN^y^kIO@}1~uO*Td>gdrAD@f8V z^bx7Eji<1CqkHW(Q9iD-6yh#T#irbt&u-rS!G`+9N&w#o5+}P2Ir^7&wvwOfHi4v} z3Zc=X=yRI3)bA@*1>&iHBH1Yk?Y}g&jn_8oq8t~?O+)DbwiXq?A$}NYDd^5`81fNq zy6ra^uPKde)g3Y&0<%+?$X))SW^LHoruxI{XDKq{aT^$SoaGdSCw$3s`W>we=-TqQ zIyA(#I2avB<9+l~@1Gb^O2i-uY|d`T;@T+HN%bh0aU(%%j19L4SAmEQbZwbk9S|!c zjDiV0VaJ2ozJI?ia`&HaCDNcClD_zjH0#{KrJAY2Mc3>w-CF@+!{X{vsm!xBmZi1^ z2GV*eo579;E;840Tw0H_>oyZ0CvGN;C`(E)QCtSzy|PvHZ$Rr^L7!f0sKi5hVA%@u z-;ty_39%N3h3hfNhezy4O4yD$cgaYm!9r^w9zDwb3~GVx+`#c8HkmdDqL=i>5_u6~ zd@regHE3A?mM?os@>)W463god;cOZComotq7j}Q*s2kQUciD{ZoZcY2*?)Z6P_i?_ zU7wi)S~)%Pk-m_M=*~|qw=3Mz+X}mT%%vrWn(8ygc6@{rOLx_dS zm%~45{#GE}Fv>}pFb)L|#bL-7`8Tw&d)dX213!Q3*2TP@fV(+jbrdi1^1sZC%NR*j z`cpOM@|F#G`9-d&vguqz^oq_Ib{5|`d3Am{rf zP%gXq)>y6T>mqLA%agq{RkIG3vRZ`)VI$(&v*a|p#)9I=&_gB=lZqf~OpL7Uv^F`~ z6xMDokWJa1P%7US3E()dI7wxLTA?}hz7c))$nqxJ+Unz4m{Xe=em}NHx{wyv$!yY# zwrC7+QaA1v56*OSo;#(vEzK6*dMpzGk{E~xfXR9m-0Pr#mu@X)@@n- z?k2aEb!X0tdXEN!^8N z_rlOM*?!Gl(M6fKeBmp>gGcf-8}!OKyi4fj~~I-!(+QoxWj&;d4rcDR*jJO9V0FStwC@ zC~lk5MgA&dcJc;UD8GlD3CIa@=f38W#Jr3UmdRcpCrX3KtsdL@)bFMJA(SWGIO!ep zeSz%?6!j!sRj&wSMp4yzSu*s)RtB3{LThD z!=4;dhl3dV+9eCoOmC=Y3tA_TwhvTJNnjhw_hEQaOlg~nZ$qV(qzD6>mRbQe49N$v zQph>ffa)j1N|gviF3=!|q6E52tSaP6;f>}+Q|__8gXJwsL6vfP?rPY@v>=Ji;Dt6p zwK>5mx8F)csnDYP<47CUhScG2W(uZz)1w5}8)@%3c`E!+8u~n|w3EH8q%ydS81fyG zJdrIIw<(|~etKIcls2>rt;2uICvLk!d@(Bw*$L5Is8-l0s8rOd9>+P1p1vhPu0vt& zLQC5~!^UqJwACc~Z@oBXKBw6o%Znj$q?!pS=Mr<%=__raQp+w%`zCvSV51$;e+iTj zn_{GIg#QL~*oUi$uh=D7nrES0b5Q|{qe(yYs+CdI_o)kuta?&SB7NQ56!p6r+=(WIkWN;6;29*5jhcqDq%JCRi*_Eub8r&iHurmi8j8l5sXQ!rY{5t3;<33_+6Hme1Ck#&@gmV#S zR#HtY6%YDA(=@z_sN+|Tz^;BusDayilroQ%{^{IR@D@vNQKzlKeEJW2W>E{SOfzsK z{Ax(*3ciuOu7BhEM^>>tM_YH=J7$`Sw6a5HQDZh+HFT7!5ZTpw_X;6GnRoAU^g}Msh-Nbs5JxWQvds6OX^OG60flWeub_e#qB6Ql@ z3dFJUlr@K#OkjEwlXoI;RJC*|*vV!1e9yZ15SKpBfmob8aUR+!QH4EvZwJ|6f!qLz zOo)7V?UNu7zoneXLU4 zvC9~41co0D5rPMWMOuN5j1UbGJP-G+NRX2Z0-*@UKxOGA^3y|4Pp^9V+!#!FvSYX7#PUEtQFm_psIN}+Yx#0;AuYDn_d1Zh)loGB#3nL{xfbJMFJB&F zszo<5Jn5W0FYgXLQ~a&iP=V!m<8O_5TGGFRIP3ai)o|j1MpM<0M*_E|hKa>d>@-MI zJ-VTb#y#vbzQiNG-xN(MEc^C%w6PwE{|NW)(&Ue7q9)efWsz~7@X4Rjo-v*S6HXj5 zDc^l*J;Thh^aL2SN*vITct4>*HF4O2>DbvW4Ug0giq=5$9)ypxwXsQ)Ey&=yt6#Mv zh%Qew1EJ5XmwYl5?+UD2P|QI0LRbO+acUHw5M?`=duvPQALZy8CdzPam(&bW8aP3H zy%ta$c{aRN(QeW6EBz;KJg)&XZ8$AZ@&syc?J9 zo~Y#3?mPP&);`j9jk!R2n;u{RxY)2O^9P236ZiFC*5vuEsOtzBCTN`b5BT`7rq`wy z4)r@;GEx&x5N@@_JW}w5JhO>xbvXOe+s}7(OSXsA`jKm%_T+IgZ9S}=t`AF2;uW)5 zF&JE~5A2SS{(xJ!={?@`_GG|9MgA{gg>gf_YhjOn-zlFHh@|7=u<_C%1ET)jN9z40 z`tB%Phi~!$v1N{vjL!%yGH6=};-3}#=Pw6i!}WM#QoTjF_m@g~4q=VdA7ATCyPMKh{8*|+{uLWt*0*p! z)7Ab~eG+L7?Y@pXw|COJb&g>h`_@H=U$ee6C~42~tbff$XJqq04jxq(8%@*yDt4m( zf~WbYIj;@wj#`N7kRkv*ED&K9yD{cBvyg(MVTu3nY+*Dzfd(*ADvJX#yI*z;1|VbwOerdOcp)vnKi zWY7~~$6^<1!JJn7mZjx)v4 zh;os2&uY4r_NaN-8JWL@+Q!;(vw;=Fo-fKJ4TYu>v?>J+4`f60nY7}YqYD0dZ}pK0nXfrKywkiu?>HaO-eq!e|UA z@Oy3H>eb@tV)?+CEKx279E#hoQrlGN-dN2-!idv`a^sd@HSj%)r-(6Bg^F^JL5LsN zjnY$&qez0(z4kaoV~&hYSilM}Ip8a;alkvQGt_2HZ+Gu{9CEi_#Z9YKWtL!9D zd>rT91Tk8P(WVX5m(0e2*I%8XK5Kd`FuUkPrjrW3wV?n5Ri((|??ESE zgLP78jtehpP%KV7umjK4y63>FRbjbxL#BL4J#o+Cw>fMuM>dD#9~Vi+XDPhyQym0z zA|rMS1FqUbbwi|9Pa%~D{<=bvrI$RDYTSTA>?KLgE{YnkQ**@WAYiEOv+T)twVx+^ zqQHX`cgEcL0{qX1^eqwUD6=b+)JBog>w5A0PQPbFXWAMG$DSPu^3^lN4K2277)AI=?xoQOpk64yTLNo}6g#xP-|6^wI=s)jcu66sT9VCr$9lzw+nE{-DS86Vgj z8aispJ%QkmMRW4oqNy`2uiFnkor596QX`(cYQ=-S`@29UF1AF3%f1*|sm1dRuI`tZ zx#Dvb&O$L)G3sn7XO(fXv=+Hb$x&L6BU@W_q&62_l9%oWymGF^zz?U#E#9KP#*4;O zQp+aadJRI(sB*?G46pNywQNdMarDoJ48zh?(g&{m1x0ZPJv&bH5;YFO&d2A89OK~) zYNYFvPzzxR6fCyP7S|5%B++t8R9hF~`w*Cln2Te4jOB7T;E-Ym2=$-1|2+U)S2}WV zBbX%bz?(nXVU}_K2%>~^F#K82kUF|lGk`(VIr9J2^|;zkTZU7|Jxu|B*Xrxfnc9&z zgeb10AmaaXr)WXo$bf8&F1^*EBB%DR84##`tm;kNtm-_8KD3KA8dA)vx#bH-z>$?um6Blq{m)JQji(ttJEn zBQk}9vTY-C?9p4Bl!l^epp#*lzYWZwy~K$8Zxu;svcHGKzszkI$^S#3iGfa(3)nbsI4YL+C1A8qeG|6#gXr+|MAYksRZlYO#qL<( zymITcD4S~cs3223R--nH7qtX+qeON&DmPw=5j_G(~#{ zI53J;U#zlX;zImu9hT2TILba#_zaoSCrRhI?B6x>|G;jW@MCI&DNFRVz1@YoH&Z>X zV8U;z8gucSY2PuHZ~ism`1#w9JO=^>*enUutcdX?WVB7~8uJ^)-i8+DHhQsTR_l|O z?28|<8_)a;a}t=x;w)zum8zO*-mfnvlrwR4$Px;@MfmFtu#on`4cMahxNWQ3G+pPD z*1Ro=4vgrE<;sxpM43g75_tM9myL8WQxk#PN_q?*1%vbEiKB|Fu7KZLqMCGp+{ygT&Ts`*?M2li5?OS_$Q!kF# zfDZPl6RAP|o{}z=dzi_IQ+O2YBC!~M5z9Ry(}wc*MHAZ3^oiNgt9l^mNfIpN5!{_? zww*jMPqdM=eqYD*yWmjOCBA&PP=u9aJGs4D=+5 z&+`Qs48w!K<<%RVJyJn7G49WWmU40F--|kz6NTm%Y_mq*b@ftAh_T>>7HF8R>=CgCjuriHr4=1qEQ5<~ zvP0!@w!e(*0n3KR?bJvPAa{iwOOFXLK=1k25SAZ?%84(#v*@KO)M{#KSGuZ>uAJ+* z=uV|JitmD~o|#sl9oHUyWy|oB{z2yi^F3s{^ch}1fZH5?+$*~Q%_Ec7Xwegy9&kf;tzTS1|h{iRHX4^}CSM;=+QT@H;OksX z1IyZHTim~(O=)77cHWgLUA{R6L4REUU_miN;`Pul41u=i%7TmwGkTz#z&TxM(x;zH z!_vwzRrIQ>cK^aJIk9c@I*DnnV}btU!)b_DWy#>bh8pt-eyg5?xU8xRHu(dk6S?v? ztU|JS@kr8ytF>da`0IJp)Gv1XO}L_k7y=hSyN-ntSb323p{~XXu=+B++33saTsY1B zE7s!5Z&$0=sx-E|5pi|C#$`R`(h%ervrn?k~7zOz-WNN=hJ z=~1VuE@lez=)W=#=c_Ry@KWkIq*gEv*msESRy?GYGN?5(J#b;eG7_421cLm zm|A}|bMAK}uhhT22e{im35~mCMCrK09`~P$MF;EfkkXzi-;JUm)`qqUcO^W-yL7z; zl1Xp8t63(PR=(`(?MFY{%kz&mlHehfzM>S3;!nk})-YrG7ElK3CL!NBC4WN_%jB89 z>wb3+gZ`Kg1286Esh2`zZ_l>SwpPEStOQO%+;%4>;HI@gvf^US?+Lu8TRp)zE`F3?NwTXr0_KLSMA>jfh*RcFUwh9B~H+4W(tB$zbNWLUl4H9SE zV%*kblehNNuA21~9)t)(B!YFr+$@b(>;uqgc@c_6U>ThP?afz_uX!XYj!8EO;V7~4Tgu)?_Hq+)Cs{GDjB(me=rcfwOJ$=>zV3*t?N74 zn^HGtu!S+F90_j(;}!SSD(j@eo{hNyq_#nNIkR+8^wz&POy8(GZEu8&t0OSATK=BY z`C2U_*qcG_60I}B=x6uKc7sjnVc6H7%*2BXH{7?>f&@QG;JT0V8hhgu^1iD45P*$nXoq$+I3%EVMX(S%8@)RKM(Q|#8hMj=s4vwHc;-O zc!Ydejl;8p60J9+H=ut`Catpjf4}51!``$=8i24L4E8U^@LQ=+8A*J1V5JFoYp-}xR@5-3 zpOb02)BTdHMEryjav#Oh*(by8QHS!Luw=O%SKu5sBy z<1soC9m9D|=W~x+7b$E?f%uWdxbdNz^UD;fPjA!a?_D?L{m9_Ei^`%TzCI+8!FgJt zra{Q>OTHkBo=c8tLvS7={NmqZCg4J{AQ)?)lN>bbamnln4?1@ zS6;Pg@8fN4$1QJ^?BRc&=f?1L)QBzzXDx37FGk}s!KKSg70?ww0ICJlYL*F^+wM?YaFZp3|H1#!KhD|6c%! zBvm(~!P{g^$x_u|Y$uEMSX>T#7#rEwNCe$l-%F8OhIm*pY)N&ah>~a8(g%WLIU4z8 zUWi3$*&+M}kbU`|GcAD$*+7KCudJcIv6Z33^3I+d{ykxO0upQlg0U>-8sTgC+)1V@ z`b?|8CBE^b@=;Hu{;6$KDXySOmeMC7{f|zong&t47z7jhnf5z(ms>*6%V9f}vAm>g zilSg_Y#^@r%L^fqdI$b+M`5@Ul*l>i{?rYOUL;un-X){uL?}_YXMel3c!AGW-~=sV zhR`9*@cqh}P3n%ORdZmKSW6SGVBp`(ZDd2vH6n-m2XPGx^Cy**2B_`3GC$=u$t3H( zv4xNrT~QgMkuO6Oe>aDMBU5pW;VSc%!K;&|y{o|j6c59wfkcD$QlG@~6R982T(A?V zs`)gyPUUc!aQDdjqPdF7Wbv4t3pxG)-mOwz7Ji024k&G(zL( zQj@mA@1b>05-8VcVMN3JsmuvIMr{x7xu;Y^PJ4pCCASI{raIZn4wZSue_+%QV-03c zmIZ^c5V7M$ZUO*aaM~{B-u0l(uV;^68SF%EwF@IUF7R*vSqD)WEHBN=iATV7f+1ct z4?HkUhB=Z8rsmGQZ-bj(`z0f<>;|oBL;J~1>_sG?Hdu;d*3tk4U%&l;=J7PCj0!ur zI91@ED0#u8cF(p2a`y#yY3P7Iu<=3XH{fWouVB^FBgK>B5Od4^wQ}g$G2eh5xGE?~;3OQf1&H-;^ z&lcuOF^QM_i@68GleSy>5I_ACy}&^8{g}ObPKl%2-SRIOfz>u}wYDMGkWxRC?k)4v zMCl zitPfG2zX;B$M~2|#1%qt9w#`xvO+%Oyh(mri1MIH0n4BPZ$!@?l1r^jk3AEnu;ZTY zeJm#cgxJIL8S_5aU0TDOZfJfv@I*SiyMO6p8Y1M8#(7pB>a|92@XI{HBD$ZxK^U)& zM8$K!d;eQgAH^#c?$n2x4rS4L31EvM(35r3xgfxZM01TWj&gRhhEWqWDJURggPBP3xI{u zJJV!LSWcpuG+*(ufo+D!@ch#>YG5PWSDT(|xk^lNQuM zmf6>HeImTJ5EY}pbtCOb>!K=udJooO*|FD(0godS-m1w^m%;yu5K}T!xICvyf`q>A ziW(xkPw`*Kc?OgFDBlAXKu#|`32NGJX7>(}Pp{C5y~R@aub2T_ff zBXP=CYXGnWHuL<~5ax00v<}HZ);?#b!#*kED&~`asw=<;1Qn{5TuBS|H6Rw0o^!@?qebAIxkYUDJIfm8enIVCF4uLg3 zI6?qUmoz!dD=~D7!5cBBgDIbE4J?4=D!4&kK|joMNU6wxuKu??q@!0UESg9p*u~Uu zux-8}yG;2q5KFvSLuVE_-SfQ*K}NMAJ36G@udRGI|ys2FKX ze110}aEJVza~#G7|G^#cCFDXZ*y>uBsm3q{3b|o&8TlJVY*a$%Rz+E-#am9`JdC5% z!JLWHD%HB7R-f3X_X8|;9czVXqy5YwQh*BfZ79Ui*9($@sI7 z3@d&}@1{_79R*yOVOx(?a* zAD6anu+i&9n>a}*d~EbP7kFhPn|sN>fGit6n!JXfF3peqR zOR}TaJ(1;KHHALX*}?E&4+oH>{D10eo(m{Xi9Ep`)v($ibz81#@FLuJ41|LBuM+=> zD$wWrG5#cjt~`yG+6pzld5*)YQ7+(X56+7;LGtp9QP3D2{ynkW-U&6bxvv$I@%@zU zxX3>+Xes@aF)yg>M!uNvkmvug0MbZlkI?L}wDYv(jtZkxHnXJ7BXIHqVvq3AZSP;R z=*ckdw78E%0+^>PQYB)rx8@e_*iWn;E|`Mh^xpXF4I{JayLI?{3k$VMVt=_aP{zlD zFHE;qIT8peeq{3_+PeNWG(vT8_^v#1f(3mIt?74^3Q9f0ysH5OBUK(8+xw`R-CdN#gKCeG3k_$;w}+d;yGfua^|Pl|b`kCP}k z-K@J(F@3^ea{O(mRb5zo3gykcQy?>H#U9jggH6TijVAxs{PYqH>vIQ#{i%u0@=BuI z2_ma^m;b09gt`*!kAK~>r1b#y2>Z$=44zJ@j1c~@lu>;!AUEmzpn|T&JQe&z&g!*` z!><`ZO!PYKiQG{>mKnPluhIqTCyi#vq;C8l0M9@$zXrw6tSAvtq2I!G29e`tcn5k# zset}VSh(0RgJu0fH@9X3jw^2sY%?#L(nZNkU!^(+#m_-mji|s+ZzAJApX2;z7CMio zq3PS|oWHU@hGqhON@hiX;vhsWo6wYt(ixMpOTB~Q|6?RaR@@(DTY&Ef##wbJ|{WGVuotjYTY?onB25Zs)tbgI67N}1-wlc@S_|x=MFrP&CvY4=cvKL ze(>2GM~|fvj%rs*CphPgG{HHoE<*8R$PP)1_nmZW@PLEZesmruvHAPbQG;b|h9+YW zJ}a+sWF_Cc%Tv-6$IKL~kx;x2`Ip57`#9Yq408~BTX$M#h0V_TD{CV(8wK$1yqxAp z%R_vkGbT=SdUTsm@fr*@iwpHJx&v4w?{XOU!Nq9>(ENSvu)*4n9ZvVr!znY&k(U#6 z1+Ob0PIl}pbrTBt+k+-BM7Ij%9L$C@(TO~UP2jH_Hdu2$f~Mm!d}0oAB<7=bx{`O# z$itnO8Vbe#qT;Ut!@Qhs8QMuM8RWq;IS$R=2Xh=YSk@n*`G9{e$McNjz8hilj@0CvHY)8=!XMzx z)3*r~|3+1wS73}t!pb6=NkEjFsTbV5EjtZ0?(-&7~ zq4-yP-;fyJ(NVsYI6}fL{xuowpW;Oe95-0jYV450e=wA!O4|GR>RyS&AAFNOt=>Z6 z@sx}FfAAjTTZuN3a~=cmOm<-txZHVvWo^Tz1piduE0W4rNT@-BMkEULth?(`Q7SXG zrwG^LAqltmcfqe<6SyP=25ZAQXi7TZ-^s0FIj1_pSNYQR$yA|+9qKULjglOhkv%|o z#IT=)+gA9okl;hG)@@3G!Lrt3M^!(3eqJZZ&lW#l?b}lzQ-@4OzM2g8A~WKZ8P)}5 ze2d|)CLuQq|F;2~z^_u_udKP)q~Kqi$Y(iAagR`nIzuv*$n+dkpW#+aHVX~v5Mxkh zlaL$5|0e_A_FkD1gEjwMXi@_3qp)aB3Uy=>mcMDCT4a2Ypjr(#BA9DSjp?I=%TdhI zB*#D9b`ksajd$m##9&$PW5*Tz>r0*sy(B4`%cw_oG+_ zZZH1sEBMR2Yg6N|(Dw)l9x7&;IUZmf!BllitRVR!?P@r*eI*4oj5Bn1v-}+s3^D|t z481Z%25T|)9-*m&53D91Ns^8;YEtZxSV=O?dJ@Z3n5>o?%N=EmD{`0RXRH>U$~tTY zQ?)|~zegCs&(d+0BG^x9@ZT~&OO2x_=!q$PUt+PG({vU zldn-{Vz~gtQfFWNfI-SdVVPlQ9_nu}?G7RQ9w9++u?zz?>68a0(w<1xCUf|{`VZ+S zX%!v9`xp)7nK1?T-JA{_?4S0Z!;Ad+$O*!o5l&LJ?Dy0(}WFj-qmL9pBH)lM5q9J%1pG@?5 z7jsi;uvRR@W`|%1NRZ`8D--5CFF`Xee-@ouJ?t(H$6CdQ?GetEiP7xab`T8L83*4X zT%1yag?^7P6vK}&nj60ik1o6pRZqlAl_?rkOCkyJQ}SbWAL*mzJU?s%9l{IXZQ9iC z5W?RhWC*c*nja$HInIh$F(zNFLV3DRCQxgYB1#2`cU$0E-3w0(k@ZzKk!Zq5)xj6nqG!#z}(D@RZ!gU)`Y_P1g z;6X+(Xzc>elX>N&k~LzxK(b7Y-X|1*t|xAYReKld@=ViE+7 z5gcuCm8XHlFu0`$oW!L725ZYAaFPh7 zxqF`T6vykV`c-z=E&AolC{w$_hFHXQOMJHOVO^xZ@R0nJfKK!&?u!-x7%Xc!I7_Dp zB8})2R)}__WmDKK3TD!Cbt)EDYh-8CHNhFC?XZsW-1qh|l<5cHB(6vBS94aOI|71Z z?w-p$_3;UvdkW}nh3yCi%UbXeI89ju zvDW6}$=wOs0=dKI9vw3+I(U=>CDkqpOWz6Fbt0PeLeaoNKjQwu90-GDtw;ZvXZV+Y z%#*x16|^Ptv~d&u+^^;ZAHxH#3d(NUg(4b(WilB0w&;gqH)8lJYddpn1A~pBLU%>v6z@{;jKDI!CIUWBptJZp5Q8=63viue;)LhIg%qMqqK!jDDhRvxS0p&{c+ELwY|^3+rl-woFz%beEzT z`$(l48B9DoYr8BMpYRqAq7hge4Xj#p!}=bK!CHnMaDxmPTuM|Zuk)%}e!a^?&Da@n zH8XhF6A8I35?k_lmn)Zu=jRNBM$lPY17onP&%vn*GfV~QB5Gmvj`CJY_Y53Wi>3Ao z36F?-sYD~NI2u@)=u-(l#PL_w$LJwtDF>Pn*cO*9&lm@(=soy?dqv*Kft8S-8$_x9rbXquJ= z8W4GFK!gMv5wH>DDJq~wL_vY@h*_eMM$Pyb^WTlmiWwcFA~aaPb8CNM@o`txuHEO> zsUw`MK}6#x4ZPk0i{-Io_jNb5SaMKN6YIhROb&xXb{Isor zLtIzC2CCw;LaIk7!cYHnUWYOlD_UO6d!;FuMX4!scvSYhcbzAMRJS+7c` zi|}%QJxn^n+C^@1Ew1cwjwe5)2InQ8o_5B&GWEa<-0$PA9$-ZoGty~XC(2-L{)=$B z5)s?SCrOfdovfI*JdQgts1NA8M2zRVH0?a!lf!nMMD>pZMysTMLs-69l)*eBiF@0{E-Rcd*b5?O&v7pL24bnJGJsE$YM!iY$xanlN62Fv@ z>3;MVn>#LUc}`;Lu-cxb!Z$TtZqBtU=-?ISlDO_ca9S>%#`mT9E9*1ysfYMBJ)5G+ zxl|~fbaU5pJmrxD^*&30@jQ>K6K#w=^N0G)n}S$&*DRjL55yTPYrAyL4k60##7_?$Kp*~y5T-Bsdy+xD;>b>*m$u|HV+;OpyKL>esXEAbh~SpCzDs%p;& zTto|}wG;k&j1|#otc8C78P~(BU(rzlk0t8^q2ou8+A5yMFJ<~G>l5+JF}ARkcA(0- z4L)XJ@742$hsg9EREx9_R0J9|iylr7T!jY{_JMGk@$*Rje&^4G8Z7G{(wR$P99b8! zg!Br%E0%OGaL{ZOjEvfdV-gN$pe z39!NI9dsp~)eB#bAo0$)PQ1T((e}+GYVQ0Gxl{Cr9$^t)$0%C)Ylz+xYp^zo|74xn zfJnj?R%xfUAa-L!LqiA z&qBr=pgq8FDhq(${dFL_Pn3%PH7E-57(`7V$(%U4lhfg_X}p z#8%b@7H2RHFR3NE59{~f8T4IMC-u8SI{tihSHFiQzQ2ltJp=Dyta!Am#WVS(WPfG- zS$--)GI1A7RL}Ao=HC6<8=vB_0y>ZN{|BBybyrV8hXIB>0OR}=Gc`EA8e50=FA({jFg5^{3T_Hcft+6c5Q}!@;mA_f+@3Q@s z^`87(gw+2@n66%E;OlCY_RVLYt)`$s%~k2RSAF=ibfA|X<8<0t_BqHm0{Ommt8jz$ z#wzg?GM0_n{b{fwKW#wwEUwfJ`7Cth2VH%!u(zl)S+n3-C^O+w1ntLdS}}uH`AbGu zy&>FSSs#n%a3AB%ar-!|$~}DsNNdgs?UBz3^I)LWo$l)9Xr)Kv|7;8v8xZJmT9|_j zUU$krGx$`xzp~zvpN`#(bWEb%YHKv%5xblL?UK*`#he$Mb(gs+EK1c?w9m%@6C|LR z_N+rk5`)-#@~K=e-eA4*k$4iDAS(qTG6abxfy4+xrz&) zDUa1i&kYxiaNK?x?E?^Ei{w-Jg?xWyZCojy#zD%^2km!ra;*spTY5)(<(!dN9vC@Q|i{a&2jX68Vs?Uc{u=L~;ktp*4JPsOb;iK7FxXN7i;9BuAb6!r-rS3~{rqyv^^3c!0>wPz;7Bs+DJQbd}9{l;x-2)vN%Ie}H z+n6#>|BlDLk3w!cfXo<_!6J;g@24zmYUtqAevdKAYq#sl(Is|UZDj*vGd14PK(M_i zQZN##y^oTt`}nVIPk-=N$%FreMhYTD?ZLpPw`OK+psY>50WK}#gXUB@@PYRml+(k6 zY58Q5M%*9Zb3lSdD8*j@6koqN+S{Ugk`#(3(6z&y8ov$Xe}Y2pEdZIzSpEtz=3a*> z|BFEN9X3aOLuuMg6^h5PFJw-Iw*u$%?qb-jlTW7SPcVaJZ3CoeA0 zZPI?KP&|rD&F0j1KX3>mWeW2J0Kn!Nn!mDQ0IXJH6yO|CfhWxoV7pKkVks1lpt9GX z^3DSWU=+jd2>_dK;tbY`cL20v4!L(W0wv(MK@yz4OM9w9@ep}C4Jz)l!~;akJ?--V zHs4u+Gg#I#0Iy>h4Y&o=fcV`8iEx6hYfvbDg*U;V(jFl`NQt?jWfOKazs>Vk*2a|p zVvk|cbOFfJtW+rOBlfmQb)A(93;}1lB@AG5)moszvOWeddkvGP&BUKs zm*Y%Q;@x_gP@!-#`b?_oxN4%s<=ikB1JLdgql2HX+kwFZ?_ngTVf`8o# zHCV4L2ar31$<>4dL@lUnFiMc^puS9~a4kGOv#L4iCt?%^Id?b-+ijM=1~pjLR{(b7 zITHn8;%T;X)GSH1Tl7g`g-ekbF|3$-kS_NohTnsPpQC@J`YY?7gmk^ak%KEpRX%K( zC^vU#r&YKS^{s}L@@-@o4si%RMd0%TtiiH20O*b7ObKOW5cMD>WSA@$|De5A;XVvi z8CJ+);|C;a?Z=dsaYr(M+ zaS5Eoj0EUg74ZU#xrXp(Y#|(4&?~IH*+^MP9uz0gWjn0y8gw8{+#SEWm5hu;0cVCg z;|10hw!iY$BFaCgg|&w%(b=QoB-$NMwbE;lkK`hM+l?0a0 zf}{aDBS6|j_i41*Lo9=MWY@{d+{iU%EN+81eoP>ACEZ^!CN+>+So_0FZ8$4Wrd`Ql ztG@=>7$_B(xM|E-gh6#GfoNc@z#FVh%dGm(EUrS8I$xkrhjIc|f(?QpZu-?UUOkAZ;XcgV3%?^|(Z}96Bwn>XaG%W2-boQFLW4| zUzILVuOl|E!5|W8O%n4py&f74(zxcvAc4`P68sfoQiJ~k==4H|Vfp?kClb%2R*VhO z5WXWaSwqFpc#uY5xl;&Aw~8=Wj7bf_M$qxyLly0BWjd_(qgIa%ve4ZrGgq;T+MkdF z5z)X}CBt7aCN=oQB$e1jRf*#=RlDf2Rb+!C6z9pzRP49uO%lsLA}IY#h{0k^Y6v_7 z9boD(EI;*@Ox<=blC3Bkq#!w8Xqwhhw=a-JV7YUM->{awCB$HPUm=b#X-clkp-Ol4 z0in{}Y1f1XA?SW4G)WWKp(+`6!7|fWFU4PZi`F3sCoLq7^i!3hzfY)m7qwbtHb{Wf z>p|Ct{RrwOt=k?%P&$8+7=z_)Krnutq!okM5#kTZgvz)5O=u8+@Nud6nSy<~8bH0Q z7(j5kO^(0v)+|I&-b*^g53ve#r$^?&AS<%b+I6W<-L#K z{2J*PV~1h+{tK}Z9*Ns-LIWAC5wXeHgAEF51eRm0w)k9Sclxq>O~;jDObl!9$1|=Fi}w| zH!mx>4Y%kdPsS$VMm8<*@{ z647@Uq^=NVuo%Ne{Snk3Zev_Azm_gn%UxZ!RciwcPum2iWYYz1U{GKEkro7}a)yku zhK>3sQL=HDs~VRDtGP?xVQ<|HETrWLPDt#A=P8^*F`dsKb-gry=cXvY?z-uuM3 zx)GP`u-tBY>uvy{dZ*}gyaJ94>VmL{p?i{sjIxG}`d_1j;|^HU&x@Ayy~S3w4HOjS zicZFSaA=;RnEn@o)NS(omA9C2YZ7Hi&26r71fGZ%b+;$e3bz5Fd6Tj;aVK{`gMSyr z^dW}kEnFkeU_pkB`d3gVntVx^dP}yhm)gJv0{|7{vh#58G&eSxtic(V7_7c0(O-FM zA!VN>H(6k1&uo{i?4kVAR=y2$T<>yHWM^R`_#4zej-q-rmBH#(kp|0K#bEy-OF!;` z<>UTA+1l=EZ8@P~PNTk3cnX#@fTOdE#r0zbtE*)CEAMRv{Xv%Gj7G`wo+n)1Bk`aW zal>3i@<0_IhL!xLrQrc^?-?j4~9Yu-l;{#ow|!8=T+@Ibo2yL0tc#|?86{YRu{ zUm3Z-CZsvzq~ zutUDmyV?s@(+zV6k17=;T^ITXlMAd1!m<$tt@9TMHdx+9Mi2r$u=0(*Bn%%>AoijB zu$6VgTxnmWC`h?Fwkp=L*nR=w^-anC%3Gbph(b1Od_X>0@2eXX$h}KcSY#C;F-xv?i?0C; z4@UPl5MH;-_E+AgjFr!Rn6(26y_0YXBNsJjzAG)Z`fhl=C_Jbl)k>bCqZEVHpHawP zJb}f+4VL$3$O(rn%yCcHvR~h)LiXKoi%;vH9eLJQ&W_Uu9T z5{Uq9O3Y=pq70<#Q2wI0jU6?-CInmabYxl6VRoQsT}ylO-<)Fc?Zn;+<q0mt0c(9Vs z(O&;TW{mnD&r@Nryf>_)GE2yzSAvsz>VO-!p;(4jf?WwkX*CIdipu-Syh34ig${q^ zZTf`r;YS-VocSA=m&EB=$Wlo%}UZIg++e-g z0K@Fy#&^1MsV$Qpv70o?Lysubex=7>c?;%KqJn!9R8mdXn9Os!szORu%&dT677{6= zOjjm7!~3gh+|v6=3blV)pvYi(UsA%-jQhWN3||;xox19RyZA6@cEB*R2%gPVmPVEM zZ%cnCjq{=c3bk))@>kw+ObhEOPG=tS9oCT3RvQY<5g29?723X1Tsz-iwc<#hpin!1 zkt&1bZKMPyirX-OAL#D;*^Sz&gB$KQQ(%}WjC83>pqgxc)QV`Nk79l*_)?d@@|Lfo zMCLJ0YC8Ed!V7BE6^N8Q1!fEkGxB|sU#2d7_BZ3hcAD3?$IMDzw_KUQ^0rYz6BxuD z`xpEgQIJqqB3xdMO~o?&VWjTp)0aErC-{Nu!Lhy%!|g_G{>odOM2QV=R0C)B+b^SG zR9}^_saS?T{5@E#F>y)->`pJ_HQg~2X7n|%Ja0SZNTZ%dSS9qE;A)#DcR9P-k_B5DPF#L8DD16)gpMHJ0fZ*lu zct3+7cY{WM<*ivriBEDnuSyRH5S{*9l?B5^@~h1*7=9aKIq5pHWv_%?Qx|yNxCXOV zd*K?D2Fu%mIsP|!vNN73Kz8a6>8u$pFDGi2!SL%5jrS={l|vHzRSfvx^g4#!?K=IH zw;0pH@;i9vze_^hxN%Ww*>JgWo7rIal}O!@t2R$W>`EWw5zkr4rnQ0PdGBFj)E(hv zK&u4h=`Yb*Ib6w(WU~&2mm`=qsy9hQEI>HJBfhBx!|oQX{>uB5GxaBfmjdZGBxp~! z-s0i*+gL2a%Md7R)SDrtM&SgpbGKF35U46O4tA}*O)#`V?@ckZ@1 z2*dxiSDlK}qg2F5lW-;Qi7%(N=xt!3USXXA>Q9e|8q%ClTtZxDv30Qwzhtj=wQ0_c z12X2BWC5xF(HdCx3TtN33rvGz5dx%e^RrnjgW0Q>AaP$r7>S?myE*hO)$FfGEvymX zJNLd85fW5Tqq>l|A+uNpvseG?ubM@~v4OWD$3-|#-*h*yNVBkr@7&#>j33dehn!g~ zgW+d;RamJ!B`UK;1Ty&ukbBMxcjXN%R11sv&fR6ms3);b<>kcHrUlJb7|dSD@>l*p zfZUgIUbyR>fdy<~5iiSyJj3#1&z$;_VqGl5G=jzL>XTte$TF#a63M^I;di@se+Ak| z$b9GC_f&=wMF-Uv6_;pDHG82Q$!4#dYs-`o%#l1G`Mn%|t$~GVVG-ZCyGkJ|S2F9Y zuDFtTrdbTl2)B+}7PwnNHg$%HZ%aWh+^vB%-NH)Z#4CfSM#rVpmfcoaoa@WTHk+Xp zvG`ug0Oxw8tm&L2vVWDsZ;~~zrmz%rPgP3Hh=)=xN1j`4nL<-mw^|`O}z`@;hyP6OsO( zKn<+b=B}o(9h4NvYpVVKX79|unm)5Ier#QEX{Xgr>wfI<;AyLl({X8&oUmmhL_!F} zEYt)Um4X;RHf0e(ML`r)ECNMYtOXlTN1QVM-H6f_l_kqJ%X4`?KXJ%!?|t8UpYMC` zdvBJMD07?f!qE!`9oY_6m*$jsulvfh0e zV6?fp*Jnw)EXJ%1B+=#|mDMa8R|0)aLiSKj@riLvt_;SRKdADs7)v<4c2>6k$?;Ax zcI}3&s5=iddTr%KDyu&@2y`-hkgn;JoXZXeBhDQBE{@O@@kXUL;bC?^hIV>6(+l$o+9MI@45JH*{RhYmT{@Tr547O(&2Ncq1&lyTe2A)Q4!d>$nGUi) zoGMMu{kpn&g7M~U<2v)1DU_5O^aawmtKVYmtQ_+WV;a{0w8T4hQB}=lCzAK;gFGIm zN91^@Y7V@8mmjQo6ecn#Hl5&pem4;=$a_^{);RPaHT&5^P4yPZdy!I9m_3#21T{`7 zKEs&vE-B7@4b=($<&}r;WZ%PYlw;u*%&uk`w}968(`0I@x7mYqL_iygPYH@c=|>rL z-shajNQr`suC|Q3_n1|%}JxSrn#>g`-4YgU+DtH)6 ze&XJp7po*Q`#@)QLw&bxqMmyH3hNtQ^G2PV5lOzPlf^0vTw?|Js1OT{&r`*HJO5YV zuaXR1eI3&ZNG-6`U#*~?dY|=BpPMefS1&|Grt(vaKnvn$st_XPx}5BJwQyvYHEq)aYKBpy zMgD?XYF@TM9hC>5N9Cp{ht^I( zQ_w8RX|=E+))F+Bim7E1@YBFB$kgEC1oWaTUV}QN9xCgxWLQ)2 zEXyNCqNQ#v2My^|G>L@H72p%trD&D)6gC|-U|fZ=!}rut3$l4Tk|oPQJDR8_g-uj3 zF%~U-%O7y*scRDC)68Mv^VcOwv&pi$CV={R2KCNh?H1~&g*gm$WX!0(OPK3Yce002 z5S+F+*c~hWadzD7=3Wfqi@+t!@cpQk=z?12gH%zAur3M7milw3ABVpSb6(?&SwS&z z`y}T<$5UP1F^_Q<2E+9VVWz*2T5wke)jDzII;yC}_!#QYbfX@cj>p2>*9gaq1c{sX zSn<2NqPhx_^EJYZ-;7$|o`%)w8OX4P7K=lWH1c+tMwwhWgbeasF9PXY7m?#&xD}V>lAH`bfBo4_5nnPHo1x^yC3=4E>#&$-l$SAYt zv+O;Tyr9qO=dOv2!D4|MV<3eI!WglWx+!Rq_cBQstNV&u0^OR{&Uh7Zwy>|uL6H>% zI!9LzTiiyBUE=hn-drXKW5nKM>Zah?1a^>slZ0d05~H4>iXlsZ`^^TsE1ME(k-Jid z)t|zB5;;{bC2o)G30#YSB?#63plS+%6<;$+7%R?*d^$GH(Yi{d3oQn=d!L8md^7uq zDula2;ttURcjZG%5PrRaswosc13OE=NkY{NjYRL3-N(4480T9r)lgFXMf2#zQtk@n zzVSpVc+DiRNk+jI`=8WIp|O=o!kE!7G6-rfGIA;UO*?3HWKmnCkDCH+?gk~9(u>?F zUBD(mOAsEQVhWLuu)2*xCka(9nX%B2!QiDZW1iY^?Q+#tnx`&%152(HCc`9iw{!yA z1T8_x9;4#BjRMak6gl_#H5I2AzmzAp-Fko7Rb}N3bhYQw_R8b#7V3MDpV@%DAY_lx zFjxiFZB+dN_&{B+6dD%UohWJvL$m9tW?5*fVuvljClgVkPH0oxCge2oB-mmnt)gBE zo$tV`Y(#d#=ZrG_oYuk^7CovOEVbi$xzZ~2smnabd#fmNLFn!Qp75+vxzU2b5vrvy zSp5x{nTL@*U60f`zwC$=?fmjHONmch7w&9diRBq<_@caZgqB~a^@Yf0830@DuU1nn zg~JB4V>N|*ssd7n{FVn5lixotGj$32wmWva2?pFT%h?|sQsNs+J~?xv&%`hb-h<@&yw2FA98(^^A)jTff-Zy54@ z-pVXRI)$WWRhIkm4LACyFEsX@IL0+jxGdCTxjrVV2--Af;Cl6Jphj9=ts2zL*e<iUnnXVWf4*2ePz21?gR~U7#c%4|%&irMZ`QON^A1izV z4-HpL&#lv~o=Ion)d^OtCpc3rf;|j&sb_8t+Jdu1L!^AP7R~0h*#0jddBEHyUT6>! zM>0zUyBEz1Y~%cjw%}{GP$5OimvG1IDE29v7VH7lz2_O@2#H&I@Rnrn(uQrEMz{q( zNPQGBt9GDS-3Z=v>4sz5_fRO>E=1;RcHC*hPI5IY;0Q+I{SUmUc<9 z7gYa#nt_gx*i+yV?O2|qVVh?dZpAlI9Vx(y&*2Pz5&NWN_(VIxYBn7uBeF}O-yTVi(J0cMh+k0`dR^|2eonoT!%V z4~>nCd4$9YXR&O5l6L~!KzHGmd?kkvD#jtaEEIa3PpNQ^s4l5u*drt+*CRHK@b9%E za0?CM8E7YU(J~%MsBS`^eD_QzTw!@j8Tkl_K0_ykyAoX;xP?yRB`i3Ea9NKeRIC4s z?iLGMguBJ`DaJlRqK!xTr<%SU-9%6D7M()~6=f^l4uB8e^;+SMQQgVGb%aC};mxmR z%0Z5z+o%<9(GO4)Daw}Zco!t_Q(2}o(tTrfJ0l<=QM?DQlf=gx8@#eTa&Pb?)f1sb2A1yn9qXu45b| zBpNjI%J&~ucq;+Uo@IqQ>)dCqM;`F-B|cg!`??dNIMRE!zorDEjS~DnWRd_M`#NSJo^yYBzz6>bb$X8muXK;G zD-seMTD%%OqXK`7UM=7;x!6ycg?P^WC4T%O^bKopOVh@wql5&3oHHs6N5&V4#5_;px#MTKR? zyVBVn33;c_SDttkX5kl*uK=&e;R*L8WgXy(XfMaF#1r4BFikTw$PP)!+cVIp!znWF z<7?IH1bpzE;l8Bj-1i~w)#u>XVp)R@-!v|s#3JM^Nmugu%4F8yi;e052HTxE!p z_M=ua0WCFq5KFScE}$eQlC?Of$?9OkBqVT7srh_ml5YsmtG*8L(Z9$1v-E61Tp8CS zm}rxpgjM;3J(G|?8S|>K21l&~!7d;^`Yp>Cf0mwID|rknTnWpe#zsw69@{1%f#B2g z`N}x%NKg#&0M@E6nSMgSpCRkAMnYYd+VnW7JD;7Ckj1&^*5eB8oe~tQf_zgx#OxCi zVm2bKj_w=@l{ug&VVUgvY@UQHOwC z)9h@Zgv^gU$;Nzz#wg^&U&G`RDmFkakVz56*^;2hP)&C~dnh6EQC+Ob4HAyY*wTf3 z_#ZO&gp94r5m$(};)49KUyY8Nw4XxWMR z7E~*vN;{Rgt2x`xo=V6|YKxT_fHPNya7~!+#_u!ngqTlbAs0%fkW20cv?VOl=3`qW z(pf;y z%|$csgq{yD*UC>qY_?im!ZPP3*j3Mtkm zeF^KRD~}D9XvU{*cTmdx&Qr8tY8SPdX(t>U#w^!lDL?)9s@o};5-+KUO_pfIlH%4^ z^KL00uFF7QiT}u~6Bd^J33I*FB?>9na<4wOHGQS*vqUGg6$%U9eMyLViJ*Uee#WR1 zCf07pTrs~%G2CX23Cpwq z9I2c;N|a$wa%ime%=1zNoCH#r%#|Hl)#YO=Al?F44r`u*yQutdSyM zHR$addsi^$gpV&*f!1xFl)63PS82Q^oA(nEH9Tz7S>=rnr6>qGVU%~|gqcI2m0Kd_ zXS70{uePTBr$jbhqJf;pPNn&3M2dt(r$Hs)9Xa7;_dd{t;}K)OS`(J>W?0yKiFB;_ z4N43Aten4Du7OIhZ#OeecsYRjXUl)Y6tAyBsR5hfPWE3Sn|`&`UDqK-#EYO3to(=x zC)|7jx^`@r#FTIPX{{b?va8sFiCmhq)Ry+GE-@-jw1aA}lldm>#C!p|c>Jft6mY#> z8|LjfL@Yi}g4)8qC+CQz5A|2?*cj%U@Dq(%!l&ijx>7W%)`*QGm8ac_KeEi(_GIUK}wFJim>qy%r=q1e$*vo>lIYUPvbRPa#jtSGLgbV zm*!%Q&k!W#4I8QqYnW^zg%42IP(z-eQoeXpbHZ|Zd~D1_0>1APG*@!M-y~@XyU}}) zxrUpB?@WnZP%$5KYW8Jg^K`K}6Liv39jeRN*(yj(`z=%%c5Gs<;U?j`b4`*rcj~rg zA1iT|>RO+r_$ABa`ufyuV4MJ`b28FAV>bcsj+nr5jMiHAdLB*0kq`ZLLO_KCX zfz{zFW*Tl124}~=Us6Tae52f;%_GiiAfV)SYp>qSW=VRM!k(q$1|c^IgGJ>-Ni{t( ztlgtc-5^^v!DFCDed%5~A}B<#zPRMoyZ^)_uvYT2#{7I(5)x5asq6ivi+ zVr~#}lQ4)J7v>bEX(~(zBmO ztSYu}62Y5;j8`u{H|NXJwF7vb*?uM&ZW0Ea9$_=U``vVHMl8a3g+TIvEMe{EaJAqD zVFYgyZp2+z4}_U_m7l)-zlhb$R!$-?Ub&94I$!J`lnaw~6jzIltC?dWmuTQB|4~?x z7xvM)8LKuqQJ!1XR#MVy2PxZe!MCBD8X?L?1X5xym@&FS|q_Y#a*rokS7#DYyugcT) z9bA zUECXw^&h};e7>9cCGy#|3V4a7iSzV39Edf8p`=7MdJ+!mQ?9W7rjuMMPUF7<%du(~ z(+dLYkZV3gT*)^N(aC4vPCLbBPeM&sl9#nNgGPBbSzSif<7;LY2v%$XUStV_;)>q) z9ld-ewlgDa_#~8^OmndAX7YQUIF&n*C-ZMv!R&&;+U>}nt>sNjs((N?e?3RHacTnz z88v5k6!LX$){B$5963a9U(4iz!e5{d>BxJric8{;;jhD~4J1U=axTMcwvzU zY!7n_49h-4UTHl7PeDK78}w|7Q|#>iWNERCm9Wxg(LOFu>3Zm+7#kQ{fY=lT{cXc4 zulk!Z>FTqUZb z7FnvJS00{hpNsAj0>!=!Ey)^Y7A)37FSkj729W+Moqf*FSS4dtW&sj(2C{hcYEJH@ z3sf6=K!Z8L!~zELth5`~SPNs6G=zQ<4PbCU|33@M>cRVBVKK3z8iN^%u29oLU z^N^6$&tO1;L6eLB?9NB>phU$-uzw+1$Fu?n^gwrGh6^M*K~*C?eqMSec}*dCM-nG{ zSV{BZ7x_y`K{vE09N~@$^gwrGZq-Zl0^Xam5Dr%_BLaDQ&U<*b`a-WTc@jmpV^2C; zzKvN0lRemOFeLoFv%@4rN4?T%Z^RVDY$IL{#YV%9M%+7!}R+_@TcZ6HjuzLmGOubvj|s&-k8ve z9jxP{nNpD1iR}uuYMHLk^)nrRF%q(JIpLiwPA#W0EKYWTQ1NZpx*TFgfoAt!?Dgkv zmgx&t9>fadtvj`l`GG7%VG<{{2Y|;SQ~vYdKaFxi1N^Lp<=885NNS5c#)DXaoyMwX ziXd}S#FJNnZ3K)9T>yE0Y+;tKWkNycFt|AscL_Cz<|}mmKybL47$wMTdO7ndFdC%} zm+R^SSLQwD6MVh`|Az5j_RjUI$t#WGMFqT#R;}Zp)Vc;0M@QSKV{5|V8bWx9xeyWq z!6bqr(xF@i1wk33wjxoirV{D6;-HQZ6)dxGs(;>qGpnmzV=KAxp8f3K!BFeL001BW zNklYLGh&t=cL99hn>YnEPqvU^-c|)9Qmp*=_`~{=NeYs302z-*Scq5L%I>mG)4Pdd@ zEMG8M5QE`_{S1E%iypt4gYAPWikBw;6J`?(maDE3w_!!%>tTAp;u-l{GxLRPPF?Qd z?_lxto`>y(tE$ g_(Nd0P~3#S$N^OgMscfkd_nJ=S`r45`#kb89dm#vQP|FsS-? z1#f7;p3Hsq5Kom2p~K5D&LqB0TVLp&3<6v@H=TJDP%0p zyaUn6xvLbgK+B~1^QwQ`!8C%%&Q;2{<`ZaJIZ{V+NFifcVoW9oMD0vhDNuI-xj8DH zD_@|({mdem>{eerzJ<1y6DR2psc@!)_hYG^uACRy$Egs&K3aQS{R(}?B!bGv>UXCd zT0Uy~=@6-AEN>rUilWmsL;Vfx;M6c|`9dc4Zi-Y6VmHZE^-HubmpKHNPt_m8DgoD!);N74^(F~exLK&y*cDHBq|U|j z;9sBWH_57POd-f@2Qbe$Y!wMVqf?}VnvgHd=%Rm)dONr=m=+rAu{-4jz^!PznL#*) zrE^M$z%9pBO0!7MW?@h}!33jc+N^HwiKj^xHSk{X0?6XWOduS?(!Xz_pU1!RkbaRa z?tUAqVvx}zRik4!*`Mj6_b=e>@*O}D=M7i_Zo?{6zfVmA;9?SPq+_IyOF?@V^Nhae zbh$axo<`iw;0-ei&@P2LnLl_NmJ;(d@b`9GxpR_M+TA=_s27@iW=>tDl}amm&zx%q zDAO{g4+(4rXw`-mctyEO-$*Yd0gJbm@n(tl1-qO99vDnB0r^d z6T5|>%U>|;WPL^UawFS0BjXZB;CrVH;rS#!K`4i12*UE^HGE+?P5;P{E4j6k&HkrUPDDDztK1NT#R^+IfRRrtwEz?mG5brYLvf ze_i;6v@th zVZ<`s#C((r;h5dSUBRpnKQAF)c_3=FoOweWdBqT|`%1!?^3kv8C)r{+q{aG}l#&@| zx0>U;x-DDuOZc>`nt-TPaUS!AJT`7%!cvAI8!aV!T1C7A~n+@ zGW#=#Vr|&Sv>}mgt03CfEh1qxP0&@ciz(7!jrtj$-r<3r(@swfyCu8a6S0%+$9VF7 z)i!1gnS73+Hb2O?%*bb=v1Fancu0%!h~eA!Z=%+Y2-mH$Po>Mie5DSbF=UX?Lx%Pj8QK>@hlmP`$okiEW`P`beN^Z7VL1z+%xQp z`kZba6I^2A12Vd;;t58*c*Ce{4uI&+b0G<<%1MV~%wn_>N=d(vCDaO#i)nbnsB{j3 zNYB43gt*=DUiyqq#Pi{U>#x0&zy}TeokOp$cpfrZ>4Y<*2IecJ;0>eF$$1~7mHVY6 ztgx9*qbJITgJ!$0>nPMhX{Xm^aR;hdT|LnlX1-F3_j8yqq_esRWerQrQ*syDX*PP? zHeASAihE$+n`9L)XE}98%?ktbm0A?7X1*Z%SAewhb1@04jkk{K7E^paXj#3TYF*Ce z=<;b6cVw8mfqG?piup=03U@MHkoVr(grY%m5|+VQNz2iD(h9gc?7mp1o}1DU^}3wq z;4oLLbdHd_MUl=A8jYKnEyx0gP&)dCoP^cMTSpb4wD;-66X(^rSZlLBTBo@+Hh0ze zWa4QruT@ioTb*Krt?Us>(GD_MkT>KNqxAH%Dmfo|E-qpzm$e$YJvYX*m-oLuk>y#f zaLcUs*{>Ihuy@{-Dvgj|1-HM?Nh?>FXZ^B`kxl zj`jnyx@EEr-wXuD-H*)IE%w_ktM7t$v}>M$&IPVH=IMKL&~M>i*WUc+z{1~0y%&5| z*KNDyiaF#S4+d@y+e{2pFqm8w%vb8c0e1p9=x%gNN?6BuoRAP;9?uApGygM~x-Da- zAV1|JnAUzJDPeIDixA-DD@j_`hx563h>3#yj9puBKKg1UsZyJpK12v2o+(L6R*N%J z$^mzRJLqm42}{x?!?cZ7LG;GQKQ!bGb1s}fohADJ^!oa(JCV2U8W%m?{E3+?BmDOHum2cQX2m}JYcLDTfj?q{;Cr`6D>`sVs$Qy27 zSZ^-{s^Er=Ob_JU0KJ(r|5<1iC|hMN4!aYg(ptN`;r4l6mIIZLFXWKLu_hl$x-@~p z#bI|s6hh!|`#i6ah8gnLGC7dN@n(Kp=#BE`v%^*lWf5R!zB z5*9(V|3s}w5i7IS(7*`MFLjzrJWI?tKGr=uv9&Yf_?EFW>z3c zkXMZLJE;3ks-hXrJ*J}(q91}$v0~H(cJih;k6D2vL+)OzUxLJ^pMTsZ9Hyxeq7NSW z$gxUSl9YAzE4Pq4ybn4%GIGkuyKVC3z!o~vTQ2^)3$Hq zDw|=Zk={ngQsbEvEJ7OCwK0X;m=Z|x96-B9siRD=y4{b{-UwMr&I+DWFjP3fs#$V? z8G)q2Iy8Z6tP(76Ro|FsafB=tCQY*Z^!z5gY3q5I4gm~nctvtl;S^^Z@iDRi$P1VEl*+kh^tQAGWk3TM z*6_McrL&yvM3hPgBjV zXHZxc`7~4Wle}d;LQene z$+AuP)K?X(qXYta3HW)8lQ;g#Zr{I%o&Z|fQ6?`+E_5lM{A^8O4`mS0gU81+oNe-! zyoFs~Nk;%}mAor2P8zO~|7^#HIPDH-&hd~3IGb%i;6#|cCG-Q(n!IsXcDs9!3~006 zVYWMJLW0y@>2$2K@SHDiuW7)24#MsJLaB6K_h1F)c*qY{&0^cb0tnGJweZYHWpC$s9~5?7Z2SkTQ@i4k+M zom}{AW<%lu#SzF&v+B1FJ~whv;_@z`3xIy!k{C1mO!%vs$QcSGki9^to;>o*xhoRa z_k9LnK}XA0ON<)#H2LuVnnJY{Ng&Ha!r-eHhdKii7kJkWdI0EY%N~hw;|P%vf7R$? z@+go6PyZ?M$MfF@of21g{T4a^=&NL}$mHndN{i=C`J5C>ATuuSB)LQK?}K*x-css6 z^d@oO=&a;v^5To*6LE&S1DU)7AL=G=y!d_avB))Mz$lEcy+CC6d`E`-O}E!Y(FD?L zuc9Z&885V-6uHO+2dVuq!ir*%0TlR*+(?TBWZYg|BVYXHX|u>xE?!6FhcVX5{DR~R zk{w@ipB4*Ph$~Ke^|BA$GP~%t)O{G`u+U`5y*ad40PR)Q{6dd!R#5d}oFhW><U84WOR4rSUg~{B` ze;^+ybG+UD`wi53 z3)Qqt5c%_JOp0A|$6_ix@~c8_O0By`_MG29oJ$I!5LbMFsGr|ouFGBaqttig+Y-6) z<&2O&-{3w|8=#8eeqLt3Ny066-B(fFk$;B-r&jM}QYcd!pfct%q&Sfol6yqNeuUZ% zGx&qx?0S;RpHob2xK8GpPxk7n{we^J>iR1;;pB23Y)@-Dj zgAU7Jn&8 z!UhAPcR|s1Dml#QV1eum?5iTZF03tbi((C{xx%->bcntjhyDttwn=!0^@tptmL8^$ z!b+Uc82=5XHJ#zM?2S;ci7F2BT30SR{+QR0rqlihlx-=liN{MHr<4@CFJ zWZU$e^VLzxVLr9qJ49#tW~7f_aV(~G!wMFQzm|@%?wP0$j#18GE*EF&iOdXQ_^k8| z;rM{c4QtpbK0S}0Bj;wKE7V6#hgmfEh~JD{6F=I{v6H$DIxN$CCj2j1H^b9dab{z| z1f0=nPF`i^iTr!qE2!GAj-&GPwD&TJH#2RKDat$Y>z~ZL%2bU{{B9Yu$Bt>QOVzgS?FN?DDuLQOz_e|Jx5yPUHkez@o_R#B@# zhh8y+sh$x*C9iH*YfcFE3zkSmtad&R0maNRWdTH9|I{-leR0xwEr zXPA2iwe?AZDx0TpEwvbQSeEAHV2H*V6Y*L)3)ta zo+oQ-{;{wp+)00-_=my%82{;NuIGv}8>o0Wbr@2uQ>Vjn{)-bLdVDO5FojfAuBp%+ zB0zgJKdSTny?g~#7;+sbP^TW8WMG3Xnx?({S*V;qlv$!WJ+q9dvx^GWQG+4brXqEs z*%PWFee0s??%!|GbEsqdi@Su9KB^g=PUO;ljWwtcfgg(2BR2G>h#!rM&iAzxiI z@&mhFFO!cH+Db(SslSkJpGqB8ZG;@I>xrx=_vuJ}2b>J`RI|O#G`a-^y zYgDQck0wdux}MPO2{9u}B1fk$R?q&{^(F9EDs8AWE2+Iu!G^s`ed2gRCfC_W!ppFC zQO-nzjqGckeW=vGBHK1nd7*~V-AYx9hy4Cz$k##!k%};!3^Ar%f2W6(+Eu$tsk=}` z$sVi8df_x{!NeaCUUfFg1c3l@feqJpCHGVF2lki#WFh#`j%LSndBvLfo} zL4;8$UCIG<>aeccu};7(%()I1Z8r`Rg!!!@8{#kwm+3Guh)m~=ks}g zy$)v!3m0uHu53QG1$ljyIHxM;TS${~R@kpOFR_w;@V%2+q^j2JvJEk#o!3_hm77l6 zLZDBj)d?@LlCO_NmP&PW-sEeYyuM1fGbvOpMA|3qcfIu+5?%ode!HiM6^(k-^^REw zc`g;;m-hOqI*p!%*cFyR+)J!3LSCUmSys~$OB)sJlshdx&a*3{P2B4%!>?#r$d$iS z+^G{QIj`LQh|lI~VU42{D3qn@}|*1c)lEN9=7q+`}L-Oe+ota_`w zSGU{t(65lLyi{K040C--6&r?@&R*VSCGx%1gv;)~#FM6i*R~#cPv6HUXjh=oCfD0uL3@t-wbgc2FUo{%M-F8mD z$BS`s%)v!L6}f#);8R$cN3#L}(mwtC_D_5>9i*~tl-GZJ*2?;5D_Wm@|C#|;>T=F5 zaT~lKlU@bhI=EM28$ETC{;G3%$ZB>?uvCgwOB9>GAp*F6(`x%N#1DD6;*tG5LhGSjL0Bh>?q4DmR3jaNnWl_y2ZED0)P3ch_S7FJ1a0Y>`_bOn->UmHRknL+t5_-6u@$Eo3 zc?D8Ww+ug`7BuYKps(9za`kF_@33aV(`k12hd95kW#b;HDO$kzb|8$hy;8G*$?p1i zrS*f~@oMZp!;>xAdGuN)hyOnI%HhA=#?Mdt&fCS_cxAjO5T4MHqXAF9p&fL!*7Ewg zEq0S@aiUI@n}CbXF}uU>8yw|Fr6cp##Rh0D<3)i8Qa%+M5Y?`W6of8a^3H#K=kd31 zoSxpNEeah!HnfcNdYo^*ef;0A=e=G0Omt~sN^W|lQJz3#hj)n0h#PiZC+Oe3i?^r$ zWwqFE-JiWXGtt_ZkS(2>#*T@ZyR-Li*)3N8^zDoH`2VhZQb%6}?D!?k2}C2iMDCwq z*MCP($kWp{*f%uoe*Kf0?|2LDmN+ECj`LmU@S_DX-yznVh3We zPY8hB!I&Ip{1p&`%tFC&!9F2?7|cJHoRiYm#8QSJJi(g48jU__@5(w9JN zQqG7D4db8qN(q37Mr}sXQF$PRwgh4(cw9rkh@b8N5T1KUbW9p{(Uic4$SM&X9n~Jb zPY584@n^C#vg9N^34EC1QrYQIH^4k203o!?{q7*+8Gx-Ss+64{)mI#~)Chph>aACV z$0OqzfUVemM0kW$_x_qD0kF|fzw~S@WIO|~CF!}+Q^aup0%ZbVE#adX0?ww>kH8iQ zzf4#i80~(JLIJR9)M6C>hbPwufjE$UnQ&Q$wVqM|u)_bP_(0X))gyAu+4+3$+Wx{1m=6lo&AX&T3ND@}>-cBb1 z@xx`pfL5kr0dm!McaVZy9|Yo#%Y-XavF2$RKqmJL3CQ(9AQ7@N$d+ZEA1E3?o<1k( zw`^NBT?oYAi9@7I;19T|1=nCTJc|XUR6~=3jztlQTKNyyXhT30{2z&j^ph>5@c;7XWshrL#hYR zySck$-Mi!MS@a)}SR8eKf1%Jz{Q!E#)j^K814)!uK-RodXW~L3pj$7wI>_;MAgL6S(t9I<8^?+pA!&LY8S{=-6 z0Cc6c`%9AT|1y}~4kS@gC8@J^W&n6ceC*zG2dA4MSQAWd|hPNoJ0&^I)2C0<>+;Lz1mkl26kC zN?_*b2A;1dC_uZs%oSaa>7syAGLMiz>p90MDL|Y0ra1Pn9@9ku@pAlBw3)^8~+Kts!` zff{maU)dEHy5%*eC=v;&YZ)n;qf!6`%s?X{6C6HKvyo7odI@SzZOPpW|16 zIxrC{*b?jaEU^H!FRxy(yb5ysis@H?YA_Ki=n{*wSO90Qw0Hc9=~sZ74r1*lm4cqd zVlEcI@=9CBuQF*gKuuE87$Osl!P!TV0qQfzV20q4b%5hn0J`e|d;kCw>q$gGR0pv% zl2&zK(h5bZYF&~+s1STKofG9*AR|zfR7XcNp->ANb-bnw20mUw4q`@i4{)G zl$Xi_l4YE4;)IvWbOt~>@)_$Mo`s#O5v+6N)SklOLi^}M%*4eOj7|` zRDPWN;=DVci1C3Y@+Fc(r|Bs`quYd^kYLfAcdw@nfwx|5YbxW%BC>7zg-qum~|A_f^J zX(B+6iVDfMSTviTP@q6)3w+KwHibW z!k17Ka2Tf3PGtgO*n~h5!e(Pifb5`1&6qB=L`7pD7KUQ@2m~jB3Q`%UV;6L$sZ;;E z>a^6>LM6L*KkmKH^CQDgnSIYWbKY~$yUja=@Yuoj)DAIXGO8*nWg&>HtzOQVq&Kgg zmrCKs4vZRXpQMe;WFUw#FXv2t;62r?jRpTHlh`FPOj3=vaUklf#LA(K)qX%ug?~Dh zyeB41mgQFv2UcQfV}a&XG1V@Wc_0qfRhV_x#)8Q^nEb6ski*w9tJldp5EF|QhTFNCpUT(Iq-E=$f@Q_93S{4|cah ztj$^>4CbS^WuH7u6dl}~cE0m5<2m^S;?2T_JT;`UzA7YoSA*|6+j*J4PHS!7YUzXWA8jQ9+H5MT=-eKcaFxGC7OMoAjR%pvRA#kK+%xMkEg4wbN@MzQLiIKrM+VX|`O*y-N z^|*5yoSK<(2=G|Xc{(S^dDpR)`?5G?T3xk_ZF5G0v%=Fj!2dO~Mx+e3#%i~M6xCJa z)p;5R_$l6h4t^f%_cA)=;}vsPL7OpE<^VLYN-~di^@zMqIk-J)?n?U#(8P*VA1fof zQ(FCcSK3#ACRX$e*+EL_jCY)N2DPsMO{{3@Ok`h_>M6FvH~ZS0KJ6<&6D!L0{H1lb zj8E~rl)bpexzoM^%7&d-1+%LwX$dJsabRz1rxRBo3ueg^KrW_xov?7W^%{Do@I&qC z9nM<8SltffYRaOuf@lE^B(f(I0TgQNs@YI`LEBee9t85RrlLw9Eu_XT-`S@YAZX_& zK5KNk3fh8Rxk`Qj^0I7$SX%hYLfab%&Um|v!9v@#MQ#A{wQg>;a9U_h!#xKT2IOyl zcVDOTRA|+!*T@V&05;c(sD-ySfe+3bii zfn1C{IQzL1R1C}OE9C?rFiYo)t3_&L^>$>oD;JpT)Rop%ku07g9{_=R%G%N5O=P8# z_Z1C1nFBouuizAomvMmLEu1I17STt|w>+rBPuSgk;j*(*L{^Ie1u@&&(W2UwZolbe zXdYvGraisODJiD4i(~q#Yx=~ zksm06*&791MHY&yxLEL%s1Fo}VfT{yDlu_e$q}Q0_Pu{Q?N@KO9f*g`i^biN`c10E z!uMEwEjT>j*IrV!hTDPSve~`lcBVVJEhCMr7c(tZF_hel^@iJlVp}+GoA6t5yMEXF z;DBNza+??)To|)Nv<%qX4wS@}4FYgkXiK$N`5qOA$M+`g`AwIFXKii=N~E%WxgcCF z_k~xkweC}%gxkK>YgcyqEtiSqbJvOSK*=nv6Nk&JmGzQ3C6p6a+hLhtyFbvlohQ6@|zudC2(dsLp)Sj2f+D6&eUa_xYVs>}I|$&OFtk;c8$-1fPioU_5gl+($dgrB zf9yN;_6dbe>797}RNo&P{UXcwcF?zjfO|qFIsKmM$R1MTl*+N2EeW&iWq&)kL@Wo~ z6Ox0ryO%y4w3W2DD;NepZNA&)x94^cAUBokrwP&FXl4y{b@YrMR{9iS+NyoHSKBHa zrnwyi%9i&D!{q(mi=*#a=1`~w4DXKK>Ghsqcx(9s!>>NMG?5um9_3>sGjZvY(>wf{!e_<$DPlKJ z_NG@<3)msm*gM?bli9CUn&k3@@0(WXA-|uHs$RWH+y+9y%7&0nqYR|aw!C-J;;f&v z`{mZFe@=IrJPft@bHr>QG-huSwxiI`N;N0D`@OdFzxHK%+7sy^l~wp{nk8NXVN$t% zhR_`mJ1>87;aqmmfYx^o4rb4txqjIQdsJA>0EExX)m6fGr0g0>C))RR_ivA7$10m_ zPW9Rr8ZA}x7K+qB2+c8y70p8H^p)XD=d!Oy|Jj`v4rLykyEJ^|O{+qqIefKQlm;(1K%XgYngYq+oD+{Ak~P97+O=XiF%dh*756X!bm zhP#fQZnASdw!>F8Ujfmu=oulM=bvwAdZYKs^*e7}8%=)upgS|zf4-m>iu=#^4}RGF z;M?TrwYTnEzta18lgmH8Q@ce>2BKohthK^AkJ8vQ^wIJ3YpHJ%iRR{y+y9=N=;>+g z?!J}DWXAjZZ}0n;V?WeQ#~%LM?f(Ap@BZ7Z?(Wu}o{8kS_K%w{Bog1GUP~XpJk-?a zZ_A@>oa)&@AWAGA1xn6hQ6PF|RxB6ZfzmPC4n)(^8c(+YrBb(46b2${>taD3D23W( zA}|nPvo{I!K(X1|4n$q$db{0$qFV3^d)tBNTT}0YLZE1-Rjd+sfmrZCAy6dMD;J8n zKx`~oStalTg;rJL(?K9!=6InHD6sjP#abYCw*E}`2MTBL7I7AcC67P@g|fkB1|YVk z%(4~>D1fydbp~Rsa_UB@00`E`^&WKwlvoR-10Xmn>XlajHje@UvR4$~q3Ls#SU@1< z)pQXR;NL8F2l8fZJHU@ESy?ST0Lm)>B^FRF<<&f|;s7YIfB<=P5I~6qD6asDTw+y8 z7l88WAMD-fR@+z-0N}BNjdyuBwu~1r*e0wA1Wxn*?={K%=$<|&3lJ|_zV8(zRn@sw zstd4PjYx?FD6asNSinKbtMQG93Gik&4@xZHcjeVXL$m~VmyvOI;MdJTuo zr_G{>2(UG0m!G5-$h-FROf&@8s#13?y+EE_UtWlW09#k652P5#t4+5c3Igm#JeFo4 zkA`*e4`8Py)~j3t`SLoB#Xf)?yP4TN3OQ1VTsa7^51nRN(t&(9TAYY^0DCgGwE^;= zZS57nUfJ3JnP)Ep!2T8LLkS47YhW(}z+o(-V_68Y=-7{g00%T$xCk0DXX3{}fCDq{ z4jI#KRz)^|gDcfsp#zz*2~4&FBt+adj0IU3y=u7<2OvodV}a2t0Jg6B*p{Fm#iLhK zOGN>as8q8V3sP!e^a>!kmTrQE^r`f1y#h$K&eYllNR`vDBXR*Go=zd?4Fa%z%cvr6 zLGm4sd*T&9igdzL$qV!b0oblmttEkh-XH*5*06mPl4%m%h)@8jH4oNO86?e>ouU9~ z7xxXkLxQ+(5Fi_@#)8CXhbLkZKt_~qSFbV~9NO!uRuYc@vSeg$0~}U)))0vRvUiMC zYdOY(L$Q?sz%dr!@Ctypx^RpI`#-!o6MF!%uCXY~c(5<0UmRWm>CjELroB_zAVz7}0VHeiZst5y+UrQ73ux;g8 zEVcmT+*!9};vKf;xOHo;9f1FQpLoBL7GWE%n&#R8_}g+}$2?=(MQvP> zA>re#!LEJn0Q^Ab(qDz}A#1Hc0DkVXRw2Asd$ANd0QjXsFFKMj;jJe9dP&>>;P;GU z!5as!hQVCK0N|~v!BFyq-wa+&J7NU@@6%{r%b@TxpTdzS0l-JZPi=V=el*tpS$qKC z!wRwA3gO?%k+F6F{I#6J z)L7PIkyppVODh=wP-DS1tE;N79{@ELsICA|V}a@l05#TlBKwkUle=!ww+_I5UDTtp z986Xn`DYM-11ZG|cj=Hpr&0aF_YJ_|6yoqoJ|;`f7d^Y$0XV!yb08~|4cCj<7Y#sC zjGkA=k~8Ucym}t_mH|kXV$IMyX&!11tZD}!kxB-#Naxtq%uqW3iPo47UnOi(WE~p2 z0w4uC!QGLxO)46LcN&8Lq(>CaV*XfW{mEpAE8wDVp&U%Yaayd!U zj%ssXCjhB-GhJ1rbP{uPwVK}eDgnsGK~`wjJBgUOa&!eiri_BVJ)|7+hryPqD*&>n zu$&HEsKWsq4?-6>1CU|W+ZSW+?A7_pZPk|tK<4Qdvd6yQ(iaCnUKEzov2E|{)TGta z7X%=8O3P`>0ta?BbY)9B0C`ocFE-}h*=}*Q`BE?XwgAYvc`qC&ve=I6S)zE6zk2F(f1rHx0(*F0ALq7wZ+gDhy3kfSkJl*2Uh^FL#2k<_dNY7 z*uRYJVE}-=nD-v~r?~8f<7*@E`~O9-ry&Rc**0I^K1PGG%4ZLU zR*$#Kxi<~~@^qY4o2s*RGikN%hk-*Y0LZV-eGonj>~z@9=7qsS7~H!>5CHg}i%~BK z`vbolen{oIHJjFS0|9^^DV*E~&1iM*V#Bu;R_Cjz8Qh=vIS>GNgYOesi@p)9pA1=D zx1#S;RwXYA0Pud*W&LXyt=2Zef8W5q{#I9gt>09=7XZLE6dS#uIU8@9^#K8ZeVUKr+SkX$Lu=E{#8iBxy=grx z9>0F8s^*?90B~@{QCtrmzr5TH*X>D~4yx9xyO%GIK|LO60RjLCcGkJMuLsZJ)5CbR zIWH&Z_QT`y`DQhKcnY7tl~gyK3(pDwNU3?J@wrzEo*%=fm;QJ)xH>QIp{H0WpI;4D zDexn}_YWLTkiGP+sDy?X7x6J|1#GhsHCm**E16%`N=5El~@)6vn< z=70mF3zXqN8>j@RP#mZMsEuD<-k8}$&WuTzn@2=iMORXYb@cSlQ7{Td!9W23V)}xx T0#~DP00000NkvXXu0mjfG+~vo diff --git a/addons/phantom_camera/examples/textures/3D/target.png.import b/addons/phantom_camera/examples/textures/3D/target.png.import deleted file mode 100644 index 8df98fc..0000000 --- a/addons/phantom_camera/examples/textures/3D/target.png.import +++ /dev/null @@ -1,41 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c3mskbmvnpwux" -path.s3tc="res://.godot/imported/target.png-878c5e8d057c8a9a4c2322d4ab88e9ef.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} - -[deps] - -source_file="res://addons/phantom_camera/examples/textures/3D/target.png" -dest_files=["res://.godot/imported/target.png-878c5e8d057c8a9a4c2322d4ab88e9ef.s3tc.ctex"] - -[params] - -compress/mode=2 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/addons/phantom_camera/examples/ui/ui_inventory.tscn b/addons/phantom_camera/examples/ui/ui_inventory.tscn deleted file mode 100644 index cddd377..0000000 --- a/addons/phantom_camera/examples/ui/ui_inventory.tscn +++ /dev/null @@ -1,37 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://dg7rhrymsrrrm"] - -[ext_resource type="Texture2D" uid="uid://b7cs6me43ufh3" path="res://addons/phantom_camera/examples/textures/2D/inventory_container.png" id="1_pi2dp"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_0rdcn"] - -[node name="Control" type="Control"] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="TextureRect" type="TextureRect" parent="."] -layout_mode = 1 -anchors_preset = 4 -anchor_top = 0.5 -anchor_bottom = 0.5 -offset_left = 28.0 -offset_top = -255.0 -offset_right = 908.0 -offset_bottom = 183.0 -grow_vertical = 2 -texture = ExtResource("1_pi2dp") - -[node name="Label" type="Label" parent="TextureRect"] -layout_mode = 0 -offset_left = 345.0 -offset_top = 12.0 -offset_right = 535.0 -offset_bottom = 60.0 -theme_override_colors/font_color = Color(0.356863, 0.105882, 0.133333, 1) -theme_override_fonts/font = ExtResource("2_0rdcn") -theme_override_font_sizes/font_size = 32 -text = "Inventory" -horizontal_alignment = 1 -uppercase = true diff --git a/addons/phantom_camera/examples/ui/ui_sign.tscn b/addons/phantom_camera/examples/ui/ui_sign.tscn deleted file mode 100644 index 1b891ef..0000000 --- a/addons/phantom_camera/examples/ui/ui_sign.tscn +++ /dev/null @@ -1,83 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://iq5xd1ob1res"] - -[ext_resource type="Texture2D" uid="uid://bloouh2jtndx1" path="res://addons/phantom_camera/examples/textures/2D/sign_prompt.png" id="1_tftrk"] -[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="2_y5454"] - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_r4h3u"] -bg_color = Color(0.470588, 0.6, 0.45098, 1) -corner_radius_top_right = 47 -corner_radius_bottom_left = 40 - -[node name="Control" type="Control"] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 - -[node name="TextureRect" type="TextureRect" parent="."] -layout_mode = 1 -anchors_preset = 5 -anchor_left = 0.5 -anchor_right = 0.5 -offset_left = -273.568 -offset_top = 47.0 -offset_right = 273.568 -offset_bottom = 413.0 -grow_horizontal = 2 -texture = ExtResource("1_tftrk") -metadata/_edit_group_ = true - -[node name="Label" type="Label" parent="TextureRect"] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 25.0 -offset_top = 64.0 -offset_right = -25.0 -offset_bottom = -88.0 -grow_horizontal = 2 -grow_vertical = 2 -theme_override_colors/font_color = Color(0.207843, 0.0470588, 0.0666667, 1) -theme_override_fonts/font = ExtResource("2_y5454") -theme_override_font_sizes/font_size = 62 -text = "Stay Awhile -and read" -horizontal_alignment = 1 -vertical_alignment = 1 -uppercase = true - -[node name="Panel" type="Panel" parent="."] -visible = false -layout_mode = 1 -anchors_preset = 5 -anchor_left = 0.5 -anchor_right = 0.5 -offset_left = -240.0 -offset_right = 240.0 -offset_bottom = 200.0 -grow_horizontal = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_r4h3u") -metadata/_edit_use_anchors_ = true - -[node name="VBoxContainer" type="VBoxContainer" parent="Panel"] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -alignment = 1 - -[node name="Label2" type="Label" parent="Panel/VBoxContainer"] -layout_mode = 2 -text = "Example Textsdadassa -" -horizontal_alignment = 1 -vertical_alignment = 1 diff --git a/addons/reedscene/act/ActManagerInspector.gd b/addons/reedscene/act/ActManagerInspector.gd index 327e718..e821fbb 100644 --- a/addons/reedscene/act/ActManagerInspector.gd +++ b/addons/reedscene/act/ActManagerInspector.gd @@ -2,14 +2,26 @@ extends EditorInspectorPlugin const SLOT_SCENE:= preload("res://addons/reedscene/act/StateDrapSlot.tscn") +const QUICK_CONFIG_SCENE:= preload("res://addons/reedscene/act/StateQuickConfigPanel.tscn") func _can_handle(object) -> bool: return object is ActManager func _parse_begin(object) -> void: var root := VBoxContainer.new() - - var slot := SLOT_SCENE.instantiate() - root.add_child(slot) - + + var am = object as ActManager + if not am: return + var rs: ReedScene = am._get_owner_scene() + if not rs: return + var size: int = rs.get_prop_count() + + + var quick_config_panel := QUICK_CONFIG_SCENE.instantiate() + var info := { + "size": size + } + quick_config_panel.init(info) + + root.add_child(quick_config_panel) add_custom_control(root) diff --git a/addons/reedscene/act/StateDrapSlot.tscn b/addons/reedscene/act/StateDrapSlot.tscn index 773a46b..e01be3d 100644 --- a/addons/reedscene/act/StateDrapSlot.tscn +++ b/addons/reedscene/act/StateDrapSlot.tscn @@ -22,6 +22,7 @@ theme_override_constants/margin_bottom = 4 layout_mode = 2 [node name="Index" type="Label" parent="MarginContainer/HBC_Main"] +unique_name_in_owner = true custom_minimum_size = Vector2(24, 0) layout_mode = 2 text = "1" @@ -44,7 +45,6 @@ mouse_filter = 1 script = ExtResource("2_stte8") [node name="TextureRect" type="TextureRect" parent="MarginContainer/HBC_Main/VBoxContainer/HBC_Drop/DropArea"] -modulate = Color(0.7, 0.7, 0.7, 1) layout_mode = 2 mouse_filter = 2 texture = ExtResource("2_lwr2w") @@ -58,6 +58,7 @@ theme_override_constants/margin_right = 4 [node name="StateLabel" type="Label" parent="MarginContainer/HBC_Main/VBoxContainer/HBC_Drop/MarginContainer"] unique_name_in_owner = true +modulate = Color(0.74509805, 0.74509805, 0.74509805, 1) custom_minimum_size = Vector2(80, 0) layout_mode = 2 text = "Drag state node to icon." @@ -107,24 +108,9 @@ theme_override_constants/margin_bottom = 2 [node name="Context" type="RichTextLabel" parent="MarginContainer/HBC_Main/VBoxContainer/MarginContainer"] unique_name_in_owner = true +modulate = Color(0.74509805, 0.74509805, 0.74509805, 1) custom_minimum_size = Vector2(0, 32) layout_mode = 2 bbcode_enabled = true text = "Information will be show here." scroll_active = false - -[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/HBC_Main/VBoxContainer"] -layout_mode = 2 - -[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/HBC_Main/VBoxContainer/VBoxContainer2"] -layout_mode = 2 - -[node name="AddButton" type="Button" parent="MarginContainer/HBC_Main/VBoxContainer/VBoxContainer2/HBoxContainer"] -layout_mode = 2 -size_flags_horizontal = 3 -text = "+" - -[node name="DeleteButton" type="Button" parent="MarginContainer/HBC_Main/VBoxContainer/VBoxContainer2/HBoxContainer"] -layout_mode = 2 -size_flags_horizontal = 3 -text = "-" diff --git a/addons/reedscene/act/StateDropSlot.gd b/addons/reedscene/act/StateDropSlot.gd index 768015c..2279fc8 100644 --- a/addons/reedscene/act/StateDropSlot.gd +++ b/addons/reedscene/act/StateDropSlot.gd @@ -9,8 +9,11 @@ extends Control @onready var cb_use_trans: CheckBox = %CB_UseTrans +@onready var index: Label = %Index + var _cached_single_act: SingleAct = null var _cached_prop_id: int = -1 +var _cached_info: Dictionary const NORMAL_STATE_LABLE: String = "Drag state node to icon." const NORMAL_CONTEXT: String = "Information will be show here." @@ -27,6 +30,8 @@ func _ready() -> void: if drop_area: drop_area.node_path_dropped.connect(_on_node_path_dropped) +func init(index: int) -> void: + self.index.text = str(index) func _on_node_path_dropped(path: NodePath) -> void: var state := StateResolveUtils.get_state_node_from_path(path) @@ -40,37 +45,31 @@ func _on_node_path_dropped(path: NodePath) -> void: _clear_cached_act() _reset_to_default() return - + + ##缓存一遍有效的info + _cached_info = info + # 创建 / 更新 cached _cached_single_act = SingleAct.new() _cached_single_act.state_id = state.state_id - _cached_single_act.use_trans = false + _cached_single_act.use_trans = cb_use_trans.button_pressed _cached_single_act.context = {} _cached_prop_id = int(info.prop_id) - # 启用 CheckBox - cb_use_trans.disabled = false - cb_use_trans.button_pressed = _cached_single_act.use_trans + ## 启用 CheckBox + #cb_use_trans.disabled = false + #cb_use_trans.button_pressed = _cached_single_act.use_trans # 直接用 info + cached 刷 UI - _set_context(info) + _update_context(info) func _on_use_trans_toggled(pressed: bool) -> void: - if _cached_single_act == null: - cb_use_trans.button_pressed = false - return - - # ✅ 只改 cached - _cached_single_act.use_trans = pressed - - # 重新 resolve 一次 info(简单、直观) - var state := _resolve_state_from_cached() - if state == null: - return - - var info := StateResolveUtils.resolve_state_display_info(state) - _set_context(info) + # 如果存在就改,不存在無事發生 + if _cached_single_act: + _cached_single_act.use_trans = pressed + + _update_context() func _resolve_state_from_path(path: NodePath) -> ReedPropState: @@ -91,22 +90,15 @@ func _reset_to_default() ->void: context.text = NORMAL_CONTEXT context.modulate = COLOR_IDLE - - _reset_cb_use_trans() + ## 初始化use trans 的 check box func _reset_cb_use_trans() ->void: - cb_use_trans.disabled = true cb_use_trans.button_pressed = false if not cb_use_trans.toggled.is_connected(_on_use_trans_toggled): cb_use_trans.toggled.connect(_on_use_trans_toggled) -## 初始化启用use trans -func _enable_cb_use_trans() -> void: - cb_use_trans.disabled = false - cb_use_trans.button_pressed = _cached_single_act.use_trans - ## 创建一个CachedAct func _build_cached_act(state: ReedPropState, info: Dictionary) -> void: @@ -126,9 +118,14 @@ func _clear_cached_act() -> void: _cached_prop_id = -1 ## 设置文本 -func _set_context(info) ->void: - if _cached_single_act == null: - return +func _update_context(info:Dictionary = {}) ->void: + ## 如果没有传入有效的info且没有cached过act,则直接返回 + ## TODO:这里后续应该有一个报错的Message + if info == {} : + if _cached_info == {}: + return + else: + info = _cached_info context.clear() diff --git a/addons/reedscene/act/StateQuickConfigPanel.gd b/addons/reedscene/act/StateQuickConfigPanel.gd new file mode 100644 index 0000000..18bb440 --- /dev/null +++ b/addons/reedscene/act/StateQuickConfigPanel.gd @@ -0,0 +1,61 @@ +@tool +extends PanelContainer + +@onready var spawn_slot_root: VBoxContainer = %SpawnSlotRoot +@onready var add_button: Button = %AddButton +@onready var remove_button: Button = %RemoveButton + +var _inited: bool = false +var _max_length: int = -1 + +## 默认的Slot +const SLOT: PackedScene = preload("res://addons/reedscene/act/StateDrapSlot.tscn") + +func _ready() -> void: + if not Engine.is_editor_hint(): + return + + # 连接按钮 + add_button.pressed.connect(_on_add_pressed) + remove_button.pressed.connect(_on_remove_pressed) + + # 初始保证至少有一个 Slot + if spawn_slot_root.get_child_count() == 0: + _add_slot() + + _update_remove_button_state() + +func init(info:Dictionary) -> void: + _inited = true + if info.has("size"): + self._max_length = info.get("size") as int + +func _on_add_pressed() -> void: + _add_slot() + +func _on_remove_pressed() -> void: + _remove_slot() + +func _add_slot() -> void: + if spawn_slot_root.get_child_count() >= _max_length: + return + + var slot := SLOT.instantiate() + spawn_slot_root.add_child(slot) + slot.owner = get_tree().edited_scene_root # 编辑器可保存 + slot.init(spawn_slot_root.get_children().size()) + + _update_remove_button_state() + +func _remove_slot() -> void: + var count := spawn_slot_root.get_child_count() + if count <= 1: + return + + var last := spawn_slot_root.get_child(count - 1) + last.queue_free() + + _update_remove_button_state() + +func _update_remove_button_state() -> void: + remove_button.disabled = spawn_slot_root.get_child_count() <= 1 diff --git a/addons/reedscene/act/StateQuickConfigPanel.gd.uid b/addons/reedscene/act/StateQuickConfigPanel.gd.uid new file mode 100644 index 0000000..cd13fb8 --- /dev/null +++ b/addons/reedscene/act/StateQuickConfigPanel.gd.uid @@ -0,0 +1 @@ +uid://dynra0wgb72s2 diff --git a/addons/reedscene/act/StateQuickConfigPanel.tscn b/addons/reedscene/act/StateQuickConfigPanel.tscn new file mode 100644 index 0000000..0b516c2 --- /dev/null +++ b/addons/reedscene/act/StateQuickConfigPanel.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=2 format=3 uid="uid://bwq0mho8g44av"] + +[ext_resource type="Script" uid="uid://dynra0wgb72s2" path="res://addons/reedscene/act/StateQuickConfigPanel.gd" id="1_8gjqu"] + +[node name="StateQuickConfigPanel" type="PanelContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_8gjqu") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 4 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +layout_mode = 2 + +[node name="Header" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "State Quick Config Panel" + +[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBoxContainer"] +custom_minimum_size = Vector2(0, 300) +layout_mode = 2 +size_flags_vertical = 3 + +[node name="SpawnSlotRoot" type="VBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer/VBoxContainer"] +custom_minimum_size = Vector2(0, 32) +layout_mode = 2 +bbcode_enabled = true +text = "Context" +fit_content = true + +[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="AddButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(0, 24) +layout_mode = 2 +size_flags_horizontal = 3 +text = "Add" + +[node name="RemoveButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(24, 24) +layout_mode = 2 +size_flags_horizontal = 3 +text = "Remove" + +[node name="InsertButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(24, 24) +layout_mode = 2 +size_flags_horizontal = 3 +text = "Insert" diff --git a/addons/reedscene/act/StateResolveUtils.gd b/addons/reedscene/act/StateResolveUtils.gd index 7c3b61b..2f416c5 100644 --- a/addons/reedscene/act/StateResolveUtils.gd +++ b/addons/reedscene/act/StateResolveUtils.gd @@ -62,7 +62,7 @@ static func resolve_state_display_info(state: ReedPropState) -> Dictionary: # -------------------- # State 信息 # -------------------- - result.state_name = state.name + result.state_name = state.get_state_name() result.state_id = str(state.state_id) # -------------------- diff --git a/addons/reedscene/dock/SceneIDMainPanel.tscn b/addons/reedscene/dock/SceneIDMainPanel.tscn index 726c599..fc4963b 100644 --- a/addons/reedscene/dock/SceneIDMainPanel.tscn +++ b/addons/reedscene/dock/SceneIDMainPanel.tscn @@ -2,8 +2,7 @@ [ext_resource type="Script" uid="uid://bi8dmt4ypmbhq" path="res://addons/reedscene/dock/SceneIDMainPanel.gd" id="1_vunhl"] -[node name="Control" type="Control"] -layout_mode = 3 +[node name="Control" type="PanelContainer"] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -14,12 +13,7 @@ size_flags_vertical = 3 script = ExtResource("1_vunhl") [node name="MarginContainer" type="MarginContainer" parent="."] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 +layout_mode = 2 theme_override_constants/margin_left = 15 theme_override_constants/margin_top = 10 theme_override_constants/margin_right = 15 @@ -28,7 +22,10 @@ theme_override_constants/margin_bottom = 10 [node name="VBC_Main" type="VBoxContainer" parent="MarginContainer"] layout_mode = 2 -[node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer/VBC_Main"] +[node name="PanelContainer" type="PanelContainer" parent="MarginContainer/VBC_Main"] +layout_mode = 2 + +[node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer/VBC_Main/PanelContainer"] custom_minimum_size = Vector2(0, 50) layout_mode = 2 text = "ReedScene Manage Panel @@ -57,11 +54,15 @@ text = "Load Database" custom_minimum_size = Vector2(60, 0) layout_mode = 2 -[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBC_Main/VBoxContainer"] +[node name="PanelContainer" type="PanelContainer" parent="MarginContainer/VBC_Main/VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 -[node name="GC_Rows" type="GridContainer" parent="MarginContainer/VBC_Main/VBoxContainer/ScrollContainer"] +[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBC_Main/VBoxContainer/PanelContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="GC_Rows" type="GridContainer" parent="MarginContainer/VBC_Main/VBoxContainer/PanelContainer/ScrollContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 diff --git a/_props/door_manager/prop_states/close.gd b/addons/reedscene/plugin_config.json similarity index 100% rename from _props/door_manager/prop_states/close.gd rename to addons/reedscene/plugin_config.json diff --git a/addons/reedscene/prop/PropState.gd b/addons/reedscene/prop/PropState.gd index 4222fee..9eeaf38 100644 --- a/addons/reedscene/prop/PropState.gd +++ b/addons/reedscene/prop/PropState.gd @@ -18,6 +18,24 @@ var _owner var _owner_prop_comp ## 是否已经初始化 var _inited: bool = false +## State的真实name,默认会去掉ID +var _true_name: StringName = "" + +func _enter_tree() -> void: + _true_name = _get_true_name() + + if not self.renamed.is_connected(_on_renamed): + self.renamed.connect(_on_renamed) + +## 在命名修改的时候,会自动的更正缓存的TrueName +func _on_renamed() -> void: + _true_name = _get_true_name() + +func _get_true_name() -> String: + var s = get_parent() + if s and s.has_method(&"_strip_id_prefix"): + return s._strip_id_prefix(self.name) + return self.name ##初始化State func init(owner: Node, prop_comp: Node) -> bool: @@ -55,3 +73,7 @@ func on_enter(_from: ReedPropState, _ctx: Dictionary) -> void: ##State退出 func on_exit(_to: ReedPropState, _ctx: Dictionary) -> void: pass + +## 外部可以通过state的引用返回真实名 +func get_state_name() -> StringName: + return _true_name diff --git a/addons/reedscene/prop/StateManager.gd b/addons/reedscene/prop/StateManager.gd index a4934f4..ac9a4d9 100644 --- a/addons/reedscene/prop/StateManager.gd +++ b/addons/reedscene/prop/StateManager.gd @@ -11,15 +11,38 @@ const IS_PROP_STATES_ROOT := true @export var auto_refresh: bool = true +func _enter_tree() -> void: + if not Engine.is_editor_hint(): + return + + _connect_editor_signals() + _refresh_states() + func _ready() -> void: if not Engine.is_editor_hint(): return - child_entered_tree.connect(_on_child_entered_tree) - child_exiting_tree.connect(_on_child_exiting_tree) - child_order_changed.connect(_on_child_order_changing) +## 链接所有的功能信号 +func _connect_editor_signals() -> void: + if not child_entered_tree.is_connected(_on_child_entered_tree): + child_entered_tree.connect(_on_child_entered_tree) - _refresh_states() + if not child_exiting_tree.is_connected(_on_child_exiting_tree): + child_exiting_tree.connect(_on_child_exiting_tree) + + if not child_order_changed.is_connected(_on_child_order_changing): + child_order_changed.connect(_on_child_order_changing) + +## 断开所有的功能型号 +func _disconnect_editor_signals() -> void: + if child_entered_tree.is_connected(_on_child_entered_tree): + child_entered_tree.disconnect(_on_child_entered_tree) + + if child_exiting_tree.is_connected(_on_child_exiting_tree): + child_exiting_tree.disconnect(_on_child_exiting_tree) + + if child_order_changed.is_connected(_on_child_order_changing): + child_order_changed.disconnect(_on_child_order_changing) ## 如果子節點進入管理器 func _on_child_entered_tree(node: Node) -> void: diff --git a/addons/reedscene/reedscene.gd b/addons/reedscene/reedscene.gd index a3a55e9..468b316 100644 --- a/addons/reedscene/reedscene.gd +++ b/addons/reedscene/reedscene.gd @@ -3,9 +3,22 @@ extends EditorPlugin var inspector_plugins: Array[EditorInspectorPlugin] = [] -const AUTOLOAD_REED_SCENE_NAME: StringName = &"ReedSceneRegistry" +## Autoload的SceneRegistery的Name +const AUTOLOAD_REED_SCENE_NAME : StringName = &"ReedSceneRegistry" +## Autoload的SceneRegistery的PATH const AUTOLOAD_REED_SCENE_PATH := "res://addons/reedscene/scene/SceneRegistry.gd" +## Act的Inspector輔助面板 +const ACT_INSPECTOR_SCENE_PATH := "res://addons/reedscene/act/ActManagerInspector.gd" +## ID的Inspector輔助面板 +const ID_INSEPCTOR_SCENE_PATH := "res://addons/reedscene/scene/ReedSceneIDInspector.gd" + +## SceneID注冊查詢面板的位置 +const SCENE_ID_MAIN_PANEL_PATH := "res://addons/reedscene/dock/SceneIDMainPanel.tscn" + +## 配置Json的地址 +const CONFIG_JSON_PATH:= "res://addons/reedscene/plugin_config.json" + var main_screen: Control @@ -25,13 +38,11 @@ func _exit_tree() -> void: _unregister_inspectors() -# ====================================================== -# Inspector Plugins -# ====================================================== +## 注冊Inspector func _register_inspectors() -> void: # Inspector 1:ActManager var act_inspector := preload( - "res://addons/reedscene/act/ActManagerInspector.gd" + ACT_INSPECTOR_SCENE_PATH ).new() add_inspector_plugin(act_inspector) @@ -39,23 +50,20 @@ func _register_inspectors() -> void: # Inspector 2:ReedSceneID var scene_id_inspector := preload( - "res://addons/reedscene/scene/ReedSceneIDInspector.gd" + ID_INSEPCTOR_SCENE_PATH ).new() add_inspector_plugin(scene_id_inspector) inspector_plugins.append(scene_id_inspector) - +## 注銷Inspector func _unregister_inspectors() -> void: for plugin in inspector_plugins: remove_inspector_plugin(plugin) inspector_plugins.clear() -# ====================================================== -# Autoload -# ====================================================== - +## 注冊Autoload func _ensure_autoload() -> void: var key := "autoload/%s" % AUTOLOAD_REED_SCENE_NAME if not ProjectSettings.has_setting(key): @@ -64,26 +72,22 @@ func _ensure_autoload() -> void: AUTOLOAD_REED_SCENE_PATH ) - +## 注銷Autoload func _remove_autoload() -> void: var key := "autoload/%s" % AUTOLOAD_REED_SCENE_NAME if ProjectSettings.has_setting(key): remove_autoload_singleton(AUTOLOAD_REED_SCENE_NAME) - -# ====================================================== -# Main Screen -# ====================================================== - +## 加載插件編輯面板 func _load_mainscreen() -> void: main_screen = preload( - "res://addons/reedscene/dock/SceneIDMainPanel.tscn" + SCENE_ID_MAIN_PANEL_PATH ).instantiate() EditorInterface.get_editor_main_screen().add_child(main_screen) main_screen.visible = false - +## 注銷插件編輯面板 func _unload_mainscreen() -> void: if main_screen: main_screen.queue_free() @@ -117,3 +121,7 @@ func _get_plugin_icon() -> Texture2D: "Node", "EditorIcons" ) + +## 通過Json獲取到Plugin的基本配置 +func _get_config_data() -> Dictionary: + return {} diff --git a/addons/reedscene/scene/ReedScene.gd b/addons/reedscene/scene/ReedScene.gd index ed080ab..025990b 100644 --- a/addons/reedscene/scene/ReedScene.gd +++ b/addons/reedscene/scene/ReedScene.gd @@ -292,3 +292,7 @@ func get_scene_id() -> int: return get_scene_id_comp().scene_id return -1 + +## Prop的数量 +func get_prop_count() -> int: + return get_prop_map().values().size() diff --git a/addons/reedscene/scene/SceneIDDatabase.gd b/addons/reedscene/scene/SceneIDDatabase.gd index f85af1c..ff76fc8 100644 --- a/addons/reedscene/scene/SceneIDDatabase.gd +++ b/addons/reedscene/scene/SceneIDDatabase.gd @@ -1,4 +1,7 @@ -''' 用來儲存所有的SceneID的數據集 +''' + 用來儲存所有的SceneID的數據集,通常, + 1. 你不應該通過面板修改這個DataBase。 + 2. 每個項目通常只存在一個ID Database ''' @tool @@ -9,6 +12,7 @@ var next_id: int = 10000 @export var entries: Array[SceneIDEntry] = [] +## 請求一個ID func request_new_id(prefix: int) -> int: ##合理性檢測 if prefix < 0: return -1 @@ -29,6 +33,7 @@ func request_new_id(prefix: int) -> int: return candidate +## 注冊SceneID func register_scene_id( scene_path: String, uid: String, @@ -49,7 +54,7 @@ func register_scene_id( emit_changed() return true - +## 檢查SceneID 是否有效 func validate_scene_id( scene_id: int, scene_uid: String, @@ -82,5 +87,4 @@ func validate_scene_id( % [scene_id, matched_entry.scene_path, scene_path] ) - # ✅ 无论有没有 warning,都返回 result return result diff --git a/addons/reedscene/scene/scene.svg b/addons/reedscene/scene/icon/scene.svg similarity index 100% rename from addons/reedscene/scene/scene.svg rename to addons/reedscene/scene/icon/scene.svg diff --git a/addons/reedscene/scene/scene.svg.import b/addons/reedscene/scene/icon/scene.svg.import similarity index 78% rename from addons/reedscene/scene/scene.svg.import rename to addons/reedscene/scene/icon/scene.svg.import index 77405e7..c84cced 100644 --- a/addons/reedscene/scene/scene.svg.import +++ b/addons/reedscene/scene/icon/scene.svg.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://p0oxphym6oqg" -path="res://.godot/imported/scene.svg-8a320ae079b96f7816a22c69b2f9dc97.ctex" +path="res://.godot/imported/scene.svg-c24b5af00be10e23fb72b4a388d5aa0d.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/reedscene/scene/scene.svg" -dest_files=["res://.godot/imported/scene.svg-8a320ae079b96f7816a22c69b2f9dc97.ctex"] +source_file="res://addons/reedscene/scene/icon/scene.svg" +dest_files=["res://.godot/imported/scene.svg-c24b5af00be10e23fb72b4a388d5aa0d.ctex"] [params] diff --git a/addons/reedscene/view/GameView.gd b/addons/reedscene/view/GameView.gd deleted file mode 100644 index 61510e1..0000000 --- a/addons/reedscene/view/GameView.gd +++ /dev/null @@ -1 +0,0 @@ -extends Node diff --git a/addons/reedscene/view/GameView.gd.uid b/addons/reedscene/view/GameView.gd.uid deleted file mode 100644 index 43fb49e..0000000 --- a/addons/reedscene/view/GameView.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c0yvg1m6ot83j diff --git a/addons/reedscene/view/GameViewContainer.gd b/addons/reedscene/view/GameViewContainer.gd deleted file mode 100644 index aa16bd3..0000000 --- a/addons/reedscene/view/GameViewContainer.gd +++ /dev/null @@ -1 +0,0 @@ -class_name GameViewContainer extends SubViewportContainer diff --git a/addons/reedscene/view/GameViewContainer.gd.uid b/addons/reedscene/view/GameViewContainer.gd.uid deleted file mode 100644 index 50c8692..0000000 --- a/addons/reedscene/view/GameViewContainer.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://du4xgapk8c7vb