From 214e0aa5e06b589b25a93c2fa7f3c2f61f979f8d Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Sun, 4 May 2025 09:30:14 +0100 Subject: [PATCH] Many changes Handle it --- README.md | 1 - .../assets/PhantomCameraBtnPrimaryDefault.png | Bin 0 -> 10296 bytes .../PhantomCameraBtnPrimaryDefault.png.import | 34 + .../assets/PhantomCameraBtnPrimaryHover.png | Bin 0 -> 9931 bytes .../PhantomCameraBtnPrimaryHover.png.import | 34 + addons/phantom_camera/examples/credits.txt | 7 + .../2D-4.3/2d_example_scene.tscn | 248 ++ .../2d_follow_framed_example_scene.tscn | 251 ++ .../2D-4.3/2d_follow_group_example_scene.tscn | 261 ++ .../2D-4.3/2d_follow_path_example_scene.tscn | 269 ++ .../2D-4.3/2d_limit_example_scene.tscn | 319 +++ .../2D-4.3/2d_noise_example_scene.tscn | 289 +++ .../2D-4.3/2d_tweening_example_scene.tscn | 402 +++ .../example_scenes/2D/2d_example_scene.tscn | 245 ++ .../2D/2d_follow_framed_example_scene.tscn | 245 ++ .../2D/2d_follow_group_example_scene.tscn | 255 ++ .../2D/2d_follow_path_example_scene.tscn | 263 ++ .../2D/2d_limit_example_scene.tscn | 324 +++ .../2D/2d_tweening_example_scene.tscn | 397 +++ .../2D/sub_scenes/playable_character_2d.tscn | 120 + .../3D-4.4/3d_example_scene.tscn | 413 ++++ .../3d_follow_framed_example_scene.tscn | 158 ++ .../3D-4.4/3d_follow_glued_example_scene.tscn | 211 ++ .../3D-4.4/3d_follow_group_example_scene.tscn | 180 ++ .../3D-4.4/3d_follow_path_example_scene.tscn | 245 ++ .../3d_follow_simple_example_scene.tscn | 164 ++ ...third_person_attribtues_example_scene.tscn | 222 ++ .../3d_follow_third_person_example_scene.tscn | 190 ++ .../3D-4.4/3d_look_at_example_scene.tscn | 200 ++ .../3D-4.4/3d_noise_example_scene.tscn | 195 ++ .../3D-4.4/3d_tweening_example_scene.tscn | 293 +++ .../sub_scenes/playable_character_3d.tscn | 31 + .../playable_character_third_person_3d.tscn | 43 + .../example_scenes/3D/3d_example_scene.tscn | 412 ++++ .../3D/3d_follow_framed_example_scene.tscn | 156 ++ .../3D/3d_follow_glued_example_scene.tscn | 208 ++ .../3D/3d_follow_group_example_scene.tscn | 180 ++ .../3D/3d_follow_path_example_scene.tscn | 244 ++ .../3D/3d_follow_simple_example_scene.tscn | 163 ++ ...third_person_attribtues_example_scene.tscn | 219 ++ .../3d_follow_third_person_example_scene.tscn | 188 ++ .../3D/3d_look_at_example_scene.tscn | 198 ++ .../3D/3d_noise_example_scene.tscn | 210 ++ .../3D/3d_tweening_example_scene.tscn | 291 +++ .../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 | 36 + .../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 | 179 ++ .../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 | 17 + .../examples/scripts/3D/path_follow.gd.uid | 1 + .../examples/scripts/3D/player_controller.gd | 103 + .../scripts/3D/player_controller.gd.uid | 1 + .../scripts/3D/player_controller_4.4.gd | 84 + .../scripts/3D/player_controller_4.4.gd.uid | 1 + .../3D/player_controller_first_person.gd | 54 + .../3D/player_controller_first_person.gd.uid | 1 + .../3D/player_controller_first_person_4.4.gd | 54 + .../player_controller_first_person_4.4.gd.uid | 1 + .../3D/player_controller_third_person.gd | 87 + .../3D/player_controller_third_person.gd.uid | 1 + .../3D/player_controller_third_person_4.4.gd | 86 + .../player_controller_third_person_4.4.gd.uid | 1 + .../textures/2D/inventory_container.png | Bin 0 -> 68739 bytes .../2D/inventory_container.png.import | 34 + .../textures/2D/level_spritesheet.png | Bin 0 -> 10314 bytes .../textures/2D/level_spritesheet.png.import | 34 + .../textures/2D/phantom_camera_2d_sprite.png | Bin 0 -> 1584 bytes .../2D/phantom_camera_2d_sprite.png.import | 34 + .../examples/textures/2D/player_sprite.svg | 4 + .../textures/2D/player_sprite.svg.import | 37 + .../examples/textures/2D/sign_prompt.png | Bin 0 -> 175934 bytes .../textures/2D/sign_prompt.png.import | 8 +- .../textures/3D/checker_pattern_dark.png | Bin 0 -> 2861 bytes .../3D/checker_pattern_dark.png.import | 35 + .../examples/textures/3D/target.png | Bin 0 -> 96068 bytes .../examples/textures/3D/target.png.import | 35 + .../examples/ui/ui_inventory.tscn | 37 + .../phantom_camera/examples/ui/ui_sign.tscn | 83 + addons/phantom_camera/fonts/Nunito-Black.ttf | Bin 0 -> 131568 bytes .../fonts/Nunito-Black.ttf.import | 35 + .../phantom_camera/fonts/Nunito-Regular.ttf | Bin 0 -> 131736 bytes .../fonts/Nunito-Regular.ttf.import | 35 + .../icons/misc/PriorityOverride.svg | 14 + .../icons/misc/PriorityOverride.svg.import | 37 + .../icons/phantom_camera_2d.svg | 1 + .../icons/phantom_camera_2d.svg.import | 37 + .../icons/phantom_camera_3d.svg | 1 + .../icons/phantom_camera_3d.svg.import | 37 + .../phantom_camera_camera_3d_resource.svg | 3 + ...antom_camera_camera_3d_resource.svg.import | 37 + .../icons/phantom_camera_gizmo.svg | 1 + .../icons/phantom_camera_gizmo.svg.import | 38 + .../icons/phantom_camera_glow_logo.png | Bin 0 -> 25499 bytes .../icons/phantom_camera_glow_logo.png.import | 34 + .../icons/phantom_camera_host.svg | 1 + .../icons/phantom_camera_host.svg.import | 38 + .../icons/phantom_camera_logo.png | Bin 0 -> 70905 bytes .../icons/phantom_camera_logo.png.import | 8 +- .../icons/phantom_camera_noise_emitter_2d.svg | 4 + ...phantom_camera_noise_emitter_2d.svg.import | 37 + .../icons/phantom_camera_noise_emitter_3d.svg | 4 + ...phantom_camera_noise_emitter_3d.svg.import | 38 + .../phantom_camera_noise_emitter_gizmo.svg | 4 + ...ntom_camera_noise_emitter_gizmo.svg.import | 38 + .../icons/phantom_camera_noise_resource.svg | 5 + .../phantom_camera_noise_resource.svg.import | 37 + .../icons/phantom_camera_tween.svg | 1 + .../icons/phantom_camera_tween.svg.import | 38 + .../phantom_camera_updater_panel_icon.svg | 3 + ...antom_camera_updater_panel_icon.svg.import | 37 + .../icons/viewfinder/Camera2DIcon.svg | 3 + .../icons/viewfinder/Camera2DIcon.svg.import | 37 + .../icons/viewfinder/Camera3DIcon.svg | 3 + .../icons/viewfinder/Camera3DIcon.svg.import | 37 + .../icons/viewfinder/SceneTypesIcon.svg | 4 + .../viewfinder/SceneTypesIcon.svg.import | 37 + .../icons/viewfinder/Select.svg | 3 + .../icons/viewfinder/Select.svg.import | 37 + addons/phantom_camera/icons/warning.svg | 4 + .../phantom_camera/icons/warning.svg.import | 37 + .../phantom_camera_inspector_plugin.gd | 46 + .../phantom_camera_inspector_plugin.gd.uid | 1 + addons/phantom_camera/panel/editor.tscn | 23 + .../panel/updater/download_update_panel.tscn | 253 ++ .../panel/updater/update_button.tscn | 101 + .../panel/viewfinder/deadzone_style_box.tres | 14 + .../panel/viewfinder/host_list/host_list.tscn | 87 + .../viewfinder/host_list/host_list_item.tscn | 68 + .../host_list/host_list_item_group.tres | 3 + .../panel/viewfinder/viewfinder_panel.tscn | 563 +++++ addons/phantom_camera/plugin.cfg | 7 + addons/phantom_camera/plugin.gd | 181 ++ addons/phantom_camera/plugin.gd.uid | 1 + .../scripts/gizmos/custom_gizmo.gd | 91 + .../scripts/gizmos/custom_gizmo.gd.uid | 1 + .../gizmos/phantom_camera_gizmo_plugin_3d.gd | 12 + .../phantom_camera_gizmo_plugin_3d.gd.uid | 1 + ...om_camera_noise_emitter_gizmo_plugin_3d.gd | 29 + ...amera_noise_emitter_gizmo_plugin_3d.gd.uid | 1 + .../managers/phantom_camera_manager.gd | 150 ++ .../managers/phantom_camera_manager.gd.uid | 1 + addons/phantom_camera/scripts/panel/editor.gd | 23 + .../scripts/panel/editor.gd.uid | 1 + .../panel/updater/download_update_panel.gd | 162 ++ .../updater/download_update_panel.gd.uid | 1 + .../scripts/panel/updater/update_button.gd | 177 ++ .../panel/updater/update_button.gd.uid | 1 + .../panel/updater/updater_constants.gd | 8 + .../panel/updater/updater_constants.gd.uid | 1 + .../scripts/panel/viewfinder/host_list.gd | 112 + .../scripts/panel/viewfinder/host_list.gd.uid | 1 + .../panel/viewfinder/host_list_item.gd | 58 + .../panel/viewfinder/host_list_item.gd.uid | 1 + .../scripts/panel/viewfinder/viewfinder.gd | 605 +++++ .../panel/viewfinder/viewfinder.gd.uid | 1 + .../phantom_camera/phantom_camera_2d.gd | 1607 ++++++++++++ .../phantom_camera/phantom_camera_2d.gd.uid | 1 + .../phantom_camera/phantom_camera_3d.gd | 2195 +++++++++++++++++ .../phantom_camera/phantom_camera_3d.gd.uid | 1 + .../phantom_camera_constants.gd | 29 + .../phantom_camera_constants.gd.uid | 1 + .../phantom_camera_noise_emitter_2d.gd | 264 ++ .../phantom_camera_noise_emitter_2d.gd.uid | 1 + .../phantom_camera_noise_emitter_3d.gd | 265 ++ .../phantom_camera_noise_emitter_3d.gd.uid | 1 + .../phantom_camera_host.gd | 1428 +++++++++++ .../phantom_camera_host.gd.uid | 1 + .../scripts/resources/camera_3d_resource.gd | 110 + .../resources/camera_3d_resource.gd.uid | 1 + .../resources/phantom_camera_noise_2d.gd | 228 ++ .../resources/phantom_camera_noise_2d.gd.uid | 1 + .../resources/phantom_camera_noise_3d.gd | 301 +++ .../resources/phantom_camera_noise_3d.gd.uid | 1 + .../scripts/resources/tween_resource.gd | 41 + .../scripts/resources/tween_resource.gd.uid | 1 + .../phantom_camera/themes/button_focus.tres | 17 + .../phantom_camera/themes/button_hover.tres | 13 + .../phantom_camera/themes/button_normal.tres | 17 + addons/phantom_camera/themes/theme.tres | 102 + assets/sprites/characters/README.txt | 18 - .../characters/pink/Double_Jump_Dust_5.png | Bin 0 -> 1094 bytes .../pink/Double_Jump_Dust_5.png.import | 34 + .../sprites/characters/pink/Pink_Monster.png | Bin 0 -> 1121 bytes .../pink/Pink_Monster.png.import} | 8 +- .../pink/Pink_Monster_Attack1_4.png | Bin 0 -> 1392 bytes .../pink/Pink_Monster_Attack1_4.png.import | 34 + .../pink/Pink_Monster_Attack2_6.png | Bin 0 -> 1509 bytes .../pink/Pink_Monster_Attack2_6.png.import | 34 + .../characters/pink/Pink_Monster_Climb_4.png | Bin 0 -> 1307 bytes .../pink/Pink_Monster_Climb_4.png.import | 34 + .../characters/pink/Pink_Monster_Death_8.png | Bin 0 -> 1542 bytes .../pink/Pink_Monster_Death_8.png.import | 34 + .../characters/pink/Pink_Monster_Hurt_4.png | Bin 0 -> 1360 bytes .../pink/Pink_Monster_Hurt_4.png.import | 34 + .../characters/pink/Pink_Monster_Idle_4.png | Bin 0 -> 1323 bytes .../pink/Pink_Monster_Idle_4.png.import | 34 + .../characters/pink/Pink_Monster_Jump_8.png | Bin 0 -> 1658 bytes .../pink/Pink_Monster_Jump_8.png.import | 34 + .../characters/pink/Pink_Monster_Push_6.png | Bin 0 -> 1422 bytes .../pink/Pink_Monster_Push_6.png.import | 34 + .../characters/pink/Pink_Monster_Run_6.png | Bin 0 -> 1467 bytes .../pink/Pink_Monster_Run_6.png.import | 34 + .../characters/pink/Pink_Monster_Throw_4.png | Bin 0 -> 1439 bytes .../pink/Pink_Monster_Throw_4.png.import | 34 + .../pink/Pink_Monster_Walk+Attack_6.png | Bin 0 -> 1521 bytes .../Pink_Monster_Walk+Attack_6.png.import | 34 + .../characters/pink/Pink_Monster_Walk_6.png | Bin 0 -> 1426 bytes .../pink/Pink_Monster_Walk_6.png.import | 34 + assets/sprites/characters/pink/Rock1.png | Bin 0 -> 1003 bytes .../pink/Rock1.png.import} | 8 +- assets/sprites/characters/pink/Rock2.png | Bin 0 -> 1039 bytes .../pink/Rock2.png.import} | 8 +- .../characters/pink/Walk_Run_Push_Dust_6.png | Bin 0 -> 1152 bytes .../pink/Walk_Run_Push_Dust_6.png.import | 34 + assets/sprites/characters/player.png | Bin 12465 -> 0 bytes assets/sprites/characters/skeleton.png | Bin 20099 -> 0 bytes .../sprites/characters/skeleton_swordless.png | Bin 18162 -> 0 bytes assets/sprites/characters/slime.png | Bin 10007 -> 0 bytes assets/sprites/objects/chest_01.png | Bin 574 -> 0 bytes assets/sprites/objects/chest_02.png | Bin 567 -> 0 bytes assets/sprites/objects/chest_02.png.import | 34 - assets/sprites/objects/objects.png | Bin 13277 -> 0 bytes .../objects/rock_in_water_01-sheet.png | Bin 509 -> 0 bytes .../objects/rock_in_water_01-sheet.png.import | 34 - assets/sprites/objects/rock_in_water_01.png | Bin 352 -> 0 bytes .../objects/rock_in_water_01.png.import | 34 - assets/sprites/objects/rock_in_water_02.png | Bin 360 -> 0 bytes .../objects/rock_in_water_02.png.import | 34 - assets/sprites/objects/rock_in_water_03.png | Bin 356 -> 0 bytes .../objects/rock_in_water_03.png.import | 34 - assets/sprites/objects/rock_in_water_04.png | Bin 351 -> 0 bytes .../objects/rock_in_water_04.png.import | 34 - assets/sprites/objects/rock_in_water_05.png | Bin 358 -> 0 bytes .../objects/rock_in_water_05.png.import | 34 - assets/sprites/objects/rock_in_water_06.png | Bin 360 -> 0 bytes .../objects/rock_in_water_06.png.import | 34 - .../tilesets/Sprites/foreground_trees.png | Bin 0 -> 77682 bytes .../Sprites/foreground_trees.png.import} | 8 +- .../tilesets/Sprites/hexedforest_props.png | Bin 0 -> 176787 bytes .../Sprites/hexedforest_props.png.import} | 8 +- .../Sprites/hexedforest_props_noshadow.png | Bin 0 -> 173429 bytes .../hexedforest_props_noshadow.png.import | 34 + .../tilesets/Sprites/hexedforest_tileset.png | Bin 0 -> 153643 bytes .../Sprites/hexedforest_tileset.png.import | 34 + assets/sprites/tilesets/decor_16x16.png | Bin 1970 -> 0 bytes .../sprites/tilesets/decor_16x16.png.import | 34 - assets/sprites/tilesets/decor_8x8.png | Bin 649 -> 0 bytes assets/sprites/tilesets/decor_8x8.png.import | 34 - assets/sprites/tilesets/fences.png | Bin 776 -> 0 bytes assets/sprites/tilesets/floors/carpet.png | Bin 2267 -> 0 bytes .../sprites/tilesets/floors/carpet.png.import | 34 - assets/sprites/tilesets/floors/flooring.png | Bin 619 -> 0 bytes .../tilesets/floors/flooring.png.import | 34 - assets/sprites/tilesets/floors/wooden.png | Bin 179 -> 0 bytes .../sprites/tilesets/floors/wooden.png.import | 34 - assets/sprites/tilesets/forest.tres | 1141 +++++++++ assets/sprites/tilesets/grass.png | Bin 95 -> 0 bytes assets/sprites/tilesets/grass.png.import | 34 - assets/sprites/tilesets/grass_scatter.png | Bin 1958 -> 0 bytes .../sprites/tilesets/grass_scatter.png.import | 34 - assets/sprites/tilesets/plains.png | Bin 5787 -> 0 bytes assets/sprites/tilesets/plains.png.import | 34 - assets/sprites/tilesets/walls/walls.png | Bin 2201 -> 0 bytes .../sprites/tilesets/walls/walls.png.import | 34 - assets/sprites/tilesets/walls/wooden_door.png | Bin 327 -> 0 bytes .../tilesets/walls/wooden_door.png.import | 34 - .../sprites/tilesets/walls/wooden_door_b.png | Bin 283 -> 0 bytes assets/sprites/tilesets/water-sheet.png | Bin 3019 -> 0 bytes .../sprites/tilesets/water-sheet.png.import | 34 - assets/sprites/tilesets/water1.png | Bin 1397 -> 0 bytes assets/sprites/tilesets/water1.png.import | 34 - assets/sprites/tilesets/water2.png | Bin 1410 -> 0 bytes assets/sprites/tilesets/water2.png.import | 34 - assets/sprites/tilesets/water3.png | Bin 1425 -> 0 bytes assets/sprites/tilesets/water3.png.import | 34 - assets/sprites/tilesets/water4.png | Bin 1427 -> 0 bytes assets/sprites/tilesets/water4.png.import | 34 - assets/sprites/tilesets/water5.png | Bin 1410 -> 0 bytes assets/sprites/tilesets/water5.png.import | 34 - assets/sprites/tilesets/water6.png | Bin 1430 -> 0 bytes assets/sprites/tilesets/water6.png.import | 34 - assets/sprites/tilesets/water_decorations.png | Bin 1357 -> 0 bytes .../tilesets/water_decorations.png.import | 34 - assets/sprites/tilesets/water_lillies.png | Bin 739 -> 0 bytes .../sprites/tilesets/water_lillies.png.import | 34 - assets/tileset/basic.tres | 926 ------- assets/ui/items/RA_Item_Icons.png | Bin 0 -> 75971 bytes .../items/RA_Item_Icons.png.import} | 8 +- assets/ui/items/RA_Item_Icons_Background.png | Bin 0 -> 81062 bytes .../items/RA_Item_Icons_Background.png.import | 34 + components/FreeCameraComponent.tscn | 13 + components/scripts/free_camera_component.gd | 17 + .../scripts/free_camera_component.gd.uid | 1 + .../free_camera_game_camera_component.gd | 118 + .../free_camera_game_camera_component.gd.uid | 1 + map/Map.tscn | 19 + map/map.gd | 105 + map/map.gd.uid | 1 + mapgen/layout/finish/001.tscn | 17 + mapgen/layout/link/001.tscn | 21 + mapgen/layout/misc/001.tscn | 17 + mapgen/layout/misc/002.tscn | 17 + mapgen/layout/path/001.tscn | 17 + mapgen/layout/path/002.tscn | 16 + mapgen/layout/path/003.tscn | 11 + mapgen/layout/start/001.tscn | 17 + mapgen/layout/template.tscn | 17 + player/abilities/ability.gd | 63 + player/abilities/ability.gd.uid | 1 + player/abilities/ice_field.gd | 23 + player/abilities/ice_field.gd.uid | 1 + player/abilities/scenes/ice_field.tscn | 8 + player/modifiers/fire_rate_additive.gd | 13 + player/modifiers/fire_rate_additive.gd.uid | 1 + player/modifiers/fire_rate_multiplicative.gd | 13 + .../modifiers/fire_rate_multiplicative.gd.uid | 1 + player/modifiers/modifier.gd | 31 + player/modifiers/modifier.gd.uid | 1 + player/modifiers/piercing.gd | 18 + player/modifiers/piercing.gd.uid | 1 + player/modifiers/projectile_size_additive.gd | 25 + .../modifiers/projectile_size_additive.gd.uid | 1 + .../projectile_size_multiplicative.gd | 14 + .../projectile_size_multiplicative.gd.uid | 1 + player/player.tscn | 558 +++++ player/scripts/modifier_management.gd | 84 + player/scripts/modifier_management.gd.uid | 1 + player/scripts/movement.gd.uid | 1 + player/scripts/player.gd | 47 + player/scripts/player.gd.uid | 1 + player/scripts/player_movement.gd | 48 + player/scripts/player_movement.gd.uid | 1 + player/weapons/ranged_weapon.gd | 85 + player/weapons/ranged_weapon.gd.uid | 1 + playground/level.gd | 38 - playground/level.gd.uid | 1 - playground/level.tscn | 18 - project.godot | 43 +- utility/CoordUtility.gd | 24 +- utility/Globals.gd | 14 + utility/Globals.gd.uid | 1 + utility/MapBuilder.gd | 86 + utility/MapBuilder.gd.uid | 1 + utility/MapGenerator.gd | 274 +- utility/RngUtility.gd | 59 + utility/RngUtility.gd.uid | 1 + utility/SceneSelector.gd | 69 + utility/SceneSelector.gd.uid | 1 + 366 files changed, 24353 insertions(+), 2096 deletions(-) delete mode 100644 README.md create mode 100644 addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png create mode 100644 addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png.import create mode 100644 addons/phantom_camera/assets/PhantomCameraBtnPrimaryHover.png create mode 100644 addons/phantom_camera/assets/PhantomCameraBtnPrimaryHover.png.import create mode 100644 addons/phantom_camera/examples/credits.txt create mode 100644 addons/phantom_camera/examples/example_scenes/2D-4.3/2d_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D-4.3/2d_follow_framed_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D-4.3/2d_follow_group_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D-4.3/2d_follow_path_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D-4.3/2d_limit_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D-4.3/2d_noise_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D-4.3/2d_tweening_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_follow_framed_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_follow_group_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_follow_path_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_limit_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D/2d_tweening_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/2D/sub_scenes/playable_character_2d.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_follow_framed_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_follow_glued_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_follow_group_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_follow_path_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_follow_simple_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_follow_third_person_attribtues_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_follow_third_person_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_look_at_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_noise_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/3d_tweening_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/sub_scenes/playable_character_3d.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D-4.4/sub_scenes/playable_character_third_person_3d.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_framed_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_glued_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_group_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_path_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_simple_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_attribtues_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_follow_third_person_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_look_at_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_noise_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/3d_tweening_example_scene.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_3d.tscn create mode 100644 addons/phantom_camera/examples/example_scenes/3D/sub_scenes/playable_character_third_person_3d.tscn create mode 100644 addons/phantom_camera/examples/models/3d_cube_dark.tscn create mode 100644 addons/phantom_camera/examples/resources/tween/fixed_camera_tween.tres create mode 100644 addons/phantom_camera/examples/resources/tween/inventory_phantom_camera_2d_tween.tres create mode 100644 addons/phantom_camera/examples/resources/tween/item_focus_phantom_camera_2d_tween.tres create mode 100644 addons/phantom_camera/examples/resources/tween/player_phantom_camera_2d_tween.tres create mode 100644 addons/phantom_camera/examples/resources/tween/player_phantom_camera_3d_tween.tres create mode 100644 addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd create mode 100644 addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd create mode 100644 addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd create mode 100644 addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd create mode 100644 addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd create mode 100644 addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/npc.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/npc.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/path_follow.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/path_follow.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_4.4.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_4.4.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_first_person_4.4.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_first_person_4.4.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd.uid create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_third_person_4.4.gd create mode 100644 addons/phantom_camera/examples/scripts/3D/player_controller_third_person_4.4.gd.uid create mode 100644 addons/phantom_camera/examples/textures/2D/inventory_container.png create mode 100644 addons/phantom_camera/examples/textures/2D/inventory_container.png.import create mode 100644 addons/phantom_camera/examples/textures/2D/level_spritesheet.png create mode 100644 addons/phantom_camera/examples/textures/2D/level_spritesheet.png.import create mode 100644 addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png create mode 100644 addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png.import create mode 100644 addons/phantom_camera/examples/textures/2D/player_sprite.svg create mode 100644 addons/phantom_camera/examples/textures/2D/player_sprite.svg.import create mode 100644 addons/phantom_camera/examples/textures/2D/sign_prompt.png rename assets/sprites/objects/chest_01.png.import => addons/phantom_camera/examples/textures/2D/sign_prompt.png.import (65%) create mode 100644 addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png create mode 100644 addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png.import create mode 100644 addons/phantom_camera/examples/textures/3D/target.png create mode 100644 addons/phantom_camera/examples/textures/3D/target.png.import create mode 100644 addons/phantom_camera/examples/ui/ui_inventory.tscn create mode 100644 addons/phantom_camera/examples/ui/ui_sign.tscn create mode 100644 addons/phantom_camera/fonts/Nunito-Black.ttf create mode 100644 addons/phantom_camera/fonts/Nunito-Black.ttf.import create mode 100644 addons/phantom_camera/fonts/Nunito-Regular.ttf create mode 100644 addons/phantom_camera/fonts/Nunito-Regular.ttf.import create mode 100644 addons/phantom_camera/icons/misc/PriorityOverride.svg create mode 100644 addons/phantom_camera/icons/misc/PriorityOverride.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_2d.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_2d.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_3d.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_3d.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_gizmo.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_gizmo.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_glow_logo.png create mode 100644 addons/phantom_camera/icons/phantom_camera_glow_logo.png.import create mode 100644 addons/phantom_camera/icons/phantom_camera_host.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_host.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_logo.png rename assets/sprites/characters/player.png.import => addons/phantom_camera/icons/phantom_camera_logo.png.import (64%) create mode 100644 addons/phantom_camera/icons/phantom_camera_noise_emitter_2d.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_noise_emitter_2d.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_noise_resource.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_noise_resource.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_tween.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_tween.svg.import create mode 100644 addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg create mode 100644 addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg.import create mode 100644 addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg create mode 100644 addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg.import create mode 100644 addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg create mode 100644 addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg.import create mode 100644 addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg create mode 100644 addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg.import create mode 100644 addons/phantom_camera/icons/viewfinder/Select.svg create mode 100644 addons/phantom_camera/icons/viewfinder/Select.svg.import create mode 100644 addons/phantom_camera/icons/warning.svg create mode 100644 addons/phantom_camera/icons/warning.svg.import create mode 100644 addons/phantom_camera/inspector/phantom_camera_inspector_plugin.gd create mode 100644 addons/phantom_camera/inspector/phantom_camera_inspector_plugin.gd.uid create mode 100644 addons/phantom_camera/panel/editor.tscn create mode 100644 addons/phantom_camera/panel/updater/download_update_panel.tscn create mode 100644 addons/phantom_camera/panel/updater/update_button.tscn create mode 100644 addons/phantom_camera/panel/viewfinder/deadzone_style_box.tres create mode 100644 addons/phantom_camera/panel/viewfinder/host_list/host_list.tscn create mode 100644 addons/phantom_camera/panel/viewfinder/host_list/host_list_item.tscn create mode 100644 addons/phantom_camera/panel/viewfinder/host_list/host_list_item_group.tres create mode 100644 addons/phantom_camera/panel/viewfinder/viewfinder_panel.tscn create mode 100644 addons/phantom_camera/plugin.cfg create mode 100644 addons/phantom_camera/plugin.gd create mode 100644 addons/phantom_camera/plugin.gd.uid create mode 100644 addons/phantom_camera/scripts/gizmos/custom_gizmo.gd create mode 100644 addons/phantom_camera/scripts/gizmos/custom_gizmo.gd.uid create mode 100644 addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd create mode 100644 addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd.uid create mode 100644 addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd create mode 100644 addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd.uid create mode 100644 addons/phantom_camera/scripts/managers/phantom_camera_manager.gd create mode 100644 addons/phantom_camera/scripts/managers/phantom_camera_manager.gd.uid create mode 100644 addons/phantom_camera/scripts/panel/editor.gd create mode 100644 addons/phantom_camera/scripts/panel/editor.gd.uid create mode 100644 addons/phantom_camera/scripts/panel/updater/download_update_panel.gd create mode 100644 addons/phantom_camera/scripts/panel/updater/download_update_panel.gd.uid create mode 100644 addons/phantom_camera/scripts/panel/updater/update_button.gd create mode 100644 addons/phantom_camera/scripts/panel/updater/update_button.gd.uid create mode 100644 addons/phantom_camera/scripts/panel/updater/updater_constants.gd create mode 100644 addons/phantom_camera/scripts/panel/updater/updater_constants.gd.uid create mode 100644 addons/phantom_camera/scripts/panel/viewfinder/host_list.gd create mode 100644 addons/phantom_camera/scripts/panel/viewfinder/host_list.gd.uid create mode 100644 addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd create mode 100644 addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd.uid create mode 100644 addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd create mode 100644 addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd.uid create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd.uid create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd.uid create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd.uid create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd.uid create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd create mode 100644 addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd.uid create mode 100644 addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd create mode 100644 addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd.uid create mode 100644 addons/phantom_camera/scripts/resources/camera_3d_resource.gd create mode 100644 addons/phantom_camera/scripts/resources/camera_3d_resource.gd.uid create mode 100644 addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd create mode 100644 addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd.uid create mode 100644 addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd create mode 100644 addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd.uid create mode 100644 addons/phantom_camera/scripts/resources/tween_resource.gd create mode 100644 addons/phantom_camera/scripts/resources/tween_resource.gd.uid create mode 100644 addons/phantom_camera/themes/button_focus.tres create mode 100644 addons/phantom_camera/themes/button_hover.tres create mode 100644 addons/phantom_camera/themes/button_normal.tres create mode 100644 addons/phantom_camera/themes/theme.tres delete mode 100644 assets/sprites/characters/README.txt create mode 100644 assets/sprites/characters/pink/Double_Jump_Dust_5.png create mode 100644 assets/sprites/characters/pink/Double_Jump_Dust_5.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster.png rename assets/sprites/{tilesets/walls/wooden_door_b.png.import => characters/pink/Pink_Monster.png.import} (66%) create mode 100644 assets/sprites/characters/pink/Pink_Monster_Attack1_4.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Attack1_4.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Attack2_6.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Attack2_6.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Climb_4.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Climb_4.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Death_8.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Death_8.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Hurt_4.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Hurt_4.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Idle_4.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Idle_4.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Jump_8.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Jump_8.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Push_6.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Push_6.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Run_6.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Run_6.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Throw_4.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Throw_4.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png.import create mode 100644 assets/sprites/characters/pink/Pink_Monster_Walk_6.png create mode 100644 assets/sprites/characters/pink/Pink_Monster_Walk_6.png.import create mode 100644 assets/sprites/characters/pink/Rock1.png rename assets/sprites/{objects/objects.png.import => characters/pink/Rock1.png.import} (68%) create mode 100644 assets/sprites/characters/pink/Rock2.png rename assets/sprites/{tilesets/fences.png.import => characters/pink/Rock2.png.import} (68%) create mode 100644 assets/sprites/characters/pink/Walk_Run_Push_Dust_6.png create mode 100644 assets/sprites/characters/pink/Walk_Run_Push_Dust_6.png.import delete mode 100644 assets/sprites/characters/player.png delete mode 100644 assets/sprites/characters/skeleton.png delete mode 100644 assets/sprites/characters/skeleton_swordless.png delete mode 100644 assets/sprites/characters/slime.png delete mode 100644 assets/sprites/objects/chest_01.png delete mode 100644 assets/sprites/objects/chest_02.png delete mode 100644 assets/sprites/objects/chest_02.png.import delete mode 100644 assets/sprites/objects/objects.png delete mode 100644 assets/sprites/objects/rock_in_water_01-sheet.png delete mode 100644 assets/sprites/objects/rock_in_water_01-sheet.png.import delete mode 100644 assets/sprites/objects/rock_in_water_01.png delete mode 100644 assets/sprites/objects/rock_in_water_01.png.import delete mode 100644 assets/sprites/objects/rock_in_water_02.png delete mode 100644 assets/sprites/objects/rock_in_water_02.png.import delete mode 100644 assets/sprites/objects/rock_in_water_03.png delete mode 100644 assets/sprites/objects/rock_in_water_03.png.import delete mode 100644 assets/sprites/objects/rock_in_water_04.png delete mode 100644 assets/sprites/objects/rock_in_water_04.png.import delete mode 100644 assets/sprites/objects/rock_in_water_05.png delete mode 100644 assets/sprites/objects/rock_in_water_05.png.import delete mode 100644 assets/sprites/objects/rock_in_water_06.png delete mode 100644 assets/sprites/objects/rock_in_water_06.png.import create mode 100644 assets/sprites/tilesets/Sprites/foreground_trees.png rename assets/sprites/{characters/skeleton_swordless.png.import => tilesets/Sprites/foreground_trees.png.import} (65%) create mode 100644 assets/sprites/tilesets/Sprites/hexedforest_props.png rename assets/sprites/{characters/slime.png.import => tilesets/Sprites/hexedforest_props.png.import} (65%) create mode 100644 assets/sprites/tilesets/Sprites/hexedforest_props_noshadow.png create mode 100644 assets/sprites/tilesets/Sprites/hexedforest_props_noshadow.png.import create mode 100644 assets/sprites/tilesets/Sprites/hexedforest_tileset.png create mode 100644 assets/sprites/tilesets/Sprites/hexedforest_tileset.png.import delete mode 100644 assets/sprites/tilesets/decor_16x16.png delete mode 100644 assets/sprites/tilesets/decor_16x16.png.import delete mode 100644 assets/sprites/tilesets/decor_8x8.png delete mode 100644 assets/sprites/tilesets/decor_8x8.png.import delete mode 100644 assets/sprites/tilesets/fences.png delete mode 100644 assets/sprites/tilesets/floors/carpet.png delete mode 100644 assets/sprites/tilesets/floors/carpet.png.import delete mode 100644 assets/sprites/tilesets/floors/flooring.png delete mode 100644 assets/sprites/tilesets/floors/flooring.png.import delete mode 100644 assets/sprites/tilesets/floors/wooden.png delete mode 100644 assets/sprites/tilesets/floors/wooden.png.import create mode 100644 assets/sprites/tilesets/forest.tres delete mode 100644 assets/sprites/tilesets/grass.png delete mode 100644 assets/sprites/tilesets/grass.png.import delete mode 100644 assets/sprites/tilesets/grass_scatter.png delete mode 100644 assets/sprites/tilesets/grass_scatter.png.import delete mode 100644 assets/sprites/tilesets/plains.png delete mode 100644 assets/sprites/tilesets/plains.png.import delete mode 100644 assets/sprites/tilesets/walls/walls.png delete mode 100644 assets/sprites/tilesets/walls/walls.png.import delete mode 100644 assets/sprites/tilesets/walls/wooden_door.png delete mode 100644 assets/sprites/tilesets/walls/wooden_door.png.import delete mode 100644 assets/sprites/tilesets/walls/wooden_door_b.png delete mode 100644 assets/sprites/tilesets/water-sheet.png delete mode 100644 assets/sprites/tilesets/water-sheet.png.import delete mode 100644 assets/sprites/tilesets/water1.png delete mode 100644 assets/sprites/tilesets/water1.png.import delete mode 100644 assets/sprites/tilesets/water2.png delete mode 100644 assets/sprites/tilesets/water2.png.import delete mode 100644 assets/sprites/tilesets/water3.png delete mode 100644 assets/sprites/tilesets/water3.png.import delete mode 100644 assets/sprites/tilesets/water4.png delete mode 100644 assets/sprites/tilesets/water4.png.import delete mode 100644 assets/sprites/tilesets/water5.png delete mode 100644 assets/sprites/tilesets/water5.png.import delete mode 100644 assets/sprites/tilesets/water6.png delete mode 100644 assets/sprites/tilesets/water6.png.import delete mode 100644 assets/sprites/tilesets/water_decorations.png delete mode 100644 assets/sprites/tilesets/water_decorations.png.import delete mode 100644 assets/sprites/tilesets/water_lillies.png delete mode 100644 assets/sprites/tilesets/water_lillies.png.import delete mode 100644 assets/tileset/basic.tres create mode 100644 assets/ui/items/RA_Item_Icons.png rename assets/{sprites/characters/skeleton.png.import => ui/items/RA_Item_Icons.png.import} (67%) create mode 100644 assets/ui/items/RA_Item_Icons_Background.png create mode 100644 assets/ui/items/RA_Item_Icons_Background.png.import create mode 100644 components/FreeCameraComponent.tscn create mode 100644 components/scripts/free_camera_component.gd create mode 100644 components/scripts/free_camera_component.gd.uid create mode 100644 components/scripts/free_camera_game_camera_component.gd create mode 100644 components/scripts/free_camera_game_camera_component.gd.uid create mode 100644 map/Map.tscn create mode 100644 map/map.gd create mode 100644 map/map.gd.uid create mode 100644 mapgen/layout/finish/001.tscn create mode 100644 mapgen/layout/link/001.tscn create mode 100644 mapgen/layout/misc/001.tscn create mode 100644 mapgen/layout/misc/002.tscn create mode 100644 mapgen/layout/path/001.tscn create mode 100644 mapgen/layout/path/002.tscn create mode 100644 mapgen/layout/path/003.tscn create mode 100644 mapgen/layout/start/001.tscn create mode 100644 mapgen/layout/template.tscn create mode 100644 player/abilities/ability.gd create mode 100644 player/abilities/ability.gd.uid create mode 100644 player/abilities/ice_field.gd create mode 100644 player/abilities/ice_field.gd.uid create mode 100644 player/abilities/scenes/ice_field.tscn create mode 100644 player/modifiers/fire_rate_additive.gd create mode 100644 player/modifiers/fire_rate_additive.gd.uid create mode 100644 player/modifiers/fire_rate_multiplicative.gd create mode 100644 player/modifiers/fire_rate_multiplicative.gd.uid create mode 100644 player/modifiers/modifier.gd create mode 100644 player/modifiers/modifier.gd.uid create mode 100644 player/modifiers/piercing.gd create mode 100644 player/modifiers/piercing.gd.uid create mode 100644 player/modifiers/projectile_size_additive.gd create mode 100644 player/modifiers/projectile_size_additive.gd.uid create mode 100644 player/modifiers/projectile_size_multiplicative.gd create mode 100644 player/modifiers/projectile_size_multiplicative.gd.uid create mode 100644 player/player.tscn create mode 100644 player/scripts/modifier_management.gd create mode 100644 player/scripts/modifier_management.gd.uid create mode 100644 player/scripts/movement.gd.uid create mode 100644 player/scripts/player.gd create mode 100644 player/scripts/player.gd.uid create mode 100644 player/scripts/player_movement.gd create mode 100644 player/scripts/player_movement.gd.uid create mode 100644 player/weapons/ranged_weapon.gd create mode 100644 player/weapons/ranged_weapon.gd.uid delete mode 100644 playground/level.gd delete mode 100644 playground/level.gd.uid delete mode 100644 playground/level.tscn create mode 100644 utility/Globals.gd create mode 100644 utility/Globals.gd.uid create mode 100644 utility/MapBuilder.gd create mode 100644 utility/MapBuilder.gd.uid create mode 100644 utility/RngUtility.gd create mode 100644 utility/RngUtility.gd.uid create mode 100644 utility/SceneSelector.gd create mode 100644 utility/SceneSelector.gd.uid diff --git a/README.md b/README.md deleted file mode 100644 index 34bef07..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# randomgeon diff --git a/addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png b/addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png new file mode 100644 index 0000000000000000000000000000000000000000..30827891816579e19fbc47b913ae2ff2b5937615 GIT binary patch literal 10296 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 KMNUMnLSTYWH#*1w literal 0 HcmV?d00001 diff --git a/addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png.import b/addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png.import new file mode 100644 index 0000000..ad3a214 --- /dev/null +++ b/addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://censw3w53gldn" +path="res://.godot/imported/PhantomCameraBtnPrimaryDefault.png-fcf3696b583a82b1078609a5bfd648f5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png" +dest_files=["res://.godot/imported/PhantomCameraBtnPrimaryDefault.png-fcf3696b583a82b1078609a5bfd648f5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/phantom_camera/assets/PhantomCameraBtnPrimaryHover.png b/addons/phantom_camera/assets/PhantomCameraBtnPrimaryHover.png new file mode 100644 index 0000000000000000000000000000000000000000..1e0c31abaa0be755734661b39c89ce65fce62f9b GIT binary patch literal 9931 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 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 new file mode 100644 index 0000000..1a32325 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween.gd.uid @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..970c52e --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd @@ -0,0 +1,36 @@ +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(): + 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: + 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 new file mode 100644 index 0000000..fc56f1c --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/2d_room_limit_tween_4.3.gd.uid @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..db0209c --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd @@ -0,0 +1,16 @@ +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 new file mode 100644 index 0000000..c5ac45f --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/2d_trigger_area.gd.uid @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..8003bb3 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd @@ -0,0 +1,189 @@ +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 new file mode 100644 index 0000000..2f250b4 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/player_character_body_2d.gd.uid @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..41ab5e2 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd @@ -0,0 +1,179 @@ +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 + 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 new file mode 100644 index 0000000..411f7c4 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/2D/player_character_body_2d_4.3.gd.uid @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..4fc9764 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd @@ -0,0 +1,26 @@ +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 new file mode 100644 index 0000000..5499427 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/3d_trigger_area.gd.uid @@ -0,0 +1 @@ +uid://bnhxcejvr6wi3 diff --git a/addons/phantom_camera/examples/scripts/3D/npc.gd b/addons/phantom_camera/examples/scripts/3D/npc.gd new file mode 100644 index 0000000..3d9a523 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/npc.gd @@ -0,0 +1,71 @@ +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 new file mode 100644 index 0000000..7464c88 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/npc.gd.uid @@ -0,0 +1 @@ +uid://uvw6pg1ut0ms diff --git a/addons/phantom_camera/examples/scripts/3D/path_follow.gd b/addons/phantom_camera/examples/scripts/3D/path_follow.gd new file mode 100644 index 0000000..8535e4c --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/path_follow.gd @@ -0,0 +1,17 @@ +extends Node + +@export var path_pcam: PhantomCamera3D + +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: + path_pcam.set_priority(20) + + +func _exited_area(area_3D: Area3D) -> void: + if area_3D.get_parent() is CharacterBody3D: + 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 new file mode 100644 index 0000000..c2f56ca --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/path_follow.gd.uid @@ -0,0 +1 @@ +uid://cgknbkjar73w diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller.gd b/addons/phantom_camera/examples/scripts/3D/player_controller.gd new file mode 100644 index 0000000..b136103 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller.gd @@ -0,0 +1,103 @@ +extends CharacterBody3D + +@export var SPEED: float = 5.0 +@export var JUMP_VELOCITY: float = 4.5 +@export var enable_gravity = true + +@onready var _camera: Camera3D + +@onready var _player_visual: Node3D = %PlayerVisual + +# Get the gravity from the project settings to be synced with RigidBody nodes. +var gravity: float = 9.8 + +var movement_enabled: bool = true + +var _physics_body_trans_last: Transform3D +var _physics_body_trans_current: Transform3D + +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) + + _player_visual.top_level = true + + +func _physics_process(delta: float) -> void: + _physics_body_trans_last = _physics_body_trans_current + _physics_body_trans_current = global_transform + + # 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 cam_dir: Vector3 = -_camera.global_transform.basis.z + + 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() + + +func _process(_delta: float) -> void: + _player_visual.global_transform = _physics_body_trans_last.interpolate_with( + _physics_body_trans_current, + Engine.get_physics_interpolation_fraction() + ) diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller.gd.uid b/addons/phantom_camera/examples/scripts/3D/player_controller.gd.uid new file mode 100644 index 0000000..c23173c --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller.gd.uid @@ -0,0 +1 @@ +uid://dut3e76k2c71n diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller_4.4.gd b/addons/phantom_camera/examples/scripts/3D/player_controller_4.4.gd new file mode 100644 index 0000000..e907eca --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_4.4.gd @@ -0,0 +1,84 @@ +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_4.4.gd.uid b/addons/phantom_camera/examples/scripts/3D/player_controller_4.4.gd.uid new file mode 100644 index 0000000..182faff --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_4.4.gd.uid @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..7e2da3f --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd @@ -0,0 +1,54 @@ +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 new file mode 100644 index 0000000..c31115d --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_first_person.gd.uid @@ -0,0 +1 @@ +uid://b3n22atuw76sm diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller_first_person_4.4.gd b/addons/phantom_camera/examples/scripts/3D/player_controller_first_person_4.4.gd new file mode 100644 index 0000000..33e4601 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_first_person_4.4.gd @@ -0,0 +1,54 @@ +extends "player_controller_4.4.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_4.4.gd.uid b/addons/phantom_camera/examples/scripts/3D/player_controller_first_person_4.4.gd.uid new file mode 100644 index 0000000..ee16763 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_first_person_4.4.gd.uid @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..f5d5579 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd @@ -0,0 +1,87 @@ +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 new file mode 100644 index 0000000..2218a6a --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_third_person.gd.uid @@ -0,0 +1 @@ +uid://34uhyq3cpi67 diff --git a/addons/phantom_camera/examples/scripts/3D/player_controller_third_person_4.4.gd b/addons/phantom_camera/examples/scripts/3D/player_controller_third_person_4.4.gd new file mode 100644 index 0000000..d0d56d4 --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_third_person_4.4.gd @@ -0,0 +1,86 @@ +extends "player_controller_4.4.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_4.4.gd.uid b/addons/phantom_camera/examples/scripts/3D/player_controller_third_person_4.4.gd.uid new file mode 100644 index 0000000..6346cec --- /dev/null +++ b/addons/phantom_camera/examples/scripts/3D/player_controller_third_person_4.4.gd.uid @@ -0,0 +1 @@ +uid://bkr71vxe2t18n diff --git a/addons/phantom_camera/examples/textures/2D/inventory_container.png b/addons/phantom_camera/examples/textures/2D/inventory_container.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd51782c1814bfcb8e61ac54b642432a3870030 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/addons/phantom_camera/examples/textures/2D/level_spritesheet.png.import b/addons/phantom_camera/examples/textures/2D/level_spritesheet.png.import new file mode 100644 index 0000000..520372a --- /dev/null +++ b/addons/phantom_camera/examples/textures/2D/level_spritesheet.png.import @@ -0,0 +1,34 @@ +[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/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png b/addons/phantom_camera/examples/textures/2D/phantom_camera_2d_sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..2012b3ad9fe1d9a52d62b126548c02bbc7ca9abe GIT binary patch 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 new file mode 100644 index 0000000..84c750b --- /dev/null +++ b/addons/phantom_camera/examples/textures/2D/player_sprite.svg.import @@ -0,0 +1,37 @@ +[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/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +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 new file mode 100644 index 0000000000000000000000000000000000000000..a730837097daacd1e658959c81f529fcea7ff885 GIT binary patch literal 175934 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 Ani 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 literal 0 HcmV?d00001 diff --git a/addons/phantom_camera/fonts/Nunito-Black.ttf.import b/addons/phantom_camera/fonts/Nunito-Black.ttf.import new file mode 100644 index 0000000..8e68c5f --- /dev/null +++ b/addons/phantom_camera/fonts/Nunito-Black.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://c4mm3of2mc8o5" +path="res://.godot/imported/Nunito-Black.ttf-2a374efbc207a97a99b8c70bdc4b7cbb.fontdata" + +[deps] + +source_file="res://addons/phantom_camera/fonts/Nunito-Black.ttf" +dest_files=["res://.godot/imported/Nunito-Black.ttf-2a374efbc207a97a99b8c70bdc4b7cbb.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/addons/phantom_camera/fonts/Nunito-Regular.ttf b/addons/phantom_camera/fonts/Nunito-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dfd0fcb40ec761ccced488d783fc77a4276548db GIT binary patch literal 131736 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

Cg|u*xfjw`p@N!J?^468a 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 + + + + + + + + + + + + + diff --git a/addons/phantom_camera/icons/misc/PriorityOverride.svg.import b/addons/phantom_camera/icons/misc/PriorityOverride.svg.import new file mode 100644 index 0000000..d78acf5 --- /dev/null +++ b/addons/phantom_camera/icons/misc/PriorityOverride.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dy8eifa6aw2en" +path="res://.godot/imported/PriorityOverride.svg-e76e07f4bbd98169f119e17fe5f2f03f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/misc/PriorityOverride.svg" +dest_files=["res://.godot/imported/PriorityOverride.svg-e76e07f4bbd98169f119e17fe5f2f03f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_2d.svg b/addons/phantom_camera/icons/phantom_camera_2d.svg new file mode 100644 index 0000000..0c67805 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_2d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/addons/phantom_camera/icons/phantom_camera_2d.svg.import b/addons/phantom_camera/icons/phantom_camera_2d.svg.import new file mode 100644 index 0000000..724069f --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_2d.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dchkkx4v3ikpw" +path="res://.godot/imported/phantom_camera_2d.svg-e5483cbc858fc5f95f7210b1649dff0d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_2d.svg" +dest_files=["res://.godot/imported/phantom_camera_2d.svg-e5483cbc858fc5f95f7210b1649dff0d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_3d.svg b/addons/phantom_camera/icons/phantom_camera_3d.svg new file mode 100644 index 0000000..db18730 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_3d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/addons/phantom_camera/icons/phantom_camera_3d.svg.import b/addons/phantom_camera/icons/phantom_camera_3d.svg.import new file mode 100644 index 0000000..eedbd2f --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_3d.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c71drpb8o4prn" +path="res://.godot/imported/phantom_camera_3d.svg-41ed612e834470377fb56eebffa083fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_3d.svg" +dest_files=["res://.godot/imported/phantom_camera_3d.svg-41ed612e834470377fb56eebffa083fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg b/addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg new file mode 100644 index 0000000..282adf2 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg.import b/addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg.import new file mode 100644 index 0000000..4b0e8bc --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnaykbu6ue5lo" +path="res://.godot/imported/phantom_camera_camera_3d_resource.svg-f8bf8d1a5b7442fd6933bfbed999d57d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg" +dest_files=["res://.godot/imported/phantom_camera_camera_3d_resource.svg-f8bf8d1a5b7442fd6933bfbed999d57d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_gizmo.svg b/addons/phantom_camera/icons/phantom_camera_gizmo.svg new file mode 100644 index 0000000..d791ce0 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_gizmo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/addons/phantom_camera/icons/phantom_camera_gizmo.svg.import b/addons/phantom_camera/icons/phantom_camera_gizmo.svg.import new file mode 100644 index 0000000..7b49608 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_gizmo.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://e36npe2rbxyg" +path.s3tc="res://.godot/imported/phantom_camera_gizmo.svg-ba1aacb9b1c5f4ef401d3bd3697a542b.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_gizmo.svg" +dest_files=["res://.godot/imported/phantom_camera_gizmo.svg-ba1aacb9b1c5f4ef401d3bd3697a542b.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_glow_logo.png b/addons/phantom_camera/icons/phantom_camera_glow_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..41ad8de3d6dac4aeb7771d01adc69f65b7c291df GIT binary patch literal 25499 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 i`=EW$K4@P9?f(PHo+dfTz!fzB0000 \ No newline at end of file diff --git a/addons/phantom_camera/icons/phantom_camera_host.svg.import b/addons/phantom_camera/icons/phantom_camera_host.svg.import new file mode 100644 index 0000000..430d67d --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_host.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5fatldiu7dd5" +path="res://.godot/imported/phantom_camera_host.svg-3150f8f2d82ca9ecab9a3a415da21c5b.ctex" +metadata={ +"has_editor_variant": true, +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_host.svg" +dest_files=["res://.godot/imported/phantom_camera_host.svg-3150f8f2d82ca9ecab9a3a415da21c5b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=true diff --git a/addons/phantom_camera/icons/phantom_camera_logo.png b/addons/phantom_camera/icons/phantom_camera_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bc43e567916df70bb8f8b25a7c394b98b6c221e7 GIT binary patch literal 70905 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 + + + diff --git a/addons/phantom_camera/icons/phantom_camera_noise_emitter_2d.svg.import b/addons/phantom_camera/icons/phantom_camera_noise_emitter_2d.svg.import new file mode 100644 index 0000000..c24e060 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_noise_emitter_2d.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2r7mhd780y8d" +path="res://.godot/imported/phantom_camera_noise_emitter_2d.svg-1b3d37fe36964dc86a6ea6681d0772bb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_noise_emitter_2d.svg" +dest_files=["res://.godot/imported/phantom_camera_noise_emitter_2d.svg-1b3d37fe36964dc86a6ea6681d0772bb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg b/addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg new file mode 100644 index 0000000..c567f6a --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg @@ -0,0 +1,4 @@ + + + + diff --git a/addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg.import b/addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg.import new file mode 100644 index 0000000..de23002 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cby76y7m6xn4f" +path.s3tc="res://.godot/imported/phantom_camera_noise_emitter_3d.svg-9b90fe54aa618f65d52ac94515d41ea4.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg" +dest_files=["res://.godot/imported/phantom_camera_noise_emitter_3d.svg-9b90fe54aa618f65d52ac94515d41ea4.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg b/addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg new file mode 100644 index 0000000..9b9bcb2 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg.import b/addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg.import new file mode 100644 index 0000000..4dd736b --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dw4iy855s0atm" +path.s3tc="res://.godot/imported/phantom_camera_noise_emitter_gizmo.svg-9a593802655a8d5038c7f55deab3882d.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg" +dest_files=["res://.godot/imported/phantom_camera_noise_emitter_gizmo.svg-9a593802655a8d5038c7f55deab3882d.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_noise_resource.svg b/addons/phantom_camera/icons/phantom_camera_noise_resource.svg new file mode 100644 index 0000000..d3c6deb --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_noise_resource.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/addons/phantom_camera/icons/phantom_camera_noise_resource.svg.import b/addons/phantom_camera/icons/phantom_camera_noise_resource.svg.import new file mode 100644 index 0000000..8cefc36 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_noise_resource.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fudwitkewe70" +path="res://.godot/imported/phantom_camera_noise_resource.svg-a81ed223714edd2c0d9cfa00be0c3f58.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_noise_resource.svg" +dest_files=["res://.godot/imported/phantom_camera_noise_resource.svg-a81ed223714edd2c0d9cfa00be0c3f58.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/phantom_camera_tween.svg b/addons/phantom_camera/icons/phantom_camera_tween.svg new file mode 100644 index 0000000..6956fb5 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_tween.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/addons/phantom_camera/icons/phantom_camera_tween.svg.import b/addons/phantom_camera/icons/phantom_camera_tween.svg.import new file mode 100644 index 0000000..3db67fb --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_tween.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dphl04mdf3220" +path="res://.godot/imported/phantom_camera_tween.svg-16faced08ef4a5f3458264d894230dbd.ctex" +metadata={ +"has_editor_variant": true, +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_tween.svg" +dest_files=["res://.godot/imported/phantom_camera_tween.svg-16faced08ef4a5f3458264d894230dbd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=true diff --git a/addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg b/addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg new file mode 100644 index 0000000..6d3bcd4 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg.import b/addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg.import new file mode 100644 index 0000000..c182784 --- /dev/null +++ b/addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d4j4hrb7yusyq" +path="res://.godot/imported/phantom_camera_updater_panel_icon.svg-19823e6cbee8115f8b2554d0ee6e79db.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg" +dest_files=["res://.godot/imported/phantom_camera_updater_panel_icon.svg-19823e6cbee8115f8b2554d0ee6e79db.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg b/addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg new file mode 100644 index 0000000..59efad4 --- /dev/null +++ b/addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg.import b/addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg.import new file mode 100644 index 0000000..e8fb35d --- /dev/null +++ b/addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccnsrg8hq74p2" +path="res://.godot/imported/Camera2DIcon.svg-300e6f57281180711c5ecf391104d4ba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg" +dest_files=["res://.godot/imported/Camera2DIcon.svg-300e6f57281180711c5ecf391104d4ba.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg b/addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg new file mode 100644 index 0000000..2366c3f --- /dev/null +++ b/addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg.import b/addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg.import new file mode 100644 index 0000000..79708e2 --- /dev/null +++ b/addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkiefpjsrj37n" +path="res://.godot/imported/Camera3DIcon.svg-4805c46004db1c89cc9443dd740693f5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg" +dest_files=["res://.godot/imported/Camera3DIcon.svg-4805c46004db1c89cc9443dd740693f5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg b/addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg new file mode 100644 index 0000000..87e3f79 --- /dev/null +++ b/addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg.import b/addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg.import new file mode 100644 index 0000000..364c4ed --- /dev/null +++ b/addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dk7omm0x44suj" +path="res://.godot/imported/SceneTypesIcon.svg-66e2255bd3398007bec03a5cbfa4d0aa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg" +dest_files=["res://.godot/imported/SceneTypesIcon.svg-66e2255bd3398007bec03a5cbfa4d0aa.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/viewfinder/Select.svg b/addons/phantom_camera/icons/viewfinder/Select.svg new file mode 100644 index 0000000..34b109b --- /dev/null +++ b/addons/phantom_camera/icons/viewfinder/Select.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons/phantom_camera/icons/viewfinder/Select.svg.import b/addons/phantom_camera/icons/viewfinder/Select.svg.import new file mode 100644 index 0000000..81b41c9 --- /dev/null +++ b/addons/phantom_camera/icons/viewfinder/Select.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rghrkoqrm2ig" +path="res://.godot/imported/Select.svg-cdf90b8b400d3b91a023b70c6a823894.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/viewfinder/Select.svg" +dest_files=["res://.godot/imported/Select.svg-cdf90b8b400d3b91a023b70c6a823894.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/icons/warning.svg b/addons/phantom_camera/icons/warning.svg new file mode 100644 index 0000000..63dbedf --- /dev/null +++ b/addons/phantom_camera/icons/warning.svg @@ -0,0 +1,4 @@ + + + + diff --git a/addons/phantom_camera/icons/warning.svg.import b/addons/phantom_camera/icons/warning.svg.import new file mode 100644 index 0000000..2895b37 --- /dev/null +++ b/addons/phantom_camera/icons/warning.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjlv0bg7byjx0" +path="res://.godot/imported/warning.svg-c1b21c265e0842bbdc9ed10735995366.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/phantom_camera/icons/warning.svg" +dest_files=["res://.godot/imported/warning.svg-c1b21c265e0842bbdc9ed10735995366.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/phantom_camera/inspector/phantom_camera_inspector_plugin.gd b/addons/phantom_camera/inspector/phantom_camera_inspector_plugin.gd new file mode 100644 index 0000000..d5a0d22 --- /dev/null +++ b/addons/phantom_camera/inspector/phantom_camera_inspector_plugin.gd @@ -0,0 +1,46 @@ +@tool +extends EditorInspectorPlugin + +#var _phantom_camera_script: Script = preload("res://addons/phantom_camera/scripts/phantom_camera.gd") + + +# TODO - Enable again once work is resumed for inspector based tasks + +#func _can_handle(object) -> bool: +# return object is _phantom_camera_script + + +func _parse_category(object: Object, category: String) -> void: + + var _margin_container: MarginContainer = MarginContainer.new() + var _margin_v: float = 20 + _margin_container.add_theme_constant_override("margin_left", 10) + _margin_container.add_theme_constant_override("margin_top", _margin_v) + _margin_container.add_theme_constant_override("margin_right", 10) + _margin_container.add_theme_constant_override("margin_bottom", _margin_v) + add_custom_control(_margin_container) + + var _vbox_container: VBoxContainer = VBoxContainer.new() + _margin_container.add_child(_vbox_container) + + var align_with_view_button = Button.new() + align_with_view_button.connect("pressed", _align_camera_with_view.bind(object)) + align_with_view_button.set_custom_minimum_size(Vector2(0, 60)) + align_with_view_button.set_text("Align with view") + _vbox_container.add_child(align_with_view_button) + + var preview_camera_button = Button.new() + preview_camera_button.connect("pressed", _preview_camera.bind(object)) + preview_camera_button.set_custom_minimum_size(Vector2(0, 60)) + preview_camera_button.set_text("Preview Camera") + _vbox_container.add_child(preview_camera_button) + + + +func _align_camera_with_view(object: Object) -> void: + print("Aligning camera with view") + print(object) + +func _preview_camera(object: Object) -> void: + print("Previewing camera") + print(object) diff --git a/addons/phantom_camera/inspector/phantom_camera_inspector_plugin.gd.uid b/addons/phantom_camera/inspector/phantom_camera_inspector_plugin.gd.uid new file mode 100644 index 0000000..325b3c0 --- /dev/null +++ b/addons/phantom_camera/inspector/phantom_camera_inspector_plugin.gd.uid @@ -0,0 +1 @@ +uid://dhwxgngr7sn6d diff --git a/addons/phantom_camera/panel/editor.tscn b/addons/phantom_camera/panel/editor.tscn new file mode 100644 index 0000000..0c75c6a --- /dev/null +++ b/addons/phantom_camera/panel/editor.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=3 uid="uid://cfdoaceoosi1w"] + +[ext_resource type="Script" uid="uid://cgfwg3paxkj2x" path="res://addons/phantom_camera/scripts/panel/editor.gd" id="1_86hp7"] +[ext_resource type="PackedScene" uid="uid://cuqkqsp3ikv5u" path="res://addons/phantom_camera/panel/updater/update_button.tscn" id="1_oowcd"] +[ext_resource type="PackedScene" uid="uid://dbkr3d716wtx0" path="res://addons/phantom_camera/panel/viewfinder/viewfinder_panel.tscn" id="2_xecnk"] + +[node name="EditorPanel" type="VBoxContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_86hp7") + +[node name="UpdateButton" parent="." instance=ExtResource("1_oowcd")] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 8 +size_flags_vertical = 1 + +[node name="ViewfinderPanel" parent="." instance=ExtResource("2_xecnk")] +unique_name_in_owner = true +layout_mode = 2 diff --git a/addons/phantom_camera/panel/updater/download_update_panel.tscn b/addons/phantom_camera/panel/updater/download_update_panel.tscn new file mode 100644 index 0000000..5fa49e3 --- /dev/null +++ b/addons/phantom_camera/panel/updater/download_update_panel.tscn @@ -0,0 +1,253 @@ +[gd_scene load_steps=15 format=3 uid="uid://b25fl4usw0nlp"] + +[ext_resource type="Script" uid="uid://cjblcocen12r3" path="res://addons/phantom_camera/scripts/panel/updater/download_update_panel.gd" id="1_sx5xq"] +[ext_resource type="Texture2D" uid="uid://cc0wmici0eic8" path="res://addons/phantom_camera/icons/phantom_camera_logo.png" id="2_f3yo7"] +[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="3_h8uk3"] +[ext_resource type="FontFile" uid="uid://dve7mgsjik4dg" path="res://addons/phantom_camera/fonts/Nunito-Regular.ttf" id="4_gwh4i"] +[ext_resource type="Texture2D" uid="uid://censw3w53gldn" path="res://addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png" id="5_bonti"] + +[sub_resource type="ImageTexture" id="ImageTexture_sjwi2"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_insma"] +bg_color = Color(0.0190018, 0.21903, 0.16997, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.0980392, 0.572549, 0.458824, 1) +border_blend = true +corner_radius_bottom_right = 12 +corner_radius_bottom_left = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8m63d"] +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.105882, 0.619608, 0.498039, 1) +corner_radius_bottom_right = 12 +corner_radius_bottom_left = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yn22d"] +bg_color = Color(0.0117647, 0.164706, 0.12549, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.0980392, 0.572549, 0.458824, 1) +border_blend = true +corner_radius_bottom_right = 12 +corner_radius_bottom_left = 12 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_djsbc"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_xtrn6"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_o12j0"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_buptb"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_g3tf0"] + +[node name="DownloadUpdatePanel" type="Control"] +custom_minimum_size = Vector2(300, 350) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_bottom = -61.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_sx5xq") + +[node name="DownloadHTTPRequest" type="HTTPRequest" parent="."] +unique_name_in_owner = true + +[node name="Timer" type="Timer" parent="DownloadHTTPRequest"] +one_shot = true + +[node name="VBox" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 2 + +[node name="VBoxContainer2" type="VBoxContainer" parent="VBox"] +layout_mode = 2 +theme_override_constants/separation = -20 + +[node name="MarginContainer" type="MarginContainer" parent="VBox/VBoxContainer2"] +layout_mode = 2 +theme_override_constants/margin_top = 12 + +[node name="Logo" type="TextureRect" parent="VBox/VBoxContainer2/MarginContainer"] +unique_name_in_owner = true +clip_contents = true +custom_minimum_size = Vector2(300, 160) +layout_mode = 2 +texture = ExtResource("2_f3yo7") +expand_mode = 3 +stretch_mode = 5 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBox/VBoxContainer2"] +layout_mode = 2 +theme_override_constants/separation = -5 + +[node name="NameLabel" type="Label" parent="VBox/VBoxContainer2/VBoxContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.960784, 0.960784, 0.960784, 1) +theme_override_fonts/font = ExtResource("3_h8uk3") +theme_override_font_sizes/font_size = 32 +text = "Phantom Camera" +horizontal_alignment = 1 + +[node name="DownloadVersionLabel" type="Label" parent="VBox/VBoxContainer2/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +theme_override_colors/font_color = Color(0.960784, 0.960784, 0.960784, 1) +theme_override_fonts/font = ExtResource("4_gwh4i") +theme_override_font_sizes/font_size = 18 +text = "v1.2.3 is available for download." +horizontal_alignment = 1 + +[node name="CurrentVersionLabel" type="Label" parent="VBox"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +theme_override_fonts/font = ExtResource("4_gwh4i") +text = "Current version: 0.0.0" +horizontal_alignment = 1 + +[node name="Center2" type="CenterContainer" parent="VBox"] +layout_mode = 2 + +[node name="NotesButton" type="LinkButton" parent="VBox/Center2"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.917647, 0.631373, 0.368627, 1) +theme_override_colors/font_hover_color = Color(0.721569, 0.454902, 0.192157, 1) +theme_override_fonts/font = ExtResource("3_h8uk3") +theme_override_font_sizes/font_size = 18 +text = "Release Notes" + +[node name="Center" type="CenterContainer" parent="VBox"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBox/Center"] +layout_mode = 2 + +[node name="BreakingLabel" type="Label" parent="VBox/Center/VBoxContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +theme_override_colors/font_color = Color(0.72549, 0.227451, 0.34902, 1) +theme_override_fonts/font = ExtResource("3_h8uk3") +theme_override_font_sizes/font_size = 18 +text = "Potential Breaking Changes +in new release" +horizontal_alignment = 1 +uppercase = true + +[node name="BreakingMarginContainer" type="MarginContainer" parent="VBox/Center/VBoxContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBox/Center/VBoxContainer/BreakingMarginContainer"] +layout_mode = 2 + +[node name="RichTextLabel2" type="RichTextLabel" parent="VBox/Center/VBoxContainer/BreakingMarginContainer/VBoxContainer"] +layout_mode = 2 +theme_override_fonts/normal_font = ExtResource("4_gwh4i") +theme_override_fonts/bold_font = ExtResource("3_h8uk3") +theme_override_fonts/mono_font = ExtResource("3_h8uk3") +theme_override_font_sizes/normal_font_size = 18 +theme_override_font_sizes/bold_font_size = 14 +theme_override_font_sizes/mono_font_size = 12 +bbcode_enabled = true +text = "[center][b]I am prepared for any breaking +changes that may occur from this update[/b][/center]" +fit_content = true + +[node name="BreakingOptionButton" type="OptionButton" parent="VBox/Center/VBoxContainer/BreakingMarginContainer/VBoxContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +mouse_default_cursor_shape = 2 +theme_override_fonts/font = ExtResource("3_h8uk3") +theme_override_font_sizes/font_size = 18 +theme_override_icons/arrow = SubResource("ImageTexture_sjwi2") +theme_override_styles/normal = SubResource("StyleBoxFlat_insma") +theme_override_styles/hover = SubResource("StyleBoxFlat_8m63d") +theme_override_styles/pressed = SubResource("StyleBoxFlat_yn22d") +alignment = 1 +item_count = 2 +selected = 0 +popup/item_0/text = "Confirm choice" +popup/item_0/id = 0 +popup/item_1/text = "Yes, I am prepared" +popup/item_1/id = 1 + +[node name="DownloadButton" type="Button" parent="VBox/Center/VBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(240, 90) +layout_mode = 2 +mouse_default_cursor_shape = 2 +theme_override_styles/normal = SubResource("StyleBoxEmpty_djsbc") +theme_override_styles/hover = SubResource("StyleBoxEmpty_xtrn6") +theme_override_styles/pressed = SubResource("StyleBoxEmpty_o12j0") +theme_override_styles/disabled = SubResource("StyleBoxEmpty_buptb") +theme_override_styles/focus = SubResource("StyleBoxEmpty_g3tf0") + +[node name="DownloadButtonBG" type="NinePatchRect" parent="VBox/Center/VBoxContainer/DownloadButton"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_bonti") +patch_margin_left = 38 +patch_margin_top = 37 +patch_margin_right = 38 +patch_margin_bottom = 39 + +[node name="UpdateLabel" type="Label" parent="VBox/Center/VBoxContainer/DownloadButton"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_top = -14.5 +offset_bottom = 14.5 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_colors/font_color = Color(0.960784, 0.960784, 0.960784, 1) +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_fonts/font = ExtResource("3_h8uk3") +theme_override_font_sizes/font_size = 20 +text = "Update" +horizontal_alignment = 1 +uppercase = true + +[node name="MarginContainer" type="MarginContainer" parent="VBox"] +layout_mode = 2 +theme_override_constants/margin_top = 10 + +[node name="RichTextLabel" type="RichTextLabel" parent="VBox/MarginContainer"] +layout_mode = 2 +theme_override_fonts/normal_font = ExtResource("4_gwh4i") +theme_override_fonts/mono_font = ExtResource("3_h8uk3") +theme_override_font_sizes/normal_font_size = 12 +theme_override_font_sizes/mono_font_size = 12 +bbcode_enabled = true +text = "[center]The updater can be disabled within: +[code]Project Settings / Phantom Camera / Updater / Enable Updater[/code][/center]" +fit_content = true + +[connection signal="pressed" from="VBox/Center2/NotesButton" to="." method="_on_notes_button_pressed"] diff --git a/addons/phantom_camera/panel/updater/update_button.tscn b/addons/phantom_camera/panel/updater/update_button.tscn new file mode 100644 index 0000000..a6efba1 --- /dev/null +++ b/addons/phantom_camera/panel/updater/update_button.tscn @@ -0,0 +1,101 @@ +[gd_scene load_steps=10 format=3 uid="uid://cuqkqsp3ikv5u"] + +[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="1_5e5k4"] +[ext_resource type="Script" uid="uid://bwc42i46603qn" path="res://addons/phantom_camera/scripts/panel/updater/update_button.gd" id="1_xtaw5"] +[ext_resource type="Texture2D" uid="uid://d4j4hrb7yusyq" path="res://addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg" id="2_c4d83"] +[ext_resource type="PackedScene" uid="uid://b25fl4usw0nlp" path="res://addons/phantom_camera/panel/updater/download_update_panel.tscn" id="2_vtgcx"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_c7fd1"] +content_margin_left = 10.0 +content_margin_top = 4.0 +content_margin_right = 10.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0980392, 0.415686, 0.341176, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y83dj"] +content_margin_left = 10.0 +content_margin_top = 4.0 +content_margin_right = 10.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.960784, 0.960784, 0.960784, 1) +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_slf6e"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_lekqh"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dr4n4"] +content_margin_bottom = 20.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) + +[node name="UpdateButton" type="Button"] +visible = false +offset_left = 1.0 +offset_right = 149.0 +offset_bottom = 28.0 +size_flags_vertical = 3 +theme_override_colors/font_color = Color(0.960784, 0.960784, 0.960784, 1) +theme_override_colors/font_hover_color = Color(0.939288, 0.917743, 0.892615, 1) +theme_override_colors/icon_normal_color = Color(0.960784, 0.960784, 0.960784, 1) +theme_override_fonts/font = ExtResource("1_5e5k4") +theme_override_font_sizes/font_size = 14 +theme_override_styles/normal = SubResource("StyleBoxFlat_c7fd1") +theme_override_styles/hover = SubResource("StyleBoxFlat_y83dj") +theme_override_styles/pressed = SubResource("StyleBoxEmpty_slf6e") +theme_override_styles/focus = SubResource("StyleBoxEmpty_lekqh") +text = "Update available" +icon = ExtResource("2_c4d83") +script = ExtResource("1_xtaw5") + +[node name="HTTPRequest" type="HTTPRequest" parent="."] +unique_name_in_owner = true + +[node name="DownloadDialog" type="AcceptDialog" parent="."] +unique_name_in_owner = true +transparent_bg = true +title = "New Update" +initial_position = 2 +size = Vector2i(450, 480) +transient = false +unresizable = true +borderless = true +keep_title_visible = false +content_scale_mode = 1 +theme_override_constants/buttons_separation = 30 +theme_override_styles/panel = SubResource("StyleBoxFlat_dr4n4") +ok_button_text = "Close" + +[node name="DownloadUpdatePanel" parent="DownloadDialog" instance=ExtResource("2_vtgcx")] +unique_name_in_owner = true +offset_left = 2.0 +offset_top = 2.0 +offset_right = -2.0 +offset_bottom = -80.0 + +[node name="NeedsReloadDialog" type="ConfirmationDialog" parent="."] +unique_name_in_owner = true + +[node name="UpdateFailedDialog" type="AcceptDialog" parent="."] +unique_name_in_owner = true diff --git a/addons/phantom_camera/panel/viewfinder/deadzone_style_box.tres b/addons/phantom_camera/panel/viewfinder/deadzone_style_box.tres new file mode 100644 index 0000000..7353299 --- /dev/null +++ b/addons/phantom_camera/panel/viewfinder/deadzone_style_box.tres @@ -0,0 +1,14 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://dpa7yvxlq043a"] + +[resource] +bg_color = Color(0.227451, 0.72549, 0.603922, 0.2) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_detail = 1 +expand_margin_left = 1.0 +expand_margin_top = 1.0 +expand_margin_right = 1.0 +expand_margin_bottom = 1.0 diff --git a/addons/phantom_camera/panel/viewfinder/host_list/host_list.tscn b/addons/phantom_camera/panel/viewfinder/host_list/host_list.tscn new file mode 100644 index 0000000..332415d --- /dev/null +++ b/addons/phantom_camera/panel/viewfinder/host_list/host_list.tscn @@ -0,0 +1,87 @@ +[gd_scene load_steps=8 format=3 uid="uid://mbjdav5oqves"] + +[ext_resource type="Script" uid="uid://c84cxry3t35ny" path="res://addons/phantom_camera/scripts/panel/viewfinder/host_list.gd" id="1_h6ayt"] +[ext_resource type="Texture2D" uid="uid://5fatldiu7dd5" path="res://addons/phantom_camera/icons/phantom_camera_host.svg" id="1_xlgqb"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_w002y"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kq7gm"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_top = 2 +border_width_right = 2 +border_color = Color(0.960784, 0.960784, 0.960784, 1) +corner_radius_top_right = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ynag5"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.960784, 0.960784, 0.960784, 1) +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_right = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q2svd"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_right = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_e0jvt"] +content_margin_left = 0.0 +content_margin_top = 8.0 +content_margin_right = 0.0 +content_margin_bottom = 8.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_top = 2 +border_width_right = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_right = 10 + +[node name="PCamHostList" type="VBoxContainer"] +anchors_preset = 9 +anchor_bottom = 1.0 +size_flags_horizontal = 0 +size_flags_vertical = 0 +theme_override_constants/separation = -2 +alignment = 2 +script = ExtResource("1_h6ayt") + +[node name="HostListButton" type="Button" parent="."] +unique_name_in_owner = true +custom_minimum_size = Vector2(40, 40) +layout_mode = 2 +size_flags_horizontal = 0 +theme_override_colors/icon_hover_color = Color(0.0784314, 0.109804, 0.129412, 1) +theme_override_colors/icon_hover_pressed_color = Color(0.0784314, 0.109804, 0.129412, 1) +theme_override_styles/focus = SubResource("StyleBoxEmpty_w002y") +theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_kq7gm") +theme_override_styles/hover = SubResource("StyleBoxFlat_ynag5") +theme_override_styles/pressed = SubResource("StyleBoxFlat_kq7gm") +theme_override_styles/normal = SubResource("StyleBoxFlat_q2svd") +icon = ExtResource("1_xlgqb") +expand_icon = true + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_e0jvt") +horizontal_scroll_mode = 0 + +[node name="HostListContainer" type="VBoxContainer" parent="ScrollContainer"] +unique_name_in_owner = true +layout_mode = 2 +theme_override_constants/separation = 8 diff --git a/addons/phantom_camera/panel/viewfinder/host_list/host_list_item.tscn b/addons/phantom_camera/panel/viewfinder/host_list/host_list_item.tscn new file mode 100644 index 0000000..9ce67e5 --- /dev/null +++ b/addons/phantom_camera/panel/viewfinder/host_list/host_list_item.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=10 format=3 uid="uid://btn6jgv0vix7"] + +[ext_resource type="FontFile" uid="uid://dve7mgsjik4dg" path="res://addons/phantom_camera/fonts/Nunito-Regular.ttf" id="1_anjxo"] +[ext_resource type="Theme" uid="uid://bhppejri5dbsf" path="res://addons/phantom_camera/themes/theme.tres" id="1_wql5t"] +[ext_resource type="Texture2D" uid="uid://rghrkoqrm2ig" path="res://addons/phantom_camera/icons/viewfinder/Select.svg" id="2_71b6g"] +[ext_resource type="ButtonGroup" uid="uid://dfu0b8jbtyr1n" path="res://addons/phantom_camera/panel/viewfinder/host_list/host_list_item_group.tres" id="3_06a0y"] +[ext_resource type="Script" uid="uid://bv24ubx8mutw7" path="res://addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd" id="3_a5o8b"] +[ext_resource type="Texture2D" uid="uid://cjlv0bg7byjx0" path="res://addons/phantom_camera/icons/warning.svg" id="3_qgpy7"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_0rxfi"] +content_margin_right = 6.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_llqnh"] + +[sub_resource type="Theme" id="Theme_7h15c"] +Button/colors/icon_hover_color = Color(0.960784, 0.960784, 0.960784, 1) +Button/colors/icon_hover_pressed_color = Color(0.227451, 0.72549, 0.603922, 1) +Button/colors/icon_normal_color = Color(0.227451, 0.72549, 0.603922, 1) +Button/colors/icon_pressed_color = Color(0.227451, 0.72549, 0.603922, 1) +Button/constants/icon_max_width = 20 +Button/styles/focus = SubResource("StyleBoxEmpty_llqnh") + +[node name="HostListItem" type="PanelContainer"] +offset_right = 229.0 +offset_bottom = 34.0 +theme_override_styles/panel = SubResource("StyleBoxEmpty_0rxfi") +script = ExtResource("3_a5o8b") + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 2 +theme_override_constants/separation = 2 + +[node name="SelectPCamHost" type="Button" parent="HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 4 +tooltip_text = "Select the Phantom Camera Host node from the scene hierarchy" +focus_mode = 0 +theme = SubResource("Theme_7h15c") +icon = ExtResource("2_71b6g") +flat = true + +[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 8 + +[node name="ErrorPCamHost" type="TextureRect" parent="HBoxContainer/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(18, 18) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +tooltip_text = "This Phantom Camera Host node will not affect a Camera node. +See the warning in the Scene Tree for more information." +texture = ExtResource("3_qgpy7") +expand_mode = 1 + +[node name="SwitchPCamHost" type="Button" parent="HBoxContainer/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(40, 0) +layout_mode = 2 +tooltip_text = "Change the viewfinder's camera to the camera of this Phantom Camera Host" +theme = ExtResource("1_wql5t") +theme_override_fonts/font = ExtResource("1_anjxo") +theme_override_font_sizes/font_size = 18 +toggle_mode = true +button_group = ExtResource("3_06a0y") +text = "{ PCamHostName }" diff --git a/addons/phantom_camera/panel/viewfinder/host_list/host_list_item_group.tres b/addons/phantom_camera/panel/viewfinder/host_list/host_list_item_group.tres new file mode 100644 index 0000000..64c4600 --- /dev/null +++ b/addons/phantom_camera/panel/viewfinder/host_list/host_list_item_group.tres @@ -0,0 +1,3 @@ +[gd_resource type="ButtonGroup" format=3 uid="uid://dfu0b8jbtyr1n"] + +[resource] diff --git a/addons/phantom_camera/panel/viewfinder/viewfinder_panel.tscn b/addons/phantom_camera/panel/viewfinder/viewfinder_panel.tscn new file mode 100644 index 0000000..b6caa0d --- /dev/null +++ b/addons/phantom_camera/panel/viewfinder/viewfinder_panel.tscn @@ -0,0 +1,563 @@ +[gd_scene load_steps=28 format=3 uid="uid://dbkr3d716wtx0"] + +[ext_resource type="Script" uid="uid://drmv3363t8amc" path="res://addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd" id="1_utvi8"] +[ext_resource type="StyleBox" uid="uid://dpa7yvxlq043a" path="res://addons/phantom_camera/panel/viewfinder/deadzone_style_box.tres" id="2_uabt4"] +[ext_resource type="FontFile" uid="uid://c4mm3of2mc8o5" path="res://addons/phantom_camera/fonts/Nunito-Black.ttf" id="3_li3i3"] +[ext_resource type="Texture2D" uid="uid://5fatldiu7dd5" path="res://addons/phantom_camera/icons/phantom_camera_host.svg" id="4_lcg1p"] +[ext_resource type="FontFile" uid="uid://dve7mgsjik4dg" path="res://addons/phantom_camera/fonts/Nunito-Regular.ttf" id="5_4jhax"] +[ext_resource type="Texture2D" uid="uid://dy8eifa6aw2en" path="res://addons/phantom_camera/icons/misc/PriorityOverride.svg" id="6_ptuth"] +[ext_resource type="Script" uid="uid://c84cxry3t35ny" path="res://addons/phantom_camera/scripts/panel/viewfinder/host_list.gd" id="7_kpij0"] +[ext_resource type="Theme" uid="uid://bhppejri5dbsf" path="res://addons/phantom_camera/themes/theme.tres" id="8_b4akn"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fle8t"] +bg_color = Color(0.227451, 0.72549, 0.603922, 0.2) +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_detail = 1 +expand_margin_left = 1.0 +expand_margin_top = 1.0 +expand_margin_right = 1.0 +expand_margin_bottom = 1.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xmo1t"] +draw_center = false +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.745098, 0.858824, 0.380392, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q7vs4"] +bg_color = Color(0.929412, 0.87451, 0.619608, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0, 0, 0, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_iho1a"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_obaj6"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_4b76l"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_yh38y"] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0.129412, 0.407843, 0.337255, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0.988235, 0.498039, 0.498039, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gci88"] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0.180392, 0.576471, 0.482353, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fsxik"] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0.129412, 0.407843, 0.337255, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_g5wua"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_x4bx8"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_840sd"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ja3vm"] +bg_color = Color(0.53, 0.1643, 0.255725, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_blend = true +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mk273"] +bg_color = Color(0.43, 0.1333, 0.207475, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_blend = true +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_agqdu"] +bg_color = Color(0.72549, 0.227451, 0.34902, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_blend = true +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_w002y"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kq7gm"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_top = 2 +border_width_right = 2 +border_color = Color(0.960784, 0.960784, 0.960784, 1) +corner_radius_top_right = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ynag5"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.960784, 0.960784, 0.960784, 1) +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_right = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q2svd"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_right = 8 + +[node name="ViewfinderPanel" type="Control"] +clip_contents = true +custom_minimum_size = Vector2(0, 300) +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 +mouse_filter = 2 +script = ExtResource("1_utvi8") + +[node name="Viewfinder" type="Control" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +metadata/_edit_lock_ = true + +[node name="SubViewportContainer" type="SubViewportContainer" parent="Viewfinder"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +stretch = true + +[node name="SubViewport" type="SubViewport" parent="Viewfinder/SubViewportContainer"] +unique_name_in_owner = true +handle_input_locally = false +canvas_item_default_texture_filter = 0 +gui_disable_input = true +size = Vector2i(1152, 648) +size_2d_override_stretch = true +render_target_update_mode = 4 + +[node name="Camera2D" type="Camera2D" parent="Viewfinder/SubViewportContainer/SubViewport"] +unique_name_in_owner = true +editor_draw_screen = false + +[node name="DeadZoneHBoxContainer" type="HBoxContainer" parent="Viewfinder"] +unique_name_in_owner = true +clip_contents = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_constants/separation = 0 + +[node name="DeadZoneLeftHBoxContainer" type="VBoxContainer" parent="Viewfinder/DeadZoneHBoxContainer"] +clip_contents = true +layout_mode = 2 +size_flags_horizontal = 3 +mouse_filter = 2 +theme_override_constants/separation = 0 + +[node name="DeadZoneLeftTopPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneLeftHBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +mouse_filter = 2 +theme_override_styles/panel = ExtResource("2_uabt4") + +[node name="DeadZoneLeftCenterPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneLeftHBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +mouse_filter = 2 +theme_override_styles/panel = ExtResource("2_uabt4") + +[node name="DeadZoneLeftBottomPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneLeftHBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +mouse_filter = 2 +theme_override_styles/panel = ExtResource("2_uabt4") + +[node name="DeadZoneCenterHBoxContainer" type="VBoxContainer" parent="Viewfinder/DeadZoneHBoxContainer"] +unique_name_in_owner = true +clip_contents = true +layout_mode = 2 +size_flags_horizontal = 4 +mouse_filter = 2 +theme_override_constants/separation = 0 + +[node name="DeadZoneCenterTopPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneCenterHBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +mouse_filter = 2 +theme_override_styles/panel = ExtResource("2_uabt4") + +[node name="DeadZoneCenterCenterPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneCenterHBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 4 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_fle8t") + +[node name="DeadZoneCenterBottomPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneCenterHBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +mouse_filter = 2 +theme_override_styles/panel = ExtResource("2_uabt4") + +[node name="DeadZoneRightHBoxContainer" type="VBoxContainer" parent="Viewfinder/DeadZoneHBoxContainer"] +clip_contents = true +layout_mode = 2 +size_flags_horizontal = 3 +mouse_filter = 2 +theme_override_constants/separation = 0 + +[node name="DeadZoneRightTopPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneRightHBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +mouse_filter = 2 +theme_override_styles/panel = ExtResource("2_uabt4") + +[node name="DeadZoneRightCenterPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneRightHBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +mouse_filter = 2 +theme_override_styles/panel = ExtResource("2_uabt4") + +[node name="DeadZoneRightBottomPanel" type="Panel" parent="Viewfinder/DeadZoneHBoxContainer/DeadZoneRightHBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +mouse_filter = 2 +theme_override_styles/panel = ExtResource("2_uabt4") + +[node name="AspectRatioContainer" type="AspectRatioContainer" parent="Viewfinder"] +unique_name_in_owner = true +clip_contents = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +ratio = 1.77778 + +[node name="CameraViewportPanel" type="Panel" parent="Viewfinder/AspectRatioContainer"] +layout_mode = 2 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_xmo1t") + +[node name="TargetPoint" type="Panel" parent="Viewfinder/AspectRatioContainer/CameraViewportPanel"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -3.0 +offset_top = -3.0 +offset_right = 3.0 +offset_bottom = 3.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_q7vs4") + +[node name="NoSupportMsg" type="Label" parent="."] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -8.0 +offset_bottom = -8.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_fonts/font = ExtResource("3_li3i3") +theme_override_font_sizes/font_size = 24 +theme_override_styles/normal = SubResource("StyleBoxEmpty_iho1a") +text = "Control scenes are not supported" +horizontal_alignment = 1 +vertical_alignment = 1 +metadata/_edit_lock_ = true + +[node name="EmptyStateControl" type="Control" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +metadata/_edit_use_anchors_ = true +metadata/_edit_lock_ = true + +[node name="BGColorRect" type="ColorRect" parent="EmptyStateControl"] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) +metadata/_edit_lock_ = true + +[node name="VBoxContainer" type="VBoxContainer" parent="EmptyStateControl"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -200.0 +offset_top = -112.0 +offset_right = 200.0 +offset_bottom = 112.0 +grow_horizontal = 2 +grow_vertical = 2 +alignment = 1 + +[node name="EmptyStateIcon" type="TextureRect" parent="EmptyStateControl/VBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(0, 64) +layout_mode = 2 +texture = ExtResource("4_lcg1p") +expand_mode = 1 +stretch_mode = 5 + +[node name="EmptyStateText" type="RichTextLabel" parent="EmptyStateControl/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +theme_override_colors/default_color = Color(1, 1, 1, 1) +theme_override_fonts/normal_font = ExtResource("5_4jhax") +theme_override_fonts/bold_font = ExtResource("3_li3i3") +theme_override_font_sizes/normal_font_size = 24 +theme_override_font_sizes/bold_font_size = 24 +theme_override_styles/focus = SubResource("StyleBoxEmpty_obaj6") +theme_override_styles/normal = SubResource("StyleBoxEmpty_iho1a") +bbcode_enabled = true +text = "[center][b]NodeType[/b] Description [/center]" +fit_content = true + +[node name="AddNodeButton" type="Button" parent="EmptyStateControl/VBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(400, 54) +layout_mode = 2 +size_flags_horizontal = 4 +focus_mode = 0 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_fonts/font = ExtResource("3_li3i3") +theme_override_font_sizes/font_size = 24 +theme_override_styles/focus = SubResource("StyleBoxEmpty_4b76l") +theme_override_styles/hover = SubResource("StyleBoxFlat_yh38y") +theme_override_styles/pressed = SubResource("StyleBoxFlat_gci88") +theme_override_styles/normal = SubResource("StyleBoxFlat_fsxik") + +[node name="AddNodeTypeText" type="RichTextLabel" parent="EmptyStateControl/VBoxContainer/AddNodeButton"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = 9.0 +offset_bottom = -11.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_colors/default_color = Color(1, 1, 1, 1) +theme_override_fonts/normal_font = ExtResource("5_4jhax") +theme_override_fonts/bold_font = ExtResource("3_li3i3") +theme_override_font_sizes/normal_font_size = 24 +theme_override_font_sizes/bold_font_size = 24 +theme_override_styles/focus = SubResource("StyleBoxEmpty_g5wua") +theme_override_styles/normal = SubResource("StyleBoxEmpty_x4bx8") +bbcode_enabled = true +text = "[center]Add [img=32]res://addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg[/img] [b]{NodeType}[/b][/center]" +scroll_active = false + +[node name="PriorityOverrideButton" type="Button" parent="."] +unique_name_in_owner = true +visible = false +layout_mode = 1 +offset_left = 5.0 +offset_top = 5.0 +offset_right = 165.0 +offset_bottom = 57.0 +mouse_default_cursor_shape = 2 +theme_override_styles/focus = SubResource("StyleBoxEmpty_840sd") +theme_override_styles/hover = SubResource("StyleBoxFlat_ja3vm") +theme_override_styles/pressed = SubResource("StyleBoxFlat_mk273") +theme_override_styles/normal = SubResource("StyleBoxFlat_agqdu") +metadata/_edit_lock_ = true + +[node name="PriorityOverrideIcon" type="TextureRect" parent="PriorityOverrideButton"] +layout_mode = 1 +offset_left = 8.0 +offset_top = 4.0 +offset_right = 32.0 +offset_bottom = 28.0 +texture = ExtResource("6_ptuth") +expand_mode = 1 + +[node name="PriorityOverrideByLabel" type="Label" parent="PriorityOverrideButton"] +layout_mode = 0 +offset_left = 30.0 +offset_top = 1.0 +offset_right = 140.0 +offset_bottom = 24.0 +theme_override_fonts/font = ExtResource("3_li3i3") +theme_override_font_sizes/font_size = 14 +text = "OVERRIDDEN BY" +vertical_alignment = 1 + +[node name="PriorityOverrideNameLabel" type="Label" parent="PriorityOverrideButton"] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 6.0 +offset_top = 21.0 +offset_right = 153.0 +offset_bottom = 44.0 +theme_override_fonts/font = ExtResource("5_4jhax") +theme_override_font_sizes/font_size = 14 +text = "PCam_Name +" +vertical_alignment = 1 +text_overrun_behavior = 3 + +[node name="SizeLabel" type="Label" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_top = -11.5 +offset_right = 40.0 +offset_bottom = 11.5 +grow_vertical = 2 + +[node name="PCamHostList" type="VBoxContainer" parent="."] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = -1 +anchor_bottom = 1.0 +offset_top = 588.0 +grow_vertical = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +theme_override_constants/separation = -2 +alignment = 2 +script = ExtResource("7_kpij0") + +[node name="HostListButton" type="Button" parent="PCamHostList"] +unique_name_in_owner = true +custom_minimum_size = Vector2(40, 40) +layout_mode = 2 +size_flags_horizontal = 0 +theme_override_colors/icon_hover_pressed_color = Color(0.0784314, 0.109804, 0.129412, 1) +theme_override_colors/icon_hover_color = Color(0.0784314, 0.109804, 0.129412, 1) +theme_override_styles/focus = SubResource("StyleBoxEmpty_w002y") +theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_kq7gm") +theme_override_styles/hover = SubResource("StyleBoxFlat_ynag5") +theme_override_styles/pressed = SubResource("StyleBoxFlat_kq7gm") +theme_override_styles/normal = SubResource("StyleBoxFlat_q2svd") +icon = ExtResource("4_lcg1p") +expand_icon = true + +[node name="PanelContainer" type="PanelContainer" parent="PCamHostList"] +layout_mode = 2 +size_flags_vertical = 3 +theme = ExtResource("8_b4akn") + +[node name="ScrollContainer" type="ScrollContainer" parent="PCamHostList/PanelContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 3 +theme = ExtResource("8_b4akn") +horizontal_scroll_mode = 0 + +[node name="HostListContainer" type="VBoxContainer" parent="PCamHostList/PanelContainer/ScrollContainer"] +unique_name_in_owner = true +layout_mode = 2 +theme = ExtResource("8_b4akn") diff --git a/addons/phantom_camera/plugin.cfg b/addons/phantom_camera/plugin.cfg new file mode 100644 index 0000000..f52ffd5 --- /dev/null +++ b/addons/phantom_camera/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="Phantom Camera" +description="Control the movement and dynamically tween 2D & 3D cameras positions. Built for Godot 4. Inspired by Cinemachine." +author="Marcus Skov" +version="0.9.1.2" +script="plugin.gd" diff --git a/addons/phantom_camera/plugin.gd b/addons/phantom_camera/plugin.gd new file mode 100644 index 0000000..39ef25d --- /dev/null +++ b/addons/phantom_camera/plugin.gd @@ -0,0 +1,181 @@ +@tool +extends EditorPlugin + +#region Constants + +const PCAM_HOST: String = "PhantomCameraHost" +const PCAM_2D: String = "PhantomCamera2D" +const PCAM_3D: String = "PhantomCamera3D" +const PCAM_NOISE_EMITTER_2D: String = "PhantomCameraNoiseEmitter2D" +const PCAM_NOISE_EMITTER_3D: String = "PhantomCameraNoiseEmitter3D" + +const PCam3DPlugin: Script = preload("res://addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd") +const PCam3DNoiseEmitterPlugin: Script = preload("res://addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd") +const EditorPanel: PackedScene = preload("res://addons/phantom_camera/panel/editor.tscn") +const updater_constants: Script = preload("res://addons/phantom_camera/scripts/panel/updater/updater_constants.gd") +const PHANTOM_CAMERA_MANAGER: StringName = "PhantomCameraManager" + +#endregion + +#region Private Variables + +var _settings_show_jitter_tips: String = "phantom_camera/tips/show_jitter_tips" +var _settings_enable_editor_shortcut: String = "phantom_camera/general/enable_editor_shortcut" +var _settings_editor_shortcut: String = "phantom_camera/general/editor_shortcut" + +# TODO - Pending merge of https://github.com/godotengine/godot/pull/102889 - Should only support Godot version after the release that is featured in +#var _editor_shortcut: Shortcut = Shortcut.new() +#var _editor_shortcut_input: InputEventKey +#endregion + +#region Public Variables + +var pcam_3d_gizmo_plugin = PCam3DPlugin.new() +var pcam_3d_noise_emitter_gizmo_plugin = PCam3DNoiseEmitterPlugin.new() + +var editor_panel_instance: Control +var panel_button: Button +#var viewfinder_panel_instance + + +#endregion + +#region Private Functions + +func _enable_plugin() -> void: + print_rich("Phantom Camera documentation can be found at: [url=https://phantom-camera.dev]https://phantom-camera.dev[/url]") + if not Engine.has_singleton(PHANTOM_CAMERA_MANAGER): + add_autoload_singleton(PHANTOM_CAMERA_MANAGER, "res://addons/phantom_camera/scripts/managers/phantom_camera_manager.gd") + + +func _disable_plugin() -> void: + remove_autoload_singleton(PHANTOM_CAMERA_MANAGER) + + +func _enter_tree() -> void: + add_autoload_singleton(PHANTOM_CAMERA_MANAGER, "res://addons/phantom_camera/scripts/managers/phantom_camera_manager.gd") + + # Phantom Camera Nodes + add_custom_type(PCAM_2D, "Node2D", preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd"), preload("res://addons/phantom_camera/icons/phantom_camera_2d.svg")) + add_custom_type(PCAM_3D, "Node3D", preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd"), preload("res://addons/phantom_camera/icons/phantom_camera_2d.svg")) + add_custom_type(PCAM_HOST, "Node", preload("res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd"), preload("res://addons/phantom_camera/icons/phantom_camera_2d.svg")) + add_custom_type(PCAM_NOISE_EMITTER_2D, "Node2D", preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd"), preload("res://addons/phantom_camera/icons/phantom_camera_noise_emitter_2d.svg")) + add_custom_type(PCAM_NOISE_EMITTER_3D, "Node3D", preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd"), preload("res://addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg")) + + # Phantom Camera 3D Gizmo + add_node_3d_gizmo_plugin(pcam_3d_gizmo_plugin) + add_node_3d_gizmo_plugin(pcam_3d_noise_emitter_gizmo_plugin) + + var setting_updater_mode: String + var setting_updater_mode_default: int + if FileAccess.file_exists("res://dev_scenes/3d/dev_scene_3d.tscn"): # For forks + setting_updater_mode = "Off, Console Output" + setting_updater_mode_default = 1 + else: # For end-users + setting_updater_mode = "Off, Console Output, Updater Window" + setting_updater_mode_default = 2 + + if not ProjectSettings.has_setting(updater_constants.setting_updater_mode): + ProjectSettings.set_setting(updater_constants.setting_updater_mode, setting_updater_mode_default) + ProjectSettings.add_property_info({ + "name": updater_constants.setting_updater_mode, + "type": TYPE_INT, + "hint": PROPERTY_HINT_ENUM, + "hint_string": setting_updater_mode, + }) + ProjectSettings.set_initial_value(updater_constants.setting_updater_mode, setting_updater_mode_default) + ProjectSettings.set_as_basic(updater_constants.setting_updater_mode, true) + + + ## Setting for enabling / disabling Jitter tips in the Output + if not ProjectSettings.has_setting(_settings_show_jitter_tips): + ProjectSettings.set_setting(_settings_show_jitter_tips, true) + ProjectSettings.add_property_info({ + "name": _settings_show_jitter_tips, + "type": TYPE_BOOL, + }) + ProjectSettings.set_initial_value(_settings_show_jitter_tips, true) + ProjectSettings.set_as_basic(_settings_show_jitter_tips, true) + + +# TODO - Pending merge of https://github.com/godotengine/godot/pull/102889 - Should only support Godot version after this release +# if not ProjectSettings.has_setting(_settings_enable_editor_shortcut): +# ProjectSettings.set_setting(_settings_enable_editor_shortcut, false) +# ProjectSettings.set_initial_value(_settings_enable_editor_shortcut, false) + +# TODO - Pending merge of https://github.com/godotengine/godot/pull/102889 - Should only support Godot version after this release +# _viewfinder_shortcut_default.events = [editor_shortcut] +# if ProjectSettings.get_setting(_settings_enable_editor_shortcut): +# if not ProjectSettings.has_setting(_settings_editor_shortcut): +# ProjectSettings.set_setting(_settings_editor_shortcut, _editor_shortcut) +# ProjectSettings.set_initial_value(_settings_editor_shortcut, _editor_shortcut) + + + # TODO - Should be disabled unless in editor + # Viewfinder + editor_panel_instance = EditorPanel.instantiate() + editor_panel_instance.editor_plugin = self + panel_button = add_control_to_bottom_panel(editor_panel_instance, "Phantom Camera") + panel_button.toggled.connect(_btn_toggled) + if panel_button.toggle_mode: _btn_toggled(true) + + scene_changed.connect(editor_panel_instance.viewfinder.scene_changed) + scene_changed.connect(_scene_changed) + + +func _exit_tree() -> void: + panel_button.toggled.disconnect(_btn_toggled) + scene_changed.disconnect(editor_panel_instance.viewfinder.scene_changed) + scene_changed.disconnect(_scene_changed) + + remove_control_from_bottom_panel(editor_panel_instance) + editor_panel_instance.queue_free() + + remove_node_3d_gizmo_plugin(pcam_3d_gizmo_plugin) + remove_node_3d_gizmo_plugin(pcam_3d_noise_emitter_gizmo_plugin) + + remove_custom_type(PCAM_2D) + remove_custom_type(PCAM_3D) + remove_custom_type(PCAM_HOST) + remove_custom_type(PCAM_NOISE_EMITTER_2D) + remove_custom_type(PCAM_NOISE_EMITTER_3D) + + remove_autoload_singleton(PHANTOM_CAMERA_MANAGER) +# if get_tree().root.get_node_or_null(String(PHANTOM_CAMERA_MANAGER)): +# remove_autoload_singleton(PHANTOM_CAMERA_MANAGER) + + +func _btn_toggled(toggled_on: bool): + editor_panel_instance.viewfinder.set_visibility(toggled_on) +# if toggled_on: +# editor_panel_instance.viewfinder.viewfinder_visible = true +# editor_panel_instance.viewfinder.visibility_check() +# else: +# editor_panel_instance.viewfinder.viewfinder_visible = false + +func _make_visible(visible): + if editor_panel_instance: + editor_panel_instance.set_visible(visible) + +## TODO - Signal can be added directly to the editor_panel with the changes in Godot 4.5 (https://github.com/godotengine/godot/pull/102986) +func _scene_changed(scene_root: Node) -> void: + editor_panel_instance.viewfinder.scene_changed(scene_root) + +# TODO - Pending merge of https://github.com/godotengine/godot/pull/102889 - Should only support Godot version after this release +#func _set_editor_shortcut() -> InputEventKey: +# var shortcut: InputEventKey = InputEventKey.new() +# shortcut.keycode = 67 # Key = C +# shortcut.alt_pressed = true +# return shortcut + +#endregion + + +#region Public Functions + +func get_version() -> String: + var config: ConfigFile = ConfigFile.new() + config.load(get_script().resource_path.get_base_dir() + "/plugin.cfg") + return config.get_value("plugin", "version") + +#endregion diff --git a/addons/phantom_camera/plugin.gd.uid b/addons/phantom_camera/plugin.gd.uid new file mode 100644 index 0000000..1c23477 --- /dev/null +++ b/addons/phantom_camera/plugin.gd.uid @@ -0,0 +1 @@ +uid://c7g41in1osxi6 diff --git a/addons/phantom_camera/scripts/gizmos/custom_gizmo.gd b/addons/phantom_camera/scripts/gizmos/custom_gizmo.gd new file mode 100644 index 0000000..08d7275 --- /dev/null +++ b/addons/phantom_camera/scripts/gizmos/custom_gizmo.gd @@ -0,0 +1,91 @@ +extends EditorNode3DGizmoPlugin +class_name CustomPluginGizmo + +var _gizmo_name +var gizmo_name: String: set = set_gizmo_name + +var _gizmo_icon: Texture2D +var gizmo_icon: Texture2D: set = set_gizmo_icon + +var _gizmo_spatial_script: Script +var gizmo_spatial_script: Script: set = set_gizmo_spatial_script + +var _gizmo_scale: float = 0.035 + + +func set_gizmo_name(name: String) -> void: + _gizmo_name = name + + +func set_gizmo_icon(icon: Texture2D) -> void: + _gizmo_icon = icon + + +func set_gizmo_spatial_script(script: Script) -> void: + _gizmo_spatial_script = script + + +func _get_gizmo_name() -> String: + return _gizmo_name + +func _has_gizmo(spatial: Node3D): + return spatial.get_script() == _gizmo_spatial_script + + +func _init() -> void: + create_icon_material(_gizmo_name, _gizmo_icon, false, Color.WHITE) + create_material("main", Color8(252, 127, 127, 255)) + + +func _draw_frustum() -> PackedVector3Array: + var lines = PackedVector3Array() + + var dis: float = 0.25 + var width: float = dis * 1.25 + var len: float = dis * 1.5 + + # Straight line +# lines.push_back(Vector3(0, 0, 0)) +# lines.push_back(Vector3(0, 0, -len)) + + # Trapezoid + lines.push_back(Vector3(0, 0, 0)) + lines.push_back(Vector3(-width, dis, -len)) + + lines.push_back(Vector3(0, 0, 0)) + lines.push_back(Vector3(width, dis, -len)) + + lines.push_back(Vector3(0, 0, 0)) + lines.push_back(Vector3(-width, -dis, -len)) + + lines.push_back(Vector3(0, 0, 0)) + lines.push_back(Vector3(width, -dis, -len)) + + # Square + ## Left + lines.push_back(Vector3(-width, dis, -len)) + lines.push_back(Vector3(-width, -dis, -len)) + + ## Bottom + lines.push_back(Vector3(-width, -dis, -len)) + lines.push_back(Vector3(width, -dis, -len)) + + ## Right + lines.push_back(Vector3(width, -dis, -len)) + lines.push_back(Vector3(width, dis, -len)) + + ## Top + lines.push_back(Vector3(width, dis, -len)) + lines.push_back(Vector3(-width, dis, -len)) + + return lines + + +func _redraw(gizmo: EditorNode3DGizmo): + gizmo.clear() + + var icon: Material = get_material(_gizmo_name, gizmo) + gizmo.add_unscaled_billboard(icon, _gizmo_scale) + + var material = get_material("main", gizmo) + gizmo.add_lines(_draw_frustum(), material) diff --git a/addons/phantom_camera/scripts/gizmos/custom_gizmo.gd.uid b/addons/phantom_camera/scripts/gizmos/custom_gizmo.gd.uid new file mode 100644 index 0000000..6994efc --- /dev/null +++ b/addons/phantom_camera/scripts/gizmos/custom_gizmo.gd.uid @@ -0,0 +1 @@ +uid://dtl7jcjp6c17i diff --git a/addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd b/addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd new file mode 100644 index 0000000..c992320 --- /dev/null +++ b/addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd @@ -0,0 +1,12 @@ +extends CustomPluginGizmo + +var _spatial_script: Script = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd") +var _icon: Texture2D = preload("res://addons/phantom_camera/icons/phantom_camera_gizmo.svg") + + +func _init() -> void: + set_gizmo_name("PhantomCamera") + set_gizmo_spatial_script(_spatial_script) + set_gizmo_icon(_icon) + + super() diff --git a/addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd.uid b/addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd.uid new file mode 100644 index 0000000..06b8ab6 --- /dev/null +++ b/addons/phantom_camera/scripts/gizmos/phantom_camera_gizmo_plugin_3d.gd.uid @@ -0,0 +1 @@ +uid://cbq5f2pi5mesy diff --git a/addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd b/addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd new file mode 100644 index 0000000..3dd4d3e --- /dev/null +++ b/addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd @@ -0,0 +1,29 @@ +extends EditorNode3DGizmoPlugin + +var _spatial_script: Script = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd") +var _gizmo_icon: Texture2D = preload("res://addons/phantom_camera/icons/phantom_camera_noise_emitter_gizmo.svg") + +var _gizmo_name: StringName = "PhantomCameraNoiseEmitter" + +func _init() -> void: + create_material("main", Color8(252, 127, 127, 255)) + create_handle_material("handles") + create_icon_material(_gizmo_name, _gizmo_icon, false, Color.WHITE) + + +func _has_gizmo(node: Node3D): + return node.get_script() == _spatial_script + + +func _get_gizmo_name() -> String: + return _gizmo_name + + +func _redraw(gizmo: EditorNode3DGizmo): + gizmo.clear() + + var icon: Material = get_material(_gizmo_name, gizmo) + gizmo.add_unscaled_billboard(icon, 0.035) + + #var material = get_material("main", gizmo) + #gizmo.add_lines(_draw_frustum(), material) diff --git a/addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd.uid b/addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd.uid new file mode 100644 index 0000000..2b93b6c --- /dev/null +++ b/addons/phantom_camera/scripts/gizmos/phantom_camera_noise_emitter_gizmo_plugin_3d.gd.uid @@ -0,0 +1 @@ +uid://dddokcd2ug05i diff --git a/addons/phantom_camera/scripts/managers/phantom_camera_manager.gd b/addons/phantom_camera/scripts/managers/phantom_camera_manager.gd new file mode 100644 index 0000000..b6edb7c --- /dev/null +++ b/addons/phantom_camera/scripts/managers/phantom_camera_manager.gd @@ -0,0 +1,150 @@ +@tool +extends Node + +const _CONSTANTS = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") + +#region Signals + +# Noise +signal noise_2d_emitted(noise_output: Transform2D, emitter_layer: int) +signal noise_3d_emitted(noise_output: Transform3D, emitter_layer: int) + +# PCam Host +signal pcam_host_added_to_scene(pcam_host: PhantomCameraHost) +signal pcam_host_removed_from_scene(pcam_host: PhantomCameraHost) + +# PCam +signal pcam_added_to_scene(pcam: Node) +signal pcam_removed_from_scene(pcam: Node) + +# Priority +signal pcam_priority_changed(pcam: Node) +signal pcam_visibility_changed(pcam: Node) + +signal pcam_teleport(pcam: Node) + +# Limit (2D) +signal limit_2d_changed(side: int, limit: int) +signal draw_limit_2d(enabled: bool) + +# Camera3DResource (3D) +signal camera_3d_resource_changed(property: String, value: Variant) + +# Viewfinder Signals +signal viewfinder_pcam_host_switch(pcam_host: PhantomCameraHost) +signal pcam_priority_override(pcam: Node, shouldOverride: bool) +signal pcam_dead_zone_changed(pcam: Node) +signal pcam_host_layer_changed(pcam: Node) + +#endregion + +#region Private Variables + +var _phantom_camera_host_list: Array[PhantomCameraHost] +var _phantom_camera_2d_list: Array[PhantomCamera2D] +var _phantom_camera_3d_list: Array[Node] ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. + +#endregion + +#region Public Variables + +var phantom_camera_hosts: Array[PhantomCameraHost]: + get: + return _phantom_camera_host_list + +var phantom_camera_2ds: Array[PhantomCamera2D]: + get: + return _phantom_camera_2d_list + +var phantom_camera_3ds: Array[Node]: ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. + get: + return _phantom_camera_3d_list + + +var screen_size: Vector2i + +#endregion + +#region Private Functions + +func _enter_tree() -> void: + if not Engine.has_singleton(_CONSTANTS.PCAM_MANAGER_NODE_NAME): + Engine.register_singleton(_CONSTANTS.PCAM_MANAGER_NODE_NAME, self) + Engine.physics_jitter_fix = 0 + + +func _ready() -> void: + # Setting default screensize + screen_size = Vector2i( + ProjectSettings.get_setting("display/window/size/viewport_width"), + ProjectSettings.get_setting("display/window/size/viewport_height") + ) + + # For editor + if Engine.is_editor_hint(): + ProjectSettings.settings_changed.connect(func(): + screen_size = Vector2i( + ProjectSettings.get_setting("display/window/size/viewport_width"), + ProjectSettings.get_setting("display/window/size/viewport_height") + ) + ) + # For runtime + else: + get_tree().get_root().size_changed.connect(func(): + screen_size = get_viewport().get_visible_rect().size + ) + +#endregion + +#region Public Functions + +func pcam_host_added(caller: Node) -> void: + if is_instance_of(caller, PhantomCameraHost): + _phantom_camera_host_list.append(caller) + pcam_host_added_to_scene.emit(caller) + else: + printerr("This method can only be called from a PhantomCameraHost node") + +func pcam_host_removed(caller: Node) -> void: + if is_instance_of(caller, PhantomCameraHost): + _phantom_camera_host_list.erase(caller) + pcam_host_removed_from_scene.emit(caller) + else: + printerr("This method can only be called from a PhantomCameraHost node") + + +func pcam_added(caller) -> void: + if is_instance_of(caller, PhantomCamera2D): + _phantom_camera_2d_list.append(caller) + pcam_added_to_scene.emit(caller) + elif caller.is_class("PhantomCamera3D"): ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. + _phantom_camera_3d_list.append(caller) + pcam_added_to_scene.emit(caller) + +func pcam_removed(caller) -> void: + if is_instance_of(caller, PhantomCamera2D): + _phantom_camera_2d_list.erase(caller) + pcam_removed_from_scene.emit(caller) + elif caller.is_class("PhantomCamera3D"): ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. + _phantom_camera_3d_list.erase(caller) + pcam_removed_from_scene.emit(caller) + else: + printerr("This method can only be called from a PhantomCamera node") + + +func get_phantom_camera_hosts() -> Array[PhantomCameraHost]: + return _phantom_camera_host_list + +func get_phantom_camera_2ds() -> Array[PhantomCamera2D]: + return _phantom_camera_2d_list + +func get_phantom_camera_3ds() -> Array: ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. + return _phantom_camera_3d_list + + +func scene_changed() -> void: + _phantom_camera_2d_list.clear() + _phantom_camera_3d_list.clear() + _phantom_camera_host_list.clear() + +#endregion diff --git a/addons/phantom_camera/scripts/managers/phantom_camera_manager.gd.uid b/addons/phantom_camera/scripts/managers/phantom_camera_manager.gd.uid new file mode 100644 index 0000000..ea18023 --- /dev/null +++ b/addons/phantom_camera/scripts/managers/phantom_camera_manager.gd.uid @@ -0,0 +1 @@ +uid://duq6jhf6unyis diff --git a/addons/phantom_camera/scripts/panel/editor.gd b/addons/phantom_camera/scripts/panel/editor.gd new file mode 100644 index 0000000..a10018c --- /dev/null +++ b/addons/phantom_camera/scripts/panel/editor.gd @@ -0,0 +1,23 @@ +@tool +extends VBoxContainer + +#region Onready + +@onready var updater: Control = %UpdateButton +@onready var viewfinder: Control = %ViewfinderPanel + +#endregion + +#region Public Variables + +var editor_plugin: EditorPlugin + +#endregion + + +#region Private Functions + +func _ready(): + updater.editor_plugin = editor_plugin + +#endregion diff --git a/addons/phantom_camera/scripts/panel/editor.gd.uid b/addons/phantom_camera/scripts/panel/editor.gd.uid new file mode 100644 index 0000000..6be368c --- /dev/null +++ b/addons/phantom_camera/scripts/panel/editor.gd.uid @@ -0,0 +1 @@ +uid://cgfwg3paxkj2x diff --git a/addons/phantom_camera/scripts/panel/updater/download_update_panel.gd b/addons/phantom_camera/scripts/panel/updater/download_update_panel.gd new file mode 100644 index 0000000..b19beb9 --- /dev/null +++ b/addons/phantom_camera/scripts/panel/updater/download_update_panel.gd @@ -0,0 +1,162 @@ +####################################################################### +# Credit goes to the Dialogue Manager plugin for this script +# Check it out at: https://github.com/nathanhoad/godot_dialogue_manager +####################################################################### + +@tool +extends Control + +#region Constants + +const TEMP_FILE_NAME = "user://temp.zip" + +#endregion + + +#region Signals + +signal failed() +signal updated(updated_to_version: String) + +#endregion + + +#region @onready + +#@onready var logo: TextureRect = %Logo +@onready var _download_verion: Label = %DownloadVersionLabel +@onready var _download_http_request: HTTPRequest = %DownloadHTTPRequest +@onready var _download_button: Button = %DownloadButton +@onready var _download_button_bg: NinePatchRect = %DownloadButtonBG +@onready var _download_label: Label = %UpdateLabel + +@onready var _breaking_label: Label = %BreakingLabel +@onready var _breaking_margin_container: MarginContainer = %BreakingMarginContainer +@onready var _breaking_options_button: OptionButton = %BreakingOptionButton +#@onready var current_version_label: Label = %CurrentVersionLabel + +#endregion + + +#region Variables + +# Todo - For 4.2 upgrade - Shows current version +var _download_dialogue: AcceptDialog +var _button_texture_default: Texture2D = load("res://addons/phantom_camera/assets/PhantomCameraBtnPrimaryDefault.png") +var _button_texture_hover: Texture2D = load("res://addons/phantom_camera/assets/PhantomCameraBtnPrimaryHover.png") + +var next_version_release: Dictionary: + set(value): + next_version_release = value + _download_verion.text = "%s update is available for download" % value.tag_name.substr(1) + # Todo - For 4.2 upgrade + #current_version_label.text = "Current version is " + editor_plugin.get_version() + get: + return next_version_release + +var _breaking_window_height: float = 520 +var _breaking_window_height_update: float = 600 + +#endregion + + +#region Private Functions + +func _ready() -> void: + _download_http_request.request_completed.connect(_on_http_request_request_completed) + _download_button.pressed.connect(_on_download_button_pressed) + _download_button.mouse_entered.connect(_on_mouse_entered) + _download_button.mouse_exited.connect(_on_mouse_exited) + + _breaking_label.hide() + _breaking_margin_container.hide() + _breaking_options_button.hide() + + _breaking_options_button.item_selected.connect(_on_item_selected) + + +func _on_item_selected(index: int) -> void: + if index == 1: + _download_button.show() + _download_dialogue.size = Vector2(_download_dialogue.size.x, _breaking_window_height_update) + else: + _download_button.hide() + _download_dialogue.size = Vector2(_download_dialogue.size.x, _breaking_window_height) + + +func _on_download_button_pressed() -> void: + _download_http_request.request(next_version_release.zipball_url) + _download_button.disabled = true + _download_label.text = "Downloading..." + _download_button_bg.hide() + + +func _on_mouse_entered() -> void: + _download_button_bg.set_texture(_button_texture_hover) + + +func _on_mouse_exited() -> void: + _download_button_bg.set_texture(_button_texture_default) + + +func _on_http_request_request_completed(result: int, response_code: int, headers: PackedStringArray, body: PackedByteArray) -> void: + if result != HTTPRequest.RESULT_SUCCESS: + failed.emit() + return + + # Save the downloaded zip + var zip_file: FileAccess = FileAccess.open(TEMP_FILE_NAME, FileAccess.WRITE) + zip_file.store_buffer(body) + zip_file.close() + + OS.move_to_trash(ProjectSettings.globalize_path("res://addons/phantom_camera")) + + var zip_reader: ZIPReader = ZIPReader.new() + zip_reader.open(TEMP_FILE_NAME) + var files: PackedStringArray = zip_reader.get_files() + + var base_path = files[1] + # Remove archive folder + files.remove_at(0) + # Remove assets folder + files.remove_at(0) + + for path in files: + var new_file_path: String = path.replace(base_path, "") + if path.ends_with("/"): + DirAccess.make_dir_recursive_absolute("res://addons/%s" % new_file_path) + else: + var file: FileAccess = FileAccess.open("res://addons/%s" % new_file_path, FileAccess.WRITE) + file.store_buffer(zip_reader.read_file(path)) + + zip_reader.close() + DirAccess.remove_absolute(TEMP_FILE_NAME) + + updated.emit(next_version_release.tag_name.substr(1)) + + +func _on_notes_button_pressed() -> void: + OS.shell_open(next_version_release.html_url) + +#endregion + +#region Public Functions + +func show_updater_warning(next_version_number: Array, current_version_number: Array) -> void: + var current_version_number_0: int = current_version_number[0] as int + var current_version_number_1: int = current_version_number[1] as int + + var next_version_number_0: int = next_version_number[0] as int # Major release number in the new release + var next_version_number_1: int = next_version_number[1] as int # Minor release number in the new release + + if next_version_number_0 > current_version_number_0 or \ + next_version_number_1 > current_version_number_1: + _breaking_label.show() + _breaking_margin_container.show() + _breaking_options_button.show() + _download_button.hide() + + _download_dialogue = get_parent() + _download_dialogue.size = Vector2(_download_dialogue.size.x, _breaking_window_height) + +#endregion diff --git a/addons/phantom_camera/scripts/panel/updater/download_update_panel.gd.uid b/addons/phantom_camera/scripts/panel/updater/download_update_panel.gd.uid new file mode 100644 index 0000000..ff50946 --- /dev/null +++ b/addons/phantom_camera/scripts/panel/updater/download_update_panel.gd.uid @@ -0,0 +1 @@ +uid://cjblcocen12r3 diff --git a/addons/phantom_camera/scripts/panel/updater/update_button.gd b/addons/phantom_camera/scripts/panel/updater/update_button.gd new file mode 100644 index 0000000..686535c --- /dev/null +++ b/addons/phantom_camera/scripts/panel/updater/update_button.gd @@ -0,0 +1,177 @@ +####################################################################### +# Credit goes to the Dialogue Manager plugin for this script +# Check it out at: https://github.com/nathanhoad/godot_dialogue_manager +####################################################################### + +@tool +extends Button + +#region Constants + +const REMOTE_RELEASE_URL: StringName = "https://api.github.com/repos/ramokz/phantom-camera/releases" +const UPDATER_CONSTANTS := preload("res://addons/phantom_camera/scripts/panel/updater/updater_constants.gd") + +#endregion + + +#region @onready + +@onready var http_request: HTTPRequest = %HTTPRequest +@onready var download_dialog: AcceptDialog = %DownloadDialog +@onready var download_update_panel: Control = %DownloadUpdatePanel +@onready var needs_reload_dialog: AcceptDialog = %NeedsReloadDialog +@onready var update_failed_dialog: AcceptDialog = %UpdateFailedDialog + +#endregion + + +#region Variables + +# The main editor plugin +var editor_plugin: EditorPlugin + +var needs_reload: bool = false + +# A lambda that gets called just before refreshing the plugin. Return false to stop the reload. +var on_before_refresh: Callable = func(): return true + +#endregion + + +#region Private Functions + +func _ready() -> void: + hide() + + # Check for updates on GitHub Releases + check_for_update() + + pressed.connect(_on_update_button_pressed) + http_request.request_completed.connect(_request_request_completed) + download_update_panel.updated.connect(_on_download_update_panel_updated) + needs_reload_dialog.confirmed.connect(_on_needs_reload_dialog_confirmed) + + +func _request_request_completed(result: int, response_code: int, headers: PackedStringArray, body: PackedByteArray) -> void: + if result != HTTPRequest.RESULT_SUCCESS: return + + if not editor_plugin: return + var current_version: String = editor_plugin.get_version() + + # Work out the next version from the releases information on GitHub + var response: Array = JSON.parse_string(body.get_string_from_utf8()) + if typeof(response) != TYPE_ARRAY: return + + # GitHub releases are in order of creation, not order of version + var versions: Array = response.filter(func(release): + var version: String = release.tag_name.substr(1) + return version_to_number(version) > version_to_number(current_version) + ) + + if versions.size() > 0: + if ProjectSettings.get_setting(UPDATER_CONSTANTS.setting_updater_mode) == 1: ## For console output mode + + print_rich(" +[color=#3AB99A] ********[/color] +[color=#3AB99A] ************[/color] +[color=#3AB99A]**************[/color] +[color=#3AB99A]****** *** *[/color] +[color=#3AB99A]****** ***[/color] +[color=#3AB99A]********** *****[/color] +[color=#3AB99A]******** ***********[/color] +[color=#3AB99A]******** *********** **[/color] +[color=#3AB99A]********* **************[/color] +[color=#3AB99A]********** *************[/color] +[color=#3AB99A]** ** ** ******* **[/color] +[font_size=18][b]New Phantom Camera version is available[/b][/font_size]") + + if FileAccess.file_exists("res://dev_scenes/3d/dev_scene_3d.tscn"): + print_rich("[font_size=14][color=#EAA15E][b]As you're using a fork of the project, you will need to update it manually[/b][/color][/font_size]") + + print_rich("[font_size=12]If you don't want to see this message, then it can be disabled inside:\n[code]Project Settings/Phantom Camera/Updater/Show New Release Info on Editor Launch in Output[/code]") + + return + + download_update_panel.next_version_release = versions[0] + download_update_panel.show_updater_warning( + versions[0].tag_name.substr(1).split("."), + current_version.split(".") + ) + _set_scale() + editor_plugin.panel_button.add_theme_color_override("font_color", Color("#3AB99A")) + editor_plugin.panel_button.icon = load("res://addons/phantom_camera/icons/phantom_camera_updater_panel_icon.svg") + editor_plugin.panel_button.add_theme_color_override("icon_normal_color", Color("#3AB99A")) + show() + + +func _on_update_button_pressed() -> void: + if needs_reload: + var will_refresh = on_before_refresh.call() + if will_refresh: + EditorInterface.restart_editor(true) + else: + _set_scale() + download_dialog.popup_centered() + + +func _set_scale() -> void: + var scale: float = EditorInterface.get_editor_scale() + download_dialog.min_size = Vector2(300, 250) * scale + + +func _on_download_dialog_close_requested() -> void: + download_dialog.hide() + + +func _on_download_update_panel_updated(updated_to_version: String) -> void: + download_dialog.hide() + + needs_reload_dialog.dialog_text = "Reload to finish update" + needs_reload_dialog.ok_button_text = "Reload" + needs_reload_dialog.cancel_button_text = "Cancel" + needs_reload_dialog.popup_centered() + + needs_reload = true + text = "Reload Project" + + +func _on_download_update_panel_failed() -> void: + download_dialog.hide() + update_failed_dialog.dialog_text = "Updated Failed" + update_failed_dialog.popup_centered() + + +func _on_needs_reload_dialog_confirmed() -> void: + EditorInterface.restart_editor(true) + + +func _on_timer_timeout() -> void: + if not needs_reload: + check_for_update() + +#endregion + + +#region Public Functions + +# Convert a version number to an actually comparable number +func version_to_number(version: String) -> int: + var regex = RegEx.new() + regex.compile("[a-zA-Z]+") + if regex.search(str(version)): return 0 + + var bits = version.split(".") + var version_bit: int + var multiplier: int = 10000 + for i in bits.size(): + version_bit += bits[i].to_int() * multiplier / (10 ** (i)) + + return version_bit + + +func check_for_update() -> void: + if ProjectSettings.get_setting(UPDATER_CONSTANTS.setting_updater_mode) == 0: return + + http_request.request(REMOTE_RELEASE_URL) + +#endregion diff --git a/addons/phantom_camera/scripts/panel/updater/update_button.gd.uid b/addons/phantom_camera/scripts/panel/updater/update_button.gd.uid new file mode 100644 index 0000000..cb88ddc --- /dev/null +++ b/addons/phantom_camera/scripts/panel/updater/update_button.gd.uid @@ -0,0 +1 @@ +uid://bwc42i46603qn diff --git a/addons/phantom_camera/scripts/panel/updater/updater_constants.gd b/addons/phantom_camera/scripts/panel/updater/updater_constants.gd new file mode 100644 index 0000000..94ac2ad --- /dev/null +++ b/addons/phantom_camera/scripts/panel/updater/updater_constants.gd @@ -0,0 +1,8 @@ +extends RefCounted + +# Plugin Project Settings Sections +const setting_phantom_camera: StringName = "phantom_camera/" +const setting_updater_name: StringName = setting_phantom_camera + "updater/" + +# Updater Settings +const setting_updater_mode: StringName = setting_updater_name + "updater_mode" diff --git a/addons/phantom_camera/scripts/panel/updater/updater_constants.gd.uid b/addons/phantom_camera/scripts/panel/updater/updater_constants.gd.uid new file mode 100644 index 0000000..1f86170 --- /dev/null +++ b/addons/phantom_camera/scripts/panel/updater/updater_constants.gd.uid @@ -0,0 +1 @@ +uid://c8qkbc38waor2 diff --git a/addons/phantom_camera/scripts/panel/viewfinder/host_list.gd b/addons/phantom_camera/scripts/panel/viewfinder/host_list.gd new file mode 100644 index 0000000..662e598 --- /dev/null +++ b/addons/phantom_camera/scripts/panel/viewfinder/host_list.gd @@ -0,0 +1,112 @@ +@tool +extends VBoxContainer + +#region Constants + +const _constants := preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") +const _host_list_item: PackedScene = preload("res://addons/phantom_camera/panel/viewfinder/host_list/host_list_item.tscn") + +#endregion + +signal pcam_host_removed(pcam_host: PhantomCameraHost) + +@onready var _host_list_button: Button = %HostListButton +@onready var _host_list_scroll_container: ScrollContainer = %ScrollContainer +@onready var _host_list_item_container: VBoxContainer = %HostListContainer + +var _host_list_open: bool = false + +var _bottom_offset_value: float + +var _pcam_host_list: Array[PhantomCameraHost] +var _pcam_manager: Node + +var _viewfinder_panel: Control + +#region Private Functions + +func _ready() -> void: + _host_list_button.pressed.connect(_host_list_button_pressed) + if Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): + _pcam_manager = Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME) + _pcam_manager.pcam_host_removed_from_scene.connect(_remove_pcam_host) + + if not get_parent() is Control: return # To prevent errors when opening the scene on its own + _viewfinder_panel = get_parent() + _viewfinder_panel.resized.connect(_set_offset_top) + + _host_list_item_container.resized.connect(_set_offset_top) + + +func _set_offset_top() -> void: + offset_top = _set_host_list_size() + + +func _host_list_button_pressed() -> void: + _host_list_open = !_host_list_open + + var tween: Tween = create_tween() + var max_duration: float = 0.6 + + # 300 being the minimum size of the viewfinder's height + var duration: float = clampf( + max_duration / (300 / _host_list_item_container.size.y), + 0.3, + max_duration) + + tween.tween_property(self, "offset_top", _set_host_list_size(), duration)\ + .set_ease(Tween.EASE_OUT)\ + .set_trans(Tween.TRANS_QUINT) + + +func _set_host_list_size() -> float: + if not _host_list_open: + return clampf( + _viewfinder_panel.size.y - \ + _host_list_item_container.size.y - \ + _host_list_button.size.y - 20, + 0, + INF + ) + else: + return (_viewfinder_panel.size.y - _host_list_button.size.y / 2) + + +func _remove_pcam_host(pcam_host: PhantomCameraHost) -> void: + if _pcam_host_list.has(pcam_host): + _pcam_host_list.erase(pcam_host) + + var freed_pcam_host: Control + for host_list_item_instance in _host_list_item_container.get_children(): + if not host_list_item_instance.pcam_host == pcam_host: continue + freed_pcam_host = host_list_item_instance + host_list_item_instance.queue_free() + +#endregion + +#region Public Functions + +func add_pcam_host(pcam_host: PhantomCameraHost, is_default: bool) -> void: + if _pcam_host_list.has(pcam_host): return + + _pcam_host_list.append(pcam_host) + + var host_list_item_instance: PanelContainer = _host_list_item.instantiate() + var switch_pcam_host_button: Button = host_list_item_instance.get_node("%SwitchPCamHost") + if is_default: switch_pcam_host_button.button_pressed = true + + if not pcam_host.tree_exiting.is_connected(_remove_pcam_host): + pcam_host.tree_exiting.connect(_remove_pcam_host.bind(pcam_host)) + + host_list_item_instance.pcam_host = pcam_host + + _host_list_item_container.add_child(host_list_item_instance) + + +func clear_pcam_host_list() -> void: + _pcam_host_list.clear() + + for host_list_item_instance in _host_list_item_container.get_children(): + host_list_item_instance.queue_free() + +#endregion diff --git a/addons/phantom_camera/scripts/panel/viewfinder/host_list.gd.uid b/addons/phantom_camera/scripts/panel/viewfinder/host_list.gd.uid new file mode 100644 index 0000000..6923d3e --- /dev/null +++ b/addons/phantom_camera/scripts/panel/viewfinder/host_list.gd.uid @@ -0,0 +1 @@ +uid://c84cxry3t35ny diff --git a/addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd b/addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd new file mode 100644 index 0000000..5707974 --- /dev/null +++ b/addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd @@ -0,0 +1,58 @@ +@tool +extends Control + +const button_group_resource: ButtonGroup = preload("res://addons/phantom_camera/panel/viewfinder/host_list/host_list_item_group.tres") +const _constants = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") + +@onready var select_pcam_host: Button = %SelectPCamHost +@onready var switch_pcam_host: Button = %SwitchPCamHost + +var pcam_host: PhantomCameraHost: + set(value): + pcam_host = value + if not is_instance_valid(value): return + if not pcam_host.renamed.is_connected(_rename_pcam_host): + pcam_host.renamed.connect(_rename_pcam_host) + pcam_host.has_error.connect(_pcam_host_has_error) + get: + return pcam_host + +var _pcam_manager: Node + +#region Private fucntions + +func _ready() -> void: + switch_pcam_host.button_group = button_group_resource + select_pcam_host.pressed.connect(_select_pcam) + switch_pcam_host.pressed.connect(_switch_pcam_host) + + if not is_instance_valid(pcam_host): return + switch_pcam_host.text = pcam_host.name + + _pcam_host_has_error() + + +func _pcam_host_has_error() -> void: + if pcam_host.show_warning: + %ErrorPCamHost.visible = true + else: + %ErrorPCamHost.visible = false + + +func _rename_pcam_host() -> void: + switch_pcam_host.text = pcam_host.name + + +func _select_pcam() -> void: + EditorInterface.get_selection().clear() + EditorInterface.get_selection().add_node(pcam_host) + + +func _switch_pcam_host() -> void: + if not Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): return + if not is_instance_valid(_pcam_manager): + _pcam_manager = Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME) + + _pcam_manager.viewfinder_pcam_host_switch.emit(pcam_host) + +#endregion diff --git a/addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd.uid b/addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd.uid new file mode 100644 index 0000000..9df2919 --- /dev/null +++ b/addons/phantom_camera/scripts/panel/viewfinder/host_list_item.gd.uid @@ -0,0 +1 @@ +uid://bv24ubx8mutw7 diff --git a/addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd b/addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd new file mode 100644 index 0000000..fe163a7 --- /dev/null +++ b/addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd @@ -0,0 +1,605 @@ +@tool +extends Control + +#region Constants + +const _constants = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") + +# TODO - Should be in a central location +const _camera_2d_icon: CompressedTexture2D = preload("res://addons/phantom_camera/icons/viewfinder/Camera2DIcon.svg") +const _camera_3d_icon: CompressedTexture2D = preload("res://addons/phantom_camera/icons/viewfinder/Camera3DIcon.svg") +const _pcam_host_icon: CompressedTexture2D = preload("res://addons/phantom_camera/icons/phantom_camera_host.svg") +const _pcam_2D_icon: CompressedTexture2D = preload("res://addons/phantom_camera/icons/phantom_camera_2d.svg") +const _pcam_3D_icon: CompressedTexture2D = preload("res://addons/phantom_camera/icons/phantom_camera_3d.svg") + +const _overlay_color_alpha: float = 0.3 + +#endregion + +#region @onready + +@onready var dead_zone_center_hbox: VBoxContainer = %DeadZoneCenterHBoxContainer +@onready var dead_zone_center_center_panel: Panel = %DeadZoneCenterCenterPanel +@onready var dead_zone_left_center_panel: Panel = %DeadZoneLeftCenterPanel +@onready var dead_zone_right_center_panel: Panel = %DeadZoneRightCenterPanel +@onready var target_point: Panel = %TargetPoint + +@onready var aspect_ratio_container: AspectRatioContainer = %AspectRatioContainer +@onready var camera_viewport_panel: Panel = aspect_ratio_container.get_child(0) +@onready var _viewfinder: Control = %Viewfinder +@onready var _dead_zone_h_box_container: Control = %DeadZoneHBoxContainer +@onready var sub_viewport: SubViewport = %SubViewport + +@onready var _empty_state_control: Control = %EmptyStateControl +@onready var _empty_state_icon: TextureRect = %EmptyStateIcon +@onready var _empty_state_text: RichTextLabel = %EmptyStateText +@onready var _add_node_button: Button = %AddNodeButton +@onready var _add_node_button_text: RichTextLabel = %AddNodeTypeText + +@onready var _priority_override_button: Button = %PriorityOverrideButton +@onready var _priority_override_name_label: Label = %PriorityOverrideNameLabel + +@onready var _camera_2d: Camera2D = %Camera2D + +@onready var _pcam_host_list: VBoxContainer = %PCamHostList + +#endregion + +#region Private Variables + +var _no_open_scene_icon: CompressedTexture2D = preload("res://addons/phantom_camera/icons/viewfinder/SceneTypesIcon.svg") +var _no_open_scene_string: String = "[b]2D[/b] or [b]3D[/b] scene open" + +var _selected_camera: Node +var _active_pcam: Node + +var _is_2d: bool + +var _pcam_manager: Node + +var _root_node: Node + +#endregion + +#region Public Variables + +var pcam_host_group: Array[PhantomCameraHost] + +var is_scene: bool + +var viewfinder_visible: bool + +var min_horizontal: float +var max_horizontal: float +var min_vertical: float +var max_vertical: float + +var pcam_host: PhantomCameraHost + +#endregion + + +#region Private Functions + +func _ready() -> void: + if not Engine.is_editor_hint(): + set_process(true) + camera_viewport_panel.self_modulate.a = 0 + + _root_node = get_tree().current_scene + + if _root_node is Node2D || _root_node is Node3D: + %SubViewportContainer.visible = false + if _root_node is Node2D: + _is_2d = true + else: + _is_2d = false + + _set_viewfinder(_root_node, false) + + if not Engine.is_editor_hint(): + _empty_state_control.visible = false + + _priority_override_button.visible = false + + # Triggered when viewport size is changed in Project Settings + ProjectSettings.settings_changed.connect(_settings_changed) + + # PCam Host List + _pcam_host_list.visible = false + _assign_manager() + _visibility_check() + + +func _pcam_host_switch(new_pcam_host: PhantomCameraHost) -> void: + _set_viewfinder_camera(new_pcam_host, true) + + +func _exit_tree() -> void: + if aspect_ratio_container.resized.is_connected(_resized): + aspect_ratio_container.resized.disconnect(_resized) + + if _add_node_button.pressed.is_connected(_visibility_check): + _add_node_button.pressed.disconnect(_visibility_check) + + if is_instance_valid(_active_pcam): + if _active_pcam.dead_zone_changed.is_connected(_on_dead_zone_changed): + _active_pcam.dead_zone_changed.disconnect(_on_dead_zone_changed) + + if _priority_override_button.pressed.is_connected(_select_override_pcam): + _priority_override_button.pressed.disconnect(_select_override_pcam) + + +func _process(_delta: float) -> void: + if Engine.is_editor_hint() and not viewfinder_visible: return + if not is_instance_valid(_active_pcam): return + + var unprojected_position_clamped: Vector2 = Vector2( + clamp(_active_pcam.viewport_position.x, min_horizontal, max_horizontal), + clamp(_active_pcam.viewport_position.y, min_vertical, max_vertical) + ) + + if not Engine.is_editor_hint(): + target_point.position = camera_viewport_panel.size * unprojected_position_clamped - target_point.size / 2 + + if not _is_2d: return + if not is_instance_valid(pcam_host): return + if not is_instance_valid(pcam_host.camera_2d): return + + var window_size_height: float = ProjectSettings.get_setting("display/window/size/viewport_height") + sub_viewport.size_2d_override = sub_viewport.size * (window_size_height / sub_viewport.size.y) + + _camera_2d.global_transform = pcam_host.camera_2d.global_transform + _camera_2d.offset = pcam_host.camera_2d.offset + _camera_2d.zoom = pcam_host.camera_2d.zoom + _camera_2d.ignore_rotation = pcam_host.camera_2d.ignore_rotation + _camera_2d.anchor_mode = pcam_host.camera_2d.anchor_mode + _camera_2d.limit_left = pcam_host.camera_2d.limit_left + _camera_2d.limit_top = pcam_host.camera_2d.limit_top + _camera_2d.limit_right = pcam_host.camera_2d.limit_right + _camera_2d.limit_bottom = pcam_host.camera_2d.limit_bottom + + +func _settings_changed() -> void: + var viewport_width: float = ProjectSettings.get_setting("display/window/size/viewport_width") + var viewport_height: float = ProjectSettings.get_setting("display/window/size/viewport_height") + var ratio: float = viewport_width / viewport_height + aspect_ratio_container.set_ratio(ratio) + camera_viewport_panel.size.x = viewport_width / (viewport_height / sub_viewport.size.y) + + # Applies Project Settings to Viewport + sub_viewport.canvas_item_default_texture_filter = ProjectSettings.get_setting("rendering/textures/canvas_textures/default_texture_filter") + + # TODO - Add resizer for Framed Viewfinder + + +func _visibility_check() -> void: + if not viewfinder_visible: return + + var pcam_host: PhantomCameraHost + var has_camera: bool = false + if not Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): return + + if not Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME).get_phantom_camera_hosts().is_empty(): + has_camera = true + pcam_host = Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME).get_phantom_camera_hosts()[0] + + var root: Node = EditorInterface.get_edited_scene_root() + if root is Node2D: + var camera_2d: Camera2D + + if has_camera: + camera_2d = pcam_host.camera_2d + else: + camera_2d = _get_camera_2d() + + _is_2d = true + is_scene = true + _add_node_button.visible = true + _check_camera(root, camera_2d) + elif root is Node3D: + var camera_3d: Camera3D + if has_camera: + camera_3d = pcam_host.camera_3d + elif root.get_viewport() != null: + if root.get_viewport().get_camera_3d() != null: + camera_3d = root.get_viewport().get_camera_3d() + + _is_2d = false + is_scene = true + _add_node_button.visible = true + _check_camera(root, camera_3d) + else: + # Is not a 2D or 3D scene + is_scene = false + _set_empty_viewfinder_state(_no_open_scene_string, _no_open_scene_icon) + _add_node_button.visible = false + + # Checks if a new scene is created and changes viewfinder accordingly + if not get_tree().node_added.is_connected(_node_added_to_scene): + get_tree().node_added.connect(_node_added_to_scene) + + if not _priority_override_button.pressed.is_connected(_select_override_pcam): + _priority_override_button.pressed.connect(_select_override_pcam) + + +func _node_added_to_scene(node: Node) -> void: + if node is Node2D or node is Node3D: + get_tree().node_added.disconnect(_node_added_to_scene) + _visibility_check() + + +func _get_camera_2d() -> Camera2D: + var edited_scene_root: Node = EditorInterface.get_edited_scene_root() + + if edited_scene_root == null: return null + + var viewport: Viewport = edited_scene_root.get_viewport() + if viewport == null: return null + + var viewport_rid: RID = viewport.get_viewport_rid() + if viewport_rid == null: return null + + var camerasGroupName: String = "__cameras_%d" % viewport_rid.get_id() + var cameras: Array[Node] = get_tree().get_nodes_in_group(camerasGroupName) + + for camera in cameras: + if camera is Camera2D and camera.is_current: + return camera + + return null + + +func _check_camera(root: Node, camera: Node) -> void: + var camera_string: String + var pcam_string: String + var color: Color + var camera_icon: CompressedTexture2D + var pcam_icon: CompressedTexture2D + + if _is_2d: + camera_string = _constants.CAMERA_2D_NODE_NAME + pcam_string = _constants.PCAM_2D_NODE_NAME + color = _constants.COLOR_2D + camera_icon = _camera_2d_icon + pcam_icon = _pcam_2D_icon + else: + camera_string = _constants.CAMERA_3D_NODE_NAME + pcam_string = _constants.PCAM_3D_NODE_NAME + color = _constants.COLOR_3D + camera_icon = _camera_3d_icon + pcam_icon = _pcam_3D_icon + + if camera: +# Has Camera + if camera.get_children().size() > 0: + for cam_child in camera.get_children(): + if cam_child is PhantomCameraHost: + pcam_host = cam_child + + if pcam_host: + if get_tree().root.get_node(_constants.PCAM_MANAGER_NODE_NAME).get_phantom_camera_2ds() or \ + get_tree().root.get_node(_constants.PCAM_MANAGER_NODE_NAME).get_phantom_camera_3ds(): + # Pcam exists in tree + _set_viewfinder(root, true) + _set_viewfinder_state() + %NoSupportMsg.visible = false + else: +# No PCam in scene + _update_button(pcam_string, pcam_icon, color) + _set_empty_viewfinder_state(pcam_string, pcam_icon) + else: +# No PCamHost in scene + _update_button(_constants.PCAM_HOST_NODE_NAME, _pcam_host_icon, _constants.PCAM_HOST_COLOR) + _set_empty_viewfinder_state(_constants.PCAM_HOST_NODE_NAME, _pcam_host_icon) + else: +# No PCamHost in scene + _update_button(_constants.PCAM_HOST_NODE_NAME, _pcam_host_icon, _constants.PCAM_HOST_COLOR) + _set_empty_viewfinder_state(_constants.PCAM_HOST_NODE_NAME, _pcam_host_icon) + else: +# No Camera + _update_button(camera_string, camera_icon, color) + _set_empty_viewfinder_state(camera_string, camera_icon) + + +func _update_button(text: String, icon: CompressedTexture2D, color: Color) -> void: + _add_node_button_text.set_text("[center]Add [img=32]" + icon.resource_path + "[/img] [b]"+ text + "[/b][/center]"); + var button_theme_hover: StyleBoxFlat = _add_node_button.get_theme_stylebox("hover") + button_theme_hover.border_color = color + _add_node_button.add_theme_stylebox_override("hover", button_theme_hover) + + +func _set_viewfinder_state() -> void: + _empty_state_control.visible = false + _viewfinder.visible = true + + if is_instance_valid(_active_pcam): + if _active_pcam.get_follow_mode() == _active_pcam.FollowMode.FRAMED: + _dead_zone_h_box_container.visible = true + target_point.visible = true + else: + _dead_zone_h_box_container.visible = false + target_point.visible = false + + +func _set_empty_viewfinder_state(text: String, icon: CompressedTexture2D) -> void: + _viewfinder.visible = false + _framed_view_visible(false) + + _empty_state_control.visible = true + _empty_state_icon.texture = icon + if icon == _no_open_scene_icon: + _empty_state_text.set_text("[center]No " + text + "[/center]") + else: + _empty_state_text.set_text("[center]No [b]" + text + "[/b] in scene[/center]") + + if _add_node_button.pressed.is_connected(_add_node): + _add_node_button.pressed.disconnect(_add_node) + + _add_node_button.pressed.connect(_add_node.bind(text)) + + +func _add_node(node_type: String) -> void: + var scene_root: Node = EditorInterface.get_edited_scene_root() + + match node_type: + _no_open_scene_string: + pass + _constants.CAMERA_2D_NODE_NAME: + var camera: Camera2D = Camera2D.new() + _instantiate_node(scene_root, camera, _constants.CAMERA_2D_NODE_NAME) + _constants.CAMERA_3D_NODE_NAME: + var camera: Camera3D = Camera3D.new() + _instantiate_node(scene_root, camera, _constants.CAMERA_3D_NODE_NAME) + _constants.PCAM_HOST_NODE_NAME: + var pcam_host: PhantomCameraHost = PhantomCameraHost.new() + var camera_owner: Node + if _is_2d: + camera_owner = _get_camera_2d() + else: + camera_owner = get_tree().get_edited_scene_root().get_viewport().get_camera_3d() + _instantiate_node( + scene_root, + pcam_host, + _constants.PCAM_HOST_NODE_NAME, + camera_owner + ) + _constants.PCAM_2D_NODE_NAME: + var pcam_2D: PhantomCamera2D = PhantomCamera2D.new() + _instantiate_node(scene_root, pcam_2D, _constants.PCAM_2D_NODE_NAME) + _constants.PCAM_3D_NODE_NAME: + var pcam_3D: PhantomCamera3D = PhantomCamera3D.new() + _instantiate_node(scene_root, pcam_3D, _constants.PCAM_3D_NODE_NAME) + + _visibility_check() + + +func _instantiate_node(scene_root: Node, node: Node, name: String, parent: Node = scene_root) -> void: + node.set_name(name) + parent.add_child(node) + node.owner = scene_root + + +func _set_viewfinder(root: Node, editor: bool) -> void: + pcam_host_group = get_tree().root.get_node(_constants.PCAM_MANAGER_NODE_NAME).get_phantom_camera_hosts() + if pcam_host_group.size() != 0: + if pcam_host_group.size() == 1: + _pcam_host_list.visible = false + _set_viewfinder_camera(pcam_host_group[0], editor) + else: + _pcam_host_list.visible = true + _set_viewfinder_camera(pcam_host_group[0], editor) + for i in pcam_host_group.size(): + var is_default: bool = false + if i == 0: + is_default = true + _pcam_host_list.add_pcam_host(pcam_host_group[i], is_default) + + +func _set_viewfinder_camera(new_pcam_host: PhantomCameraHost, editor: bool) -> void: + pcam_host = new_pcam_host + + if _is_2d: + _selected_camera = pcam_host.camera_2d + + if editor: + sub_viewport.disable_3d = true + pcam_host = pcam_host + _camera_2d.zoom = pcam_host.camera_2d.zoom + _camera_2d.offset = pcam_host.camera_2d.offset + _camera_2d.ignore_rotation = pcam_host.camera_2d.ignore_rotation + + sub_viewport.world_2d = pcam_host.camera_2d.get_world_2d() + sub_viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS + sub_viewport.render_target_clear_mode = SubViewport.CLEAR_MODE_ALWAYS + sub_viewport.size_2d_override_stretch = true + else: + _selected_camera = pcam_host.camera_3d + if editor: + var camera_3d_rid: RID = _selected_camera.get_camera_rid() + sub_viewport.disable_3d = false + sub_viewport.world_3d = pcam_host.camera_3d.get_world_3d() + RenderingServer.viewport_attach_camera(sub_viewport.get_viewport_rid(), camera_3d_rid) + + if _selected_camera.keep_aspect == Camera3D.KeepAspect.KEEP_HEIGHT: + aspect_ratio_container.set_stretch_mode(AspectRatioContainer.STRETCH_HEIGHT_CONTROLS_WIDTH) + else: + aspect_ratio_container.set_stretch_mode(AspectRatioContainer.STRETCH_WIDTH_CONTROLS_HEIGHT) + + set_process(true) + + if not pcam_host.viewfinder_update.is_connected(_on_update_editor_viewfinder): + pcam_host.viewfinder_update.connect(_on_update_editor_viewfinder) + + if not pcam_host.viewfinder_disable_dead_zone.is_connected(_disconnect_dead_zone): + pcam_host.viewfinder_disable_dead_zone.connect(_disconnect_dead_zone) + + if not aspect_ratio_container.resized.is_connected(_resized): + aspect_ratio_container.resized.connect(_resized) + + if is_instance_valid(pcam_host.get_active_pcam()): + _active_pcam = pcam_host.get_active_pcam() + else: + _framed_view_visible(false) + _active_pcam = null + return + + if not _active_pcam.follow_mode == PhantomCamera2D.FollowMode.FRAMED: return + + _framed_view_visible(true) + _on_dead_zone_changed() + _connect_dead_zone() + + +func _connect_dead_zone() -> void: + if not _active_pcam and is_instance_valid(pcam_host.get_active_pcam()): + _active_pcam = pcam_host.get_active_pcam() + + if not _active_pcam.dead_zone_changed.is_connected(_on_dead_zone_changed): + _active_pcam.dead_zone_changed.connect(_on_dead_zone_changed) + + _framed_view_visible(true) + _viewfinder.visible = true + _on_dead_zone_changed() + +func _disconnect_dead_zone() -> void: + if not is_instance_valid(_active_pcam): return + _framed_view_visible(_is_framed_pcam()) + + if _active_pcam.follow_mode_changed.is_connected(_check_follow_mode): + _active_pcam.follow_mode_changed.disconnect(_check_follow_mode) + + if _active_pcam.dead_zone_changed.is_connected(_on_dead_zone_changed): + _active_pcam.dead_zone_changed.disconnect(_on_dead_zone_changed) + + +func _resized() -> void: + _on_dead_zone_changed() + + +func _is_framed_pcam() -> bool: + if not is_instance_valid(pcam_host): return false + _active_pcam = pcam_host.get_active_pcam() + if not is_instance_valid(_active_pcam): return false + if not _active_pcam.follow_mode == PhantomCamera2D.FollowMode.FRAMED: return false + + return true + + +func _framed_view_visible(should_show: bool) -> void: + if should_show: + target_point.visible = true + _dead_zone_h_box_container.visible = true + else: + target_point.visible = false + _dead_zone_h_box_container.visible = false + + +func _on_dead_zone_changed() -> void: + if not is_instance_valid(_active_pcam): return + if not _active_pcam.follow_mode == _active_pcam.FollowMode.FRAMED: return + + # Waits until the camera_viewport_panel has been resized when launching the game + if camera_viewport_panel.size.x == 0: + await camera_viewport_panel.resized + + if not _active_pcam == pcam_host.get_active_pcam(): + _active_pcam == pcam_host.get_active_pcam() + + var dead_zone_width: float = _active_pcam.dead_zone_width * camera_viewport_panel.size.x + var dead_zone_height: float = _active_pcam.dead_zone_height * camera_viewport_panel.size.y + dead_zone_center_hbox.set_custom_minimum_size(Vector2(dead_zone_width, 0)) + dead_zone_center_center_panel.set_custom_minimum_size(Vector2(0, dead_zone_height)) + dead_zone_left_center_panel.set_custom_minimum_size(Vector2(0, dead_zone_height)) + dead_zone_right_center_panel.set_custom_minimum_size(Vector2(0, dead_zone_height)) + + min_horizontal = 0.5 - _active_pcam.dead_zone_width / 2 + max_horizontal = 0.5 + _active_pcam.dead_zone_width / 2 + min_vertical = 0.5 - _active_pcam.dead_zone_height / 2 + max_vertical = 0.5 + _active_pcam.dead_zone_height / 2 + + +func _check_follow_mode() -> void: + _framed_view_visible(_is_framed_pcam()) + + +func _on_update_editor_viewfinder(check_framed_view: bool = false) -> void: + _active_pcam = pcam_host.get_active_pcam() + + if not is_instance_valid(_active_pcam): return + + if not _active_pcam.follow_mode_changed.is_connected(_check_follow_mode): + _active_pcam.follow_mode_changed.connect(_check_follow_mode) + + if _active_pcam.priority_override: + _priority_override_button.visible = true + _priority_override_name_label.set_text(_active_pcam.name) + _priority_override_button.set_tooltip_text(_active_pcam.name) + else: + _priority_override_button.visible = false + + _framed_view_visible(false) + if not check_framed_view: return + if _is_framed_pcam(): _connect_dead_zone() + + +func _select_override_pcam() -> void: + EditorInterface.get_selection().clear() + EditorInterface.get_selection().add_node(_active_pcam) + + +func _assign_manager() -> void: + if not is_instance_valid(_pcam_manager): + if Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): + _pcam_manager = Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME) + _pcam_manager.pcam_host_added_to_scene.connect(_pcam_changed) + _pcam_manager.pcam_host_removed_from_scene.connect(_pcam_host_removed_from_scene) + + _pcam_manager.pcam_added_to_scene.connect(_pcam_changed) + _pcam_manager.pcam_removed_from_scene.connect(_pcam_changed) + + _pcam_manager.viewfinder_pcam_host_switch.connect(_pcam_host_switch) + + +func _pcam_host_removed_from_scene(pcam_host: PhantomCameraHost) -> void: + if _pcam_manager.phantom_camera_hosts.size() < 2: + _pcam_host_list.visible = false + + _visibility_check() + + +func _pcam_changed(pcam: Node) -> void: + _visibility_check() + +#endregion + + +#region Public Functions + +func set_visibility(visible: bool) -> void: + if visible: + viewfinder_visible = true + _visibility_check() + else: + viewfinder_visible = false + + +func update_dead_zone() -> void: + _set_viewfinder(_root_node, true) + + +## TODO - Signal can be added directly to this file with the changes in Godot 4.5 (https://github.com/godotengine/godot/pull/102986) +func scene_changed(scene_root: Node) -> void: + _assign_manager() + _priority_override_button.visible = false + _pcam_host_list.clear_pcam_host_list() + + if not scene_root is Node2D and not scene_root is Node3D: + is_scene = false + _pcam_host_list.visible = false + _set_empty_viewfinder_state(_no_open_scene_string, _no_open_scene_icon) + _add_node_button.visible = false + else: + _visibility_check() + +#endregion diff --git a/addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd.uid b/addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd.uid new file mode 100644 index 0000000..f115630 --- /dev/null +++ b/addons/phantom_camera/scripts/panel/viewfinder/viewfinder.gd.uid @@ -0,0 +1 @@ +uid://drmv3363t8amc diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd new file mode 100644 index 0000000..4f31c05 --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd @@ -0,0 +1,1607 @@ +@tool +@icon("res://addons/phantom_camera/icons/phantom_camera_2d.svg") +class_name PhantomCamera2D +extends Node2D + +## Controls a scene's [Camera2D] and applies logic to it. +## +## The scene's [param Camera2D] will follow the position of the +## [param PhantomCamera2D] with the highest priority. +## Each instance can have different positional and rotational logic applied +## to them. + +#region Constants + +const _constants := preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") + +#endregion + +#region Signals + +## Emitted when the [param PhantomCamera2D] becomes active. +signal became_active + +## Emitted when the [param PhantomCamera2D] becomes inactive. +signal became_inactive + +## Emitted when the follow_mode changes. +## Note: This is for internal use only +signal follow_mode_changed + +## Emitted when [member follow_target] changes. +signal follow_target_changed + +## Emitted when dead zones changes.[br] +## [b]Note:[/b] Only applicable in [param Framed] [enum FollowMode]. +signal dead_zone_changed + +## Emitted when a target touches the edge of the dead zone in [param Framed] [enum FollowMode]. +signal dead_zone_reached(side: Vector2) + +## Emitted when the [param Camera2D] starts to tween to another [param PhantomCamera2D]. +signal tween_started + +## Emitted when the [param Camera2D] is to tweening towards another [param PhantomCamera2D]. +signal is_tweening + +## Emitted when the tween is interrupted due to another [param PhantomCamera2D] +## becoming active. The argument is the [param PhantomCamera2D] that interrupted +## the tween. +signal tween_interrupted(pcam_2d: PhantomCamera2D) + +## Emitted when the [param Camera2D] completes its tween to the +## [param PhantomCamera2D]. +signal tween_completed + +## Emitted when Noise should be applied to the Camera2D. +signal noise_emitted(noise_output: Transform2D) + +signal physics_target_changed + +#endregion + +#region Enums + +## Determines the positional logic for a given [param PhantomCamera2D] +## [br][br] +## The different modes have different functionalities and purposes, so choosing +## the correct one depends on what each [param PhantomCamera2D] is meant to do. +enum FollowMode { + NONE = 0, ## Default - No follow logic is applied. + GLUED = 1, ## Sticks to its target. + SIMPLE = 2, ## Follows its target with an optional offset. + GROUP = 3, ## Follows multiple targets with option to dynamically reframe itself. + PATH = 4, ## Follows a target while being positionally confined to a [Path2D] node. + FRAMED = 5, ## Applies a dead zone on the frame and only follows its target when it tries to leave it. +} + +## Determines how often an inactive [param PhantomCamera2D] should update +## its positional and rotational values. This is meant to reduce the amount +## of calculations inactive [param PhantomCamera2D] are doing when idling to +## improve performance. +enum InactiveUpdateMode { + ALWAYS, ## Always updates the [param PhantomCamera2D], even when it's inactive. + NEVER, ## Never updates the [param PhantomCamera2D] when it's inactive. Reduces the amount of computational resources when inactive. +# EXPONENTIALLY, +} + +enum FollowLockAxis { + NONE = 0, + X = 1, + Y = 2, + XY = 3, +} + +#endregion + +#region Exported Properties + +## To quickly preview a [param PhantomCamera2D] without adjusting its +## [member priority], this property allows the selected PCam to ignore the +## Priority system altogether and forcefully become the active one. It's +## partly designed to work within the Viewfinder, and will be disabled when +## running a build export of the game. +@export var priority_override: bool = false: + set(value): + priority_override = value + if Engine.is_editor_hint(): + if value: + if not Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): return + Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME).pcam_priority_override.emit(self, true) + else: + if not Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): return + Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME).pcam_priority_override.emit(self, false) + get: + return priority_override + + +## It defines which [param PhantomCamera2D] a scene's [param Camera2D] should +## be corresponding with and be attached to. This is decided by the PCam with +## the highest [param Priority]. +## [br][br] +## Changing [param Priority] will send an event to the scene's +## [PhantomCameraHost], which will then determine whether if the +## [param Priority] value is greater than or equal to the currently +## highest [param PhantomCamera2D]'s in the scene. The [param PhantomCamera2D] +## with the highest value will then reattach the [param Camera2D] accordingly. +@export var priority: int = 0: + set = set_priority, + get = get_priority + + +## Determines the positional logic for a given [param PhantomCamera2D]. +## The different modes have different functionalities and purposes, so +## choosing the correct one depends on what each [param PhantomCamera2D] +## is meant to do. +@export var follow_mode: FollowMode = FollowMode.NONE: + set(value): + follow_mode = value + + if follow_mode == FollowMode.NONE: + _should_follow = false + top_level = false + _is_parents_physics() + notify_property_list_changed() + return + + match follow_mode: + FollowMode.PATH: + if is_instance_valid(follow_path): + _should_follow_checker() + FollowMode.GROUP: + _follow_targets_size_check() + _: + _should_follow_checker() + + if follow_mode == FollowMode.FRAMED: + if _follow_framed_initial_set and follow_target: + _follow_framed_initial_set = false + dead_zone_changed.connect(_on_dead_zone_changed) + else: + if dead_zone_changed.is_connected(_on_dead_zone_changed): + dead_zone_changed.disconnect(_on_dead_zone_changed) + + top_level = true + follow_mode_changed.emit() + notify_property_list_changed() + get: + return follow_mode + +## Determines which target should be followed. +## The [param Camera2D] will follow the position of the Follow Target +## based on the [member follow_mode] type and its parameters. +@export var follow_target: Node2D = null: + set = set_follow_target, + get = get_follow_target + +### Defines the targets that the [param PhantomCamera2D] should be following. +@export var follow_targets: Array[Node2D] = []: + set = set_follow_targets, + get = get_follow_targets + +## Determines the [Path2D] the [param PhantomCamera2D] +## should be bound to. +## The [param PhantomCamera2D] will follow the position of the +## [member follow_target] while sticking to the closest point on this path. +@export var follow_path: Path2D = null: + set = set_follow_path, + get = get_follow_path + + +## Applies a zoom level to the [param PhantomCamera2D], which effectively +## overrides the [param zoom] property of the [param Camera2D] node. +@export var zoom: Vector2 = Vector2.ONE: + set = set_zoom, + get = get_zoom + + +## If enabled, will snap the [param Camera2D] to whole pixels as it moves. +## [br][br] +## This should be particularly useful in pixel art projects, +## where assets should always be aligned to the monitor's pixels to avoid +## unintended stretching. +@export var snap_to_pixel: bool = false: + set = set_snap_to_pixel, + get = get_snap_to_pixel + + +## Enables a preview of what the [PhantomCamera2D] will see in the +## scene. It works identically to how a [param Camera2D] shows which area +## will be visible during runtime. Likewise, this too will be affected by the +## [member zoom] property and the [param viewport_width] and +## [param Viewport Height] defined in the [param Project Settings]. +@export var frame_preview: bool = true: + set(value): + frame_preview = value + queue_redraw() + get: + return frame_preview + + +## Defines how the [param PhantomCamera2D] transition between one another. +## Changing the tween values for a given [param PhantomCamera2D] +## determines how transitioning to that instance will look like. +## This is a resource type that can be either used for one +## [param PhantomCamera] or reused across multiple - both 2D and 3D. +## By default, all [param PhantomCameras] will use a [param linear] +## transition, [param easeInOut] ease with a [param 1s] duration. +@export var tween_resource: PhantomCameraTween = PhantomCameraTween.new(): + set = set_tween_resource, + get = get_tween_resource + +## If enabled, the moment a [param PhantomCamera2D] is instantiated into +## a scene, and has the highest priority, it will perform its tween transition. +## This is most obvious if a [param PhantomCamera2D] has a long duration and +## is attached to a playable character that can be moved the moment a scene +## is loaded. Disabling the [param tween_on_load] property will +## disable this behaviour and skip the tweening entirely when instantiated. +@export var tween_on_load: bool = true: + set = set_tween_on_load, + get = get_tween_on_load + + +## Determines how often an inactive [param PhantomCamera2D] should update +## its positional and rotational values. This is meant to reduce the amount +## of calculations inactive [param PhantomCamera2Ds] are doing when idling +## to improve performance. +@export var inactive_update_mode: InactiveUpdateMode = InactiveUpdateMode.ALWAYS + + +## Determines which layers this [param PhantomCamera2D] should be able to communicate with [PhantomCameraHost] nodes.[br] +## A corresponding layer needs to be set on the [PhantomCameraHost] node. +@export_flags_2d_render var host_layers: int = 1: + set = set_host_layers, + get = get_host_layers + + +@export_group("Follow Parameters") +## Offsets the [member follow_target] position. +@export var follow_offset: Vector2 = Vector2.ZERO: + set = set_follow_offset, + get = get_follow_offset + +## Applies a damping effect on the [param Camera2D]'s movement. +## Leading to heavier / slower camera movement as the targeted node moves around. +## This is useful to avoid sharp and rapid camera movement. +@export var follow_damping: bool = false: + set = set_follow_damping, + get = get_follow_damping + +## Defines the damping amount. The ideal range should be somewhere between 0-1.[br][br] +## The damping amount can be specified in the individual axis.[br][br] +## [b]Lower value[/b] = faster / sharper camera movement.[br] +## [b]Higher value[/b] = slower / heavier camera movement. +@export var follow_damping_value: Vector2 = Vector2(0.1, 0.1): + set = set_follow_damping_value, + get = get_follow_damping_value + +## Prevents the [param PhantomCamera2D] from moving in a designated axis. +## This can be enabled or disabled at runtime or from the editor directly. +@export var follow_axis_lock: FollowLockAxis = FollowLockAxis.NONE: + set = set_lock_axis, + get = get_lock_axis +var _follow_axis_is_locked: bool = false +var _follow_axis_lock_value: Vector2 = Vector2.ZERO + + +@export_subgroup("Follow Group") +## Enables the [param PhantomCamera2D] to dynamically zoom in and out based on +## the targets' distances between each other. +## Once enabled, the [param Camera2D] will stay as zoomed in as possible, +## limited by the [member auto_zoom_max] and start zooming out as the targets +## move further apart, limited by the [member auto_zoom_min]. +## Note: Enabling this property hides and disables the [member zoom] property +## as this effectively overrides that value. +@export var auto_zoom: bool = false: + set = set_auto_zoom, + get = get_auto_zoom + +## Sets the param minimum zoom amount, in other words how far away the +## [param Camera2D] can be from scene.[br][br] +## This only works when [member auto_zoom] is enabled. +@export var auto_zoom_min: float = 1: + set = set_auto_zoom_min, + get = get_auto_zoom_min + +## Sets the maximum zoom amount, in other words how close the [param Camera2D] +## can move towards the scene.[br][br] +## This only works when [member auto_zoom] is enabled. +@export var auto_zoom_max: float = 5: + set = set_auto_zoom_max, + get = get_auto_zoom_max + +## Determines how close to the edges the targets are allowed to be. +## This is useful to avoid targets being cut off at the edges of the screen. +## [br][br] +## The Vector4 parameter order goes: [param Left] - [param Top] - [param Right] +## - [param Bottom]. +@export var auto_zoom_margin: Vector4 = Vector4.ZERO: + set = set_auto_zoom_margin, + get = get_auto_zoom_margin + + +@export_subgroup("Dead Zones") +## Defines the horizontal dead zone area. While the target is within it, the +## [param PhantomCamera2D] will not move in the horizontal axis. +## If the targeted node leaves the horizontal bounds, the +## [param PhantomCamera2D] will follow the target horizontally to keep +## it within bounds. +@export_range(0, 1) var dead_zone_width: float = 0: + set(value): + dead_zone_width = value + dead_zone_changed.emit() + get: + return dead_zone_width + +## Defines the vertical dead zone area. While the target is within it, the +## [param PhantomCamera2D] will not move in the vertical axis. +## If the targeted node leaves the vertical bounds, the +## [param PhantomCamera2D] will follow the target horizontally to keep +## it within bounds. +@export_range(0, 1) var dead_zone_height: float = 0: + set(value): + dead_zone_height = value + dead_zone_changed.emit() + get: + return dead_zone_height + +## Enables the [param dead zones] to be visible when running the game from the editor. +## [br] +## [param dead zones] will never be visible in build exports. +@export var show_viewfinder_in_play: bool = false + + +@export_group("Limit") + +## Shows the [param Camera2D]'s built-in limit border.[br] +## The [param PhantomCamera2D] and [param Camera2D] can move around anywhere within it. +@export var draw_limits: bool = false: + set(value): + _draw_limits = value + if Engine.is_editor_hint(): + _draw_camera_2d_limit() + get: + return _draw_limits + +## Defines the left side of the [param Camera2D] limit. +## The camera will not be able to move past this point. +@export var limit_left: int = -10000000: + set = set_limit_left, + get = get_limit_left +## Defines the top side of the [param Camera2D] limit. +## The camera will not be able to move past this point. +@export var limit_top: int = -10000000: + set = set_limit_top, + get = get_limit_top +## Defines the right side of the [param Camera2D] limit. +## The camera will not be able to move past this point. +@export var limit_right: int = 10000000: + set = set_limit_right, + get = get_limit_right +## Defines the bottom side of the [param Camera2D] limit. +## The camera will not be able to move past this point. +@export var limit_bottom: int = 10000000: + set = set_limit_bottom, + get = get_limit_bottom + +## Allows for setting either a [TileMap], [TileMapLayer] or [CollisionShape2D] node to +## automatically apply a limit size instead of manually adjusting the Left, +## Top, Right and Left properties.[br][br] +## [b]TileMap / TileMapLayer[/b][br] +## The Limit will update after the [TileSet] of the [TileMap] / [TileMapLayer] has changed.[br] +## [b]Note:[/b] The limit size will only update after closing the TileMap editor +## bottom panel. +## [br][br] +## [b]CollisionShape2D[/b][br] +## The limit will update in realtime as the Shape2D changes its size. +## Note: For performance reasons, resizing the [Shape2D] during runtime will not change the Limits sides. +@export_node_path("TileMap", "Node2D", "CollisionShape2D") var limit_target: NodePath = NodePath(""): + set = set_limit_target, + get = get_limit_target + +## Applies an offset to the [TileMap]/[TileMapLayer] Limit or [Shape2D] Limit. +## The values goes from [param Left], [param Top], [param Right] +## and [param Bottom]. +@export var limit_margin: Vector4i = Vector4.ZERO: + set = set_limit_margin, + get = get_limit_margin +#@export var limit_smoothed: bool = false: # TODO - Needs proper support + #set = set_limit_smoothing, + #get = get_limit_smoothing + +@export_group("Noise") +## Applies a noise, or shake, to a [Camera2D].[br] +## Once set, the noise will run continuously after the tween to the [PhantomCamera2D] is complete. +@export var noise: PhantomCameraNoise2D = null: + set = set_noise, + get = get_noise + +## If true, will trigger the noise while in the editor.[br] +## Useful in cases where you want to temporarily disable the noise in the editor without removing +## the resource.[br][br] +## [b]Note:[/b] This property has no effect on runtime behaviour. +@export var _preview_noise: bool = true: + set(value): + _preview_noise = value + if not value: + _transform_noise = Transform2D() + +## Enable a corresponding layer for a [member PhantomCameraNoiseEmitter2D.noise_emitter_layer] +## to make this [PhantomCamera2D] be affect by it. +@export_flags_2d_render var noise_emitter_layer: int = 0: + set = set_noise_emitter_layer, + get = get_noise_emitter_layer + +#region Private Variables + +var _is_active: bool = false + +var _should_follow: bool = false +var _follow_framed_offset: Vector2 = Vector2.ZERO +var _follow_target_physics_based: bool = false +var _physics_interpolation_enabled: bool = false # NOTE - Enable for Godot 4.3 and when PhysicsInterpolationMode bug is resolved + +var _has_multiple_follow_targets: bool = false +var _follow_targets_single_target_index: int = 0 +var _follow_targets: Array[Node2D] = [] + +var _follow_velocity_ref: Vector2 = Vector2.ZERO # Stores and applies the velocity of the movement + +var _has_follow_path: bool = false + +var _tween_skip: bool = false + +## Defines the position of the [member follow_target] within the viewport.[br] +## This is only used for when [member follow_mode] is set to [param Framed]. +var _follow_framed_initial_set: bool = false + +static var _draw_limits: bool = false + +var _limit_sides: Vector4i = _limit_sides_default +var _limit_sides_default: Vector4i = Vector4i(-10000000, -10000000, 10000000, 10000000) + +var _limit_node: Node2D = null +var _tile_size_perspective_scaler: Vector2 = Vector2.ONE + +var _limit_inactive_pcam: bool = false + +var _target_transform: Transform2D = Transform2D() + +var _transform_output: Transform2D = Transform2D() +var _transform_noise: Transform2D = Transform2D() + +var _has_noise_resource: bool = false + +# NOTE - Temp solution until Godot has better plugin autoload recognition out-of-the-box. +var _phantom_camera_manager: Node = null + +#endregion + +#region Public Variables + +var tween_duration: float: + set = set_tween_duration, + get = get_tween_duration +var tween_transition: PhantomCameraTween.TransitionType: + set = set_tween_transition, + get = get_tween_transition +var tween_ease: PhantomCameraTween.EaseType: + set = set_tween_ease, + get = get_tween_ease + +var viewport_position: Vector2 + +#endregion + +#region Private Functions + +func _validate_property(property: Dictionary) -> void: + ################ + ## Follow Target + ################ + if property.name == "follow_target": + if follow_mode == FollowMode.NONE or \ + follow_mode == FollowMode.GROUP: + property.usage = PROPERTY_USAGE_NO_EDITOR + + elif property.name == "follow_path" and \ + follow_mode != FollowMode.PATH: + property.usage = PROPERTY_USAGE_NO_EDITOR + + + #################### + ## Follow Parameters + #################### + if follow_mode == FollowMode.NONE: + match property.name: + "follow_offset", \ + "follow_damping", \ + "follow_damping_value", \ + "follow_axis_lock": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "follow_offset": + if follow_mode == FollowMode.PATH or \ + follow_mode == FollowMode.GLUED: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "follow_damping_value" and not follow_damping: + property.usage = PROPERTY_USAGE_NO_EDITOR + + ############### + ## Follow Group + ############### + if follow_mode != FollowMode.GROUP: + match property.name: + "follow_targets", \ + "auto_zoom": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if not auto_zoom or follow_mode != FollowMode.GROUP: + match property.name: + "auto_zoom_min", \ + "auto_zoom_max", \ + "auto_zoom_margin": + property.usage = PROPERTY_USAGE_NO_EDITOR + + ################ + ## Follow Framed + ################ + if not follow_mode == FollowMode.FRAMED: + match property.name: + "dead_zone_width", \ + "dead_zone_height", \ + "show_viewfinder_in_play": + property.usage = PROPERTY_USAGE_NO_EDITOR + + ####### + ## Zoom + ####### + if property.name == "zoom" and follow_mode == FollowMode.GROUP and auto_zoom: + property.usage = PROPERTY_USAGE_NO_EDITOR + + ######## + ## Limit + ######## + if is_instance_valid(_limit_node): + match property.name: + "limit_left", \ + "limit_top", \ + "limit_right", \ + "limit_bottom": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "limit_margin" and not _limit_node: + property.usage = PROPERTY_USAGE_NO_EDITOR + + +func _enter_tree() -> void: + _phantom_camera_manager = Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME) + _tween_skip = !tween_on_load + + _phantom_camera_manager.pcam_added(self) + + priority_override = false + + _should_follow_checker() + if follow_mode == FollowMode.GROUP: + _follow_targets_size_check() + elif follow_mode == FollowMode.NONE: + _is_parents_physics() + + if not visibility_changed.is_connected(_check_visibility): + visibility_changed.connect(_check_visibility) + + update_limit_all_sides() + + + +func _exit_tree() -> void: + if not follow_mode == FollowMode.GROUP: + follow_targets = [] + + if not is_instance_valid(_phantom_camera_manager): return + _phantom_camera_manager.pcam_removed(self) + + +func _ready() -> void: + if is_instance_valid(follow_target): + _transform_output.origin = _get_target_position_offset() + else: + _transform_output = global_transform + + _phantom_camera_manager.noise_2d_emitted.connect(_noise_emitted) + + if not Engine.is_editor_hint(): + _preview_noise = true + + if follow_mode == FollowMode.GROUP: + _follow_targets_size_check() + + +func _process(delta: float) -> void: + if _follow_target_physics_based or _is_active: return + process_logic(delta) + + +func _physics_process(delta: float) -> void: + if not _follow_target_physics_based or _is_active: return + process_logic(delta) + + +func process_logic(delta: float) -> void: + if _is_active: + if _has_noise_resource and _preview_noise: + _transform_noise = noise.get_noise_transform(delta) + else: + match inactive_update_mode: + InactiveUpdateMode.NEVER: return + InactiveUpdateMode.ALWAYS: + # Only triggers if limit isn't default + if _limit_inactive_pcam: + global_position = _set_limit_clamp_position(global_position) + # InactiveUpdateMode.EXPONENTIALLY: + # TODO - Trigger positional updates less frequently as more PCams gets added + + _limit_checker() + + if _should_follow: + _follow(delta) + else: + _transform_output = global_transform + + if _follow_axis_is_locked: + match follow_axis_lock: + FollowLockAxis.X: + _transform_output.origin.x = _follow_axis_lock_value.x + FollowLockAxis.Y: + _transform_output.origin.y = _follow_axis_lock_value.y + FollowLockAxis.XY: + _transform_output.origin.x = _follow_axis_lock_value.x + _transform_output.origin.y = _follow_axis_lock_value.y + + +func _limit_checker() -> void: + ## TODO - Needs to see if this can be triggerd only from CollisionShape2D Transform changes + if not Engine.is_editor_hint(): return + if draw_limits: + update_limit_all_sides() + + +func _follow(delta: float) -> void: + _set_follow_position() + _interpolate_position(_target_transform.origin, delta) + + +func _set_follow_position() -> void: + match follow_mode: + FollowMode.GLUED: + _target_transform.origin = follow_target.global_position + + FollowMode.SIMPLE: + _target_transform.origin = _get_target_position_offset() + + FollowMode.GROUP: + if _has_multiple_follow_targets: + var rect: Rect2 = Rect2(_follow_targets[0].global_position, Vector2.ZERO) + for target in _follow_targets: + rect = rect.expand(target.global_position) + if auto_zoom: + rect = rect.grow_individual( + auto_zoom_margin.x, + auto_zoom_margin.y, + auto_zoom_margin.z, + auto_zoom_margin.w + ) + + if rect.size.x > rect.size.y * _phantom_camera_manager.screen_size.aspect(): + zoom = clamp(_phantom_camera_manager.screen_size.x / rect.size.x, auto_zoom_min, auto_zoom_max) * Vector2.ONE + else: + zoom = clamp(_phantom_camera_manager.screen_size.y / rect.size.y, auto_zoom_min, auto_zoom_max) * Vector2.ONE + _target_transform.origin = rect.get_center() + follow_offset + else: + _target_transform.origin = follow_targets[_follow_targets_single_target_index].global_position + follow_offset + + FollowMode.PATH: + var path_position: Vector2 = follow_path.global_position + + _target_transform.origin = \ + follow_path.curve.get_closest_point( + _get_target_position_offset() - path_position + ) + path_position + + FollowMode.FRAMED: + if not Engine.is_editor_hint(): + if not _is_active: + _target_transform.origin = _get_target_position_offset() + else: + viewport_position = (get_follow_target().get_global_transform_with_canvas().get_origin() + follow_offset) / get_viewport_rect().size + var framed_side_offset: Vector2 = _get_framed_side_offset() + + if framed_side_offset != Vector2.ZERO: + var glo_pos: Vector2 + var target_position: Vector2 = _get_target_position_offset() + _follow_framed_offset + + if dead_zone_width == 0 || dead_zone_height == 0: + if dead_zone_width == 0 && dead_zone_height != 0: + _target_transform.origin = _get_target_position_offset() + elif dead_zone_width != 0 && dead_zone_height == 0: + glo_pos = _get_target_position_offset() + glo_pos.x += target_position.x - global_position.x + _target_transform.origin = glo_pos + else: + _target_transform.origin = _get_target_position_offset() + + # If a horizontal dead zone is reached + if framed_side_offset.x != 0 and framed_side_offset.y == 0: + _target_transform.origin.y = _transform_output.origin.y + _target_transform.origin.x = target_position.x + _follow_framed_offset.y = global_position.y - _get_target_position_offset().y + dead_zone_reached.emit(Vector2(framed_side_offset.x, 0)) + # If a vertical dead zone is reached + elif framed_side_offset.x == 0 and framed_side_offset.y != 0: + _target_transform.origin.x = _transform_output.origin.x + _target_transform.origin.y = target_position.y + _follow_framed_offset.x = global_position.x - _get_target_position_offset().x + dead_zone_reached.emit(Vector2(0, framed_side_offset.y)) + # If a deadzone corner is reached + else: + _target_transform.origin = target_position + dead_zone_reached.emit(Vector2(framed_side_offset.x, framed_side_offset.y)) + else: + _follow_framed_offset = _transform_output.origin - _get_target_position_offset() + return + else: + _target_transform.origin = _get_target_position_offset() + + +func _set_follow_velocity(index: int, value: float): + _follow_velocity_ref[index] = value + + +func _interpolate_position(target_position: Vector2, delta: float) -> void: + if _limit_inactive_pcam and not _tween_skip: + target_position = _set_limit_clamp_position(target_position) + + global_position = target_position + if follow_damping: + var output_position: Vector2 + for i in 2: + output_position[i] = _smooth_damp( + global_position[i], + _transform_output.origin[i], + i, + _follow_velocity_ref[i], + _set_follow_velocity, + follow_damping_value[i], + delta + ) + _transform_output = Transform2D(global_rotation, output_position) + else: + _transform_output = Transform2D(global_rotation, target_position) + + +func _smooth_damp(target_axis: float, self_axis: float, index: int, current_velocity: float, set_velocity: Callable, damping_time: float, delta: float) -> float: + damping_time = maxf(0.0001, damping_time) + var omega: float = 2 / damping_time + var x: float = omega * delta + var exponential: float = 1 / (1 + x + 0.48 * x * x + 0.235 * x * x * x) + var diff: float = self_axis - target_axis + var _target_axis: float = target_axis + + var max_change: float = INF * damping_time + diff = clampf(diff, -max_change, max_change) + target_axis = self_axis - diff + + var temp: float = (current_velocity + omega * diff) * delta + set_velocity.call(index, (current_velocity - omega * temp) * exponential) + var output: float = target_axis + (diff + temp) * exponential + + ## To prevent overshooting + if (_target_axis - self_axis > 0.0) == (output > _target_axis): + output = _target_axis + set_velocity.call(index, (output - _target_axis) / delta) + + return output + + +func _set_limit_clamp_position(value: Vector2) -> Vector2: + var camera_frame_rect_size: Vector2 = _camera_frame_rect().size + value.x = clampf(value.x, _limit_sides.x + camera_frame_rect_size.x / 2, _limit_sides.z - camera_frame_rect_size.x / 2) + value.y = clampf(value.y, _limit_sides.y + camera_frame_rect_size.y / 2, _limit_sides.w - camera_frame_rect_size.y / 2) + return value + + +func _draw() -> void: + if not Engine.is_editor_hint(): return + + if frame_preview and not _is_active: + draw_rect(_camera_frame_rect(), Color("3ab99a"), false, 2) + + +func _camera_frame_rect() -> Rect2: + var screen_size_zoom: Vector2 = Vector2(_phantom_camera_manager.screen_size.x / get_zoom().x, _phantom_camera_manager.screen_size.y / get_zoom().y) + + return Rect2(-screen_size_zoom / 2, screen_size_zoom) + + +func _on_tile_map_changed() -> void: + update_limit_all_sides() + + +func _get_target_position_offset() -> Vector2: + return follow_target.global_position + follow_offset + + +func _on_dead_zone_changed() -> void: + global_position = _get_target_position_offset() + + +func _get_framed_side_offset() -> Vector2: + var frame_out_bounds: Vector2 + + if viewport_position.x < 0.5 - dead_zone_width / 2: + # Is outside left edge + frame_out_bounds.x = -1 + + if viewport_position.y < 0.5 - dead_zone_height / 2: + # Is outside top edge + frame_out_bounds.y = 1 + + if viewport_position.x > 0.5 + dead_zone_width / 2: + # Is outside right edge + frame_out_bounds.x = 1 + + if viewport_position.y > 0.5001 + dead_zone_height / 2: # 0.501 to resolve an issue where the bottom vertical Dead Zone never becoming 0 when the Dead Zone Vertical parameter is set to 0 + # Is outside bottom edge + frame_out_bounds.y = -1 + + return frame_out_bounds + + +func _draw_camera_2d_limit() -> void: + if not is_instance_valid(_phantom_camera_manager): return + _phantom_camera_manager.draw_limit_2d.emit(draw_limits) + + +func _check_limit_is_not_default() -> void: + if _limit_sides == _limit_sides_default: + _limit_inactive_pcam = false + else: + _limit_inactive_pcam = true + + +func _check_visibility() -> void: + _phantom_camera_manager.pcam_visibility_changed.emit(self) + + +func _follow_target_tree_exiting(target: Node) -> void: + if target == follow_target: + _should_follow = false + if _follow_targets.has(target): + _follow_targets.erase(target) + + +func _should_follow_checker() -> void: + if follow_mode == FollowMode.NONE: + _should_follow = false + return + + if not follow_mode == FollowMode.GROUP: + if is_instance_valid(follow_target): + _should_follow = true + else: + _should_follow = false + + +func _follow_targets_size_check() -> void: + var targets_size: int = 0 + _follow_target_physics_based = false + _follow_targets = [] + for i in follow_targets.size(): + if follow_targets[i] == null: continue + if follow_targets[i].is_inside_tree(): + _follow_targets.append(follow_targets[i]) + targets_size += 1 + _follow_targets_single_target_index = i + _check_physics_body(follow_targets[i]) + if not follow_targets[i].tree_exiting.is_connected(_follow_target_tree_exiting): + follow_targets[i].tree_exiting.connect(_follow_target_tree_exiting.bind(follow_targets[i])) + + match targets_size: + 0: + _should_follow = false + _has_multiple_follow_targets = false + 1: + _should_follow = true + _has_multiple_follow_targets = false + _: + _should_follow = true + _has_multiple_follow_targets = true + + +func _noise_emitted(emitter_noise_output: Transform2D, emitter_layer: int) -> void: + if noise_emitter_layer & emitter_layer != 0: + noise_emitted.emit(emitter_noise_output) + + +func _set_layer(current_layers: int, layer_number: int, value: bool) -> int: + var mask: int = current_layers + + # From https://github.com/godotengine/godot/blob/51991e20143a39e9ef0107163eaf283ca0a761ea/scene/3d/camera_3d.cpp#L638 + if layer_number < 1 or layer_number > 20: + printerr("Render layer must be between 1 and 20.") + else: + if value: + mask |= 1 << (layer_number - 1) + else: + mask &= ~(1 << (layer_number - 1)) + + return mask + + +func _check_physics_body(target: Node2D) -> void: + if target is PhysicsBody2D: + var show_jitter_tips := ProjectSettings.get_setting("phantom_camera/tips/show_jitter_tips") + var physics_interpolation_enabled := ProjectSettings.get_setting("physics/common/physics_interpolation") + + ## NOTE - Feature Toggle + if Engine.get_version_info().major == 4 and \ + Engine.get_version_info().minor < 3: + if show_jitter_tips == null: # Default value is null when referencing custom Project Setting + print_rich("Following a [b]PhysicsBody2D[/b] node will likely result in jitter - on lower physics ticks in particular.") + print_rich("If possible, will recommend upgrading to Godot 4.3, as it has built-in support for 2D Physics Interpolation, which will mitigate this issue.") + print_rich("Otherwise, try following the guide on the [url=https://phantom-camera.dev/support/faq#i-m-seeing-jitter-what-can-i-do]documentation site[/url] for better results.") + print_rich("This tip can be disabled from within [code]Project Settings / Phantom Camera / Tips / Show Jitter Tips[/code]") + return + ## NOTE - Only supported in Godot 4.3 or above + elif not physics_interpolation_enabled and show_jitter_tips == null: # Default value is null when referencing custom Project Setting + printerr("Physics Interpolation is disabled in the Project Settings, recommend enabling it to smooth out physics-based camera movement") + print_rich("This tip can be disabled from within [code]Project Settings / Phantom Camera / Tips / Show Jitter Tips[/code]") + _follow_target_physics_based = true + else: + _is_parents_physics(target) + physics_target_changed.emit() + + +func _is_parents_physics(target: Node = self) -> void: + var current_node: Node = target + while current_node: + current_node = current_node.get_parent() + if not current_node is PhysicsBody2D: continue + _follow_target_physics_based = true + +#endregion + + +#region Public Functions + +## Updates the limit sides based what has been set to define it +## This should be automatic, but can be called manully if need be. +func update_limit_all_sides() -> void: + var limit_rect: Rect2 + + if not is_instance_valid(_limit_node): + _limit_sides.x = limit_left + _limit_sides.y = limit_top + _limit_sides.z = limit_right + _limit_sides.w = limit_bottom + elif _limit_node is TileMap or _limit_node.is_class("TileMapLayer"): + var tile_map := _limit_node + + if not tile_map.tile_set: return # TODO: This should be removed once https://github.com/godotengine/godot/issues/96898 is resolved + + var tile_map_size: Vector2 = Vector2(tile_map.get_used_rect().size) * Vector2(tile_map.tile_set.tile_size) * tile_map.get_scale() + var tile_map_position: Vector2 = tile_map.global_position + Vector2(tile_map.get_used_rect().position) * Vector2(tile_map.tile_set.tile_size) * tile_map.get_scale() + + ## Calculates the Rect2 based on the Tile Map position and size + margin + limit_rect = Rect2( + tile_map_position + Vector2(limit_margin.x, limit_margin.y), + tile_map_size - Vector2(limit_margin.x, limit_margin.y) - Vector2(limit_margin.z, limit_margin.w) + ) + + # Left + _limit_sides.x = roundi(limit_rect.position.x) + # Top + _limit_sides.y = roundi(limit_rect.position.y) + # Right + _limit_sides.z = roundi(limit_rect.position.x + limit_rect.size.x) + # Bottom + _limit_sides.w = roundi(limit_rect.position.y + limit_rect.size.y) + elif _limit_node is CollisionShape2D: + var collision_shape_2d: CollisionShape2D = _limit_node as CollisionShape2D + + if not collision_shape_2d.get_shape(): return + + var shape_2d: Shape2D = collision_shape_2d.get_shape() + var shape_2d_size: Vector2 = shape_2d.get_rect().size + var shape_2d_position: Vector2 = collision_shape_2d.global_position + Vector2(shape_2d.get_rect().position) + + ## Calculates the Rect2 based on the Tile Map position and size + limit_rect = Rect2(shape_2d_position, shape_2d_size) + + ## Calculates the Rect2 based on the Tile Map position and size + margin + limit_rect = Rect2( + limit_rect.position + Vector2(limit_margin.x, limit_margin.y), + limit_rect.size - Vector2(limit_margin.x, limit_margin.y) - Vector2(limit_margin.z, limit_margin.w) + ) + + # Left + _limit_sides.x = roundi(limit_rect.position.x) + # Top + _limit_sides.y = roundi(limit_rect.position.y) + # Right + _limit_sides.z = roundi(limit_rect.position.x + limit_rect.size.x) + # Bottom + _limit_sides.w = roundi(limit_rect.position.y + limit_rect.size.y) + + _check_limit_is_not_default() + if not _is_active: return + if not is_instance_valid(_phantom_camera_manager): return + _phantom_camera_manager.limit_2d_changed.emit(SIDE_LEFT, _limit_sides.x) + _phantom_camera_manager.limit_2d_changed.emit(SIDE_TOP, _limit_sides.y) + _phantom_camera_manager.limit_2d_changed.emit(SIDE_RIGHT, _limit_sides.z) + _phantom_camera_manager.limit_2d_changed.emit(SIDE_BOTTOM, _limit_sides.w) + _phantom_camera_manager.draw_limit_2d.emit(draw_limits) + + +func reset_limit() -> void: + if not is_instance_valid(_phantom_camera_manager): return + _phantom_camera_manager.limit_2d_changed.emit(SIDE_LEFT, _limit_sides_default.x) + _phantom_camera_manager.limit_2d_changed.emit(SIDE_TOP, _limit_sides_default.y) + _phantom_camera_manager.limit_2d_changed.emit(SIDE_RIGHT, _limit_sides_default.z) + _phantom_camera_manager.limit_2d_changed.emit(SIDE_BOTTOM, _limit_sides_default.w) + _phantom_camera_manager.draw_limit_2d.emit(draw_limits) + + +## Assigns the value of the [param has_tweened] property. +## [b][color=yellow]Important:[/color][/b] This value can only be changed +## from the [PhantomCameraHost] script. +func set_tween_skip(caller: Node, value: bool) -> void: + if is_instance_of(caller, PhantomCameraHost): + _tween_skip = value + else: + printerr("Can only be called PhantomCameraHost class") +## Returns the current [param has_tweened] value. +func get_tween_skip() -> bool: + return _tween_skip + +## Returns the [Transform3D] value based on the [member follow_mode] / [member look_at_mode] target value. +func get_transform_output() -> Transform2D: + return _transform_output + + +## Returns the noise [Transform3D] value. +func get_noise_transform() -> Transform2D: + return _transform_noise + + +## Emits a noise based on a custom [Transform2D] value.[br] +## Use this function if you wish to make use of external noise patterns from, for example, other addons. +func emit_noise(value: Transform2D) -> void: + noise_emitted.emit(value) + + +## Teleports the [param PhantomCamera2D] and [Camera2D] to their designated position, +## bypassing the damping process. +func teleport_position() -> void: + _follow_velocity_ref = Vector2.ZERO + _set_follow_position() + _transform_output.origin = _target_transform.origin + _phantom_camera_manager.pcam_teleport.emit(self) + +#endregion + + +#region Setter & Getter Functions + +## Assigns new Zoom value. +func set_zoom(value: Vector2) -> void: + zoom = value + queue_redraw() + +## Gets current Zoom value. +func get_zoom() -> Vector2: + return zoom + + +## Assigns new Priority value. +func set_priority(value: int) -> void: + priority = abs(value) + if not Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): return + Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME).pcam_priority_changed.emit(self) + +## Gets current Priority value. +func get_priority() -> int: + return priority + + +## Assigns a new PhantomCameraTween resource to the PhantomCamera2D +func set_tween_resource(value: PhantomCameraTween) -> void: + tween_resource = value + +## Gets the PhantomCameraTween resource assigned to the PhantomCamera2D +## Returns null if there's nothing assigned to it. +func get_tween_resource() -> PhantomCameraTween: + return tween_resource + + +## Assigns a new [param Tween Duration] to the [member tween_resource] value.[br] +## The duration value is in seconds. +func set_tween_duration(value: float) -> void: + tween_resource.duration = value + +## Gets the current [param Tween Duration] value inside the +## [member tween_resource].[br] +## The duration value is in seconds. +func get_tween_duration() -> float: + return tween_resource.duration + + +## Assigns a new [param Tween Transition] value inside the +## [member tween_resource]. +func set_tween_transition(value: int) -> void: + tween_resource.transition = value + +## Gets the current [param Tween Transition] value inside the +## [member tween_resource]. +func get_tween_transition() -> int: + return tween_resource.transition + + +## Assigns a new [param Tween Ease] value inside the [member tween_resource]. +func set_tween_ease(value: int) -> void: + tween_resource.ease = value + +## Gets the current [param Tween Ease] value inside the [member tween_resource]. +func get_tween_ease() -> int: + return tween_resource.ease + + +## Sets the [param PhantomCamera2D] active state.[br] +## [b][color=yellow]Important:[/color][/b] This value can only be changed +## from the [PhantomCameraHost] script. +func set_is_active(node, value) -> void: + if node is PhantomCameraHost: + _is_active = value + if value: + _should_follow_checker() + queue_redraw() + else: + printerr("PCams can only be set from the PhantomCameraHost") + +## Gets current active state of the [param PhantomCamera2D]. +## If it returns true, it means the [param PhantomCamera2D] is what the +## [param Camera2D] is currently following. +func is_active() -> bool: + return _is_active + + +## Enables or disables the [member tween_on_load]. +func set_tween_on_load(value: bool) -> void: + tween_on_load = value + +## Gets the current [member tween_on_load] value. +func get_tween_on_load() -> bool: + return tween_on_load + +## Sets the [member host_layers] value. +func set_host_layers(value: int) -> void: + host_layers = value + if is_instance_valid(_phantom_camera_manager): + _phantom_camera_manager.pcam_host_layer_changed.emit(self) + +## Enables or disables a given layer of [member host_layers]. +func set_host_layers_value(layer: int, value: bool) -> void: + host_layers = _set_layer(host_layers, layer, value) + +## Gets the current [member host_layers]. +func get_host_layers() -> int: + return host_layers + + +## Gets the current follow mode as an enum int based on [enum FollowMode].[br] +## [b]Note:[/b] Setting [enum FollowMode] purposely not added. +## A separate PCam should be used instead. +func get_follow_mode() -> int: + return follow_mode + + +## Assigns a new [Node2D] as the [member follow_target]. +func set_follow_target(value: Node2D) -> void: + if follow_mode == FollowMode.NONE or follow_mode == FollowMode.GROUP: return + if follow_target == value: return + follow_target = value + _follow_target_physics_based = false + if is_instance_valid(value): + if follow_mode == FollowMode.PATH: + if is_instance_valid(follow_path): + _should_follow = true + else: + _should_follow = false + else: + _should_follow = true + _check_physics_body(value) + if not follow_target.tree_exiting.is_connected(_follow_target_tree_exiting): + follow_target.tree_exiting.connect(_follow_target_tree_exiting.bind(follow_target)) + else: + _should_follow = false + follow_target_changed.emit() + notify_property_list_changed() + +## Erases the current [member follow_target]. +func erase_follow_target() -> void: + if follow_target == null: return + _should_follow = false + follow_target = null + _follow_target_physics_based = false + follow_target_changed.emit() + +## Gets the current [member follow_target]. +func get_follow_target() -> Node2D: + return follow_target + + +## Assigns a new [Path2D] to the [member follow_path]. +func set_follow_path(value: Path2D) -> void: + follow_path = value + if is_instance_valid(follow_path): + _should_follow_checker() + else: + _should_follow = false + +## Erases the current [Path2D] from the [member follow_path] property. +func erase_follow_path() -> void: + follow_path = null + +## Gets the current [Path2D] from the [member follow_path]. +func get_follow_path() -> Path2D: + return follow_path + + +## Assigns a new [param follow_targets] array value. +func set_follow_targets(value: Array[Node2D]) -> void: + if follow_mode != FollowMode.GROUP: return + if follow_targets == value: return + follow_targets = value + _follow_targets_size_check() + +## Appends a single [Node2D] to [member follow_targets]. +func append_follow_targets(value: Node2D) -> void: + if not is_instance_valid(value): + printerr(value, " is not a valid Node2D instance") + return + + if not follow_targets.has(value): + follow_targets.append(value) + _follow_targets_size_check() + else: + printerr(value, " is already part of Follow Group") + +## Adds an Array of type [Node2D] to [member follow_targets]. +func append_follow_targets_array(value: Array[Node2D]) -> void: + for target in value: + if not is_instance_valid(target): continue + if not follow_targets.has(target): + follow_targets.append(target) + _follow_targets_size_check() + else: + printerr(value, " is already part of Follow Group") + +## Removes a [Node2D] from [member follow_targets] array. +func erase_follow_targets(value: Node2D) -> void: + follow_targets.erase(value) + _follow_targets_size_check() + +## Gets all [Node2D] from [member follow_targets] array. +func get_follow_targets() -> Array[Node2D]: + return follow_targets + + +## Assigns a new Vector2 for the Follow Target Offset property. +func set_follow_offset(value: Vector2) -> void: + var temp_offset: Vector2 = follow_offset + + follow_offset = value + + if follow_axis_lock != FollowLockAxis.NONE: + temp_offset = temp_offset - value + match value: + FollowLockAxis.X: + _follow_axis_lock_value.x = _transform_output.origin.x + temp_offset.x + FollowLockAxis.Y: + _follow_axis_lock_value.y = _transform_output.origin.y + temp_offset.y + FollowLockAxis.XY: + _follow_axis_lock_value.x = _transform_output.origin.x + temp_offset.x + _follow_axis_lock_value.y = _transform_output.origin.y + temp_offset.y + + +## Gets the current Vector2 for the Follow Target Offset property. +func get_follow_offset() -> Vector2: + return follow_offset + + +## Enables or disables Follow Damping. +func set_follow_damping(value: bool) -> void: + follow_damping = value + notify_property_list_changed() + +## Gets the current Follow Damping property. +func get_follow_damping() -> bool: + return follow_damping + + +## Assigns new Damping value. +func set_follow_damping_value(value: Vector2) -> void: + ## TODO - Should be using @export_range once minimum version support is Godot 4.3 + if value.x < 0: value.x = 0 + elif value.y < 0: value.y = 0 + follow_damping_value = value + +## Gets the current Follow Damping value. +func get_follow_damping_value() -> Vector2: + return follow_damping_value + +## Assigns a new [member follow_axis] member. Value is based on [enum FollowLockAxis] enum. +func set_lock_axis(value: FollowLockAxis) -> void: + follow_axis_lock = value + + # Wait for the node to be ready before setting lock + if not is_node_ready(): await ready + + # Prevent axis lock from working in the editor + if value != FollowLockAxis.NONE and not Engine.is_editor_hint(): + _follow_axis_is_locked = true + match value: + FollowLockAxis.X: + _follow_axis_lock_value.x = _transform_output.origin.x + FollowLockAxis.Y: + _follow_axis_lock_value.y = _transform_output.origin.y + FollowLockAxis.XY: + _follow_axis_lock_value.x = _transform_output.origin.x + _follow_axis_lock_value.y = _transform_output.origin.y + else: + _follow_axis_is_locked = false + +## Gets the current [member follow_axis_lock] value. Value is based on [enum FollowLockAxis] enum. +func get_lock_axis() -> FollowLockAxis: + return follow_axis_lock + + +## Enables or disables [member snap_to_pixel]. +func set_snap_to_pixel(value: bool) -> void: + snap_to_pixel = value + +## Gets the current [member snap_to_pixel] value. +func get_snap_to_pixel() -> bool: + return snap_to_pixel + + +## Enables or disables Auto zoom when using Group Follow. +func set_auto_zoom(value: bool) -> void: + auto_zoom = value + notify_property_list_changed() + +## Gets Auto Zoom state. +func get_auto_zoom() -> bool: + return auto_zoom + + +## Assigns new Min Auto Zoom value. +func set_auto_zoom_min(value: float) -> void: + auto_zoom_min = value + +## Gets Min Auto Zoom value. +func get_auto_zoom_min() -> float: + return auto_zoom_min + + +## Assigns new Max Auto Zoom value. +func set_auto_zoom_max(value: float) -> void: + auto_zoom_max = value + +## Gets Max Auto Zoom value. +func get_auto_zoom_max() -> float: + return auto_zoom_max + + +## Assigns new Zoom Auto Margin value. +func set_auto_zoom_margin(value: Vector4) -> void: + auto_zoom_margin = value + +## Gets Zoom Auto Margin value. +func get_auto_zoom_margin() -> Vector4: + return auto_zoom_margin + + +## Sets a limit side based on the side parameter.[br] +## It's recommended to pass the [enum Side] enum as the sid parameter. +func set_limit(side: int, value: int) -> void: + match side: + SIDE_LEFT: limit_left = value + SIDE_TOP: limit_top = value + SIDE_RIGHT: limit_right = value + SIDE_BOTTOM: limit_bottom = value + _: printerr("Not a valid Side.") + +## Gets the limit side +func get_limit(value: int) -> int: + match value: + SIDE_LEFT: return limit_left + SIDE_TOP: return limit_top + SIDE_RIGHT: return limit_right + SIDE_BOTTOM: return limit_bottom + _: + printerr("Not a valid Side.") + return -1 + + +## Assign a the Camera2D Left Limit Side value. +func set_limit_left(value: int) -> void: + _limit_target_exist_error() + limit_left = value + update_limit_all_sides() + +## Gets the Camera2D Left Limit value. +func get_limit_left() -> int: + return limit_left + + +## Assign a the Camera2D Top Limit Side value. +func set_limit_top(value: int) -> void: + _limit_target_exist_error() + limit_top = value + update_limit_all_sides() + +## Gets the Camera2D Top Limit value. +func get_limit_top() -> int: + return limit_top + + +## Assign a the Camera2D Right Limit Side value. +func set_limit_right(value: int) -> void: + _limit_target_exist_error() + limit_right = value + update_limit_all_sides() + +## Gets the Camera2D Right Limit value. +func get_limit_right() -> int: + return limit_right + + +## Assign a the Camera2D Bottom Limit Side value. +func set_limit_bottom(value: int) -> void: + _limit_target_exist_error() + limit_bottom = value + update_limit_all_sides() + +## Gets the Camera2D Bottom Limit value. +func get_limit_bottom() -> int: + return limit_bottom + + +func _limit_target_exist_error() -> void: + if not limit_target.is_empty(): + printerr("Unable to set Limit Side due to Limit Target ", _limit_node.name, " being assigned") + + +# Sets a [memeber limit_target] node. +func set_limit_target(value: NodePath) -> void: + limit_target = value + + # Waits for PCam2d's _ready() before trying to validate limit_node_path + if not is_node_ready(): await ready + + # Removes signal from existing TileMap node + if is_instance_valid(get_node_or_null(value)): + var prev_limit_node: Node2D = _limit_node + var new_limit_node: Node2D = get_node(value) + + if prev_limit_node: + if prev_limit_node is TileMap or prev_limit_node.is_class("TileMapLayer"): + if prev_limit_node.changed.is_connected(_on_tile_map_changed): + prev_limit_node.changed.disconnect(_on_tile_map_changed) + + if new_limit_node is TileMap or new_limit_node.is_class("TileMapLayer"): + if not new_limit_node.changed.is_connected(_on_tile_map_changed): + new_limit_node.changed.connect(_on_tile_map_changed) + elif new_limit_node is CollisionShape2D: + var col_shape: CollisionShape2D = get_node(value) + + if col_shape.shape == null: + printerr("No Shape2D in: ", col_shape.name) + reset_limit() + limit_target = "" + return + else: + printerr("Limit Target is not a TileMap, TileMapLayer or CollisionShape2D node") + return + elif value == NodePath(""): + reset_limit() + limit_target = "" + else: + printerr("Limit Target cannot be found") + return + + _limit_node = get_node_or_null(value) + + notify_property_list_changed() + update_limit_all_sides() + +## Get [member limit_target] node. +func get_limit_target() -> NodePath: + if not limit_target: # TODO - Fixes an spam error if if limit_taret is empty + return NodePath("") + else: + return limit_target + + +## Set Tile Map Limit Margin. +func set_limit_margin(value: Vector4i) -> void: + limit_margin = value + update_limit_all_sides() +## Get Tile Map Limit Margin. +func get_limit_margin() -> Vector4i: + return limit_margin + + +### Enables or disables the Limit Smoothing beaviour. +#func set_limit_smoothing(value: bool) -> void: + #limit_smoothed = value +### Returns the Limit Smoothing beaviour. +#func get_limit_smoothing() -> bool: + #return limit_smoothed + + +## Sets a [PhantomCameraNoise2D] resource. +func set_noise(value: PhantomCameraNoise2D) -> void: + noise = value + if value != null: + _has_noise_resource = true + noise.set_trauma(1) + else: + _has_noise_resource = false + _transform_noise = Transform2D() + +## Returns the [PhantomCameraNoise2D] resource. +func get_noise() -> PhantomCameraNoise2D: + return noise + +func has_noise_resource() -> bool: + return _has_noise_resource + + +## Sets the [member noise_emitter_layer] value. +func set_noise_emitter_layer(value: int) -> void: + noise_emitter_layer = value + +## Enables or disables a given layer of [member noise_emitter_layer]. +func set_noise_emitter_layer_value(value: int, enabled: bool) -> void: + noise_emitter_layer = _set_layer(noise_emitter_layer, value, enabled) + +## Returns the [member noise_emitter_layer] +func get_noise_emitter_layer() -> int: + return noise_emitter_layer + + +## Sets [member inactive_update_mode] property. +func set_inactive_update_mode(value: int) -> void: + inactive_update_mode = value + +## Gets [enum InactiveUpdateMode] value. +func get_inactive_update_mode() -> int: + return inactive_update_mode + + +func get_follow_target_physics_based() -> bool: + return _follow_target_physics_based + + +func get_class() -> String: + return "PhantomCamera2D" + + +func is_class(value) -> bool: + return value == "PhantomCamera2D" + +#endregion diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd.uid b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd.uid new file mode 100644 index 0000000..66fa7de --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd.uid @@ -0,0 +1 @@ +uid://bhexx6mj1xv3q diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd new file mode 100644 index 0000000..725b4ff --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd @@ -0,0 +1,2195 @@ +@tool +@icon("res://addons/phantom_camera/icons/phantom_camera_3d.svg") +class_name PhantomCamera3D +extends Node3D + +## Controls a scene's [Camera3D] and applies logic to it. +## +## The scene's [Camera3D] will follow the position of the +## [param PhantomCamera3D] with the highest priority. +## Each instance can have different positional and rotational logic applied +## to them. + +#region Constants + +const _constants = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") + +#endregion + + +#region Signals + +## Emitted when the [param PhantomCamera3D] becomes active. +signal became_active + +## Emitted when the [param PhantomCamera3D] becomes inactive. +signal became_inactive + +## Emitted when the follow_mode changes. +## Note: This is for internal use only +signal follow_mode_changed + +## Emitted when [member follow_target] changes. +signal follow_target_changed + +## Emitted when [member look_at_target] changes. +signal look_at_target_changed + +## Emitted when dead zones changes.[br] +## [b]Note:[/b] Only applicable in [param Framed] [member FollowMode]. +signal dead_zone_changed + +## Emitted when a target touches the edge of the dead zone in [param Framed] [enum FollowMode]. +signal dead_zone_reached + +## Emitted when the [param Camera3D] starts to tween to another +## [param PhantomCamera3D]. +signal tween_started + +## Emitted when the [param Camera3D] is to tweening towards another +## [param PhantomCamera3D]. +signal is_tweening + +## Emitted when the tween is interrupted due to another [param PhantomCamera3D] +## becoming active. The argument is the [param PhantomCamera3D] that +## interrupted the tween. +signal tween_interrupted(pcam_3d: PhantomCamera3D) + +## Emitted when the [param Camera3D] completes its tween to the +## [param PhantomCamera3D]. +signal tween_completed + +## Emitted when Noise should be applied to the [param Camera3D]. +signal noise_emitted(noise_output: Transform3D) + +signal physics_target_changed + +signal camera_3d_resource_property_changed(property: StringName, value: Variant) +signal camera_3d_resource_changed + +#endregion + + +#region Enums + +## Determines the positional logic for a given [param PhantomCamera3D] +## [br][br] +## The different modes have different functionalities and purposes, so choosing +## the correct one depends on what each [param PhantomCamera3D] is meant to do. +enum FollowMode { + NONE = 0, ## Default - No follow logic is applied. + GLUED = 1, ## Sticks to its target. + SIMPLE = 2, ## Follows its target with an optional offset. + GROUP = 3, ## Follows multiple targets with option to dynamically reframe itself. + PATH = 4, ## Follows a target while being positionally confined to a [Path3D] node. + FRAMED = 5, ## Applies a dead zone on the frame and only follows its target when it tries to leave it. + THIRD_PERSON = 6, ## Applies a [SpringArm3D] node to the target's position and allows for rotating around it. +} + +## Determines the rotational logic for a given [param PhantomCamera3D].[br][br] +## The different modes has different functionalities and purposes, so +## choosing the correct mode depends on what each [param PhantomCamera3D] +## is meant to do. +enum LookAtMode { + NONE = 0, ## Default - No Look At logic is applied. + MIMIC = 1, ## Copies its target's rotational value. + SIMPLE = 2, ## Looks at its target in a straight line. + GROUP = 3, ## Looks at the centre of its targets. +} + +## Determines how often an inactive [param PhantomCamera3D] should update +## its positional and rotational values. This is meant to reduce the amount +## of calculations inactive [param PhantomCamera3D] are doing when idling +## to improve performance. +enum InactiveUpdateMode { + ALWAYS, ## Always updates the [param PhantomCamera3D], even when it's inactive. + NEVER, ## Never updates the [param PhantomCamera3D] when it's inactive. Reduces the amount of computational resources when inactive. +# EXPONENTIALLY, +} + +enum FollowLockAxis { + NONE = 0, + X = 1, + Y = 2, + Z = 3, + XY = 4, + XZ = 5, + YZ = 6, + XYZ = 7, +} + +#endregion + + +#region Exported Properties + +## To quickly preview a [param PhantomCamera3D] without adjusting its +## [member Priority], this property allows the selected [param PhantomCamera3D] +## to ignore the Priority system altogether and forcefully become the active +## one. It's partly designed to work within the [param viewfinder], and will be +## disabled when running a build export of the game. +@export var priority_override: bool = false: + set(value): + priority_override = value + if Engine.is_editor_hint(): + if value: + if not Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): return + Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME).pcam_priority_override.emit(self, priority_override) + else: + if not Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): return + Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME).pcam_priority_override.emit(self, priority_override) + get: + return priority_override + + +## It defines which [param PhantomCamera3D] a scene's [param Camera3D] should +## be corresponding with and be attached to. This is decided by the +## [param PhantomCamera3D] with the highest [param priority]. +## [br][br] +## Changing [param priority] will send an event to the scene's +## [PhantomCameraHost], which will then determine whether if the +## [param priority] value is greater than or equal to the currently +## highest [param PhantomCamera3D]'s in the scene. The +## [param PhantomCamera3D] with the highest value will then reattach the +## Camera accordingly. +@export var priority: int = 0: + set = set_priority, + get = get_priority + + +## Determines the positional logic for a given [param PhantomCamera3D]. +## The different modes have different functionalities and purposes, so +## choosing the correct one depends on what each [param PhantomCamera3D] +## is meant to do. +@export var follow_mode: FollowMode = FollowMode.NONE: + set(value): + follow_mode = value + + if follow_mode == FollowMode.NONE: + _should_follow = false + top_level = false + _is_parents_physics() + notify_property_list_changed() + return + + match follow_mode: + FollowMode.PATH: + if is_instance_valid(follow_path): + _should_follow_checker() + FollowMode.GROUP: + _follow_targets_size_check() + _: + _should_follow_checker() + + if follow_mode == FollowMode.FRAMED: + if _follow_framed_initial_set and follow_target: + _follow_framed_initial_set = false + dead_zone_changed.connect(_on_dead_zone_changed) + else: + if dead_zone_changed.is_connected(_on_dead_zone_changed): + dead_zone_changed.disconnect(_on_dead_zone_changed) + + if follow_mode == FollowMode.THIRD_PERSON: + top_level = false + else: + top_level = true + + follow_mode_changed.emit() + notify_property_list_changed() + + ## NOTE - Warning that Look At + Follow Mode hasn't been fully tested together yet + if look_at_mode != LookAtMode.NONE: + print_rich("[color=#EAA15E]Warning: Using both Look At and Follow Mode on the same PCam3D has not been fully tested yet, proceed with caution![/color]") + get: + return follow_mode + +## Determines which target should be followed. +## The [param Camera3D] will follow the position of the Follow Target based on +## the [member follow_mode] type and its parameters. +@export var follow_target: Node3D = null: + set = set_follow_target, + get = get_follow_target + +## Defines the targets that the [param PhantomCamera3D] should be following. +@export var follow_targets: Array[Node3D] = []: + set = set_follow_targets, + get = get_follow_targets + +## Determines the [Path3D] node the [param PhantomCamera3D] +## should be bound to. +## The [param PhantomCamera3D] will follow the position of the +## [member follow_target] while sticking to the closest point on this path. +@export var follow_path: Path3D = null: + set = set_follow_path, + get = get_follow_path + + +## Determines the rotational logic for a given [param PhantomCamera3D]. +## The different modes has different functionalities and purposes, +## so choosing the correct mode depends on what each +## [param PhantomCamera3D] is meant to do. +@export var look_at_mode: LookAtMode = LookAtMode.NONE: + set(value): + look_at_mode = value + + if look_at_mode == LookAtMode.NONE: + _should_look_at = false + notify_property_list_changed() + return + + if not look_at_mode == LookAtMode.GROUP: + if look_at_target is Node3D: + _should_look_at = true + else: # If Look At Group + _look_at_targets_size_check() + notify_property_list_changed() + + ## NOTE - Warning that Look At + Follow Mode hasn't been fully tested together yet + if follow_mode != FollowMode.NONE: + print_rich("[color=#EAA15E]Warning: Using both Look At and Follow Mode on the same PCam3D has not been fully tested yet, proceed with caution![/color]") + get: + return look_at_mode + +## Determines which target should be looked at. +## The [param PhantomCamera3D] will update its rotational value as the +## target changes its position. +@export var look_at_target: Node3D = null: + set = set_look_at_target, + get = get_look_at_target + +## Defines the targets that the camera should looking at. +## It will be looking at the centre of all the assigned targets. +@export var look_at_targets: Array[Node3D] = []: + set = set_look_at_targets, + get = get_look_at_targets + + +## Defines how [param ]PhantomCamera3Ds] transition between one another. +## Changing the tween values for a given [param PhantomCamera3D] +## determines how transitioning to that instance will look like. +## This is a resource type that can be either used for one +## [param PhantomCamera] or reused across multiple - both 2D and 3D. +## By default, all [param PhantomCameras] will use a [param linear] +## transition, [param easeInOut] ease with a [param 1s] duration. +@export var tween_resource: PhantomCameraTween = PhantomCameraTween.new(): + set = set_tween_resource, + get = get_tween_resource + +## If enabled, the moment a [param PhantomCamera3D] is instantiated into +## a scene, and has the highest priority, it will perform its tween transition. +## This is most obvious if a [param PhantomCamera3D] has a long duration and +## is attached to a playable character that can be moved the moment a scene +## is loaded. Disabling the [param tween_on_load] property will +## disable this behaviour and skip the tweening entirely when instantiated. +@export var tween_on_load: bool = true: + set = set_tween_on_load, + get = get_tween_on_load + + +## Determines how often an inactive [param PhantomCamera3D] should update +## its positional and rotational values. This is meant to reduce the amount +## of calculations inactive [param PhantomCamera3Ds] are doing when idling +## to improve performance. +@export var inactive_update_mode: InactiveUpdateMode = InactiveUpdateMode.ALWAYS: + set = set_inactive_update_mode, + get = get_inactive_update_mode + + +## Determines which layers this [param PhantomCamera3D] should be able to communicate with [PhantomCameraHost] nodes.[br] +## A corresponding layer needs to be set on the [PhantomCameraHost] node. +@export_flags_3d_render var host_layers: int = 1: + set = set_host_layers, + get = get_host_layers + + +## A resource type that allows for overriding the [param Camera3D] node's +## properties. +@export var camera_3d_resource: Camera3DResource = null: + set = set_camera_3d_resource, + get = get_camera_3d_resource + + +## Overrides the [member Camera3D.attribuets] resource property. +@export var attributes: CameraAttributes = null: + set = set_attributes, + get = get_attributes + + +## Overrides the [member Camera3D.environment] resource property. +@export var environment: Environment = null: + set = set_environment, + get = get_environment + + +@export_group("Follow Parameters") +## Offsets the [member follow_target] position. +@export var follow_offset: Vector3 = Vector3.ZERO: + set = set_follow_offset, + get = get_follow_offset + +## Applies a damping effect on the camera's movement. +## Leading to heavier / slower camera movement as the targeted node moves around. +## This is useful to avoid sharp and rapid camera movement. +@export var follow_damping: bool = false: + set = set_follow_damping, + get = get_follow_damping + +## Defines the damping amount. The ideal range should be somewhere between 0-1.[br][br] +## The damping amount can be specified in the individual axis.[br][br] +## [b]Lower value[/b] = faster / sharper camera movement.[br] +## [b]Higher value[/b] = slower / heavier camera movement. +@export var follow_damping_value: Vector3 = Vector3(0.1, 0.1, 0.1): + set = set_follow_damping_value, + get = get_follow_damping_value + + +## Prevents the [param PhantomCamera2D] from moving in a designated axis. +## This can be enabled or disabled at runtime or from the editor directly. +@export var follow_axis_lock: FollowLockAxis = FollowLockAxis.NONE: + set = set_follow_axis_lock, + get = get_follow_axis_lock +var _follow_axis_is_locked: bool = false +var _follow_axis_lock_value: Vector3 = Vector3.ZERO + + +## Sets a distance offset from the centre of the target's position. +## The distance is applied to the [param PhantomCamera3D]'s local z axis. +@export var follow_distance: float = 1: + set = set_follow_distance, + get = get_follow_distance + +## Enables the [param PhantomCamera3D] to automatically distance +## itself as the [param follow targets] move further apart.[br] +## It looks at the longest axis between the different targets and interpolates +## the distance length between the [member auto_follow_distance_min] and +## [member follow_group_distance] properties.[br][br] +## Note: Enabling this property hides and disables the [member follow_distance] +## property as this effectively overrides that property. +@export var auto_follow_distance: bool = false: + set = set_auto_follow_distance, + get = get_auto_follow_distance + +## Sets the minimum distance between the Camera and centre of [AABB]. +## [br][br] +## Note: This distance will only ever be reached when all the targets are in +## the exact same [param Vector3] coordinate, which will very unlikely +## happen, so adjust the value here accordingly. +## [br][br] +## If only one follow target is assigned to [member follow_targets], this value will be used as the `follow_distance`. +@export var auto_follow_distance_min: float = 1: + set = set_auto_follow_distance_min, + get = get_auto_follow_distance_min + +## Sets the maximum distance between the Camera and centre of [AABB]. +@export var auto_follow_distance_max: float = 5: + set = set_auto_follow_distance_max, + get = get_auto_follow_distance_max + +## Determines how fast the [member auto_follow_distance] moves between the +## maximum and minimum distance. The higher the value, the sooner the +## maximum distance is reached.[br][br] +## This value should be based on the sizes of the [member auto_follow_distance_min] +## and [member auto_follow_distance_max].[br] +## E.g. if the value between the [member auto_follow_distance_min] and +## [member auto_follow_distance_max] is small, consider keeping the number low +## and vice versa. +@export var auto_follow_distance_divisor: float = 10: + set = set_auto_follow_distance_divisor, + get = get_auto_follow_distance_divisor + + +@export_subgroup("Dead Zones") +## Defines the horizontal dead zone area. While the target is within it, the +## [param PhantomCamera3D] will not move in the horizontal axis. +## If the targeted node leaves the horizontal bounds, the +## [param PhantomCamera3D] will follow the target horizontally to keep +## it within bounds. +@export_range(0, 1) var dead_zone_width: float = 0: + set(value): + dead_zone_width = value + dead_zone_changed.emit() + get: + return dead_zone_width + +## Defines the vertical dead zone area. While the target is within it, the +## [param PhantomCamera3D] will not move in the vertical axis. +## If the targeted node leaves the vertical bounds, the +## [param PhantomCamera3D] will follow the target horizontally to keep +## it within bounds. +@export_range(0, 1) var dead_zone_height: float = 0: + set(value): + dead_zone_height = value + dead_zone_changed.emit() + get: + return dead_zone_height + +## Enables the dead zones to be visible when running the game from the editor. +## Dead zones will never be visible in build exports. +@export var show_viewfinder_in_play: bool = false + +## Defines the position of the [member follow_target] within the viewport.[br] +## This is only used for when [member follow_mode] is set to [param Framed]. + +@export_subgroup("Spring Arm") + +## Defines the [member SpringArm3D.spring_length]. +@export var spring_length: float = 1: + set = set_spring_length, + get = get_spring_length + +## Defines the [member SpringArm3D.collision_mask] node's Collision Mask. +@export_flags_3d_physics var collision_mask: int = 1: + set = set_collision_mask, + get = get_collision_mask + +## Defines the [member SpringArm3D.shape] node's Shape3D. +@export var shape: Shape3D = null: + set = set_shape, + get = get_shape + +## Defines the [member SpringArm3D.margin] node's Margin. +@export var margin: float = 0.01: + set = set_margin, + get = get_margin + + +@export_group("Look At Parameters") +## Offsets the target's [param Vector3] position that the +## [param PhantomCamera3D] is looking at. +@export var look_at_offset: Vector3 = Vector3.ZERO: + set = set_look_at_offset, + get = get_look_at_offset + +## Applies a damping effect on the camera's rotation. +## Leading to heavier / slower camera movement as the targeted node moves around. +## This is useful to avoid sharp and rapid camera rotation. +@export var look_at_damping: bool = false: + set = set_look_at_damping, + get = get_look_at_damping + +## Defines the Rotational damping amount. The ideal range is typically somewhere between 0-1.[br][br] +## The damping amount can be specified in the individual axis.[br][br] +## [b]Lower value[/b] = faster / sharper camera rotation.[br] +## [b]Higher value[/b] = slower / heavier camera rotation. +@export_range(0.0, 1.0, 0.001, "or_greater") var look_at_damping_value: float = 0.25: + set = set_look_at_damping_value, + get = get_look_at_damping_value + +@export_subgroup("Up Direction") + +## Defines the upward direction of the [param PhantomCamera3D] when [member look_at_mode] is set. [br] +## This value will be overriden if [member up_target] is defined. +@export var up: Vector3 = Vector3.UP: + set = set_up, + get = get_up + +## Applies and continuously updates the [param up] direction of the [param PhantomCamera3D] based on this target when [member look_at_mode] is set.[br] +## Setting a value here will override the [member up] value. +@export var up_target: Node3D = null: + set = set_up_target, + get = get_up_target + + +@export_group("Noise") +## Applies a noise, or shake, to a [Camera3D].[br] +## Once set, the noise will run continuously after the tween to the [PhantomCamera3D] instance is complete. +@export var noise: PhantomCameraNoise3D = null: + set = set_noise, + get = get_noise + +## If true, will trigger the noise while in the editor.[br] +## Useful in cases where you want to temporarily disalbe the noise in the editor without removing +## the resource.[br][br] +## [b]Note:[/b] This property has no effect on runtime behaviour. +@export var _preview_noise: bool = true: + set(value): + _preview_noise = value + if not value: + _transform_noise = Transform3D() + +## Enable a corresponding layer for a [member PhantomCameraNoiseEmitter3D.noise_emitter_layer] +## to make this [PhantomCamera3D] be affect by it. +@export_flags_3d_render var noise_emitter_layer: int = 0: + set = set_noise_emitter_layer, + get = get_noise_emitter_layer + +#endregion + +#region Private Variables + +var _is_active: bool = false + +var _is_third_person_follow: bool = false +var _camera_target: Node3D = self # Calculates the position of the camera in the editor, uses instantiated SpringArm3D node when running the scene + +var _should_follow: bool = false +var _follow_target_physics_based: bool = false +var _physics_interpolation_enabled: bool = false ## TOOD - Should be enbled once toggling physics_interpolation_mode ON, when previously OFF, works in 3D + +var _has_multiple_follow_targets: bool = false +var _follow_targets_single_target_index: int = 0 +var _follow_targets: Array[Node3D] = [] + +var _should_look_at: bool = false +var _look_at_target_physics_based: bool = false + +var _has_multiple_look_at_targets: bool = false +var _look_at_targets_single_target_index: int = 0 + +var _current_rotation: Vector3 = Vector3.ZERO + +var _up: Vector3 = Vector3.UP +var _has_up_target: bool = false + +var _target_transform: Transform3D = Transform3D() + +var _transform_output: Transform3D = Transform3D() +var _transform_noise: Transform3D = Transform3D() + +var _tween_skip: bool = false + +var _follow_velocity_ref: Vector3 = Vector3.ZERO # Stores and applies the velocity of the movement + +var _follow_framed_initial_set: bool = false +var _follow_framed_offset: Vector3 = Vector3.ZERO + +var _follow_spring_arm: SpringArm3D = null +var _has_follow_spring_arm: bool = false + +var _has_noise_resource: bool = false + + +# NOTE - Temp solution until Godot has better plugin autoload recognition out-of-the-box. +var _phantom_camera_manager: Node = null + +#endregion + +#region Public Variable + +var tween_duration: float: + set = set_tween_duration, + get = get_tween_duration +var tween_transition: PhantomCameraTween.TransitionType: + set = set_tween_transition, + get = get_tween_transition +var tween_ease: PhantomCameraTween.EaseType: + set = set_tween_ease, + get = get_tween_ease + +var keep_aspect: int: + set = set_keep_aspect, + get = get_keep_aspect +var cull_mask: int: + set = set_cull_mask, + get = get_cull_mask +var h_offset: float: + set = set_h_offset, + get = get_h_offset +var v_offset: float: + set = set_v_offset, + get = get_v_offset +var projection: Camera3DResource.ProjectionType: + set = set_projection, + get = get_projection +var fov: float: + set = set_fov, + get = get_fov +var size: float: + set = set_size, + get = get_size +var frustum_offset: Vector2: + set = set_frustum_offset, + get = get_frustum_offset +var far: float: + set = set_far, + get = get_far +var near: float: + set = set_near, + get = get_near + +var viewport_position: Vector2 + +#endregion + + +#region Private Functions + +func _validate_property(property: Dictionary) -> void: + ################ + ## Follow Target + ################ + if property.name == "follow_target": + if follow_mode == FollowMode.NONE or \ + follow_mode == FollowMode.GROUP: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "follow_path" and \ + follow_mode != FollowMode.PATH: + property.usage = PROPERTY_USAGE_NO_EDITOR + + #################### + ## Follow Parameters + #################### + if follow_mode == FollowMode.NONE: + match property.name: + "follow_offset", \ + "follow_damping", \ + "follow_damping_value", \ + "follow_axis_lock": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "follow_offset": + if follow_mode == FollowMode.PATH or \ + follow_mode == FollowMode.GLUED: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "follow_damping_value" and not follow_damping: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "follow_offset": + if follow_mode == FollowMode.PATH: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "follow_distance": + if not follow_mode == FollowMode.FRAMED: + if not follow_mode == FollowMode.GROUP or \ + auto_follow_distance: \ + property.usage = PROPERTY_USAGE_NO_EDITOR + + ############### + ## Group Follow + ############### + if property.name == "follow_targets" and \ + not follow_mode == FollowMode.GROUP: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "auto_follow_distance" and \ + not follow_mode == FollowMode.GROUP: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if not auto_follow_distance or not follow_mode == FollowMode.GROUP: + match property.name: + "auto_follow_distance_min", \ + "auto_follow_distance_max", \ + "auto_follow_distance_divisor": + property.usage = PROPERTY_USAGE_NO_EDITOR + + ############### + ## Framed Follow + ############### + if not follow_mode == FollowMode.FRAMED: + match property.name: + "dead_zone_width", \ + "dead_zone_height", \ + "show_viewfinder_in_play": + property.usage = PROPERTY_USAGE_NO_EDITOR + + ###################### + ## Third Person Follow + ###################### + if not follow_mode == FollowMode.THIRD_PERSON: + match property.name: + "spring_length", \ + "collision_mask", \ + "shape", \ + "margin": + property.usage = PROPERTY_USAGE_NO_EDITOR + + ########## + ## Look At + ########## + if look_at_mode == LookAtMode.NONE: + match property.name: + "look_at_target", \ + "look_at_offset" , \ + "look_at_damping", \ + "look_at_damping_value", \ + "up", \ + "up_target": + property.usage = PROPERTY_USAGE_NO_EDITOR + elif look_at_mode == LookAtMode.GROUP: + match property.name: + "look_at_target": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "look_at_target": + if look_at_mode == LookAtMode.NONE or \ + look_at_mode == LookAtMode.GROUP: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "look_at_targets" and \ + not look_at_mode == LookAtMode.GROUP: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "look_at_damping_value" and \ + not look_at_damping: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "up" and _has_up_target: + property.usage = PROPERTY_USAGE_NO_EDITOR + + +func _enter_tree() -> void: + _phantom_camera_manager = Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME) + _tween_skip = !tween_on_load + + _phantom_camera_manager.pcam_added(self) + + priority_override = false + + if not visibility_changed.is_connected(_check_visibility): + visibility_changed.connect(_check_visibility) + + _should_follow_checker() + _should_look_at_checker() + + if follow_mode == FollowMode.GROUP: + _follow_targets_size_check() + elif follow_mode == FollowMode.NONE: + _is_parents_physics() + + if look_at_mode == LookAtMode.GROUP: + _look_at_targets_size_check() + + #if not get_parent() is SpringArm3D: + #if look_at_target: + #_look_at_target_node = look_at_target + #elif look_at_targets: + #_look_at_group_nodes.clear() + #for path in look_at_targets: + #if not path.is_empty() and path: + #_should_look_at = true + #_has_look_at_targets = true + #_look_at_group_nodes.append(path) + + +func _exit_tree() -> void: + if not follow_mode == FollowMode.GROUP: + follow_targets = [] + + if not is_instance_valid(_phantom_camera_manager): return + _phantom_camera_manager.pcam_removed(self) + + +func _ready(): + match follow_mode: + FollowMode.THIRD_PERSON: + _is_third_person_follow = true + _transform_output.origin = _get_target_position_offset_distance() + if not Engine.is_editor_hint(): + if not is_instance_valid(_follow_spring_arm): + _follow_spring_arm = SpringArm3D.new() + _follow_spring_arm.top_level = true + _follow_spring_arm.rotation = global_rotation + _follow_spring_arm.spring_length = spring_length + _follow_spring_arm.collision_mask = collision_mask + _follow_spring_arm.shape = shape + _follow_spring_arm.margin = margin + _follow_spring_arm.add_excluded_object(follow_target) + get_parent().add_child.call_deferred(_follow_spring_arm) + reparent.call_deferred(_follow_spring_arm) + + # Waits for the SpringArm3D to be ready and then apply rotation + # Resolves an issue most prominent in Godot 4.4 + await _follow_spring_arm.ready + _camera_target = _follow_spring_arm + _follow_spring_arm.position = _get_target_position_offset() if is_instance_valid(follow_target) else global_position + _follow_spring_arm.global_rotation = global_rotation + _has_follow_spring_arm = true + FollowMode.FRAMED: + if not Engine.is_editor_hint(): + if is_instance_valid(follow_target): + _follow_framed_offset = global_position - _get_target_position_offset() + _current_rotation = global_rotation + FollowMode.GROUP: + _follow_targets_size_check() + _: + if is_instance_valid(follow_target): + _transform_output.origin = _get_target_position_offset() + else: + _transform_output.origin = global_transform.origin + + if not Engine.is_editor_hint(): + _preview_noise = true + + ## NOTE - Only here to set position for Framed View on startup. + ## Should be removed once https://github.com/ramokz/phantom-camera/issues/161 is complete + _transform_output = global_transform + + _phantom_camera_manager.noise_3d_emitted.connect(_noise_emitted) + + +func _process(delta: float) -> void: + if _follow_target_physics_based or _is_active: return + process_logic(delta) + + +func _physics_process(delta: float) -> void: + if not _follow_target_physics_based or _is_active: return + process_logic(delta) + + +func process_logic(delta: float) -> void: + if _is_active: + if _has_noise_resource and _preview_noise: + _transform_noise = noise.get_noise_transform(delta) + else: + match inactive_update_mode: + InactiveUpdateMode.NEVER: return + # InactiveUpdateMode.EXPONENTIALLY: + # TODO - Trigger positional updates less frequently as more PCams gets added + + if _should_follow: + _follow(delta) + else: + _transform_output.origin = global_transform.origin + + if _should_look_at: + _look_at(delta) + else: + _transform_output.basis = global_basis + + if _follow_axis_is_locked: + match follow_axis_lock: + FollowLockAxis.X: + _transform_output.origin.x = _follow_axis_lock_value.x + FollowLockAxis.Y: + _transform_output.origin.y = _follow_axis_lock_value.y + FollowLockAxis.Z: + _transform_output.origin.z = _follow_axis_lock_value.z + FollowLockAxis.XY: + _transform_output.origin.x = _follow_axis_lock_value.x + _transform_output.origin.y = _follow_axis_lock_value.y + FollowLockAxis.XZ: + _transform_output.origin.x = _follow_axis_lock_value.x + _transform_output.origin.z = _follow_axis_lock_value.z + FollowLockAxis.YZ: + _transform_output.origin.y = _follow_axis_lock_value.y + _transform_output.origin.z = _follow_axis_lock_value.z + FollowLockAxis.XYZ: + _transform_output.origin.x = _follow_axis_lock_value.x + _transform_output.origin.y = _follow_axis_lock_value.y + _transform_output.origin.z = _follow_axis_lock_value.z + + +func _follow(delta: float) -> void: + _set_follow_position() + _interpolate_position(delta) + + +func _set_follow_position() -> void: + match follow_mode: + FollowMode.GLUED: + _target_transform.origin = follow_target.global_position + + FollowMode.SIMPLE: + _target_transform.origin = _get_target_position_offset() + + FollowMode.GROUP: + if _has_multiple_follow_targets: + var bounds: AABB = AABB(_follow_targets[0].global_position, Vector3.ZERO) + for target in _follow_targets: + bounds = bounds.expand(target.global_position) + var distance: float + if auto_follow_distance: + distance = lerpf(auto_follow_distance_min, auto_follow_distance_max, bounds.get_longest_axis_size() / auto_follow_distance_divisor) + distance = clampf(distance, auto_follow_distance_min, auto_follow_distance_max) + else: + distance = follow_distance + + _target_transform.origin = \ + bounds.get_center() + \ + follow_offset + \ + global_transform.basis.z * \ + Vector3(distance, distance, distance) + else: + _target_transform.origin = \ + follow_targets[_follow_targets_single_target_index].global_position + \ + follow_offset + \ + global_transform.basis.z * \ + Vector3(auto_follow_distance_min, auto_follow_distance_min, auto_follow_distance_min) + + FollowMode.PATH: + var path_position: Vector3 = follow_path.global_position + _target_transform.origin = \ + follow_path.curve.get_closest_point( + follow_target.global_position - path_position + ) + path_position + + FollowMode.FRAMED: + if not Engine.is_editor_hint(): + if not _is_active: + _target_transform.origin = _get_target_position_offset_distance() + else: + viewport_position = get_viewport().get_camera_3d().unproject_position(_get_target_position_offset()) + var visible_rect_size: Vector2 = get_viewport().get_visible_rect().size + viewport_position = viewport_position / visible_rect_size + _current_rotation = global_rotation + + if _current_rotation != global_rotation: + _target_transform.origin = _get_target_position_offset_distance() + + if _get_framed_side_offset() != Vector2.ZERO: + var target_position: Vector3 = _get_target_position_offset() + _follow_framed_offset + var glo_pos: Vector3 + + if dead_zone_width == 0 || dead_zone_height == 0: + if dead_zone_width == 0 && dead_zone_height != 0: + glo_pos = _get_target_position_offset_distance() + glo_pos.z = target_position.z + _target_transform.origin = glo_pos + elif dead_zone_width != 0 && dead_zone_height == 0: + glo_pos = _get_target_position_offset_distance() + glo_pos.x = target_position.x + _target_transform.origin = glo_pos + else: + _target_transform.origin = _get_target_position_offset_distance() + else: + if _current_rotation != global_rotation: + var opposite: float = sin(-global_rotation.x) * follow_distance + _get_target_position_offset().y + glo_pos.y = _get_target_position_offset().y + opposite + glo_pos.z = sqrt(pow(follow_distance, 2) - pow(opposite, 2)) + _get_target_position_offset().z + glo_pos.x = global_position.x + + _target_transform.origin = glo_pos + _current_rotation = global_rotation + else: + dead_zone_reached.emit() + _target_transform.origin = target_position + else: + _follow_framed_offset = global_position - _get_target_position_offset() + _current_rotation = global_rotation + return + else: + _target_transform.origin = _get_target_position_offset_distance() + var unprojected_position: Vector2 = _get_raw_unprojected_position() + var viewport_width: float = get_viewport().size.x + var viewport_height: float = get_viewport().size.y + var camera_aspect: Camera3D.KeepAspect = get_viewport().get_camera_3d().keep_aspect + var visible_rect_size: Vector2 = get_viewport().get_visible_rect().size + + unprojected_position = unprojected_position - visible_rect_size / 2 + if camera_aspect == Camera3D.KeepAspect.KEEP_HEIGHT: + # Landscape View + var aspect_ratio_scale: float = viewport_width / viewport_height + unprojected_position.x = (unprojected_position.x / aspect_ratio_scale + 1) / 2 + unprojected_position.y = (unprojected_position.y + 1) / 2 + else: + # Portrait View + var aspect_ratio_scale: float = viewport_height / viewport_width + unprojected_position.x = (unprojected_position.x + 1) / 2 + unprojected_position.y = (unprojected_position.y / aspect_ratio_scale + 1) / 2 + + viewport_position = unprojected_position + + FollowMode.THIRD_PERSON: + if not Engine.is_editor_hint(): + if not _has_follow_spring_arm: return + _target_transform.origin = _get_target_position_offset() + else: + _target_transform.origin = _get_target_position_offset_distance() + + +func _look_at(delta: float) -> void: + match look_at_mode: + LookAtMode.MIMIC: + _interpolate_rotation( + global_position - look_at_target.global_basis.z, + delta + ) + + LookAtMode.SIMPLE: + _interpolate_rotation( + look_at_target.global_position, + delta + ) + + LookAtMode.GROUP: + if not _has_multiple_look_at_targets: + _interpolate_rotation( + look_at_targets[_look_at_targets_single_target_index].global_position, + delta + ) + else: + var bounds: AABB = AABB(look_at_targets[0].global_position, Vector3.ZERO) + for node in look_at_targets: + bounds = bounds.expand(node.global_position) + _interpolate_rotation( + bounds.get_center(), + delta + ) + + +func _get_target_position_offset() -> Vector3: + return follow_target.global_position + follow_offset + + +func _get_target_position_offset_distance() -> Vector3: + return _get_target_position_offset() + \ + transform.basis.z * Vector3(follow_distance, follow_distance, follow_distance) + + +func _set_follow_velocity(index: int, value: float) -> void: + _follow_velocity_ref[index] = value + + +func _interpolate_position(delta: float) -> void: + if follow_damping: + if not _is_third_person_follow: + global_position = _target_transform.origin + for i in 3: + _transform_output.origin[i] = _smooth_damp( + global_position[i], + _transform_output.origin[i], + i, + _follow_velocity_ref[i], + _set_follow_velocity, + follow_damping_value[i], + delta + ) + else: + for i in 3: + _camera_target.global_position[i] = _smooth_damp( + _target_transform.origin[i], + _camera_target.global_position[i], + i, + _follow_velocity_ref[i], + _set_follow_velocity, + follow_damping_value[i], + delta + ) + _transform_output.origin = global_position + _transform_output.basis = global_basis + _camera_target.global_position = _target_transform.origin + else: + _camera_target.global_position = _target_transform.origin + _transform_output.origin = global_position + + +func _interpolate_rotation(target_position: Vector3, delta: float) -> void: + var direction: Vector3 = -(target_position - global_position + look_at_offset).normalized() + + if _has_up_target: + _up = up_target.get_global_transform().basis.y + + var basis_z: Vector3 = direction.normalized() + var basis_x: Vector3 = _up.cross(basis_z) + var basis_y: Vector3 = basis_z.cross(basis_x.normalized()) + + var target_basis: Basis = Basis(basis_x, basis_y, basis_z) + + if target_basis.determinant() == 0: + if target_basis.z == Vector3.UP: + global_rotation_degrees.x = -90 + else: + global_rotation_degrees.x = 90 + + _transform_output.basis = global_basis + return + + var target_quat: Quaternion = target_basis.get_rotation_quaternion().normalized() + + if look_at_damping: + var current_quat: Quaternion = quaternion.normalized() + var damping_time: float = max(0.0001, look_at_damping_value) + var t: float = min(1.0, delta / damping_time) + + var dot: float = current_quat.dot(target_quat) + + if dot < 0.0: + target_quat = -target_quat + dot = -dot + + dot = clampf(dot, -1.0, 1.0) + + var theta: float = acos(dot) * t + var sin_theta: float = sin(theta) + var sin_theta_total: float = sin(acos(dot)) + + # Stop interpolating once sin_theta_total reaches a very low value or 0 + if sin_theta_total < 0.00001: + return + + var ratio_a: float = cos(theta) - dot * sin_theta / sin_theta_total + var ratio_b: float = sin_theta / sin_theta_total + var output: Quaternion = current_quat * ratio_a + target_quat * ratio_b + + _transform_output.basis = Basis(output) + quaternion = output + else: + _transform_output.basis = Basis(target_quat) + quaternion = target_quat + + +func _smooth_damp(target_axis: float, self_axis: float, index: int, current_velocity: float, set_velocity: Callable, damping_time: float, delta: float) -> float: + damping_time = maxf(0.0001, damping_time) + var omega: float = 2 / damping_time + var x: float = omega * delta + var exponential: float = 1 / (1 + x + 0.48 * x * x + 0.235 * x * x * x) + var diff: float = self_axis - target_axis + var _target_axis: float = target_axis + + var max_change: float = INF * damping_time + diff = clampf(diff, -max_change, max_change) + target_axis = self_axis - diff + + var temp: float = (current_velocity + omega * diff) * delta + set_velocity.call(index, (current_velocity - omega * temp) * exponential) + var output: float = target_axis + (diff + temp) * exponential + + ## To prevent overshooting + if (_target_axis - self_axis > 0.0) == (output > _target_axis): + output = _target_axis + set_velocity.call(index, (output - _target_axis) / delta) + + return output + + +func _get_raw_unprojected_position() -> Vector2: + return get_viewport().get_camera_3d().unproject_position(follow_target.global_position + follow_offset) + + +func _on_dead_zone_changed() -> void: + global_position = _get_target_position_offset_distance() + + +func _get_framed_side_offset() -> Vector2: + var frame_out_bounds: Vector2 + + if viewport_position.x < 0.5 - dead_zone_width / 2: + # Is outside left edge + frame_out_bounds.x = -1 + + if viewport_position.y < 0.5 - dead_zone_height / 2: + # Is outside top edge + frame_out_bounds.y = 1 + + if viewport_position.x > 0.5 + dead_zone_width / 2: + # Is outside right edge + frame_out_bounds.x = 1 + + if viewport_position.y > 0.5001 + dead_zone_height / 2: # 0.501 to resolve an issue where the bottom vertical Dead Zone never becoming 0 when the Dead Zone Vertical parameter is set to 0 + # Is outside bottom edge + frame_out_bounds.y = -1 + + return frame_out_bounds + + +func _set_layer(current_layers: int, layer_number: int, value: bool) -> int: + var mask: int = current_layers + + # From https://github.com/godotengine/godot/blob/51991e20143a39e9ef0107163eaf283ca0a761ea/scene/3d/camera_3d.cpp#L638 + if layer_number < 1 or layer_number > 20: + printerr("Render layer must be between 1 and 20.") + else: + if value: + mask |= 1 << (layer_number - 1) + else: + mask &= ~(1 << (layer_number - 1)) + + return mask + + +func _check_visibility() -> void: + _phantom_camera_manager.pcam_visibility_changed.emit(self) + + +func _follow_target_tree_exiting(target: Node) -> void: + if target == follow_target: + _should_follow = false + if _follow_targets.has(target): + _follow_targets.erase(target) + + +func _should_follow_checker() -> void: + if follow_mode == FollowMode.NONE: + _should_follow = false + return + + if not follow_mode == FollowMode.GROUP: + if is_instance_valid(follow_target): + _should_follow = true + else: + _should_follow = false + + +func _follow_targets_size_check() -> void: + var targets_size: int = 0 + _follow_target_physics_based = false + _follow_targets = [] + for i in follow_targets.size(): + if follow_targets[i] == null: continue + if follow_targets[i].is_inside_tree(): + _follow_targets.append(follow_targets[i]) + targets_size += 1 + _follow_targets_single_target_index = i + _check_physics_body(follow_targets[i]) + if not follow_targets[i].tree_exiting.is_connected(_follow_target_tree_exiting): + follow_targets[i].tree_exiting.connect(_follow_target_tree_exiting.bind(follow_targets[i])) + + match targets_size: + 0: + _should_follow = false + _has_multiple_follow_targets = false + 1: + _should_follow = true + _has_multiple_follow_targets = false + _: + _should_follow = true + _has_multiple_follow_targets = true + + +func _look_at_target_tree_exiting(target: Node) -> void: + if target == look_at_target: + _should_look_at = false + if look_at_targets.has(target): + erase_look_at_targets(target) + +func _up_target_tree_exiting() -> void: + up_target = null + + +func _should_look_at_checker() -> void: + if look_at_mode == LookAtMode.NONE: + _should_look_at = false + return + + if not look_at_mode == LookAtMode.GROUP: + if is_instance_valid(look_at_target): + _should_look_at = true + else: + _should_look_at = false + + +func _look_at_targets_size_check() -> void: + var targets_size: int = 0 + _look_at_target_physics_based = false + + for i in look_at_targets.size(): + if is_instance_valid(look_at_targets[i]): + targets_size += 1 + _look_at_targets_single_target_index = i + _check_physics_body(look_at_targets[i]) + if not look_at_targets[i].tree_exiting.is_connected(_look_at_target_tree_exiting): + look_at_targets[i].tree_exiting.connect(_look_at_target_tree_exiting.bind(look_at_targets[i])) + + match targets_size: + 0: + _should_look_at = false + _has_multiple_look_at_targets = false + 1: + _should_look_at = true + _has_multiple_look_at_targets = false + _: + _should_look_at = true + _has_multiple_look_at_targets = true + + +func _noise_emitted(emitter_noise_output: Transform3D, emitter_layer: int) -> void: + if noise_emitter_layer & emitter_layer != 0: + noise_emitted.emit(emitter_noise_output) + + +func _check_physics_body(target: Node3D) -> void: + if target is PhysicsBody3D: + var show_jitter_tips := ProjectSettings.get_setting("phantom_camera/tips/show_jitter_tips") + var physics_interpolation_enabled := ProjectSettings.get_setting("physics/common/physics_interpolation") + + ## NOTE - Feature Toggle + if Engine.get_version_info().major == 4 and \ + Engine.get_version_info().minor < 4: + if show_jitter_tips == null: # Default value is null when referencing custom Project Setting + print_rich("Following or Looking at a [b]PhysicsBody3D[/b] node will likely result in jitter - on lower physics ticks in particular.") + print_rich("If possible, will recommend upgrading to Godot 4.4, as it has built-in support for 3D Physics Interpolation, which will mitigate this issue.") + print_rich("Until then, try following the guide on the [url=https://phantom-camera.dev/support/faq#i-m-seeing-jitter-what-can-i-do]documentation site[/url] for better results.") + print_rich("This tip can be disabled from within [code]Project Settings / Phantom Camera / Tips / Show Jitter Tips[/code]") + return + ## NOTE - Only supported in Godot 4.4 or above + elif not physics_interpolation_enabled and show_jitter_tips == null: # Default value is null when referencing custom Project Setting + printerr("Physics Interpolation is disabled in the Project Settings, recommend enabling it to smooth out physics-based camera movement") + print_rich("This tip can be disabled from within [code]Project Settings / Phantom Camera / Tips / Show Jitter Tips[/code]") + _follow_target_physics_based = true + else: + _is_parents_physics(target) + physics_target_changed.emit() + + +func _is_parents_physics(target: Node = self) -> void: + var current_node: Node = target + while current_node: + current_node = current_node.get_parent() + if not current_node is PhysicsBody3D: continue + _follow_target_physics_based = true + + +func _camera_resource_changed() -> void: + camera_3d_resource_changed.emit() + +#endregion + + +# TBD +#func get_unprojected_position() -> Vector2: + #var unprojected_position: Vector2 = _get_raw_unprojected_position() + #var viewport_width: float = get_viewport().size.x + #var viewport_height: float = get_viewport().size.y + #var camera_aspect: Camera3D.KeepAspect = get_viewport().get_camera_3d().keep_aspect + #var visible_rect_size: Vector2 = get_viewport().size +# + #unprojected_position = unprojected_position - visible_rect_size / 2 + #if camera_aspect == Camera3D.KeepAspect.KEEP_HEIGHT: +## print("Landscape View") + #var aspect_ratio_scale: float = viewport_width / viewport_height + #unprojected_position.x = (unprojected_position.x / aspect_ratio_scale + 1) / 2 + #unprojected_position.y = (unprojected_position.y + 1) / 2 + #else: +## print("Portrait View") + #var aspect_ratio_scale: float = viewport_height / viewport_width + #unprojected_position.x = (unprojected_position.x + 1) / 2 + #unprojected_position.y = (unprojected_position.y / aspect_ratio_scale + 1) / 2 +# + #return unprojected_position + + +## Returns the [Transform3D] value based on the [member follow_mode] / [member look_at_mode] target value. +func get_transform_output() -> Transform3D: + return _transform_output + + +## Returns the noise [Transform3D] value. +func get_noise_transform() -> Transform3D: + return _transform_noise + + +## Emits a noise based on a custom [Transform3D] value.[br] +## Use this function if you wish to make use of external noise patterns from, for example, other addons. +func emit_noise(value: Transform3D) -> void: + noise_emitted.emit(value) + + +## Teleports the [param PhantomCamera3D] and [Camera3D] to their designated position, +## bypassing the damping process. +func teleport_position() -> void: + _follow_velocity_ref = Vector3.ZERO + _set_follow_position() + _transform_output.origin = _target_transform.origin + _phantom_camera_manager.pcam_teleport.emit(self) + +#endregion + + +#region Setter & Getter Functions + +## Assigns the value of the [param has_tweened] property.[br] +## [b][color=yellow]Important:[/color][/b] This value can only be changed +## from the [PhantomCameraHost] script. +func set_tween_skip(caller: Node, value: bool) -> void: + if is_instance_of(caller, PhantomCameraHost): + _tween_skip = value + else: + printerr("Can only be called PhantomCameraHost class") +## Returns the current [param has_tweened] value. +func get_tween_skip() -> bool: + return _tween_skip + + +## Assigns new [member priority] value. +func set_priority(value: int) -> void: + priority = abs(value) # TODO - Make any minus values be 0 + if not Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): return + Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME).pcam_priority_changed.emit(self) +## Gets current [param Priority] value. +func get_priority() -> int: + return priority + + +## Assigns a new [PhantomCameraTween] resource to the [param PhantomCamera3D]. +func set_tween_resource(value: PhantomCameraTween) -> void: + tween_resource = value +## Gets the [param PhantomCameraTween] resource assigned to the [param PhantomCamera3D]. +## Returns null if there's nothing assigned to it. +func get_tween_resource() -> PhantomCameraTween: + return tween_resource + +## Assigns a new [param Tween Duration] to the [member tween_resource] value.[br] +## The duration value is in seconds. +func set_tween_duration(value: float) -> void: + tween_resource.duration = value +## Gets the current [param Tween] Duration value. The duration value is in +## [param seconds]. +func get_tween_duration() -> float: + return tween_resource.duration + +## Assigns a new [param Tween Transition] to the [member tween_resource] value.[br] +## The duration value is in seconds. +func set_tween_transition(value: int) -> void: + tween_resource.transition = value +## Gets the current [param Tween Transition] value. +func get_tween_transition() -> int: + return tween_resource.transition + +## Assigns a new [param Tween Ease] to the [member tween_resource] value.[br] +## The duration value is in seconds. +func set_tween_ease(value: int) -> void: + tween_resource.ease = value +## Gets the current [param Tween Ease] value. +func get_tween_ease() -> int: + return tween_resource.ease + +## Sets the [param PhantomCamera3D] active state[br] +## [b][color=yellow]Important:[/color][/b] This value can only be changed +## from the [PhantomCameraHost] script. +func set_is_active(node: Node, value: bool) -> void: + if node is PhantomCameraHost: + _is_active = value + if value: + _should_follow_checker() + else: + printerr("PCams can only be set from the PhantomCameraHost") +## Gets current active state of the [param PhantomCamera3D]. +## If it returns true, it means the [param PhantomCamera3D] is what the +## [param Camera3D] is currently following. +func is_active() -> bool: + return _is_active + + +## Enables or disables the [member tween_on_load]. +func set_tween_on_load(value: bool) -> void: + tween_on_load = value +## Gets the current [member tween_on_load] value. +func get_tween_on_load() -> bool: + return tween_on_load + + +## Sets the [member host_layers] value. +func set_host_layers(value: int) -> void: + host_layers = value + if is_instance_valid(_phantom_camera_manager): + _phantom_camera_manager.pcam_host_layer_changed.emit(self) + +## Enables or disables a given layer of [member host_layers]. +func set_host_layers_value(layer: int, value: bool) -> void: + host_layers = _set_layer(host_layers, layer, value) + +## Gets the current [member host_layers]. +func get_host_layers() -> int: + return host_layers + + +## Gets the current follow mode as an enum int based on [member FollowMode] enum.[br] +## [b]Note:[/b] Setting [member follow_mode] has purposely not been added. +## A separate [param PhantomCamera3D] instance should be used instead. +func get_follow_mode() -> int: + return follow_mode + + +## Assigns a new [Node3D] as the [member follow_target]. +func set_follow_target(value: Node3D) -> void: + if follow_mode == FollowMode.NONE or follow_mode == FollowMode.GROUP: return + if follow_target == value: return + follow_target = value + _follow_target_physics_based = false + if is_instance_valid(value): + if follow_mode == FollowMode.PATH: + if is_instance_valid(follow_path): + _should_follow = true + else: + _should_follow = false + else: + _should_follow = true + _check_physics_body(value) + if not follow_target.tree_exiting.is_connected(_follow_target_tree_exiting): + follow_target.tree_exiting.connect(_follow_target_tree_exiting.bind(follow_target)) + else: + if not follow_mode == FollowMode.GROUP: + _should_follow = false + follow_target_changed.emit() + notify_property_list_changed() +## Removes the current [Node3D] [member follow_target]. +func erase_follow_target() -> void: + follow_target = null +## Gets the current Node3D target. +func get_follow_target() -> Node3D: + return follow_target + + +## Assigns a new [Path3D] to the [member follow_path] property. +func set_follow_path(value: Path3D) -> void: + follow_path = value + if is_instance_valid(follow_path): + _should_follow_checker() + else: + _should_follow = false + +## Erases the current [Path3D] from [member follow_path] property. +func erase_follow_path() -> void: + follow_path = null + +## Gets the current [Path3D] from the [member follow_path] property. +func get_follow_path() -> Path3D: + return follow_path + + +## Assigns a new [param follow_targets] array value. +func set_follow_targets(value: Array[Node3D]) -> void: + if not follow_mode == FollowMode.GROUP: return + if follow_targets == value: return + follow_targets = value + _follow_targets_size_check() + + +## Adds a single [Node3D] to [member follow_targets] array. +func append_follow_targets(value: Node3D) -> void: + if not is_instance_valid(value): + printerr(value, " is not a valid Node3D instance") + return + + if not follow_targets.has(value): + follow_targets.append(value) + _follow_targets_size_check() + else: + printerr(value, " is already part of Follow Group") + +## Adds an Array of type [Node3D] to [member follow_targets] array. +func append_follow_targets_array(value: Array[Node3D]) -> void: + for target in value: + if not is_instance_valid(target): continue + if not follow_targets.has(target): + follow_targets.append(target) + _follow_targets_size_check() + else: + printerr(value, " is already part of Follow Group") + +## Removes [Node3D] from [member follow_targets]. +func erase_follow_targets(value: Node3D) -> void: + follow_targets.erase(value) + _follow_targets_size_check() + + +## Gets all [Node3D] from [follow_targets]. +func get_follow_targets() -> Array[Node3D]: + return follow_targets + + +## Assigns a new [param Vector3] for the [param follow_offset] property. +func set_follow_offset(value: Vector3) -> void: + var temp_offset: Vector3 = follow_offset + follow_offset = value + + if follow_axis_lock != FollowLockAxis.NONE: + temp_offset = temp_offset - value + match value: + FollowLockAxis.X: + _follow_axis_lock_value.x = _transform_output.origin.x + temp_offset.x + FollowLockAxis.Y: + _follow_axis_lock_value.y = _transform_output.origin.y + temp_offset.y + FollowLockAxis.Z: + _follow_axis_lock_value.z = _transform_output.origin.z + temp_offset.z + FollowLockAxis.XY: + _follow_axis_lock_value.x = _transform_output.origin.x + temp_offset.x + _follow_axis_lock_value.y = _transform_output.origin.y + temp_offset.y + FollowLockAxis.XZ: + _follow_axis_lock_value.x = _transform_output.origin.x + temp_offset.x + _follow_axis_lock_value.z = _transform_output.origin.z + temp_offset.z + FollowLockAxis.YZ: + _follow_axis_lock_value.y = _transform_output.origin.y + temp_offset.y + _follow_axis_lock_value.z = _transform_output.origin.z + temp_offset.z + FollowLockAxis.XYZ: + _follow_axis_lock_value.x = _transform_output.origin.x + temp_offset.x + _follow_axis_lock_value.y = _transform_output.origin.y + temp_offset.y + _follow_axis_lock_value.z = _transform_output.origin.z + temp_offset.z + +## Gets the current [param Vector3] for the [param follow_offset] property. +func get_follow_offset() -> Vector3: + return follow_offset + + +## Enables or disables [member follow_damping]. +func set_follow_damping(value: bool) -> void: + follow_damping = value + notify_property_list_changed() + +## Gets the currents [member follow_damping] property. +func get_follow_damping() -> bool: + return follow_damping + + +## Assigns new [member follow_damping_value] value. +func set_follow_damping_value(value: Vector3) -> void: + ## TODO - Should be using @export_range once minimum version support is Godot 4.3 + if value.x < 0: value.x = 0 + elif value.y < 0: value.y = 0 + elif value.z < 0: value.z = 0 + follow_damping_value = value + +## Gets the currents [member follow_damping_value] value. +func get_follow_damping_value() -> Vector3: + return follow_damping_value + + +## Assigns a new [member follow_distance] value. +func set_follow_distance(value: float) -> void: + follow_distance = value + +## Gets [member follow_distance] value. +func get_follow_distance() -> float: + return follow_distance + + +## Enables or disables [member auto_follow_distance] when using Group Follow. +func set_auto_follow_distance(value: bool) -> void: + auto_follow_distance = value + notify_property_list_changed() + +## Gets [member auto_follow_distance] state. +func get_auto_follow_distance() -> bool: + return auto_follow_distance + + +## Assigns new [member auto_follow_distance_min] value. +func set_auto_follow_distance_min(value: float) -> void: + auto_follow_distance_min = value + +## Gets [member auto_follow_distance_min] value. +func get_auto_follow_distance_min() -> float: + return auto_follow_distance_min + + +## Assigns new [member auto_follow_distance_max] value. +func set_auto_follow_distance_max(value: float) -> void: + auto_follow_distance_max = value +## Gets [member auto_follow_distance_max] value. +func get_auto_follow_distance_max() -> float: + return auto_follow_distance_max + + +## Assigns new [member auto_follow_distance_divisor] value. +func set_auto_follow_distance_divisor(value: float) -> void: + auto_follow_distance_divisor = value + +## Gets [member auto_follow_distance_divisor] value. +func get_auto_follow_distance_divisor() -> float: + return auto_follow_distance_divisor + + +## Assigns new rotation (in radians) value to [SpringArm3D] for +## [param ThirdPerson] [enum FollowMode]. +func set_third_person_rotation(value: Vector3) -> void: + _follow_spring_arm.rotation = value + +## Gets the rotation value (in radians) from the [SpringArm3D] for +## [param ThirdPerson] [enum FollowMode]. +func get_third_person_rotation() -> Vector3: + return _follow_spring_arm.rotation + + +## Assigns new rotation (in degrees) value to [SpringArm3D] for +## [param ThirdPerson] [enum FollowMode]. +func set_third_person_rotation_degrees(value: Vector3) -> void: + _follow_spring_arm.rotation_degrees = value + +## Gets the rotation value (in degrees) from the [SpringArm3D] for +## [param ThirdPerson] [enum FollowMode]. +func get_third_person_rotation_degrees() -> Vector3: + return _follow_spring_arm.rotation_degrees + + +## Assigns new [Quaternion] value to [SpringArm3D] for [param ThirdPerson] +## [enum FollowMode]. +func set_third_person_quaternion(value: Quaternion) -> void: + _follow_spring_arm.quaternion = value + +## Gets the [Quaternion] value of the [SpringArm3D] for [param ThirdPerson] +## [enum Follow mode]. +func get_third_person_quaternion() -> Quaternion: + return _follow_spring_arm.quaternion + + +## Assigns a new ThirdPerson [member SpringArm3D.length] value. +func set_spring_length(value: float) -> void: + follow_distance = value + if not is_instance_valid(_follow_spring_arm): return + _follow_spring_arm.spring_length = value + +## Gets the [member SpringArm3D.length] +## from a [param ThirdPerson] [enum follow_mode] instance. +func get_spring_length() -> float: + return follow_distance + + +## Assigns a new [member collision_mask] to the [SpringArm3D] when [enum FollowMode] +## is set to [param ThirdPerson]. +func set_collision_mask(value: int) -> void: + collision_mask = value + if not is_instance_valid(_follow_spring_arm): return + _follow_spring_arm.collision_mask = collision_mask + +## Enables or disables a specific [member collision_mask] layer for the +## [SpringArm3D] when [enum FollowMode] is set to [param ThirdPerson]. +func set_collision_mask_value(value: int, enabled: bool) -> void: + collision_mask = _set_layer(collision_mask, value, enabled) + if not is_instance_valid(_follow_spring_arm): return + _follow_spring_arm.collision_mask = collision_mask + +## Gets [member collision_mask] from the [SpringArm3D] when [enum FollowMode] +## is set to [param ThirdPerson]. +func get_collision_mask() -> int: + return collision_mask + + +## Assigns a new [SpringArm3D.shape] when [enum FollowMode] +## is set to [param ThirdPerson]. +func set_shape(value: Shape3D) -> void: + shape = value + if not is_instance_valid(_follow_spring_arm): return + _follow_spring_arm.shape = shape + +## Gets [param ThirdPerson] [member SpringArm3D.shape] value. +func get_shape() -> Shape3D: + return shape + + +## Assigns a new [member SpringArm3D.margin] value when [enum FollowMode] +## is set to [param ThirdPerson]. +func set_margin(value: float) -> void: + margin = value + if not is_instance_valid(_follow_spring_arm): return + _follow_spring_arm.margin = margin + +## Gets the [SpringArm3D.margin] when [enum FollowMode] is set to +## [param ThirdPerson]. +func get_margin() -> float: + return margin + + +## Gets the current [member look_at_mode]. Value is based on [enum LookAtMode] +## enum.[br] +## Note: To set a new [member look_at_mode], a separate [param PhantomCamera3D] should be used. +func get_look_at_mode() -> int: + return look_at_mode + + +## Assigns new [Node3D] as [member look_at_target]. +func set_look_at_target(value: Node3D) -> void: + if look_at_mode == LookAtMode.NONE: return + if look_at_target == value: return + look_at_target = value + if not look_at_mode == LookAtMode.GROUP: + if is_instance_valid(look_at_target): + _should_look_at = true + _check_physics_body(value) + if not look_at_target.tree_exiting.is_connected(_look_at_target_tree_exiting): + look_at_target.tree_exiting.connect(_look_at_target_tree_exiting.bind(look_at_target)) + else: + _should_look_at = false + elif look_at_targets.size() == 0: + _should_look_at = false + + look_at_target_changed.emit() + notify_property_list_changed() + +## Gets current [Node3D] from [member look_at_target] property. +func get_look_at_target() -> Node3D: + return look_at_target + + +## Sets an array of type [Node3D] to [member set_look_at_targets]. +func set_look_at_targets(value: Array[Node3D]) -> void: + if not look_at_mode == LookAtMode.GROUP: return + if look_at_targets == value: return + look_at_targets = value + + _look_at_targets_size_check() + notify_property_list_changed() + +## Appends a [Node3D] to [member look_at_targets] array. +func append_look_at_target(value: Node3D) -> void: + if not is_instance_valid(value): + printerr(value, "is an invalid Node3D instance") + return + + if not look_at_targets.has(value): + look_at_targets.append(value) + _look_at_targets_size_check() + else: + printerr(value, " is already part of Look At Group") + + +## Appends an array of type [Node3D] to [member look_at_targets] array. +func append_look_at_targets_array(value: Array[Node3D]) -> void: + for val in value: + if not is_instance_valid(val): continue + if not look_at_targets.has(val): + look_at_targets.append(val) + _look_at_targets_size_check() + else: + printerr(val, " is already part of Look At Group") + +## Removes [Node3D] from [member look_at_targets] array. +func erase_look_at_targets(value: Node3D) -> void: + if look_at_targets.has(value): + look_at_targets.erase(value) + _look_at_targets_size_check() + else: + printerr(value, " is not part of Look At Group") + + +## Removes [Node3D] from [member look_at_targets] array. [br] +## @deprecated: Use [member erase_look_at_targets] instead. +func erase_look_at_targets_member(value: Node3D) -> void: + printerr("erase_look_at_targets_member is deprecated, use erase_look_at_targets instead") + erase_look_at_targets(value) + +## Gets all the [Node3D] instances in [member look_at_targets]. +func get_look_at_targets() -> Array[Node3D]: + return look_at_targets + + +## Assigns a new [Vector3] to the [member look_at_offset] value. +func set_look_at_offset(value: Vector3) -> void: + look_at_offset = value + +## Gets the current [member look_at_offset] value. +func get_look_at_offset() -> Vector3: + return look_at_offset + + +## Enables or disables [member look_at_damping]. +func set_look_at_damping(value: bool) -> void: + look_at_damping = value + notify_property_list_changed() + +## Gets the currents [member look_at_damping] property. +func get_look_at_damping() -> bool: + return look_at_damping + + +## Assigns new [member look_at_damping_value] value. +func set_look_at_damping_value(value: float) -> void: + look_at_damping_value = value + +## Gets the currents [member look_at_damping_value] value. +func get_look_at_damping_value() -> float: + return look_at_damping_value + +## Assigns the Follow Axis. +func set_follow_axis_lock(value: FollowLockAxis) -> void: + follow_axis_lock = value + + # Wait for the node to be ready before setting lock + if not is_node_ready(): await ready + + # Prevent axis lock from working in the editor + if value != FollowLockAxis.NONE and not Engine.is_editor_hint(): + _follow_axis_is_locked = true + match value: + FollowLockAxis.X: + _follow_axis_lock_value.x = _transform_output.origin.x + FollowLockAxis.Y: + _follow_axis_lock_value.y = _transform_output.origin.y + FollowLockAxis.Z: + _follow_axis_lock_value.z = _transform_output.origin.z + FollowLockAxis.XY: + _follow_axis_lock_value.x = _transform_output.origin.x + _follow_axis_lock_value.y = _transform_output.origin.y + FollowLockAxis.XZ: + _follow_axis_lock_value.x = _transform_output.origin.x + _follow_axis_lock_value.z = _transform_output.origin.z + FollowLockAxis.YZ: + _follow_axis_lock_value.y = _transform_output.origin.y + _follow_axis_lock_value.z = _transform_output.origin.z + FollowLockAxis.XYZ: + _follow_axis_lock_value.x = _transform_output.origin.x + _follow_axis_lock_value.y = _transform_output.origin.y + _follow_axis_lock_value.z = _transform_output.origin.z + else: + _follow_axis_is_locked = false + +## Gets the current [member follow_axis_lock] property. Value is based on [enum FollowLockAxis] enum. +func get_follow_axis_lock() -> FollowLockAxis: + return follow_axis_lock + + +## Sets the [member up] value. +func set_up(value: Vector3) -> void: + if value == Vector3.ZERO: + value = Vector3.UP + push_warning("Up value cannot be (0, 0, 0), resetting to (0, 1, 0).") + + up = value + if not _has_up_target: + _up = value + +## Gets the [member up] value. +func get_up() -> Vector3: + return up + + +## Sets the [member up_target]. +func set_up_target(value: Node3D) -> void: + up_target = value + if is_instance_valid(value): + _has_up_target = true + if not value.tree_exiting.is_connected(_up_target_tree_exiting): + value.tree_exiting.connect(_up_target_tree_exiting) + else: + _has_up_target = false + _up = up + notify_property_list_changed() + +## Gets the [member up_target]. +func get_up_target() -> Node3D: + return up_target + + +## Sets a [PhantomCameraNoise3D] resource. +func set_noise(value: PhantomCameraNoise3D) -> void: + noise = value + if value != null: + _has_noise_resource = true + noise.set_trauma(1) + else: + _has_noise_resource = false + _transform_noise = Transform3D() + +func get_noise() -> PhantomCameraNoise3D: + return noise + +func has_noise_resource() -> bool: + return _has_noise_resource + + +## Sets the [member noise_emitter_layer] value. +func set_noise_emitter_layer(value: int) -> void: + noise_emitter_layer = value + +## Enables or disables a given layer of [member noise_emitter_layer]. +func set_noise_emitter_layer_value(value: int, enabled: bool) -> void: + noise_emitter_layer = _set_layer(noise_emitter_layer, value, enabled) + +## Returns the [member noise_emitter_layer]. +func get_noise_emitter_layer() -> int: + return noise_emitter_layer + + +## Sets [member inactive_update_mode] property. +func set_inactive_update_mode(value: int) -> void: + inactive_update_mode = value + +## Gets [member inactive_update_mode] property. +func get_inactive_update_mode() -> int: + return inactive_update_mode + + +## Assigns a [Camera3DResource]. +func set_camera_3d_resource(value: Camera3DResource) -> void: + camera_3d_resource = value + camera_3d_resource_changed.emit() + if value: + if not camera_3d_resource.changed.is_connected(_camera_resource_changed): + camera_3d_resource.changed.connect(_camera_resource_changed) + +## Gets the [Camera3DResource]. +func get_camera_3d_resource() -> Camera3DResource: + return camera_3d_resource + + +func set_keep_aspect(value: int) -> void: + if not camera_3d_resource: + printerr("Can't assign a keep_aspect value. No Camera3DResource assigned to ", name) + return + keep_aspect = value + camera_3d_resource_property_changed.emit("keep_aspect", value) + +func get_keep_aspect() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.keep_aspect + + +## Assigns a new [member Camera3D.cull_mask] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_cull_mask(value: int) -> void: + if not camera_3d_resource: + printerr("Can't assign a cull_mask value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.cull_mask = value + camera_3d_resource_property_changed.emit("cull_mask", value) + +## Enables or disables a specific [member Camera3D.cull_mask] layer.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_cull_mask_value(layer_number: int, value: bool) -> void: + if not camera_3d_resource: + printerr("Can't assign a cull_mask value. No Camera3DResource assigned to ", name) + return + var mask: int = _set_layer(get_cull_mask(), layer_number, value) + camera_3d_resource.cull_mask = mask + camera_3d_resource_property_changed.emit("cull_mask", mask) + +## Gets the [member Camera3D.cull_mask] value assigned to the [Camera3DResource]. +func get_cull_mask() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.cull_mask + + +## Assigns a new [Environment] resource to the [Camera3DResource]. +func set_environment(value: Environment) -> void: + environment = value + camera_3d_resource_property_changed.emit("environment", value) + +## Gets the [Camera3D.environment] value assigned to the [Camera3DResource]. +func get_environment() -> Environment: + return environment + + +## Assigns a new [CameraAttributes] resource to the [Camera3DResource]. +func set_attributes(value: CameraAttributes) -> void: + attributes = value + camera_3d_resource_property_changed.emit("attributes", value) + +## Gets the [Camera3D.attributes] value assigned to the [Camera3DResource]. +func get_attributes() -> CameraAttributes: + return attributes + + +## Assigns a new [member Camera3D.h_offset] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_h_offset(value: float) -> void: + if not camera_3d_resource: + printerr("Can't assign a h_offset value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.h_offset = value + camera_3d_resource_property_changed.emit("h_offset", value) + +## Gets the [member Camera3D.h_offset] value assigned to the [param Camera3DResource]. +func get_h_offset() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.h_offset + + +## Assigns a new [Camera3D.v_offset] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_v_offset(value: float) -> void: + if not camera_3d_resource: + printerr("Can't assign a v_offset value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.v_offset = value + camera_3d_resource_property_changed.emit("v_offset", value) + +## Gets the [member Camera3D.v_offset] value assigned to the [param Camera3DResource]. +func get_v_offset() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.v_offset + + +## Assigns a new [Camera3D.projection] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_projection(value: int) -> void: + if not camera_3d_resource: + printerr("Can't assign a projection value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.projection = value + camera_3d_resource_property_changed.emit("projection", value) + +## Gets the [member Camera3D.projection] value assigned to the [param Camera3DResource]. +func get_projection() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.projection + + +## Assigns a new [member Camera3D.fov] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_fov(value: float) -> void: + if not camera_3d_resource: + printerr("Can't assign a fov value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.fov = value + camera_3d_resource_property_changed.emit("fov", value) + +## Gets the [member Camera3D.fov] value assigned to the [param Camera3DResource]. +func get_fov() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.fov + + +## Assigns a new [member Camera3D.size] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_size(value: float) -> void: + if not camera_3d_resource: + printerr("Can't assign a size value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.size = value + camera_3d_resource_property_changed.emit("size", value) + +## Gets the [member Camera3D.size] value assigned to the [param Camera3DResource]. +func get_size() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.size + + +## Assigns a new [member Camera3D.frustum_offset] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_frustum_offset(value: Vector2) -> void: + if not camera_3d_resource: + printerr("Can't assign a frustum_offset value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.frustum_offset = value + camera_3d_resource_property_changed.emit("frustum_offset", value) + +## Gets the [member Camera3D.frustum_offset] value assigned to the [param Camera3DResource]. +func get_frustum_offset() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.frustum_offset + + +## Assigns a new [member Camera3D.near] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_near(value: float) -> void: + if not camera_3d_resource: + printerr("Can't assign a near value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.near = value + camera_3d_resource_property_changed.emit("near", value) + +## Gets the [member Camera3D.near] value assigned to the [param Camera3DResource]. +func get_near() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.near + + +## Assigns a new [member Camera3D.far] value.[br] +## [b]Note:[/b] This will override and make the [param Camera3DResource] unique to +## this [param PhantomCamera3D]. +func set_far(value: float) -> void: + if not camera_3d_resource: + printerr("Can't assign a far value. No Camera3DResource assigned to ", name) + return + camera_3d_resource.far = value + camera_3d_resource_property_changed.emit("far", value) + +## Gets the [member Camera3D.far] value assigned to the [param Camera3DResource]. +func get_far() -> Variant: + if not camera_3d_resource: return null + return camera_3d_resource.far + + +func get_follow_target_physics_based() -> bool: + return _follow_target_physics_based + + +func get_class() -> String: + return "PhantomCamera3D" + + +func is_class(value) -> bool: + return value == "PhantomCamera3D" + +#endregion diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd.uid b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd.uid new file mode 100644 index 0000000..31a2fc9 --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_3d.gd.uid @@ -0,0 +1 @@ +uid://csjccrhj5wnx7 diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd new file mode 100644 index 0000000..43f6cf4 --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd @@ -0,0 +1,29 @@ +@tool +extends RefCounted + +#region Constants + +#const PhantomCameraHost: Script = preload("res://addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd") + +const CAMERA_2D_NODE_NAME: StringName = "Camera2D" +const CAMERA_3D_NODE_NAME: StringName = "Camera3D" +const PCAM_HOST_NODE_NAME: StringName = "PhantomCameraHost" +const PCAM_MANAGER_NODE_NAME: String = "PhantomCameraManager" # TODO - Convert to StringName once https://github.com/godotengine/godot/pull/72702 is merged +const PCAM_2D_NODE_NAME: StringName = "PhantomCamera2D" +const PCAM_3D_NODE_NAME: StringName = "PhantomCamera3D" +const PCAM_HOST: StringName = "phantom_camera_host" + +const COLOR_2D: Color = Color("8DA5F3") +const COLOR_3D: Color = Color("FC7F7F") +const COLOR_PCAM: Color = Color("3AB99A") +const COLOR_PCAM_33: Color = Color("3ab99a33") +const PCAM_HOST_COLOR: Color = Color("E0E0E0") + +#endregion + +#region Group Names + +const PCAM_GROUP_NAME: StringName = "phantom_camera_group" +const PCAM_HOST_GROUP_NAME: StringName = "phantom_camera_host_group" + +#endregion diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd.uid b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd.uid new file mode 100644 index 0000000..b1e3789 --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd.uid @@ -0,0 +1 @@ +uid://dn74j5b5hdxu diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd new file mode 100644 index 0000000..7306810 --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd @@ -0,0 +1,264 @@ +@tool +@icon("res://addons/phantom_camera/icons/phantom_camera_noise_emitter_2d.svg") +class_name PhantomCameraNoiseEmitter2D +extends Node2D + +## Emits positional and rotational noise to active [PhantomCamera2D]s and its corresponding [Camera2D]. +## +## Is a node meant to apply positional and rotational noise, also referred to as shake, to the [Camera2D]. +## It is designed for use cases such as when hitting or when being hit, earthquakes or to add a +## bit of slight movement to the camera to make it feel less static. +## The emitter can affect multiple [PhantomCamera2D] in a given scene based on which [member noise_emitter_layer] +## are enabled by calling its [method emit] function. At least one corresponding layer has to be +## set on the [PhantomCamera2D] and the emitter node. + +const _constants = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") + +#region Exported Proerpties + +## The [PhantomCameraNoise2D] resource that defines the noise pattern. +@export var noise: PhantomCameraNoise2D = null: + set = set_noise, + get = get_noise + +## If true, previews the noise in the editor - can be seen in the viewfinder. +@export var preview: bool = false: + set(value): + preview = value + _play = value + get: + return preview + +## If true, repeats the noise indefinitely once started. Otherwise, it will only be triggered once. [br] +@export var continuous: bool = false: + set = set_continuous, + get = get_continuous + +## Determines how long the noise should take to reach full [member intensity] once started.[br] +## The value is set in [b]seconds[/b]. +@export_exp_easing("positive_only", "suffix: s") var growth_time: float = 0: + set = set_growth_time, + get = get_growth_time + +## Sets the duration for the camera noise if [member continuous] is set to [b]false[/b].[br][br] +## The value is set in [b]seconds[/b]. +@export_range(0, 10, 0.001, "or_greater", "suffix: s") var duration: float = 1.0: + set = set_duration, + get = get_duration + +## Determines how long the noise should take to come to a full stop.[br] +## The value is set in [b]seconds[/b]. +@export_exp_easing("attenuation", "positive_only", "suffix: s") var decay_time: float = 0: + set = set_decay_time, + get = get_decay_time + +## Enabled layers will affect [PhantomCamera2D] nodes with at least one corresponding layer enabled.[br] +## Enabling multiple corresponding layers on the same [PhantomCamera2D] causes no additional effect. +@export_flags_2d_render var noise_emitter_layer: int = 1: + set = set_noise_emitter_layer, + get = get_noise_emitter_layer + +#endregion + + +#region Private Variables + +var _play: bool = false: + set(value): + _play = value + if value: + _elasped_play_time = 0 + _decay_countdown = 0 + _play = true + _should_grow = true + _start_duration_countdown = false + _should_decay = false + else: + _should_decay = true + if noise.randomize_noise_seed: + noise.noise_seed = randi() & 1000 + else: + noise.reset_noise_time() + get: + return _play + +var _start_duration_countdown: bool = false + +var _decay_countdown: float = 0 + +var _should_grow: bool = false + +var _should_decay: bool = false + +var _elasped_play_time: float = 0 + +var _noise_output: Transform2D = Transform2D() + +# NOTE - Temp solution until Godot has better plugin autoload recognition out-of-the-box. +var _phantom_camera_manager: Node + +#endregion + +#region Private Functions + +func _get_configuration_warnings() -> PackedStringArray: + if noise == null: + return ["Noise resource is required in order to trigger emitter."] + else: + return [] + + +func _validate_property(property) -> void: + if property.name == "duration" and continuous: + property.usage = PROPERTY_USAGE_NO_EDITOR + + +func _enter_tree() -> void: + _phantom_camera_manager = get_tree().root.get_node(_constants.PCAM_MANAGER_NODE_NAME) + + +func _process(delta: float) -> void: + if not _play and not _should_decay: return + if noise == null: + printerr("Noise resource missing in ", name) + _play = false + return + + _elasped_play_time += delta + + if _should_grow: + noise.set_trauma(minf(_elasped_play_time / growth_time, 1)) + if _elasped_play_time >= growth_time: + _should_grow = false + _start_duration_countdown = true + noise.set_trauma(1) + else: + noise.set_trauma(1) + + if not continuous: + if _start_duration_countdown: + if _elasped_play_time >= duration + growth_time: + _should_decay = true + _start_duration_countdown = false + + if _should_decay: + _decay_countdown += delta + noise.set_trauma(maxf(1 - (_decay_countdown / decay_time), 0)) + if _decay_countdown >= decay_time: + noise.set_trauma(0) + _play = false + preview = false + _should_decay = false + _elasped_play_time = 0 + _decay_countdown = 0 + + _noise_output = noise.get_noise_transform(delta) + _phantom_camera_manager.noise_2d_emitted.emit(_noise_output, noise_emitter_layer) + + +func _set_layer(current_layers: int, layer_number: int, value: bool) -> int: + var mask: int = current_layers + + # From https://github.com/godotengine/godot/blob/51991e20143a39e9ef0107163eaf283ca0a761ea/scene/3d/camera_3d.cpp#L638 + if layer_number < 1 or layer_number > 20: + printerr("Layer must be between 1 and 20.") + else: + if value: + mask |= 1 << (layer_number - 1) + else: + mask &= ~(1 << (layer_number - 1)) + + return mask + +#endregion + + +#region Public Functions + +## Emits noise to the [PhantomCamera2D]s that has at least one matching layers. +func emit() -> void: + if _play: _play = false + _play = true + +## Returns the state for the emitter. If true, the emitter is currently emitting. +func is_emitting() -> bool: + return _play + +## Stops the emitter from emitting noise. +func stop(should_decay: bool = true) -> void: + if should_decay: + _should_decay = true + else: + _play = false + +## Toggles the emitter on and off. +func toggle() -> void: + _play = !_play + +#endregion + + +#region Setter & Getter Functions + +## Sets the [member noise] resource. +func set_noise(value: PhantomCameraNoise2D) -> void: + noise = value + update_configuration_warnings() + +## Returns the [member noise] resource. +func get_noise() -> PhantomCameraNoise2D: + return noise + + +## Sets the [member continous] value. +func set_continuous(value: bool) -> void: + continuous = value + notify_property_list_changed() + +## Gets the [member continous] value. +func get_continuous() -> bool: + return continuous + + +## Sets the [member growth_time] value. +func set_growth_time(value: float) -> void: + growth_time = value + +## Returns the [member growth_time] value. +func get_growth_time() -> float: + return growth_time + + +## Sets the [member duration] value. +func set_duration(value: float) -> void: + duration = value + if duration == 0: + duration = 0.001 + +## Returns the [member duration] value. +func get_duration() -> float: + return duration + + +## Sets the [member decay_time] value. +func set_decay_time(value: float) -> void: + decay_time = value + +## Returns the [member decay_time] value. +func get_decay_time() -> float: + return decay_time + + +## Sets the [member noise_emitter_layer] value. +func set_noise_emitter_layer(value: int) -> void: + noise_emitter_layer = value + +## Enables or disables a given layer of [member noise_emitter_layer]. +func set_noise_emitter_value(value: int, enabled: bool) -> void: + noise_emitter_layer = _set_layer(noise_emitter_layer, value, enabled) + +## Returns the [member noise_emitter_layer] value. +func get_noise_emitter_layer() -> int: + return noise_emitter_layer + +#endregion diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd.uid b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd.uid new file mode 100644 index 0000000..19dbc96 --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_2d.gd.uid @@ -0,0 +1 @@ +uid://bhd4nuiu23e7l diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd new file mode 100644 index 0000000..cd6c634 --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd @@ -0,0 +1,265 @@ +@tool +@icon("res://addons/phantom_camera/icons/phantom_camera_noise_emitter_3d.svg") +class_name PhantomCameraNoiseEmitter3D +extends Node3D + +## Emits positional and rotational noise to active [PhantomCamera3D]s and its corresponding [Camera3D]. +## +## Is a node meant to apply positional and rotational noise, also referred to as shake, to the [Camera3D]. +## It is designed for use cases such as when hitting or when being hit, earthquakes or to add a +## bit of slight movement to the camera to make it feel less static. +## The emitter can affect multiple [PhantomCamera3D] in a given scene based on which [member noise_emitter_layer] +## are enabled by calling its [method emit] function. At least one corresponding layer has to be +## set on the [PhantomCamera3D] and the emitter node. + +const _constants = preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") + +#region Exported Properties + +## The [PhantomCameraNoise3D] resource that defines the noise pattern. +@export var noise: PhantomCameraNoise3D = null: + set = set_noise, + get = get_noise + +## If true, previews the noise in the Viewfinder. +@export var preview: bool = false: + set(value): + preview = value + _play = value + get: + return preview + +## If true, repeats the noise indefinitely once started.Otherwise, it will only be triggered once. [br] +## [b]Note:[/b] This will always be enabled if the resource is assigned the the [PhantomCamera3D]'s +## [member PhantomCamera3D.noise] property. +@export var continuous: bool = false: + set = set_continuous, + get = get_continuous + +## Determines how long the noise should take to reach full [member intensity] once started.[br] +## The value is set in [b]seconds[/b]. +@export_exp_easing("positive_only", "suffix: s") var growth_time: float = 0: + set = set_growth_time, + get = get_growth_time + +## Sets the duration for the camera noise if [member loop] is set to false.[br] +## If the duration is [param 0] then [member continous] becomes enabled.[br] +## The value is set in [b]seconds[/b]. +@export_range(0, 10, 0.001, "or_greater", "suffix: s") var duration: float = 1.0: + set = set_duration, + get = get_duration + +## Determines how long the noise should take to come to a full stop.[br] +## The value is set in [b]seconds[/b]. +@export_exp_easing("attenuation", "positive_only", "suffix: s") var decay_time: float = 0: + set = set_decay_time, + get = get_decay_time + +## Enabled layers will affect [PhantomCamera3D] nodes with at least one corresponding layer enabled.[br] +## Enabling multiple corresponding layers on the same [PhantomCamera3D] causes no additional effect. +@export_flags_3d_render var noise_emitter_layer: int = 1: + set = set_noise_emitter_layer, + get = get_noise_emitter_layer + +#endregion + +#region Private Variables + +var _play: bool = false: + set(value): + _play = value + if value: + _elasped_play_time = 0 + _decay_countdown = 0 + _play = true + _should_grow = true + _start_duration_countdown = false + _should_decay = false + else: + _should_decay = true + if noise.randomize_noise_seed: + noise.noise_seed = randi() & 1000 + else: + noise.reset_noise_time() + get: + return _play + +var _start_duration_countdown: bool = false + +var _decay_countdown: float = 0 + +var _should_grow: bool = false + +var _should_decay: bool = false + +var _elasped_play_time: float = 0 + +var _noise_output: Transform3D = Transform3D() + +# NOTE - Temp solution until Godot has better plugin autoload recognition out-of-the-box. +var _phantom_camera_manager: Node + +#endregion + +#region Private Functions + +func _get_configuration_warnings() -> PackedStringArray: + if noise == null: + return ["Noise resource is required in order to trigger emitter."] + else: + return [] + + +func _validate_property(property) -> void: + if property.name == "duration" and continuous: + property.usage = PROPERTY_USAGE_NO_EDITOR + + +func _enter_tree() -> void: + _phantom_camera_manager = get_tree().root.get_node(_constants.PCAM_MANAGER_NODE_NAME) + + +func _process(delta: float) -> void: + if not _play and not _should_decay: return + if noise == null: + printerr("Noise resource missing in ", name) + _play = false + return + + _elasped_play_time += delta + + if _should_grow: + noise.set_trauma(minf(_elasped_play_time / growth_time, 1)) + if _elasped_play_time >= growth_time: + _should_grow = false + _start_duration_countdown = true + noise.set_trauma(1) + + if not continuous: + if _start_duration_countdown: + if _elasped_play_time >= duration + growth_time: + _should_decay = true + _start_duration_countdown = false + + if _should_decay: + _decay_countdown += delta + noise.set_trauma(maxf(1 - (_decay_countdown / decay_time), 0)) + if _decay_countdown >= decay_time: + noise.set_trauma(0) + _play = false + preview = false + _should_decay = false + _elasped_play_time = 0 + _decay_countdown = 0 + + _noise_output = noise.get_noise_transform(delta) + _phantom_camera_manager.noise_3d_emitted.emit(_noise_output, noise_emitter_layer) + + +func _set_layer(current_layers: int, layer_number: int, value: bool) -> int: + var mask: int = current_layers + + # From https://github.com/godotengine/godot/blob/51991e20143a39e9ef0107163eaf283ca0a761ea/scene/3d/camera_3d.cpp#L638 + if layer_number < 1 or layer_number > 20: + printerr("Layer must be between 1 and 20.") + else: + if value: + mask |= 1 << (layer_number - 1) + else: + mask &= ~(1 << (layer_number - 1)) + + return mask + +#endregion + +#region Public Functions + +## Emits noise to the [PhantomCamera3D]s that has at least one matching layers. +func emit() -> void: + if _play: _play = false + _play = true + + +## Returns the state for the emitter. If true, the emitter is currently emitting. +func is_emitting() -> bool: + return _play + + +## Stops the emitter from emitting noise. +func stop(should_decay: bool = true) -> void: + if should_decay: + _should_decay = true + else: + _play = false + + +## Toggles the emitter on and off.[br] +func toggle() -> void: + _play = !_play + +#endregion + +#region Setter & Getter Functions + +## Sets the [member noise] resource. +func set_noise(value: PhantomCameraNoise3D) -> void: + noise = value + update_configuration_warnings() + +## Returns the [member noise] resource. +func get_noise() -> PhantomCameraNoise3D: + return noise + + +## Sets the [member continous] value. +func set_continuous(value: bool) -> void: + continuous = value + notify_property_list_changed() + +## Gets the [member continous] value. +func get_continuous() -> bool: + return continuous + + +## Sets the [member growth_time] value. +func set_growth_time(value: float) -> void: + growth_time = value + +## Returns the [member growth_time] value. +func get_growth_time() -> float: + return growth_time + + +## Sets the [member duration] value. +func set_duration(value: float) -> void: + duration = value + if duration == 0: + duration = 0.001 + +## Returns the [member duration] value. +func get_duration() -> float: + return duration + + +## Sets the [member decay_time] value. +func set_decay_time(value: float) -> void: + decay_time = value + +## Returns the [member decay_time] value. +func get_decay_time() -> float: + return decay_time + + +## Sets the [member noise_emitter_layer] value. +func set_noise_emitter_layer(value: int) -> void: + noise_emitter_layer = value + +## Enables or disables a given layer of [member noise_emitter_layer]. +func set_noise_emitter_value(value: int, enabled: bool) -> void: + noise_emitter_layer = _set_layer(noise_emitter_layer, value, enabled) + +## Returns the [member noise_emitter_layer] value. +func get_noise_emitter_layer() -> int: + return noise_emitter_layer + + #endregion diff --git a/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd.uid b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd.uid new file mode 100644 index 0000000..aa7e880 --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera/phantom_camera_noise_emitter_3d.gd.uid @@ -0,0 +1 @@ +uid://ccmiitq0sdh7j diff --git a/addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd b/addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd new file mode 100644 index 0000000..476130c --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd @@ -0,0 +1,1428 @@ +@tool +@icon("res://addons/phantom_camera/icons/phantom_camera_host.svg") +class_name PhantomCameraHost +extends Node + +## Controls a scene's [Camera2D] (2D scenes) and [Camera3D] (3D scenes). +## +## All instantiated [param PhantomCameras] in a scene are assigned to a specific layer, where a +## PhantomCameraHost will react to those that corresponds. It is what determines which [param PhantomCamera] should +## be active. + +#region Signals + + +#endregion + +#region Constants + +const _constants := preload("res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_constants.gd") + +#endregion + +#region Signals + +## Updates the viewfinder [param dead zones] sizes.[br] +## [b]Note:[/b] This is only being used in the editor viewfinder UI. +#signal update_editor_viewfinder +signal viewfinder_update(check_framed_view: bool) +signal viewfinder_disable_dead_zone + +## Used internally to check if the [param PhantomCameraHost] is valid. +## The result will be visible in the viewfinder when multiple instances are present. +signal has_error() + +#endregion + + +#region Enums + +enum InterpolationMode { + AUTO = 0, + IDLE = 1, + PHYSICS = 2, +} + +#endregion + + +#region Public Variables + +## Determines which [PhantomCamera2D] / [PhantomCamera3D] nodes this [param PhantomCameraHost] should recognise. +## At least one corresponding layer needs to be set on the [param PhantomCamera] for the [param PhantomCameraHost] node to work. +@export_flags_2d_render var host_layers: int = 1: + set = set_host_layers, + get = get_host_layers + +## TBD - For when Godot 4.3 becomes the minimum version +#@export var interpolation_mode: InterpolationMode = InterpolationMode.AUTO: + #set = set_interpolation_mode, + #get = get_interpolation_mode + +#endregion + + +#region Private Variables + +var _active_pcam_2d: PhantomCamera2D = null +var _active_pcam_3d: Node = null ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. +var _active_pcam_priority: int = -1 +var _active_pcam_missing: bool = true +var _active_pcam_has_damping: bool = false +var _follow_target_physics_based: bool = false + +var _prev_active_pcam_2d_transform: Transform2D = Transform2D() +var _prev_active_pcam_3d_transform: Transform3D = Transform3D() + +var _trigger_pcam_tween: bool = false +var _tween_elapsed_time: float = 0 +var _tween_duration: float = 0 +var _tween_is_instant: bool = false + +var _multiple_pcam_hosts: bool = false + +var _is_child_of_camera: bool = false +var _is_2d: bool = false + +var _viewfinder_node: Control = null +var _viewfinder_needed_check: bool = true + +var _camera_zoom: Vector2 = Vector2.ONE + +#region Camera3DResource + +var _prev_cam_attributes: CameraAttributes = null +var _cam_attribute_type: int = 0 # 0 = CameraAttributesPractical, 1 = CameraAttributesPhysical +var _cam_attribute_changed: bool = false +var _cam_attribute_assigned: bool = false + +#region CameraAttributes +var _prev_cam_auto_exposure_scale: float = 0.4 +var _cam_auto_exposure_scale_changed: bool = false + +var _prev_cam_auto_exposure_speed: float = 0.5 +var _cam_auto_exposure_speed_changed: bool = false + +var _prev_cam_exposure_multiplier: float = 1.0 +var _cam_exposure_multiplier_changed: bool = false + +var _prev_cam_exposure_sensitivity: float = 100.0 +var _cam_exposure_sensitivity_changed: bool = false + +#region CameraAttributesPractical +var _prev_cam_exposure_min_sensitivity: float = 0.0 +var _cam_exposure_min_sensitivity_changed: bool = false + +var _prev_cam_exposure_max_sensitivity: float = 800.0 +var _cam_exposure_max_sensitivity_changed: bool = false + +var _prev_cam_dof_blur_amount: float = 0.1 +var _cam_dof_blur_amount_changed: bool = false + +var _cam_dof_blur_far_distance_default: float = 10 +var _prev_cam_dof_blur_far_distance: float = _cam_dof_blur_far_distance_default +var _cam_dof_blur_far_distance_changed: bool = false + +var _cam_dof_blur_far_transition_default: float = 5 +var _prev_cam_dof_blur_far_transition: float = _cam_dof_blur_far_transition_default +var _cam_dof_blur_far_transition_changed: bool = false + +var _cam_dof_blur_near_distance_default: float = 2 +var _prev_cam_dof_blur_near_distance: float = _cam_dof_blur_near_distance_default +var _cam_dof_blur_near_distance_changed: bool = false + +var _cam_dof_blur_near_transition_default: float = 1 +var _prev_cam_dof_blur_near_transition: float = _cam_dof_blur_near_transition_default +var _cam_dof_blur_near_transition_changed: bool = false +#endregion + +#region CameraAttributesPhysical +var _prev_cam_exposure_min_exposure_value: float = 10.0 +var _cam_exposure_min_exposure_value_changed: bool = false + +var _prev_cam_exposure_max_exposure_value: float = -8.0 +var _cam_exposure_max_exposure_value_changed: bool = false + +var _prev_cam_exposure_aperture: float = 16.0 +var _cam_exposure_aperture_changed: bool = false + +var _prev_cam_exposure_shutter_speed: float = 100.0 +var _cam_exposure_shutter_speed_changed: bool = false + +var _prev_cam_frustum_far: float = 4000.0 +var _cam_frustum_far_changed: bool = false + +var _prev_cam_frustum_focal_length: float = 35.0 +var _cam_frustum_focal_length_changed: bool = false + +var _prev_cam_frustum_near: float = 0.05 +var _cam_frustum_near_changed: bool = false + +var _prev_cam_frustum_focus_distance: float = 10.0 +var _cam_frustum_focus_distance_changed: bool = false + +#endregion + +var _prev_cam_h_offset: float = 0 +var _cam_h_offset_changed: bool = false + +var _prev_cam_v_offset: float = 0 +var _cam_v_offset_changed: bool = false + +var _prev_cam_fov: float = 75 +var _cam_fov_changed: bool = false + +var _prev_cam_size: float = 1 +var _cam_size_changed: bool = false + +var _prev_cam_frustum_offset: Vector2 = Vector2.ZERO +var _cam_frustum_offset_changed: bool = false + +var _prev_cam_near: float = 0.05 +var _cam_near_changed: bool = false + +var _prev_cam_far: float = 4000 +var _cam_far_changed: bool = false + +#endregion + +var _active_pcam_2d_glob_transform: Transform2D = Transform2D() +var _active_pcam_3d_glob_transform: Transform3D = Transform3D() + +var _has_noise_emitted: bool = false +var _reset_noise_offset_2d: bool = false +var _noise_emitted_output_2d: Transform2D = Transform2D() +var _noise_emitted_output_3d: Transform3D = Transform3D() + +#endregion + +# NOTE - Temp solution until Godot has better plugin autoload recognition out-of-the-box. +var _phantom_camera_manager: Node = null + +#region Public Variables + +var show_warning: bool = false + +## For 2D scenes, is the [Camera2D] instance the [param PhantomCameraHost] controls. +var camera_2d: Camera2D = null + +## For 3D scenes, is the [Camera3D] instance the [param PhantomCameraHost] controls. +var camera_3d: Node = null ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. + +#endregion + +#region Private Functions + +## TBD - For when Godot 4.3 becomes a minimum version +#func _validate_property(property: Dictionary) -> void: + #if property.name == "interpolation_mode" and get_parent() is Node3D: + #property.usage = PROPERTY_USAGE_NO_EDITOR + + +func _get_configuration_warnings() -> PackedStringArray: + var parent: Node = get_parent() + var first_pcam_host_child: PhantomCameraHost + + if _is_2d: + if not parent is Camera2D: + show_warning = true + has_error.emit() + return["Needs to be a child of a Camera2D in order to work."] + else: + if not parent.is_class("Camera3D"): ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. + show_warning = true + has_error.emit() + return["Needs to be a child of a Camera3D in order to work."] + + for child in parent.get_children(): + if not child is PhantomCameraHost: continue + if not is_instance_valid(first_pcam_host_child): + first_pcam_host_child = child + continue + elif not first_pcam_host_child == self: + show_warning = true + has_error.emit() + return["Only the first PhantomCameraHost child will be used."] + child.update_configuration_warnings() + + show_warning = false + has_error.emit() + return[] + + +func _enter_tree() -> void: + var parent: Node = get_parent() + if parent is Camera2D or parent.is_class("Camera3D"): ## Note: To support disable_3d export templates for 2D projects, this is purposely not strongly typed. + _phantom_camera_manager = get_tree().root.get_node(_constants.PCAM_MANAGER_NODE_NAME) + _phantom_camera_manager.pcam_host_added(self) + + _is_child_of_camera = true + if parent is Camera2D: + _is_2d = true + camera_2d = parent + ## Force applies position smoothing to be disabled + ## This is to prevent overlap with the interpolation of the PCam2D. + camera_2d.set_position_smoothing_enabled(false) + else: + _is_2d = false + camera_3d = parent + + if _is_2d: + if not _phantom_camera_manager.get_phantom_camera_2ds().is_empty(): + for pcam in _phantom_camera_manager.get_phantom_camera_2ds(): + _pcam_added_to_scene(pcam) + + if not _phantom_camera_manager.limit_2d_changed.is_connected(_update_limit_2d): + _phantom_camera_manager.limit_2d_changed.connect(_update_limit_2d) + if not _phantom_camera_manager.draw_limit_2d.is_connected(_draw_limit_2d): + _phantom_camera_manager.draw_limit_2d.connect(_draw_limit_2d) + + else: + if not _phantom_camera_manager.get_phantom_camera_3ds().is_empty(): + for pcam in _phantom_camera_manager.get_phantom_camera_3ds(): + _pcam_added_to_scene(pcam) + + +func _exit_tree() -> void: + if is_instance_valid(_phantom_camera_manager): + _phantom_camera_manager.pcam_host_removed(self) + + +func _ready() -> void: + # Waits for the first process tick to finish before initializing any logic + # This should help with avoiding ocassional erratic camera movement upon running a scene + await get_tree().process_frame + + process_priority = 300 + process_physics_priority = 300 + + # PCam Host Signals + if Engine.has_singleton(_constants.PCAM_MANAGER_NODE_NAME): + _phantom_camera_manager = Engine.get_singleton(_constants.PCAM_MANAGER_NODE_NAME) + _phantom_camera_manager.pcam_host_layer_changed.connect(_pcam_host_layer_changed) + + # PCam Signals + _phantom_camera_manager.pcam_added_to_scene.connect(_pcam_added_to_scene) + _phantom_camera_manager.pcam_removed_from_scene.connect(_pcam_removed_from_scene) + + _phantom_camera_manager.pcam_priority_changed.connect(pcam_priority_updated) + _phantom_camera_manager.pcam_priority_override.connect(_pcam_priority_override) + + _phantom_camera_manager.pcam_visibility_changed.connect(_pcam_visibility_changed) + + _phantom_camera_manager.pcam_teleport.connect(_pcam_teleported) + + if _is_2d: + if not _phantom_camera_manager.limit_2d_changed.is_connected(_update_limit_2d): + _phantom_camera_manager.limit_2d_changed.connect(_update_limit_2d) + if not _phantom_camera_manager.draw_limit_2d.is_connected(_draw_limit_2d): + _phantom_camera_manager.draw_limit_2d.connect(_draw_limit_2d) + else: + printerr("Could not find Phantom Camera Manager singleton") + printerr("Make sure the addon is enable or that the singleton hasn't been disabled inside Project Settings / Globals") + + _find_pcam_with_highest_priority() + + if _is_2d: + camera_2d.offset = Vector2.ZERO + if not is_instance_valid(_active_pcam_2d): return + _active_pcam_2d_glob_transform = _active_pcam_2d.get_transform_output() + else: + if not is_instance_valid(_active_pcam_3d): return + _active_pcam_3d_glob_transform = _active_pcam_3d.get_transform_output() + + +func _pcam_host_layer_changed(pcam: Node) -> void: + if _pcam_is_in_host_layer(pcam): + _check_pcam_priority(pcam) + else: + if _is_2d: + if _active_pcam_2d == pcam: + _active_pcam_missing = true + _active_pcam_2d = null + _active_pcam_priority = -1 + pcam.set_is_active(self, false) + else: + if _active_pcam_3d == pcam: + _active_pcam_missing = true + _active_pcam_3d = null + _active_pcam_priority = -1 + pcam.set_is_active(self, false) + _find_pcam_with_highest_priority() + + +func _pcam_is_in_host_layer(pcam: Node) -> bool: + if pcam.host_layers & host_layers != 0: return true + return false + + +func _find_pcam_with_highest_priority() -> void: + var pcam_list: Array + if _is_2d: + pcam_list = _phantom_camera_manager.phantom_camera_2ds + else: + pcam_list = _phantom_camera_manager.phantom_camera_3ds + + for pcam in pcam_list: + _check_pcam_priority(pcam) + + +func _check_pcam_priority(pcam: Node) -> void: + if not _pcam_is_in_host_layer(pcam): return + if not pcam.visible: return # Prevents hidden PCams from becoming active + if pcam.get_priority() > _active_pcam_priority: + _assign_new_active_pcam(pcam) + _active_pcam_missing = false + else: + pcam.set_tween_skip(self, false) + + +func _assign_new_active_pcam(pcam: Node) -> void: + # Only checks if the scene tree is still present. + # Prevents a few errors and checks from happening if the scene is exited. + if not is_inside_tree(): return + var no_previous_pcam: bool + if is_instance_valid(_active_pcam_2d) or is_instance_valid(_active_pcam_3d): + if OS.has_feature("debug"): + viewfinder_disable_dead_zone.emit() + + if _is_2d: + _prev_active_pcam_2d_transform = camera_2d.global_transform + _active_pcam_2d.queue_redraw() + _active_pcam_2d.set_is_active(self, false) + _active_pcam_2d.became_inactive.emit() + + if _active_pcam_2d.physics_target_changed.is_connected(_check_pcam_physics): + _active_pcam_2d.physics_target_changed.disconnect(_check_pcam_physics) + + if _active_pcam_2d.noise_emitted.is_connected(_noise_emitted_2d): + _active_pcam_2d.noise_emitted.disconnect(_noise_emitted_2d) + + if _trigger_pcam_tween: + _active_pcam_2d.tween_interrupted.emit(pcam) + else: + _prev_active_pcam_3d_transform = camera_3d.global_transform + _active_pcam_3d.set_is_active(self, false) + _active_pcam_3d.became_inactive.emit() + + if _active_pcam_3d.physics_target_changed.is_connected(_check_pcam_physics): + _active_pcam_3d.physics_target_changed.disconnect(_check_pcam_physics) + + if _active_pcam_3d.noise_emitted.is_connected(_noise_emitted_3d): + _active_pcam_3d.noise_emitted.disconnect(_noise_emitted_3d) + + if _active_pcam_3d.camera_3d_resource_changed.is_connected(_camera_3d_resource_changed): + _active_pcam_3d.camera_3d_resource_changed.disconnect(_camera_3d_resource_changed) + + if _active_pcam_3d.camera_3d_resource_property_changed.is_connected(_camera_3d_resource_property_changed): + _active_pcam_3d.camera_3d_resource_property_changed.disconnect(_camera_3d_resource_property_changed) + + if _trigger_pcam_tween: + _active_pcam_3d.tween_interrupted.emit(pcam) + + if camera_3d.attributes != null: + var _attributes: CameraAttributes = camera_3d.attributes + + _prev_cam_exposure_multiplier = _attributes.exposure_multiplier + _prev_cam_auto_exposure_scale = _attributes.auto_exposure_scale + _prev_cam_auto_exposure_speed = _attributes.auto_exposure_speed + + if camera_3d.attributes is CameraAttributesPractical: + _attributes = _attributes as CameraAttributesPractical + + _prev_cam_dof_blur_amount = _attributes.dof_blur_amount + + if _attributes.dof_blur_far_enabled: + _prev_cam_dof_blur_far_distance = _attributes.dof_blur_far_distance + _prev_cam_dof_blur_far_transition = _attributes.dof_blur_far_transition + else: + _prev_cam_dof_blur_far_distance = _cam_dof_blur_far_distance_default + _prev_cam_dof_blur_far_transition = _cam_dof_blur_far_transition_default + + if _attributes.dof_blur_near_enabled: + _prev_cam_dof_blur_near_distance = _attributes.dof_blur_near_distance + _prev_cam_dof_blur_near_transition = _attributes.dof_blur_near_transition + else: + _prev_cam_dof_blur_near_distance = _cam_dof_blur_near_distance_default + _prev_cam_dof_blur_near_transition = _cam_dof_blur_near_transition_default + + if _attributes.auto_exposure_enabled: + _prev_cam_exposure_max_sensitivity = _attributes.auto_exposure_max_sensitivity + _prev_cam_exposure_min_sensitivity = _attributes.auto_exposure_min_sensitivity + + elif camera_3d.attributes is CameraAttributesPhysical: + _attributes = _attributes as CameraAttributesPhysical + + _prev_cam_frustum_focus_distance = _attributes.frustum_focus_distance + _prev_cam_frustum_focal_length = _attributes.frustum_focal_length + _prev_cam_frustum_far = _attributes.frustum_far + _prev_cam_frustum_near = _attributes.frustum_near + _prev_cam_exposure_aperture = _attributes.exposure_aperture + _prev_cam_exposure_shutter_speed = _attributes.exposure_shutter_speed + + if _attributes.auto_exposure_enabled: + _prev_cam_exposure_min_exposure_value = _attributes.auto_exposure_min_exposure_value + _prev_cam_exposure_max_exposure_value = _attributes.auto_exposure_max_exposure_value + + _prev_cam_h_offset = camera_3d.h_offset + _prev_cam_v_offset = camera_3d.v_offset + _prev_cam_fov = camera_3d.fov + _prev_cam_size = camera_3d.size + _prev_cam_frustum_offset = camera_3d.frustum_offset + _prev_cam_near = camera_3d.near + _prev_cam_far = camera_3d.far + + else: + no_previous_pcam = true + + ## Assign newly active pcam + if _is_2d: + _active_pcam_2d = pcam + _active_pcam_priority = _active_pcam_2d.priority + _active_pcam_has_damping = _active_pcam_2d.follow_damping + _tween_duration = _active_pcam_2d.tween_duration + + if not _active_pcam_2d.physics_target_changed.is_connected(_check_pcam_physics): + _active_pcam_2d.physics_target_changed.connect(_check_pcam_physics) + + if not _active_pcam_2d.noise_emitted.is_connected(_noise_emitted_2d): + _active_pcam_2d.noise_emitted.connect(_noise_emitted_2d) + else: + _active_pcam_3d = pcam + _active_pcam_priority = _active_pcam_3d.priority + _active_pcam_has_damping = _active_pcam_3d.follow_damping + _tween_duration = _active_pcam_3d.tween_duration + + if not Engine.is_editor_hint(): + # Assigns a default shape to SpringArm3D node is none is supplied + if _active_pcam_3d.follow_mode == _active_pcam_3d.FollowMode.THIRD_PERSON: + if not _active_pcam_3d.shape: + + var pyramid_shape_data = Engine.get_singleton("PhysicsServer3D").call("shape_get_data", + camera_3d.get_pyramid_shape_rid() + ) + var shape = ClassDB.instantiate("ConvexPolygonShape3D") + shape.points = pyramid_shape_data + _active_pcam_3d.shape = shape + + if not _active_pcam_3d.physics_target_changed.is_connected(_check_pcam_physics): + _active_pcam_3d.physics_target_changed.connect(_check_pcam_physics) + + if not _active_pcam_3d.noise_emitted.is_connected(_noise_emitted_3d): + _active_pcam_3d.noise_emitted.connect(_noise_emitted_3d) + + if not _active_pcam_3d.camera_3d_resource_changed.is_connected(_camera_3d_resource_changed): + _active_pcam_3d.camera_3d_resource_changed.connect(_camera_3d_resource_changed) + + if not _active_pcam_3d.camera_3d_resource_property_changed.is_connected(_camera_3d_resource_property_changed): + _active_pcam_3d.camera_3d_resource_property_changed.connect(_camera_3d_resource_property_changed) + + # Checks if the Camera3DResource has changed from the previous active PCam3D + if _active_pcam_3d.camera_3d_resource: + # Signal to detect if the Camera3D properties are being changed in the inspector + # This is to prevent accidential misalignment between the Camera3D and Camera3DResource + if Engine.is_editor_hint(): + if not Engine.get_singleton(&"EditorInterface").get_inspector().property_edited.is_connected(_camera_3d_edited): + Engine.get_singleton(&"EditorInterface").get_inspector().property_edited.connect(_camera_3d_edited) + if _prev_cam_h_offset != _active_pcam_3d.h_offset: + _cam_h_offset_changed = true + if _prev_cam_v_offset != _active_pcam_3d.v_offset: + _cam_v_offset_changed = true + if _prev_cam_fov != _active_pcam_3d.fov: + _cam_fov_changed = true + if _prev_cam_size != _active_pcam_3d.size: + _cam_size_changed = true + if _prev_cam_frustum_offset != _active_pcam_3d.frustum_offset: + _cam_frustum_offset_changed = true + if _prev_cam_near != _active_pcam_3d.near: + _cam_near_changed = true + if _prev_cam_far != _active_pcam_3d.far: + _cam_far_changed = true + else: + _cam_h_offset_changed = false + _cam_v_offset_changed = false + _cam_fov_changed = false + _cam_size_changed = false + _cam_frustum_offset_changed = false + _cam_near_changed = false + _cam_far_changed = false + _cam_attribute_changed = false + if Engine.is_editor_hint(): + if Engine.get_singleton(&"EditorInterface").get_inspector().property_edited.is_connected(_camera_3d_edited): + Engine.get_singleton(&"EditorInterface").get_inspector().property_edited.disconnect(_camera_3d_edited) + + if _active_pcam_3d.attributes == null: + _cam_attribute_changed = false + else: + if _prev_cam_attributes != _active_pcam_3d.attributes: + _prev_cam_attributes = _active_pcam_3d.attributes + _cam_attribute_changed = true + var _attributes: CameraAttributes = _active_pcam_3d.attributes + + if _prev_cam_auto_exposure_scale != _attributes.auto_exposure_scale: + _cam_auto_exposure_scale_changed = true + if _prev_cam_auto_exposure_speed != _attributes.auto_exposure_speed: + _cam_auto_exposure_speed_changed = true + if _prev_cam_exposure_multiplier != _attributes.exposure_multiplier: + _cam_exposure_multiplier_changed = true + if _prev_cam_exposure_sensitivity != _attributes.exposure_sensitivity: + _cam_exposure_sensitivity_changed = true + + if _attributes is CameraAttributesPractical: + _cam_attribute_type = 0 + + if camera_3d.attributes == null: + camera_3d.attributes = CameraAttributesPractical.new() + camera_3d.attributes = _active_pcam_3d.attributes.duplicate() + _cam_attribute_assigned = true + + if _prev_cam_exposure_min_sensitivity != _attributes.auto_exposure_min_sensitivity: + _cam_exposure_min_sensitivity_changed = true + if _prev_cam_exposure_max_sensitivity != _attributes.auto_exposure_max_sensitivity: + _cam_exposure_max_sensitivity_changed = true + + if _prev_cam_dof_blur_amount != _attributes.dof_blur_amount: + _cam_dof_blur_amount_changed = true + + if _prev_cam_dof_blur_far_distance != _attributes.dof_blur_far_distance: + _cam_dof_blur_far_distance_changed = true + camera_3d.attributes.dof_blur_far_enabled = true + if _prev_cam_dof_blur_far_transition != _attributes.dof_blur_far_transition: + _cam_dof_blur_far_transition_changed = true + camera_3d.attributes.dof_blur_far_enabled = true + + if _prev_cam_dof_blur_near_distance != _attributes.dof_blur_near_distance: + _cam_dof_blur_near_distance_changed = true + camera_3d.attributes.dof_blur_near_enabled = true + if _prev_cam_dof_blur_near_transition != _attributes.dof_blur_near_transition: + _cam_dof_blur_near_transition_changed = true + camera_3d.attributes.dof_blur_near_enabled = true + elif _attributes is CameraAttributesPhysical: + _cam_attribute_type = 1 + + if camera_3d.attributes == null: + camera_3d.attributes = CameraAttributesPhysical.new() + camera_3d.attributes = _active_pcam_3d.attributes.duplicate() + + if _prev_cam_exposure_min_exposure_value != _attributes.auto_exposure_min_exposure_value: + _cam_exposure_min_exposure_value_changed = true + if _prev_cam_exposure_max_exposure_value != _attributes.auto_exposure_max_exposure_value: + _cam_exposure_max_exposure_value_changed = true + + if _prev_cam_exposure_aperture != _attributes.exposure_aperture: + _cam_exposure_aperture_changed = true + if _prev_cam_exposure_shutter_speed != _attributes.exposure_shutter_speed: + _cam_exposure_shutter_speed_changed = true + + if _prev_cam_frustum_far != _attributes.frustum_far: + _cam_frustum_far_changed = true + + if _prev_cam_frustum_focal_length != _attributes.frustum_focal_length: + _cam_frustum_focal_length_changed = true + + if _prev_cam_frustum_focus_distance != _attributes.frustum_focus_distance: + _cam_frustum_focus_distance_changed = true + + if _prev_cam_frustum_near != _attributes.frustum_near: + _cam_frustum_near_changed = true + + if OS.has_feature("debug"): + viewfinder_update.emit(false) + + if _is_2d: + if _active_pcam_2d.show_viewfinder_in_play: + _viewfinder_needed_check = true + + _active_pcam_2d.set_is_active(self, true) + _active_pcam_2d.became_active.emit() + _camera_zoom = camera_2d.zoom + else: + if _active_pcam_3d.show_viewfinder_in_play: + _viewfinder_needed_check = true + + _active_pcam_3d.set_is_active(self, true) + _active_pcam_3d.became_active.emit() + if _active_pcam_3d.camera_3d_resource: + camera_3d.keep_aspect = _active_pcam_3d.keep_aspect + camera_3d.cull_mask = _active_pcam_3d.cull_mask + camera_3d.projection = _active_pcam_3d.projection + + if no_previous_pcam: + if _is_2d: + _prev_active_pcam_2d_transform = _active_pcam_2d.get_transform_output() + else: + _prev_active_pcam_3d_transform = _active_pcam_3d.get_transform_output() + + if pcam.get_tween_skip() or pcam.tween_duration == 0: + _tween_elapsed_time = pcam.tween_duration + if Engine.get_version_info().major == 4 and \ + Engine.get_version_info().minor >= 3: + _tween_is_instant = true + else: + _tween_elapsed_time = 0 + + _check_pcam_physics() + + _trigger_pcam_tween = true + + +func _check_pcam_physics() -> void: + if _is_2d: + ## NOTE - Only supported in Godot 4.3 or later + if Engine.get_version_info().major == 4 and \ + Engine.get_version_info().minor >= 3: + if _active_pcam_2d.get_follow_target_physics_based(): + _follow_target_physics_based = true + ## TODO - Temporary solution to support Godot 4.2 + ## Remove line below and uncomment the following once Godot 4.3 is min verison. + camera_2d.call("reset_physics_interpolation") + camera_2d.set("physics_interpolation_mode", 1) + #camera_2d.reset_physics_interpolation() + #camera_2d.physics_interpolation_mode = Node.PHYSICS_INTERPOLATION_MODE_ON + if ProjectSettings.get_setting("physics/common/physics_interpolation"): + camera_2d.process_callback = Camera2D.CAMERA2D_PROCESS_PHYSICS # Prevents a warning + else: + camera_2d.process_callback = Camera2D.CAMERA2D_PROCESS_IDLE + else: + _follow_target_physics_based = false + ## TODO - Temporary solution to support Godot 4.2 + ## Remove line below and uncomment the following once Godot 4.3 is min verison. + camera_2d.set("physics_interpolation_mode", 0) + #camera_2d.physics_interpolation_mode = Node.PHYSICS_INTERPOLATION_MODE_INHERIT + if get_tree().physics_interpolation: + camera_2d.process_callback = Camera2D.CAMERA2D_PROCESS_PHYSICS # Prevents a warning + else: + camera_2d.process_callback = Camera2D.CAMERA2D_PROCESS_IDLE + else: + ## NOTE - Only supported in Godot 4.4 or later + if Engine.get_version_info().major == 4 and \ + Engine.get_version_info().minor >= 4: + if get_tree().physics_interpolation or _active_pcam_3d.get_follow_target_physics_based(): + #if get_tree().physics_interpolation or _active_pcam_3d.get_follow_target_physics_based(): + _follow_target_physics_based = true + ## TODO - Temporary solution to support Godot 4.2 + ## Remove line below and uncomment the following once Godot 4.3 is min verison. + camera_3d.call("reset_physics_interpolation") + camera_3d.set("physics_interpolation_mode", 1) + #camera_3d.reset_physics_interpolation() + #camera_3d.physics_interpolation_mode = Node.PHYSICS_INTERPOLATION_MODE_ON + else: + _follow_target_physics_based = false + ## TODO - Temporary solution to support Godot 4.2 + ## Remove line below and uncomment the following once Godot 4.3 is min verison. + camera_3d.set("physics_interpolation_mode", 0) + + +## TODO - For 0.8 release +#func _find_pcam_with_highest_priority() -> void: + #var highest_priority_pcam: Node + #for pcam in _pcam_list: + #if not pcam.visible: continue # Prevents hidden PCams from becoming active + #if pcam.priority > _active_pcam_priority: + #_active_pcam_priority = pcam.priority + #highest_priority_pcam = pcam + #pcam.set_has_tweened(self, false) +# + #_active_pcam_missing = false +# + #if is_instance_valid(highest_priority_pcam): + #_assign_new_active_pcam(highest_priority_pcam) + #else: + #_active_pcam_missing = true + + +func _process(delta: float) -> void: + if _active_pcam_missing: return + + if not _follow_target_physics_based: _tween_follow_checker(delta) + + +func _physics_process(delta: float) -> void: + if _active_pcam_missing or not _follow_target_physics_based: return + _tween_follow_checker(delta) + + +func _tween_follow_checker(delta: float) -> void: + if _is_2d: + if not is_instance_valid(_active_pcam_2d): + _active_pcam_missing = true + return + + _active_pcam_2d.process_logic(delta) + _active_pcam_2d_glob_transform = _active_pcam_2d.get_transform_output() + + if _reset_noise_offset_2d: + camera_2d.offset = Vector2.ZERO # Resets noise position + _reset_noise_offset_2d = false + else: + if not is_instance_valid(_active_pcam_3d): + _active_pcam_missing = true + return + + _active_pcam_3d.process_logic(delta) + _active_pcam_3d_glob_transform = _active_pcam_3d.get_transform_output() + + if not _trigger_pcam_tween: + # Rechecks physics target if PCam transitioned with an instant tween + if _tween_is_instant: + _check_pcam_physics() + _tween_is_instant = false + _pcam_follow(delta) + else: + _pcam_tween(delta) + + # Camera Noise + if _is_2d: + if not _has_noise_emitted and not _active_pcam_2d.has_noise_resource(): return + camera_2d.offset += _active_pcam_2d.get_noise_transform().origin + _noise_emitted_output_2d.origin + if camera_2d.ignore_rotation and _noise_emitted_output_2d.get_rotation() != 0: + push_warning(camera_2d.name, " has ignore_rotation enabled. Uncheck the property if you want to apply rotational noise.") + else: + camera_2d.rotation += _active_pcam_2d.get_noise_transform().get_rotation() + _noise_emitted_output_2d.get_rotation() + _has_noise_emitted = false + _reset_noise_offset_2d = true + else: + if not _has_noise_emitted and not _active_pcam_3d.has_noise_resource(): return + camera_3d.global_transform *= _active_pcam_3d.get_noise_transform() * _noise_emitted_output_3d + _has_noise_emitted = false + + +func _pcam_follow(_delta: float) -> void: + if _active_pcam_missing or not _is_child_of_camera: return + + if _is_2d: + if _active_pcam_2d.snap_to_pixel: + var snap_to_pixel_glob_transform: Transform2D = _active_pcam_2d_glob_transform + snap_to_pixel_glob_transform.origin = snap_to_pixel_glob_transform.origin.round() + camera_2d.global_transform = snap_to_pixel_glob_transform + else: + camera_2d.global_transform = _active_pcam_2d_glob_transform + camera_2d.zoom = _active_pcam_2d.zoom + else: + camera_3d.global_transform = _active_pcam_3d_glob_transform + + if _viewfinder_needed_check: + _show_viewfinder_in_play() + _viewfinder_needed_check = false + + if Engine.is_editor_hint(): + if not _is_2d: + # TODO - Signal-based solution pending merge of: https://github.com/godotengine/godot/pull/99729 + if _active_pcam_3d.attributes != null: + camera_3d.attributes = _active_pcam_3d.attributes.duplicate() + + # TODO - Signal-based solution pending merge of: https://github.com/godotengine/godot/pull/99873 + if _active_pcam_3d.environment != null: + camera_3d.environment = _active_pcam_3d.environment.duplicate() + + +func _noise_emitted_2d(noise_output: Transform2D) -> void: + _noise_emitted_output_2d = noise_output + _has_noise_emitted = true + + +func _noise_emitted_3d(noise_output: Transform3D) -> void: + _noise_emitted_output_3d = noise_output + _has_noise_emitted = true + + +func _camera_3d_resource_changed() -> void: + if _active_pcam_3d.camera_3d_resource: + if Engine.is_editor_hint(): + if not Engine.get_singleton(&"EditorInterface").get_inspector().property_edited.is_connected(_camera_3d_edited): + Engine.get_singleton(&"EditorInterface").get_inspector().property_edited.connect(_camera_3d_edited) + camera_3d.keep_aspect = _active_pcam_3d.keep_aspect + camera_3d.cull_mask = _active_pcam_3d.cull_mask + camera_3d.h_offset = _active_pcam_3d.h_offset + camera_3d.v_offset = _active_pcam_3d.v_offset + camera_3d.projection = _active_pcam_3d.projection + camera_3d.fov = _active_pcam_3d.fov + camera_3d.size = _active_pcam_3d.size + camera_3d.frustum_offset = _active_pcam_3d.frustum_offset + camera_3d.near = _active_pcam_3d.near + camera_3d.far = _active_pcam_3d.far + else: + if Engine.is_editor_hint(): + if Engine.get_singleton(&"EditorInterface").get_inspector().property_edited.is_connected(_camera_3d_edited): + Engine.get_singleton(&"EditorInterface").get_inspector().property_edited.disconnect(_camera_3d_edited) + +func _camera_3d_edited(value: String) -> void: + if not Engine.get_singleton(&"EditorInterface").get_inspector().get_edited_object() == camera_3d: return + camera_3d.set(value, _active_pcam_3d.camera_3d_resource.get(value)) + push_warning("Camera3D properties are being overridden by ", _active_pcam_3d.name, "'s Camera3DResource") + +func _camera_3d_resource_property_changed(property: StringName, value: Variant) -> void: + camera_3d.set(property, value) + + +func _pcam_tween(delta: float) -> void: + # TODO - Should be optimised + # Run at the first tween frame + if _tween_elapsed_time == 0: + if _is_2d: + _active_pcam_2d.tween_started.emit() + _active_pcam_2d.reset_limit() + else: + _active_pcam_3d.tween_started.emit() + + _tween_elapsed_time = min(_tween_duration, _tween_elapsed_time + delta) + + if _is_2d: + _active_pcam_2d.is_tweening.emit() + var interpolation_destination: Vector2 = _tween_interpolate_value( + _prev_active_pcam_2d_transform.origin, + _active_pcam_2d_glob_transform.origin, + _active_pcam_2d.tween_duration, + _active_pcam_2d.tween_transition, + _active_pcam_2d.tween_ease + ) + + if _active_pcam_2d.snap_to_pixel: + camera_2d.global_position = interpolation_destination.round() + else: + camera_2d.global_position = interpolation_destination + + camera_2d.rotation = _tween_interpolate_value( + _prev_active_pcam_2d_transform.get_rotation(), + _active_pcam_2d_glob_transform.get_rotation(), + _active_pcam_2d.tween_duration, + _active_pcam_2d.tween_transition, + _active_pcam_2d.tween_ease + ) + camera_2d.zoom = _tween_interpolate_value( + _camera_zoom, + _active_pcam_2d.zoom, + _active_pcam_2d.tween_duration, + _active_pcam_2d.tween_transition, + _active_pcam_2d.tween_ease + ) + else: + _active_pcam_3d.is_tweening.emit() + camera_3d.global_position = _tween_interpolate_value( + _prev_active_pcam_3d_transform.origin, + _active_pcam_3d_glob_transform.origin, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + var prev_active_pcam_3d_quat: Quaternion = Quaternion(_prev_active_pcam_3d_transform.basis.orthonormalized()) + camera_3d.quaternion = \ + Tween.interpolate_value( + prev_active_pcam_3d_quat, \ + prev_active_pcam_3d_quat.inverse() * Quaternion(_active_pcam_3d_glob_transform.basis.orthonormalized()), + _tween_elapsed_time, \ + _active_pcam_3d.tween_duration, \ + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_attribute_changed: + if _active_pcam_3d.attributes.auto_exposure_enabled: + if _cam_auto_exposure_scale_changed: + camera_3d.attributes.auto_exposure_scale = \ + _tween_interpolate_value( + _prev_cam_auto_exposure_scale, + _active_pcam_3d.attributes.auto_exposure_scale, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_auto_exposure_speed_changed: + camera_3d.attributes.auto_exposure_speed = \ + _tween_interpolate_value( + _prev_cam_auto_exposure_scale, + _active_pcam_3d.attributes.auto_exposure_scale, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_attribute_type == 0: # CameraAttributePractical + if _active_pcam_3d.attributes.auto_exposure_enabled: + if _cam_exposure_min_sensitivity_changed: + camera_3d.attributes.auto_exposure_min_sensitivity = \ + _tween_interpolate_value( + _prev_cam_exposure_min_sensitivity, + _active_pcam_3d.attributes.auto_exposure_min_sensitivity, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_exposure_max_sensitivity_changed: + camera_3d.attributes.auto_exposure_max_sensitivity = \ + _tween_interpolate_value( + _prev_cam_exposure_max_sensitivity, + _active_pcam_3d.attributes.auto_exposure_max_sensitivity, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_dof_blur_amount_changed: + camera_3d.attributes.dof_blur_amount = \ + _tween_interpolate_value( + _prev_cam_dof_blur_amount, + _active_pcam_3d.attributes.dof_blur_amount, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_dof_blur_far_distance_changed: + camera_3d.attributes.dof_blur_far_distance = \ + _tween_interpolate_value( + _prev_cam_dof_blur_far_distance, + _active_pcam_3d.attributes.dof_blur_far_distance, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_dof_blur_far_transition_changed: + camera_3d.attributes.dof_blur_far_transition = \ + _tween_interpolate_value( + _prev_cam_dof_blur_far_transition, + _active_pcam_3d.attributes.dof_blur_far_transition, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_dof_blur_near_distance_changed: + camera_3d.attributes.dof_blur_near_distance = \ + _tween_interpolate_value( + _prev_cam_dof_blur_near_distance, + _active_pcam_3d.attributes.dof_blur_near_distance, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_dof_blur_near_transition_changed: + camera_3d.attributes.dof_blur_near_transition = \ + _tween_interpolate_value( + _prev_cam_dof_blur_near_transition, + _active_pcam_3d.attributes.dof_blur_near_transition, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + elif _cam_attribute_type == 1: # CameraAttributePhysical + if _cam_dof_blur_near_transition_changed: + camera_3d.attributes.auto_exposure_max_exposure_value = \ + _tween_interpolate_value( + _prev_cam_exposure_max_exposure_value, + _active_pcam_3d.attributes.auto_exposure_max_exposure_value, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_exposure_min_exposure_value_changed: + camera_3d.attributes.auto_exposure_min_exposure_value = \ + _tween_interpolate_value( + _prev_cam_exposure_min_exposure_value, + _active_pcam_3d.attributes.auto_exposure_min_exposure_value, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_exposure_aperture_changed: + camera_3d.attributes.exposure_aperture = \ + _tween_interpolate_value( + _prev_cam_exposure_aperture, + _active_pcam_3d.attributes.exposure_aperture, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_exposure_shutter_speed_changed: + camera_3d.attributes.exposure_shutter_speed = \ + _tween_interpolate_value( + _prev_cam_exposure_shutter_speed, + _active_pcam_3d.attributes.exposure_shutter_speed, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_frustum_far_changed: + camera_3d.attributes.frustum_far = \ + _tween_interpolate_value( + _prev_cam_frustum_far, + _active_pcam_3d.attributes.frustum_far, + _active_pcam_3d.tween_duration(), + _active_pcam_3d.tween_transition(), + _active_pcam_3d.tween_ease + ) + if _cam_frustum_near_changed: + camera_3d.attributes.frustum_near = \ + _tween_interpolate_value( + _prev_cam_frustum_far, + _active_pcam_3d.attributes.frustum_near, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_frustum_focal_length_changed: + camera_3d.attributes.frustum_focal_length = \ + _tween_interpolate_value( + _prev_cam_frustum_focal_length, + _active_pcam_3d.attributes.frustum_focal_length, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + if _cam_frustum_focus_distance_changed: + camera_3d.attributes.frustum_focus_distance = \ + _tween_interpolate_value( + _prev_cam_frustum_focus_distance, + _active_pcam_3d.attributes.frustum_focus_distance, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_h_offset_changed: + camera_3d.h_offset = \ + _tween_interpolate_value( + _prev_cam_h_offset, + _active_pcam_3d.h_offset, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_v_offset_changed: + camera_3d.v_offset = \ + _tween_interpolate_value( + _prev_cam_v_offset, + _active_pcam_3d.v_offset, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_fov_changed: + camera_3d.fov = \ + _tween_interpolate_value( + _prev_cam_fov, + _active_pcam_3d.fov, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_size_changed: + camera_3d.size = \ + _tween_interpolate_value( + _prev_cam_size, + _active_pcam_3d.size, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_frustum_offset_changed: + camera_3d.frustum_offset = \ + _tween_interpolate_value( + _prev_cam_frustum_offset, + _active_pcam_3d.frustum_offset, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_near_changed: + camera_3d.near = \ + _tween_interpolate_value( + _prev_cam_near, + _active_pcam_3d.near, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + if _cam_far_changed: + camera_3d.far = \ + _tween_interpolate_value( + _prev_cam_far, + _active_pcam_3d.far, + _active_pcam_3d.tween_duration, + _active_pcam_3d.tween_transition, + _active_pcam_3d.tween_ease + ) + + # Forcefully disables physics interpolation when tweens are instant + if _tween_is_instant: + if _is_2d: + if Engine.get_version_info().major == 4 and \ + Engine.get_version_info().minor >= 3: + camera_2d.set("physics_interpolation_mode", 2) + camera_2d.call("reset_physics_interpolation") + else: + if Engine.get_version_info().major == 4 and \ + Engine.get_version_info().minor >= 4: + camera_3d.set("physics_interpolation_mode", 2) + camera_3d.call("reset_physics_interpolation") + + if _tween_elapsed_time < _tween_duration: return + + _trigger_pcam_tween = false + _tween_elapsed_time = 0 + viewfinder_update.emit(true) + + if _is_2d: + _active_pcam_2d.update_limit_all_sides() + _active_pcam_2d.tween_completed.emit() + _active_pcam_2d.set_tween_skip(self, false) + if Engine.is_editor_hint(): + _active_pcam_2d.queue_redraw() + else: + if _active_pcam_3d.camera_3d_resource and _active_pcam_3d.attributes != null: + if _cam_attribute_type == 0: + if not _active_pcam_3d.attributes.dof_blur_far_enabled: + camera_3d.attributes.dof_blur_far_enabled = false + if not _active_pcam_3d.attributes.dof_blur_near_enabled: + camera_3d.attributes.dof_blur_near_enabled = false + _cam_h_offset_changed = false + _cam_v_offset_changed = false + _cam_fov_changed = false + _cam_size_changed = false + _cam_frustum_offset_changed = false + _cam_near_changed = false + _cam_far_changed = false + _cam_attribute_changed = false + + _active_pcam_3d.set_tween_skip(self, false) + _active_pcam_3d.tween_completed.emit() + + +func _tween_interpolate_value(from: Variant, to: Variant, duration: float, transition_type: int, ease_type: int) -> Variant: + return Tween.interpolate_value( + from, \ + to - from, + _tween_elapsed_time, \ + duration, \ + transition_type, + ease_type, + ) + + +func _show_viewfinder_in_play() -> void: + # Don't show the viewfinder in the actual editor or project builds + if Engine.is_editor_hint() or !OS.has_feature("editor"): return + + # Default the viewfinder node to be hidden + if is_instance_valid(_viewfinder_node): + _viewfinder_node.visible = false + + if _is_2d: + if not _active_pcam_2d.show_viewfinder_in_play: return + if _active_pcam_2d.follow_mode != _active_pcam_2d.FollowMode.FRAMED: return + else: + if not _active_pcam_3d.show_viewfinder_in_play: return + if _active_pcam_3d.follow_mode != _active_pcam_2d.FollowMode.FRAMED: return + + var canvas_layer: CanvasLayer = CanvasLayer.new() + get_tree().get_root().add_child(canvas_layer) + + # Instantiate the viewfinder scene if it isn't already + if not is_instance_valid(_viewfinder_node): + var _viewfinder_scene := load("res://addons/phantom_camera/panel/viewfinder/viewfinder_panel.tscn") + _viewfinder_node = _viewfinder_scene.instantiate() + canvas_layer.add_child(_viewfinder_node) + + _viewfinder_node.visible = true + _viewfinder_node.update_dead_zone() + + +func _update_limit_2d(side: int, limit: int) -> void: + if is_instance_valid(camera_2d): + camera_2d.set_limit(side, limit) + +func _draw_limit_2d(enabled: bool) -> void: + camera_2d.set_limit_drawing_enabled(enabled) + + +## Called when a [param PhantomCamera] is added to the scene.[br] +## [b]Note:[/b] This can only be called internally from a [param PhantomCamera] node. +func _pcam_added_to_scene(pcam: Node) -> void: + if not pcam.is_node_ready(): await pcam.ready + _check_pcam_priority(pcam) + + +## Called when a [param PhantomCamera] is removed from the scene.[br] +## [b]Note:[/b] This can only be called internally from a +## [param PhantomCamera] node. +func _pcam_removed_from_scene(pcam: Node) -> void: + if _is_2d: + if pcam == _active_pcam_2d: + _active_pcam_2d = null + _active_pcam_missing = true + _active_pcam_priority = -1 + _find_pcam_with_highest_priority() + else: + if pcam == _active_pcam_3d: + _active_pcam_3d = null + _active_pcam_missing = true + _active_pcam_priority = -1 + _find_pcam_with_highest_priority() + + +func _pcam_visibility_changed(pcam: Node) -> void: + if pcam == _active_pcam_2d or pcam == _active_pcam_3d: + _active_pcam_priority = -1 + _find_pcam_with_highest_priority() + return + _check_pcam_priority(pcam) + + +func _pcam_teleported(pcam: Node) -> void: + if _is_2d: + if not pcam == _active_pcam_2d: return + if not is_instance_valid(camera_2d): return + camera_2d.global_position = _active_pcam_2d.get_transform_output().origin + camera_2d.call("reset_physics_interpolation") +# camera_2d.reset_physics_interpolation() # TODO - For when Godot 4.3 becomes the minimum version + else: + if not pcam == _active_pcam_3d: return + if not is_instance_valid(camera_3d): return + camera_3d.global_position = _active_pcam_3d.get_transform_output().origin + camera_3d.call("reset_physics_interpolation") +# camera_3d.reset_physics_interpolation() # TODO - For when Godot 4.3 becomes the minimum version + + +func _set_layer(current_layers: int, layer_number: int, value: bool) -> int: + var mask: int = current_layers + + # From https://github.com/godotengine/godot/blob/51991e20143a39e9ef0107163eaf283ca0a761ea/scene/3d/camera_3d.cpp#L638 + if layer_number < 1 or layer_number > 20: + printerr("Render layer must be between 1 and 20.") + else: + if value: + mask |= 1 << (layer_number - 1) + else: + mask &= ~(1 << (layer_number - 1)) + + return mask + +#endregion + +#region Public Functions + +## Triggers a recalculation to determine which PhantomCamera has the highest priority. +func pcam_priority_updated(pcam: Node) -> void: + if not is_instance_valid(pcam): return + if not _pcam_is_in_host_layer(pcam): return + + if pcam == _active_pcam_2d or pcam == _active_pcam_3d: + if not pcam.visible: + refresh_pcam_list_priorty() + + if Engine.is_editor_hint(): + if _is_2d: + if not is_instance_valid(_active_pcam_2d): return + if _active_pcam_2d.priority_override: return + else: + if not is_instance_valid(_active_pcam_3d): return + if _active_pcam_3d.priority_override: return + + var current_pcam_priority: int = pcam.priority + + if current_pcam_priority >= _active_pcam_priority: + if _is_2d: + if pcam != _active_pcam_2d: + _assign_new_active_pcam(pcam) + else: + if pcam != _active_pcam_3d: + _assign_new_active_pcam(pcam) + pcam.set_tween_skip(self, false) + _active_pcam_missing = false + + if pcam == _active_pcam_2d or pcam == _active_pcam_3d: + if current_pcam_priority <= _active_pcam_priority: + _active_pcam_priority = current_pcam_priority + _find_pcam_with_highest_priority() + else: + _active_pcam_priority = current_pcam_priority + + +## Updates the viewfinder when a [param PhantomCamera] has its +## [param priority_ovrride] enabled.[br] +## [b]Note:[/b] This only affects the editor. +func _pcam_priority_override(pcam: Node, should_override: bool) -> void: + if not Engine.is_editor_hint(): return + if not _pcam_is_in_host_layer(pcam): return + if should_override: + if _is_2d: + if is_instance_valid(_active_pcam_2d): + if _active_pcam_2d.priority_override: + _active_pcam_2d.priority_override = false + else: + if is_instance_valid(_active_pcam_3d): + if _active_pcam_3d.priority_override: + _active_pcam_3d.priority_override = false + _assign_new_active_pcam(pcam) + else: + _find_pcam_with_highest_priority() + + viewfinder_update.emit(false) + + +## Updates the viewfinder when a [param PhantomCamera] has its +## [param priority_ovrride] disabled.[br] +## [b]Note:[/b] This only affects the editor. +func pcam_priority_override_disabled() -> void: + viewfinder_update.emit(false) + + +## Returns the currently active [param PhantomCamera] +func get_active_pcam() -> Node: + if _is_2d: + return _active_pcam_2d + else: + return _active_pcam_3d + + +## Returns whether if a [param PhantomCamera] should tween when it becomes +## active. If it's already active, the value will always be false. +## [b]Note:[/b] This can only be called internally from a +## [param PhantomCamera] node. +func get_trigger_pcam_tween() -> bool: + return _trigger_pcam_tween + + +## Refreshes the [param PhantomCamera] list and checks for the highest priority. [br] +## [b]Note:[/b] This should [b]not[/b] be necessary to call manually. +func refresh_pcam_list_priorty() -> void: + _active_pcam_priority = -1 + _find_pcam_with_highest_priority() + + +#func set_interpolation_mode(value: int) -> void: + #interpolation_mode = value +#func get_interpolation_mode() -> int: + #return interpolation_mode + +#endregion + +##region Setters / Getters + +## Sets the [member host_layers] value. +func set_host_layers(value: int) -> void: + host_layers = value + + if not _is_child_of_camera: return + + if not _active_pcam_missing: + if _is_2d: + _pcam_host_layer_changed(_active_pcam_2d) + else: + _pcam_host_layer_changed(_active_pcam_3d) + else: + _find_pcam_with_highest_priority() + +## Enables or disables a given layer of [member host_layers]. +func set_host_layers_value(layer: int, value: bool) -> void: + host_layers = _set_layer(host_layers, layer, value) + +## Returns the [member host_layers] value. +func get_host_layers() -> int: + return host_layers + +##endregion diff --git a/addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd.uid b/addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd.uid new file mode 100644 index 0000000..e96433d --- /dev/null +++ b/addons/phantom_camera/scripts/phantom_camera_host/phantom_camera_host.gd.uid @@ -0,0 +1 @@ +uid://bd046eokvcnu2 diff --git a/addons/phantom_camera/scripts/resources/camera_3d_resource.gd b/addons/phantom_camera/scripts/resources/camera_3d_resource.gd new file mode 100644 index 0000000..c630e16 --- /dev/null +++ b/addons/phantom_camera/scripts/resources/camera_3d_resource.gd @@ -0,0 +1,110 @@ +@tool +@icon("res://addons/phantom_camera/icons/phantom_camera_camera_3d_resource.svg") +class_name Camera3DResource +extends Resource + +## Resource for [PhantomCamera3D] to override various [Camera3D] properties. +## +## The overrides defined here will be applied to the [Camera3D] upon the +## [PhantomCamera3D] becoming active. + +enum KeepAspect { + KEEP_WIDTH = 0, ## Preserves the horizontal aspect ratio; also known as Vert- scaling. This is usually the best option for projects running in portrait mode, as taller aspect ratios will benefit from a wider vertical FOV. + KEEP_HEIGHT = 1, ## Preserves the vertical aspect ratio; also known as Hor+ scaling. This is usually the best option for projects running in landscape mode, as wider aspect ratios will automatically benefit from a wider horizontal FOV. +} + +enum ProjectionType { + PERSPECTIVE = 0, ## Perspective projection. Objects on the screen becomes smaller when they are far away. + ORTHOGONAL = 1, ## Orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are. + FRUSTUM = 2, ## Frustum projection. This mode allows adjusting frustum_offset to create "tilted frustum" effects. +} + +## Overrides [member Camera3D.keep_aspect]. +@export var keep_aspect: KeepAspect = KeepAspect.KEEP_HEIGHT: + set(value): + keep_aspect = value + emit_changed() + get: + return keep_aspect + +## Overrides [member Camera3D.cull_mask]. +@export_flags_3d_render var cull_mask: int = 1048575: + set(value): + cull_mask = value + emit_changed() + get: + return cull_mask + +## Overrides [member Camera3D.h_offset]. +@export_range(0, 1, 0.001, "or_greater", "or_less", "hide_slider", "suffix:m") var h_offset: float = 0: + set(value): + h_offset = value + emit_changed() + get: + return h_offset + +## Overrides [member Camera3D.v_offset]. +@export_range(0, 1, 0.001, "or_greater", "or_less", "hide_slider", "suffix:m") var v_offset: float = 0: + set(value): + v_offset = value + emit_changed() + +## Overrides [member Camera3D.projection]. +@export var projection: ProjectionType = ProjectionType.PERSPECTIVE: + set(value): + projection = value + notify_property_list_changed() + emit_changed() + get: + return projection + +## Overrides [member Camera3D.fov]. +@export_range(1, 179, 0.1, "degrees") var fov: float = 75: + set(value): + fov = value + emit_changed() + get: + return fov + +## Overrides [member Camera3D.size]. +@export_range(0.001, 100, 0.001, "suffix:m", "or_greater") var size: float = 1: + set(value): + size = value + emit_changed() + get: + return size + +## Overrides [member Camera3d.frustum_offset]. +@export var frustum_offset: Vector2 = Vector2.ZERO: + set(value): + frustum_offset = value + emit_changed() + get: + return frustum_offset + +## Overrides [member Camera3D.near]. +@export_range(0.001, 10, 0.001, "suffix:m", "or_greater") var near: float = 0.05: + set(value): + near = value + emit_changed() + get: + return near + +## Overrides [member Camera3D.far]. +@export_range(0.01, 4000, 0.001, "suffix:m","or_greater") var far: float = 4000: + set(value): + far = value + emit_changed() + get: + return far + + +func _validate_property(property: Dictionary) -> void: + if property.name == "fov" and not projection == ProjectionType.PERSPECTIVE: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "size" and projection == ProjectionType.PERSPECTIVE: + property.usage = PROPERTY_USAGE_NO_EDITOR + + if property.name == "frustum_offset" and not projection == ProjectionType.FRUSTUM: + property.usage = PROPERTY_USAGE_NO_EDITOR diff --git a/addons/phantom_camera/scripts/resources/camera_3d_resource.gd.uid b/addons/phantom_camera/scripts/resources/camera_3d_resource.gd.uid new file mode 100644 index 0000000..e8378eb --- /dev/null +++ b/addons/phantom_camera/scripts/resources/camera_3d_resource.gd.uid @@ -0,0 +1 @@ +uid://bc2tn187qiatpcheck diff --git a/addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd b/addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd new file mode 100644 index 0000000..cc87dba --- /dev/null +++ b/addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd @@ -0,0 +1,228 @@ +@tool +@icon("res://addons/phantom_camera/icons/phantom_camera_noise_resource.svg") +class_name PhantomCameraNoise2D +extends Resource + +## A resource type used to apply noise, or shake, to [Camera2D]s that have a [PhantomCameraHost] as a child. +## +## Is a resource type that defines, calculates and outputs the noise values to a [Camera2D] through active +## [PhantomCamera3D].[br] +## It can be applied to either [PhantomCameraNoiseEmitter2D] or a [PhantomCamera2D] noise property directly + +#region Exported Properties + +## Defines the size of the noise pattern.[br] +## Higher values will increase the range the noise can reach. +@export_range(0, 1000, 0.001, "or_greater") var amplitude: float = 10: + set = set_amplitude, + get = get_amplitude + +## Sets the density of the noise pattern.[br] +## Higher values will result in more erratic noise. +@export_range(0, 10, 0.001, "or_greater") var frequency: float = 0.5: + set = set_frequency, + get = get_frequency + +## If true, randomizes the noise pattern every time the noise is run.[br] +## If disabled, [member seed] can be used to define a fixed noise pattern. +@export var randomize_noise_seed: bool = true: + set = set_randomize_noise_seed, + get = get_randomize_noise_seed + +## Sets a predetermined seed noise value.[br] +## Useful if wanting to achieve a persistent noise pattern every time the noise is emitted. +@export var noise_seed: int = 0: + set = set_noise_seed, + get = get_noise_seed + +## Enables noise changes to the [member Camera2D.offset] position. +@export var positional_noise: bool = true: + set = set_positional_noise, + get = get_positional_noise + +## Enables noise changes to the [Camera2D]'s rotation. +@export var rotational_noise: bool = false: + set = set_rotational_noise, + get = get_rotational_noise + +@export_group("Positional Multiplier") +## Multiplies positional noise amount in the X-axis.[br] +## Set the value to [param 0] to disable noise in the axis. +@export_range(0, 1, 0.001, "or_greater") var positional_multiplier_x: float = 1: + set = set_positional_multiplier_x, + get = get_positional_multiplier_x + +## Multiplies positional noise amount in the Y-axis.[br] +## Set the value to [param 0] to disable noise in the axis. +@export_range(0, 1, 0.001, "or_greater") var positional_multiplier_y: float = 1: + set = set_positional_multiplier_y, + get = get_positional_multiplier_y + +@export_group("Rotational Multiplier") +## Multiplies rotational noise amount. +@export_range(0, 1, 0.001, "or_greater") var rotational_multiplier: float = 1: + set = set_rotational_multiplier, + get = get_rotational_multiplier + +#endregion + +#region Private Variables + +var _noise_algorithm: FastNoiseLite = FastNoiseLite.new() + +var _noise_positional_multiplier: Vector2 = Vector2( + positional_multiplier_x, + positional_multiplier_y +) + +var _trauma: float = 0.0: + set(value): + _trauma = value + +var _noise_time: float = 0.0 + +#endregion + +#region Private Functions + +func _init(): + _noise_algorithm.noise_type = FastNoiseLite.TYPE_PERLIN + if randomize_noise_seed: _noise_algorithm.seed = randi() + _noise_algorithm.frequency = frequency + + +func _validate_property(property: Dictionary) -> void: + if randomize_noise_seed and property.name == "noise_seed": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if not rotational_noise and property.name == "rotational_multiplier": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if not positional_noise: + match property.name: + "positional_multiplier_x", \ + "positional_multiplier_y": + property.usage = PROPERTY_USAGE_NO_EDITOR + + +func _get_noise_from_seed(noise_seed: int) -> float: + return _noise_algorithm.get_noise_2d(noise_seed, _noise_time) * amplitude + + +func set_trauma(value: float) -> void: + _trauma = value + +#endregion + +#region Public Functions + +func get_noise_transform(delta: float) -> Transform2D: + var output_position: Vector2 = Vector2.ZERO + var output_rotation: float = 0.0 + _noise_time += delta + _trauma = maxf(_trauma, 0.0) + + if positional_noise: + for i in 2: + output_position[i] = _noise_positional_multiplier[i] * pow(_trauma, 2) * _get_noise_from_seed(i + noise_seed) + if rotational_noise: + output_rotation = rotational_multiplier / 100 * pow(_trauma, 2) * _get_noise_from_seed(noise_seed) + + return Transform2D(output_rotation, output_position) + + +func reset_noise_time() -> void: + _noise_time = 0 + +#endregion + +#region Setters & Getters + +## Sets the [member amplitude] value. +func set_amplitude(value: float) -> void: + amplitude =value + +## Returns the [member amplitude] value. +func get_amplitude() -> float: + return amplitude + + +## Sets the [member frequency] value. +func set_frequency(value: float) -> void: + frequency = value + _noise_algorithm.frequency = value + +## Returns the [member frequency] value. +func get_frequency() -> float: + return frequency + + +## Sets the [member randomize_seed] value. +func set_randomize_noise_seed(value: int) -> void: + randomize_noise_seed = value + if value: _noise_algorithm.seed = randi() + notify_property_list_changed() + +## Returns the [member randomize_seed] value. +func get_randomize_noise_seed() -> int: + return randomize_noise_seed + + +## Sets the [member randomize_seed] value. +func set_noise_seed(value: int) -> void: + noise_seed = value + +## Returns the [member seed] value. +func get_noise_seed() -> int: + return noise_seed + + +## Sets the [member positional_noise] value. +func set_positional_noise(value: bool) -> void: + positional_noise = value + notify_property_list_changed() + +## Returns the [member positional_noise] value. +func get_positional_noise() -> bool: + return positional_noise + + +## Sets the [member rotational_noise] value. +func set_rotational_noise(value: bool) -> void: + rotational_noise = value + notify_property_list_changed() + +## Returns the [member rotational_noise] value. +func get_rotational_noise() -> bool: + return rotational_noise + + +## Sets the [member positional_multiplier_x] value. +func set_positional_multiplier_x(value: float) -> void: + positional_multiplier_x = value + _noise_positional_multiplier.x = value + +## Returns the [member positional_multiplier_x] value. +func get_positional_multiplier_x() -> float: + return positional_multiplier_x + + +## Sets the [member positional_multiplier_y] value. +func set_positional_multiplier_y(value: float) -> void: + positional_multiplier_y = value + _noise_positional_multiplier.y = value + +## Returns the [member positional_multiplier_y] value. +func get_positional_multiplier_y() -> float: + return positional_multiplier_y + + +## Sets the [member rotational_multiplier] value. +func set_rotational_multiplier(value: float) -> void: + rotational_multiplier = value + +## Returns the [member rotational_multiplier] value. +func get_rotational_multiplier() -> float: + return rotational_multiplier + +#endregion diff --git a/addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd.uid b/addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd.uid new file mode 100644 index 0000000..45ae480 --- /dev/null +++ b/addons/phantom_camera/scripts/resources/phantom_camera_noise_2d.gd.uid @@ -0,0 +1 @@ +uid://dimvdouy8g0sv diff --git a/addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd b/addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd new file mode 100644 index 0000000..6cf840f --- /dev/null +++ b/addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd @@ -0,0 +1,301 @@ +@tool +@icon("res://addons/phantom_camera/icons/phantom_camera_noise_resource.svg") +class_name PhantomCameraNoise3D +extends Resource + +## A resource type used to apply noise, or shake, to [Camera3D]s that have a [PhantomCameraHost] as a child. +## +## Is a resource type that defines, calculates and outputs the noise values to a [Camera3D] through active +## [PhantomCamera3D].[br] +## It can be applied to either [PhantomCameraNoiseEmitter3D] or a [PhantomCamera3D] noise property directly + +#region Exported Properties + +## Defines the size of the noise pattern.[br] +## Higher values will increase the range the noise can reach. +@export_range(0, 100, 0.001, "or_greater") var amplitude: float = 10: + set = set_amplitude, + get = get_amplitude + +## Sets the density of the noise pattern.[br] +## Higher values will result in more erratic noise. +@export_range(0, 10, 0.001, "or_greater") var frequency: float = 0.2: + set = set_frequency, + get = get_frequency + +## If true, randomizes the noise pattern every time the noise is run.[br] +## If disabled, [member seed] can be used to define a fixed noise pattern. +@export var randomize_noise_seed: bool = true: + set = set_randomize_noise_seed, + get = get_randomize_noise_seed + +## Sets a predetermined seed noise value.[br] +## Useful if wanting to achieve a persistent noise pattern every time the noise is emitted. +@export var noise_seed: int = 0: + set = set_noise_seed, + get = get_noise_seed + +## Enables noise changes to the [Camera3D]'s rotation. +@export var rotational_noise: bool = true: + set = set_rotational_noise, + get = get_rotational_noise + +## Enables noise changes to the camera's position.[br][br] +## [b]Important[/b][br]This can cause geometry clipping if the camera gets too close while this is active. +@export var positional_noise: bool = false: + set = set_positional_noise, + get = get_positional_noise + +@export_group("Rotational Multiplier") +## Multiplies rotational noise amount in the X-axis.[br] +## Set the value to [param 0] to disable noise in the axis. +@export_range(0, 1, 0.001, "or_greater") var rotational_multiplier_x: float = 1: + set = set_rotational_multiplier_x, + get = get_rotational_multiplier_x + +## Multiplies rotational noise amount in the Y-axis.[br] +## Set the value to [param 0] to disable noise in the axis. +@export_range(0, 1, 0.001, "or_greater") var rotational_multiplier_y: float = 1: + set = set_rotational_multiplier_y, + get = get_rotational_multiplier_y + +## Multiplies rotational noise amount in the Z-axis.[br] +## Set the value to [param 0] to disable noise in the axis. +@export_range(0, 1, 0.001, "or_greater") var rotational_multiplier_z: float = 1: + set = set_rotational_multiplier_z, + get = get_rotational_multiplier_z + +@export_group("Positional Multiplier") +## Multiplies positional noise amount in the X-axis.[br] +## Set the value to [param 0] to disable noise in the axis.[br] +## [b]Note:[/b] Rotational Offset is recommended to avoid potential camera clipping with the environment. +@export_range(0, 1, 0.001, "or_greater") var positional_multiplier_x: float = 1: + set = set_positional_multiplier_x, + get = get_positional_multiplier_x + +## Multiplies positional noise amount in the Y-axis.[br] +## Set the value to [param 0] to disable noise in the axis.[br] +## [b]Note:[/b] Rotational Offset is recommended to avoid potential camera clipping with the environment. +@export_range(0, 1, 0.001, "or_greater") var positional_multiplier_y: float = 1: + set = set_positional_multiplier_y, + get = get_positional_multiplier_y + +## Multiplies positional noise amount in the Z-axis.[br] +## Set the value to [param 0] to disable noise in the axis.[br] +## [b]Note:[/b] Rotational Offset is recommended to avoid potential camera clipping with the environment. +@export_range(0, 1, 0.001, "or_greater") var positional_multiplier_z: float = 1: + set = set_positional_multiplier_z, + get = get_positional_multiplier_z + +#endregion + +#region Private Variables + +var _noise_algorithm: FastNoiseLite = FastNoiseLite.new() + +var _noise_rotational_multiplier: Vector3 = Vector3( + rotational_multiplier_x, + rotational_multiplier_y, + rotational_multiplier_z, +) + +var _noise_positional_multiplier: Vector3 = Vector3( + positional_multiplier_x, + positional_multiplier_y, + positional_multiplier_z, +) + +var _trauma: float = 0.0: + set(value): + _trauma = value + if _trauma == 0.0: + _noise_time = 0.0 + +var _noise_time: float = 0.0 + +#endregion + +#region Private Functions + +func _init(): + _noise_algorithm.noise_type = FastNoiseLite.TYPE_PERLIN + + if randomize_noise_seed: _noise_algorithm.seed = randi() + _noise_algorithm.frequency = frequency + + +func _validate_property(property: Dictionary) -> void: + if randomize_noise_seed and property.name == "noise_seed": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if not rotational_noise: + match property.name: + "rotational_multiplier_x", \ + "rotational_multiplier_y", \ + "rotational_multiplier_z": + property.usage = PROPERTY_USAGE_NO_EDITOR + + if not positional_noise: + match property.name: + "positional_multiplier_x", \ + "positional_multiplier_y", \ + "positional_multiplier_z": + property.usage = PROPERTY_USAGE_NO_EDITOR + + +func _get_noise_from_seed(noise_seed: int) -> float: + return _noise_algorithm.get_noise_2d(noise_seed, _noise_time) * amplitude + + +func set_trauma(value: float) -> void: + _trauma = value + +#endregion + +#region Public Functions + +func get_noise_transform(delta: float) -> Transform3D: + var output_rotation: Vector3 = Vector3.ZERO + var output_position: Vector3 = Vector3.ZERO + _noise_time += delta + _trauma = maxf(_trauma, 0.0) + + for i in 3: + if rotational_noise: + output_rotation[i] = deg_to_rad( + _noise_rotational_multiplier[i] * pow(_trauma, 2) * _get_noise_from_seed(i + noise_seed) + ) + + if positional_noise: + output_position[i] += _noise_positional_multiplier[i] / 10 * \ + pow(_trauma, 2) * _get_noise_from_seed(i + noise_seed) + + return Transform3D(Quaternion.from_euler(output_rotation), output_position) + + +func reset_noise_time() -> void: + _noise_time = 0 + +#endregion + +#region Setters & Getters + +## Sets the [member amplitude] value. +func set_amplitude(value: float) -> void: + amplitude =value + +## Returns the [member amplitude] value. +func get_amplitude() -> float: + return amplitude + + +## Sets the [member frequency] value. +func set_frequency(value: float) -> void: + frequency = value + _noise_algorithm.frequency = value + +## Returns the [member frequency] value. +func get_frequency() -> float: + return frequency + + +## Sets the [member randomize_seed] value. +func set_randomize_noise_seed(value: int) -> void: + randomize_noise_seed = value + if value: _noise_algorithm.seed = randi() + notify_property_list_changed() + +## Returns the [member randomize_seed] value. +func get_randomize_noise_seed() -> int: + return randomize_noise_seed + + +## Sets the [member randomize_seed] value. +func set_noise_seed(value: int) -> void: + noise_seed = value + +## Returns the [member seed] value. +func get_noise_seed() -> int: + return noise_seed + + +## Sets the [member positional_noise] value. +func set_positional_noise(value: bool) -> void: + positional_noise = value + notify_property_list_changed() + +## Returns the [member positional_noise] value. +func get_positional_noise() -> bool: + return positional_noise + + +## Sets the [member rotational_noise] value. +func set_rotational_noise(value: bool) -> void: + rotational_noise = value + notify_property_list_changed() + +## Returns the [member rotational_noise] value. +func get_rotational_noise() -> bool: + return rotational_noise + + +## Sets the [member positional_multiplier_x] value. +func set_positional_multiplier_x(value: float) -> void: + positional_multiplier_x = value + _noise_positional_multiplier.x = value + +## Returns the [member positional_multiplier_x] value. +func get_positional_multiplier_x() -> float: + return positional_multiplier_x + + +## Sets the [member positional_multiplier_y] value. +func set_positional_multiplier_y(value: float) -> void: + positional_multiplier_y = value + _noise_positional_multiplier.y = value + +## Returns the [member positional_multiplier_y] value. +func get_positional_multiplier_y() -> float: + return positional_multiplier_y + + +## Sets the [member positional_multiplier_z] value. +func set_positional_multiplier_z(value: float) -> void: + positional_multiplier_z = value + _noise_positional_multiplier.z = value + +## Returns the [member positional_multiplier_z] value. +func get_positional_multiplier_z() -> float: + return positional_multiplier_z + + +## Sets the [member rotational_multiplier_x] value. +func set_rotational_multiplier_x(value: float) -> void: + rotational_multiplier_x = value + _noise_rotational_multiplier.x = value + +## Returns the [member rotational_multiplier_x] value. +func get_rotational_multiplier_x() -> float: + return rotational_multiplier_x + + +## Sets the [member rotational_multiplier_y] value. +func set_rotational_multiplier_y(value: float) -> void: + rotational_multiplier_y = value + _noise_rotational_multiplier.y = value + +## Returns the [member rotational_multiplier_y] value. +func get_rotational_multiplier_y() -> float: + return rotational_multiplier_y + + +## Sets the [member rotational_multiplier_z] value. +func set_rotational_multiplier_z(value: float) -> void: + rotational_multiplier_z = value + _noise_rotational_multiplier.z = value + +## Returns the [member rotational_multiplier_z] value. +func get_rotational_multiplier_z() -> float: + return rotational_multiplier_z + + #endregion diff --git a/addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd.uid b/addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd.uid new file mode 100644 index 0000000..42a0694 --- /dev/null +++ b/addons/phantom_camera/scripts/resources/phantom_camera_noise_3d.gd.uid @@ -0,0 +1 @@ +uid://cuffvge5ad4aa diff --git a/addons/phantom_camera/scripts/resources/tween_resource.gd b/addons/phantom_camera/scripts/resources/tween_resource.gd new file mode 100644 index 0000000..0a3b46f --- /dev/null +++ b/addons/phantom_camera/scripts/resources/tween_resource.gd @@ -0,0 +1,41 @@ +@icon("res://addons/phantom_camera/icons/phantom_camera_tween.svg") +class_name PhantomCameraTween +extends Resource + +## Tweening resource for [PhantomCamera2D] and [PhantomCamera3D]. +## +## Defines how [param PhantomCameras] transition between one another. +## Changing the tween values for a given [param PhantomCamera] determines how +## transitioning to that instance will look like. + +enum TransitionType { + LINEAR = 0, ## The animation is interpolated linearly. + SINE = 1, ## The animation is interpolated using a sine function. + QUINT = 2, ## The animation is interpolated with a quintic (to the power of 5) function. + QUART = 3, ## The animation is interpolated with a quartic (to the power of 4) function. + QUAD = 4, ## The animation is interpolated with a quadratic (to the power of 2) function. + EXPO = 5, ## The animation is interpolated with an exponential (to the power of x) function. + ELASTIC = 6, ## The animation is interpolated with elasticity, wiggling around the edges. + CUBIC = 7, ## The animation is interpolated with a cubic (to the power of 3) function. + CIRC = 8, ## The animation is interpolated with a function using square roots. + BOUNCE = 9, ## The animation is interpolated by bouncing at the end. + BACK = 10, ## The animation is interpolated backing out at ends. +# CUSTOM = 11, +# NONE = 12, +} + +enum EaseType { + EASE_IN = 0, ## The interpolation starts slowly and speeds up towards the end. + EASE_OUT = 1, ## The interpolation starts quickly and slows down towards the end. + EASE_IN_OUT = 2, ## A combination of EASE_IN and EASE_OUT. The interpolation is slowest at both ends. + EASE_OUT_IN = 3, ## A combination of EASE_IN and EASE_OUT. The interpolation is fastest at both ends. +} + +## The time it takes to tween to this PhantomCamera in [param seconds]. +@export var duration: float = 1.0 + +## The transition bezier type for the tween. The options are defined in the [enum TransitionType]. +@export var transition: TransitionType = TransitionType.LINEAR + +## The ease type for the tween. The options are defined in the [enum EaseType]. +@export var ease: EaseType = EaseType.EASE_IN_OUT diff --git a/addons/phantom_camera/scripts/resources/tween_resource.gd.uid b/addons/phantom_camera/scripts/resources/tween_resource.gd.uid new file mode 100644 index 0000000..a0f2cf1 --- /dev/null +++ b/addons/phantom_camera/scripts/resources/tween_resource.gd.uid @@ -0,0 +1 @@ +uid://8umksf8e80fw diff --git a/addons/phantom_camera/themes/button_focus.tres b/addons/phantom_camera/themes/button_focus.tres new file mode 100644 index 0000000..e6fcc45 --- /dev/null +++ b/addons/phantom_camera/themes/button_focus.tres @@ -0,0 +1,17 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://p058hmj3uut0"] + +[resource] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 diff --git a/addons/phantom_camera/themes/button_hover.tres b/addons/phantom_camera/themes/button_hover.tres new file mode 100644 index 0000000..9d37a86 --- /dev/null +++ b/addons/phantom_camera/themes/button_hover.tres @@ -0,0 +1,13 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://5weqvkjsfso3"] + +[resource] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.960784, 0.960784, 0.960784, 1) +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 diff --git a/addons/phantom_camera/themes/button_normal.tres b/addons/phantom_camera/themes/button_normal.tres new file mode 100644 index 0000000..4eae33d --- /dev/null +++ b/addons/phantom_camera/themes/button_normal.tres @@ -0,0 +1,17 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://bclbwo3xrdat0"] + +[resource] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 diff --git a/addons/phantom_camera/themes/theme.tres b/addons/phantom_camera/themes/theme.tres new file mode 100644 index 0000000..7ce53d8 --- /dev/null +++ b/addons/phantom_camera/themes/theme.tres @@ -0,0 +1,102 @@ +[gd_resource type="Theme" load_steps=12 format=3 uid="uid://bhppejri5dbsf"] + +[ext_resource type="FontFile" uid="uid://dve7mgsjik4dg" path="res://addons/phantom_camera/fonts/Nunito-Regular.ttf" id="1_5rtjh"] +[ext_resource type="StyleBox" uid="uid://5weqvkjsfso3" path="res://addons/phantom_camera/themes/button_hover.tres" id="2_du6h5"] +[ext_resource type="StyleBox" uid="uid://bclbwo3xrdat0" path="res://addons/phantom_camera/themes/button_normal.tres" id="3_a8j1f"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ek0y3"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rjkuq"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 4.0 +bg_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_x7u0w"] +content_margin_top = 2.0 +content_margin_right = 8.0 +bg_color = Color(0.0784314, 0.109804, 0.129412, 1) +border_width_top = 2 +border_width_right = 2 +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_right = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dln2q"] +content_margin_top = 8.0 +content_margin_bottom = 8.0 +draw_center = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wk7ot"] +bg_color = Color(0.227451, 0.72549, 0.603922, 1) +border_color = Color(0.227451, 0.72549, 0.603922, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jidrt"] +bg_color = Color(0.960784, 0.960784, 0.960784, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o2xwc"] +bg_color = Color(0.960784, 0.960784, 0.960784, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ul127"] +draw_center = false +border_width_left = 4 +border_width_right = 4 +border_color = Color(0.8, 0.8, 0.8, 0) + +[resource] +default_font = ExtResource("1_5rtjh") +Button/colors/font_color = Color(0.227451, 0.72549, 0.603922, 1) +Button/colors/font_focus_color = Color(0.0784314, 0.109804, 0.129412, 1) +Button/colors/font_hover_color = Color(0.0784314, 0.109804, 0.129412, 1) +Button/colors/font_hover_pressed_color = Color(0.0784314, 0.109804, 0.129412, 1) +Button/colors/font_pressed_color = Color(0.0784314, 0.109804, 0.129412, 1) +Button/colors/icon_focus_color = Color(0.0784314, 0.109804, 0.129412, 1) +Button/colors/icon_hover_color = Color(0.0784314, 0.109804, 0.129412, 1) +Button/colors/icon_hover_pressed_color = Color(0.227451, 0.72549, 0.603922, 1) +Button/colors/icon_normal_color = Color(0.0784314, 0.109804, 0.129412, 1) +Button/colors/icon_pressed_color = Color(0.227451, 0.72549, 0.603922, 1) +Button/styles/focus = SubResource("StyleBoxFlat_ek0y3") +Button/styles/hover = ExtResource("2_du6h5") +Button/styles/hover_pressed = null +Button/styles/normal = ExtResource("3_a8j1f") +Button/styles/pressed = SubResource("StyleBoxFlat_rjkuq") +PanelContainer/styles/panel = SubResource("StyleBoxFlat_x7u0w") +ScrollContainer/styles/panel = SubResource("StyleBoxFlat_dln2q") +VBoxContainer/constants/separation = 8 +VScrollBar/styles/grabber = SubResource("StyleBoxFlat_wk7ot") +VScrollBar/styles/grabber_highlight = SubResource("StyleBoxFlat_jidrt") +VScrollBar/styles/grabber_pressed = SubResource("StyleBoxFlat_o2xwc") +VScrollBar/styles/scroll = SubResource("StyleBoxFlat_ul127") diff --git a/assets/sprites/characters/README.txt b/assets/sprites/characters/README.txt deleted file mode 100644 index edebaa5..0000000 --- a/assets/sprites/characters/README.txt +++ /dev/null @@ -1,18 +0,0 @@ -Player and skeleton sprites are on a 48x48 grid. -Slime is on a 32x32 grid. - -Flip right facing sprites to get the left facing sprites. - -Animations [rows (0 based for us programmers)] -Player: -[0 - 2] idle -[3 - 5] move -[6 - 8] attack -[9] death - -Enemies: -[0 - 2] idle -[3 - 5] move -[6 - 8] attack -[9 - 11] damaged -[12] death \ No newline at end of file diff --git a/assets/sprites/characters/pink/Double_Jump_Dust_5.png b/assets/sprites/characters/pink/Double_Jump_Dust_5.png new file mode 100644 index 0000000000000000000000000000000000000000..1558c8d067c5a508ab1910ba6e082904c643bcd8 GIT binary patch literal 1094 zcmaJ=OH30%7~Yg%5FwHn4``y}qNs`OZd;aiH!QDit2Hjc(f}Sv-0n{43cIuJ4t60v zf*yQuF_CEWq+U&oc;P^NTnvF2qb3@B9f;vzG{FNQ92A@u3LdPR?9BX=|NH*$f6UeP zw!@X>JIX1Fs*E3z5@f$ieo$6I*8BG^O_Hq|N4s$cO5?0zL#jnXDG1_*(hCz%(FRXX z!3K&dsnwI+xLZCZsL1dsIUk>ESOiT`4Nb14sC^KF6ztVak)EG;Mgv_F=`K!YWh(+R z`jH_Ub_}&8)uBF>*XX83(BKM$z<^i*uF-Egf-BN_UV)r**9;BvF1SymS4DNp?I40| z2smH8S7rTmAjJFpTz!ZS9RdMjGi;a%uwIrIxS+rWz}iQXXttIX5>jj}7O_M+gRvzr zOg5YKWrIFs_cDH-=NUG@1Oi^-;dKU0thip&sVOi>&{1vO!a6cRj!{XW0W8u)>1qmw zwN7g~Yh@w@V_d~z{6039Qo&J{|L)sAdzzx0sBzBU67Gx68K?Al*8kergg|dW* z4Hb;+Btrd#Dz;}3MotDUOI3 z<#*2_?QLk@SCJZJdfZ!+i(j6UmK+dghSTzk^!apuFMy-q&U0f ia_7W@ix)=57Ry-b&hKp*c}aam6jJeMoAj{t~ zE44iaXy~a=N$yos^!^`2l?WQR*6M{Md)SRfMSey() z1CU;q&nYqP3ewNI++Lrb_3tD-_)IgEw1;srEaxrf7!NtWD4flZTe$=una_n!0jeD# zoulbgD&#n>ff17orOhpOsAw22a6QSU#A&1AO@=maofmm%ScYu#$6 z(z&n!LTh zR(LBS<$ixK!uZ^7feo^Pn`QiL$QKR?m7Yiz%R{M41scj?HR3ttLu-x|U)%qbn2P%LRrC2{12<6=fr9&r?`{(MhaI-GnobL9hEe}CegGPtq%*PYuJzLz!=vtn`c Srs=#87E45hdj3|Z`S>6HS$3}g literal 0 HcmV?d00001 diff --git a/assets/sprites/tilesets/walls/wooden_door_b.png.import b/assets/sprites/characters/pink/Pink_Monster.png.import similarity index 66% rename from assets/sprites/tilesets/walls/wooden_door_b.png.import rename to assets/sprites/characters/pink/Pink_Monster.png.import index 494c5a3..7f115bc 100644 --- a/assets/sprites/tilesets/walls/wooden_door_b.png.import +++ b/assets/sprites/characters/pink/Pink_Monster.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c5tf6626uiegu" -path="res://.godot/imported/wooden_door_b.png-53fdfb6a481c3305596bb5f693299829.ctex" +uid="uid://d3k2ffc1lo0y0" +path="res://.godot/imported/Pink_Monster.png-7769a9462e0dc238cae11f75feee9309.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/sprites/tilesets/walls/wooden_door_b.png" -dest_files=["res://.godot/imported/wooden_door_b.png-53fdfb6a481c3305596bb5f693299829.ctex"] +source_file="res://assets/sprites/characters/pink/Pink_Monster.png" +dest_files=["res://.godot/imported/Pink_Monster.png-7769a9462e0dc238cae11f75feee9309.ctex"] [params] diff --git a/assets/sprites/characters/pink/Pink_Monster_Attack1_4.png b/assets/sprites/characters/pink/Pink_Monster_Attack1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e55eacdc5770d01f6e1cb38f7b143fb561d7afe6 GIT binary patch literal 1392 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3-qd{%H^gQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{;ELn2Bde0{8v^KVPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAah@XWlF z{PJQ=upVDuE6=>*lEl2^R8JRMC7>yKnVBh8Zq8;Vh6d)&j&25~hK8<|P6n<9j;@9- z#^x^O<|eKdFugAM$)&lec_lEtDG0qTIQ4>(Lv8`kW|!2W%(B!Jx1#)91+cfRGI6`b z5vO@jy(zfe;)GMLKF~4xpvXmvY?u%*1%a6GqzmN06Mt$RFvS-EllH3aFacn;5DM@K zalPU2yMp`spMU>YB<;U+egg`hbyea9Qfwtbe!>4ifMN6gCHol|7&myjIEGZ*dJ}%K zj9HP#xZ}@%{pq^KZBfTgddF95v_DaZ7LyWF?vI!Ir2l}Qli|z#0 zgEL=z#S;bL6<^jmERFy9RAd3SO^>9`QaHb3Hx<31tQ;3Bf%^D6({R=l7`P9$m+cd538#hZL=QDYpUzLpP&35VxvaS~O-#gYZvUwZa zzrNgO7IR=k(oaFg$1;1uIIr!HRb!v{Nu)@tsfxo5)s=>1TI+Xy)(;x+i*Jl_@jVZB_35 zWzXZ7U(Ra08k)tpBs*;Nk)Rbnr&{k)o$TyxmOkOmwi_=aeClq_w!0;|Jk4;ay?JlT zeW4Ft`@Vj#5Nz1jv!~tjN$i8|Z_WNsXJBT?WOi6^@np9HFg6)HUHx3vIVCg!0E>q4 A>i_@% literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Attack1_4.png.import b/assets/sprites/characters/pink/Pink_Monster_Attack1_4.png.import new file mode 100644 index 0000000..b430269 --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Attack1_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqgq2c1h6yk3k" +path="res://.godot/imported/Pink_Monster_Attack1_4.png-ed4bee20b8fbdf8ee56a7188f0d0cf96.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Attack1_4.png" +dest_files=["res://.godot/imported/Pink_Monster_Attack1_4.png-ed4bee20b8fbdf8ee56a7188f0d0cf96.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Attack2_6.png b/assets/sprites/characters/pink/Pink_Monster_Attack2_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e76abe4ac2c859d3e46fa62761358699d3172a0e GIT binary patch literal 1509 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_CgBeH`yR~lzQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{;ELn2Bde0{8v^KVPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAah@XWlF z{PJQ=upVDuE6=>*lEl2^R8JRMC7>yKnVBh8<_1oN7H&>%j&25KhK8<|P8J46&PL8I z=EkOu#)jtRFugAM$)&lec_lEtDR8~c1~~PCl0$9*&}Ns^qRg_?6t|-MTm`VVtuk@D z#RaE%P`xQQ-QwhmQ?EYIG5Vm$MT%^g5HJOSnDC?vhG&NB!ygW zt@Lkvvb28v|0BVV_iK6lV`iKxDS6_@kp(|wnZ)@Y>}}BSG6+$KloyNmFy)$DW4rr@ zJZ{?!>lZ4nveT(F=$tR$aB=f|p%e~{ABQ$LK6oHFC+y92mdI+2C#_Byf)*7l%QJtM zHNE;AaNP>1w;<~9VV0>3EfXfmeEI(E+!emV6&%YWfBQ9QH6C)UcQq@U(b!%v>qxcq z6T`;d;{{P14HFkUXX#_$*v~bAXWGWvJ&xxj4%)sEyivik-1N6Yyzr7;Pqum$9Q^)1 z!J_t59WUeD-66ZatFf5;h$>9+JaF{iCAQ368*lYYS@tSc{~6~k)qSH`5Zs5mEv;v@Qh*MQ^kKK?ZSoY>IyFur#1d(XUtkL^S-Lax2daM zs>*Q~^f#y}n6X1c}xu;*UTzG#AYG$!;L&#XM@8$mxITFJ*~g~g^3!{VL>}DbzIk2m-`)#+|K~F>Gn5=m Wnz$`!_j6zpV(@hJb6Mw<&;$S~{xL29 literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Attack2_6.png.import b/assets/sprites/characters/pink/Pink_Monster_Attack2_6.png.import new file mode 100644 index 0000000..fe13dc1 --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Attack2_6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dinwwco5v2km5" +path="res://.godot/imported/Pink_Monster_Attack2_6.png-bd22f7486ca80b59ae6f4995ee2da60f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Attack2_6.png" +dest_files=["res://.godot/imported/Pink_Monster_Attack2_6.png-bd22f7486ca80b59ae6f4995ee2da60f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Climb_4.png b/assets/sprites/characters/pink/Pink_Monster_Climb_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b8d0568f2be66b1635213df5342e02e7a0dd6c GIT binary patch literal 1307 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3-qd{%H^gQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{;ELn2Bde0{8v^KVPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAah@XWlF z{PJQ=upVDuE6=>*lEl2^R8JRMC7>yKnVBh8hNh0r&TbZNj&25KhK8<|j!p*VF6PcA zrp~TzMlP0aFugAM$)&lec_lEtDR8}(1~~PCl0$9*&}Ns^qRg_?6t|-MTm`VVtuk@D z#RaE%P`xQQ-D2U2Q?EYIG5Vm$MT%^g5HJOSnDC?vgFF*R~_~c#lr}e3@qf!{Q&p40?N5Z@6iE#H6$ zh^I15IAty3AH#ghKy$Y78?}jzl4+^o%8wO}Jy4Rwz!c zzFOtXmh0itWW{~Snc))u9R`J8MV|ir41Hd;EEhy)um{LS#{F-x>(bwp-&GqN<+k8B z(;JBz2Fds@#{7&o+zm>Nnxq(#W9Rkk<0+_-a+uHS*xzO~&*r~y0>jROCVoErw}C;; Oz~JfX=d#Wzp$Py-F1qIc literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Climb_4.png.import b/assets/sprites/characters/pink/Pink_Monster_Climb_4.png.import new file mode 100644 index 0000000..3242fc3 --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Climb_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bx6nst3hqsww0" +path="res://.godot/imported/Pink_Monster_Climb_4.png-2f4294abce1f51e361240895922b21cc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Climb_4.png" +dest_files=["res://.godot/imported/Pink_Monster_Climb_4.png-2f4294abce1f51e361240895922b21cc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Death_8.png b/assets/sprites/characters/pink/Pink_Monster_Death_8.png new file mode 100644 index 0000000000000000000000000000000000000000..413f6ff687b814c5702812845860d0a56cad9278 GIT binary patch literal 1542 zcmaJ=Yfuwc6ux<=fMDaJ6&b5*s1+T_ZbA~+9Rf)8}JkSwymX4l=NdDvWA8a<&i9?i z{kA$gb6HeGOauTR%Cg*K13)C001A@`-wU2qJ;F7IPs`c$?vtc%OTRG zldslT5i5fe#pH57OXT=7?M{EG6LrZ`Q=nuoCJ;~r?|{5inVZABI{64MCfK1cEQdx? z_)?wxMN_%fYzU`W0@5h7@lHgkh7wVQQlm{o6PH3N!H1C~ScSwRD5gok5EV3f2pCEG#qwhaUG| zk3AL=6cjSYr7Jk&;wRjK;#oo3c?kncgx_LDc7{F8J9V&E|8$`Gv2;%Av*BSOTp3s4 z6Ryd;Ei>nN=ztULAGZS_Hd{;vySMMg{yY9kC~`+j_~4d{5_F$r?KR4_nLpH&)t`kw?hiW#l95+VlU@!@vZ_^r)aoe)@=MVLE)*5SMSIO+ByXRl? zbig-fOp(nW)Pi;GYj5mn>pmV+qus%%MaRn;CAYV1?7s4LAeI}9aEfFD_ZFTrT$?*B z;ggdZZLU6DS|ln-uSOG1n_;{IQRKy9hE4x>o2V4aDUzbaSL8`#p3_*E(e-hk7`pyy&&)5&isRK wl~%WcJ;C>W`}6Cbqfs9u_ji|EC{7heg2!iSGrAkH1_X@(OIoJsh_RsJAESja>i_@% literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Death_8.png.import b/assets/sprites/characters/pink/Pink_Monster_Death_8.png.import new file mode 100644 index 0000000..1cb3fee --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Death_8.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0muqa26ngic7" +path="res://.godot/imported/Pink_Monster_Death_8.png-4307e6abd1a5f542411af53a5b4c1de8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Death_8.png" +dest_files=["res://.godot/imported/Pink_Monster_Death_8.png-4307e6abd1a5f542411af53a5b4c1de8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Hurt_4.png b/assets/sprites/characters/pink/Pink_Monster_Hurt_4.png new file mode 100644 index 0000000000000000000000000000000000000000..7e2590f87f05699a7c185fedd735176226d48d82 GIT binary patch literal 1360 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3-qd{%H^gQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{;ELn2Bde0{8v^KVPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAah@XWlF z{PJQ=upVDuE6=>*lEl2^R8JRMC7>yKnVBh8#-`>@t_Chfj&25KhK8<|js`BSmZmPQ zCeEg=X2z~gFugAM$)&lec_lEtDG0sBIQ4>(Lv8`kW|!2W%(B!Jx1#)91+cfRGI6`b z0H=9Sy(zfeVu(|(KF~4xpvXmvY?u%*1%a6GqzmN06Mt$RFvS-EllJoCa+$zvAr#;f z;(Ej3cLn$NFP-05B<=tF`v(-xope+ONU@a!`33(60fx={m+WU?V4UFT;uunK>&^7j zlMXBJupB?}?|*#UJZb5)36s38#+k9}Em*d3qSE7EkLCZdF5*7>raVMjsioIp{&N}Y z^TxujG=6B_^iw{sUc{!;@Yq0cf_eVpN9hin+vhsOeYnA(ouFJ`#k8`exZxIq@PR&l z-YlC>`T7Y#3-m5D{QmbyP@$B)uu1&CUBAKu#REK570eMa0)_{Q>$L)!Z=2XQK2T`VEY_YK+)7@aa-q;>9NmOG$-w3PkLI|6-m<){7mVj_UCO_2qlpef#(}SXvI{&DVm{oPl*rA&`C?gF z$fBA33I~oIF27ZD^_sVx@C5z?zr-&|=l*~C(Xe*s8~+$B^N|CiawB@hW@k5(HvxQO<%oPt2UWoUWXVfs*Mo% zWxg2(Auo2eUx986OWP-f>dpE<6(guJ!6$u)h^!$rhPg{48ZWd$6EwnRN%7!w-;Urw z5-8BUD8ZR zRX~!FZ&W)>4~~>ROhMK*Xcc3(9d~r#6n1t$T*zEw2z`Vww!X=?LL|=_LkAC*GtodjzX3zPGLD!=#Zgerm*58 ztZ!3navWq0MdqL`9f4xGuF7C7ZARK$OWCG;>sWDfE#6JBBoad=oBOY3r>@WhCAS-+ ziw+yZ4;3`=IvVY?p4s2gvv{heD&)Jq|9)i0-Q@=lw&a#B^em$52_L=#8LJtru3b$o z?8}ieBN%3B^>b_}GWF+2-|Ihs$GIGGW%V%Ox-|dO!R?187lK(s?)k6m$Dep(Wq$Nn z^lnHT%iTr|x{sE?-Pd9T<0vDIt*omV2cF!TTbG&e zj(%a8id?o~FnSv7I(cyC2{4_v+AqA?a52XnkM-WNZu|B98~Ig32_blOMs-~qS`aR< zTAC-{`sg&zb%{`x-Fb%v*(+ZCVKPPvwtit+#0)+Hhlm5b2kqW?QC`h z{ra)--YeD>3vi#USe?D_?&2NNvSP&Bz{>?C+40z9cR!Y6IodX$M0eI%x~+7xrR~$4 z8Q^@=I=uBd`QGVE-~IB}uyy&HiS8GEORtxrR8V18dUH(1ut{ST4H-CY0x literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Idle_4.png.import b/assets/sprites/characters/pink/Pink_Monster_Idle_4.png.import new file mode 100644 index 0000000..9a6bfc2 --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Idle_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b6ihjsu8qhm2x" +path="res://.godot/imported/Pink_Monster_Idle_4.png-3796b6d5aa27e068e67d2304a03bdcbe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Idle_4.png" +dest_files=["res://.godot/imported/Pink_Monster_Idle_4.png-3796b6d5aa27e068e67d2304a03bdcbe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Jump_8.png b/assets/sprites/characters/pink/Pink_Monster_Jump_8.png new file mode 100644 index 0000000000000000000000000000000000000000..1403e79eac51e5a264380c90a9d1f4907b8bdb15 GIT binary patch literal 1658 zcmaJ=X;2eq7+%65as^Qi8Pp}(0=Bsgm?bghlvIKtq=JegAz4TUlU=imSt3Izhe+#z z)rwjQYH6#KK^<+yYXAiUt&U?waloSmt=4fWQPDU>=mr7%qxAc+-}}DvKF@o6&sM5a zmIeAn`T+nCs7#V+0KkJZ0npcz{QhiPd6T?m{d9VXTG}>3Q4W74o9q71X(|^MYR#Z5zL67pj0}xH83{aWHBH% zEN%>=Qb9@!hU+YPSSb_INEU|4WPrqcxs1O^CKoGMJT_a-m+*LE1?jRBT$wmQBALL- z5PiNGw%`+3!#k{EN~~KBW|XWfgRQ2Gut8x(%;4DAkZI~(q*L;ZV+~XHBAXJ+B%5Kn zANOC6JrN=mzB#N)%iMU^zIS<4 zU%e@{>cNi8hS8X&;n0z9jW?FI(8~&sUf32%YxYw&_{6<8G$Oha_w2mismSyaKkwMk z6~RY?#1vI<)`}-KLGz5=L(d|z&taXJ-uHhk|Am=Ucmy5rofRD3b3M9Qxd$db>%5|G zp1un3`Mkz2_CD3Q=fJ>$&4@62^!!>!tOtddtM@1*J}I(P=lfsWC#Ah!#Z`P4_axD{ zT=cZ(dDv!0)P-kUS69`AI{sgc`o{ssYtjWh_Z;*9>f-jRROhY)q3h7Hgpx07Z?3zM zTEj1UP~qx2Hy3x#^KXp`StG9?uCG{R_AZG7y(Kv#6X; zgNq6Si{)GUFGn8_Yvcar5Jt=br6nDXN~y81eMQa?*mlZGvmv*>lv^?ADy~a@+!j%r zIjwquarT~+$gPG=8{4D$JHoGvIrXd`S#5XB zuUfk(`ALU64g((rJ-w~E))PjpW%xvK7U>u42NM@hpVLTq<4Y58aiw9t-}8q1a_{Wze3>)r0IwlFq8 zGl?@J3?nmci7Y`dgb+qyvWyguM#4 z;C5Ht`#14y2;%K^TWze(RDwB4LS&Eli2MWv&=8cJgUunUu{`3TsIkhZUksp;Ii8!%CG%qR3RLl>1>R&{1&~DisUGDoi26#8PCe1g7sKHQzO+ZOJOML^Z7(RnTVvTP>D*VLd8;4Dis0`AyemJ?S7$$Nslt0{nr z!Ip0CI(5bG6r1!9FnqE}@}CDMGkP9;@pReHTt7RBmF zrz1n?{pOG~W!2f5Gv+x}h&hhtK5mQMZ!%wu|F z8xXOq#ay-;IndWbT|*GWxognnS^W>^&faXl0Vn9*NDZ%k9@=jX6kTuC_jU{3{8D?W zuy`aUH$1~1iuowMLB^qF(f>n!9gxmUF*{?}Y}8bGKW#ZTyLFZ%{M{J&gT%c{^95c+j2O zXX2Jj-59T!-Sffe#G;+ci?Y$ZD3jgMlQ=onaz5CdeCBc8yT+Ntsp`e{`LUM4AUT`Q z?Gqeq>UHu5G63uOptp6Yd-Ruv<&-(-V%qOXnw5n9*{&WY_gUb4w*E9;9_zyG_1XSCRzL_l%Doo!j}7uw~TGic5OF8-yT0e zgs?`A3g2f%7-S(WpeCDv3RCA dFuwRs69@W2;OKfvh5Nv)A%otm>(8$^_75oL2K)d3 literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Push_6.png.import b/assets/sprites/characters/pink/Pink_Monster_Push_6.png.import new file mode 100644 index 0000000..2861637 --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Push_6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dun0f0rkhaew5" +path="res://.godot/imported/Pink_Monster_Push_6.png-3e4515e253d9f1a42715b4a733fcb27d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Push_6.png" +dest_files=["res://.godot/imported/Pink_Monster_Push_6.png-3e4515e253d9f1a42715b4a733fcb27d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Run_6.png b/assets/sprites/characters/pink/Pink_Monster_Run_6.png new file mode 100644 index 0000000000000000000000000000000000000000..bc2beda2267081bc7fb24d297351c667df10963a GIT binary patch literal 1467 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_CgBeH`yR~lzQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{;ELn2Bde0{8v^KVPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAah@XWlF z{PJQ=upVDuE6=>*lEl2^R8JRMC7>yKnVBh8Zmvd_&W46=j&24fhK8<|mX4;*Zq81w z<}M~q78XXXFugAM$)&lec_lEtDR8|;1~~PCl0$9*&}Ns^qRg_?6t|-MTm`VVtuk@D z#RaE%P`xQQ-D2p9Q?EYIG5Vm$MT%^g5HJOSnDC?v9_|Bwas?Er} zU*$pRzso{GfqX&>53t3_E)mmvI6bi@mEq~~3eE+5c9Q>l>MPi{T}qRz*zx>^D+0K%_kthD$f{F#C6o#mdk|E`SFW$Nbs-^U;#5Ha~d z?!Sks&-ki#Og|u1C;7}n`sOo>cbpMN>}%Lt@{`T#PC91S)Ev3b$??|O@soMMamTag zANFtm$pw_V(j?$ICR=)?S-Cr$QJ^>%KB>X6qAatQ_jb=FgowPGJF z?Gq>rn^3^cpRee#H{w<6D*kDW#*A;*_;M?WSXc?C%x&BHn)YY=D2@YIssKZpJLYX0?0 z%=Bb49B;l0T@x)ovQr`eHyRv#BwqT=QC}1kr&detg~mAw%FW%e*_a4 YM68m}U8obR1SSjyPgg&ebxsLQ0PaN?!2kdN literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Run_6.png.import b/assets/sprites/characters/pink/Pink_Monster_Run_6.png.import new file mode 100644 index 0000000..79a1501 --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Run_6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cx2x6p0dnnm6y" +path="res://.godot/imported/Pink_Monster_Run_6.png-0fd9d38acb5b631cec6fcb0878023b16.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Run_6.png" +dest_files=["res://.godot/imported/Pink_Monster_Run_6.png-0fd9d38acb5b631cec6fcb0878023b16.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Throw_4.png b/assets/sprites/characters/pink/Pink_Monster_Throw_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b830a8182a5b85bcf2c1c2bd7a3d0342d9495699 GIT binary patch literal 1439 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3-qd{%H^gQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{;ELn2Bde0{8v^KVPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAah@XWlF z{PJQ=upVDuE6=>*lEl2^R8JRMC7>yKnVBh8CgvtahQ`jWj&25KhK8<|j^+k#PA(P} zmd(Lv8`kW|!2W%(B!Jx1#)91+cfRGI6`b z8K-$ry(zfe;(}AJKF~4xpvXmvY?u%*1%a6GqzmN06Mt$RFvS-EllF2!Lm6PUkPGk$ zag~uWxclhklm)xA4E%05{I1~s{^#F67D@Xro!@{;HZ6271X5fjL4LviVSr)N8J+VC z42BW zgnX}$&tGM_Y2KrJhFL+TM^@+@U}BPCJ0W$s_=k}LUww~$dE4G~-Rs4@FHU{sYR5KV zvZJzOB9Fq8Hd(JHhs7-Z=C)2@da{-OAlpF}Ma9T>JPrLij<4@4z1X1B{P+EjUvg)* zGICE&-SVGzzGPaqIQP`lHUDMjOFpwq?|iZ>{j}Qor{$BMo-;Uhoq5W`_?@XNI?o?G z4d-Mq;Q6?=Z(E?~!_y3@u{-z7EB2o9WtLhc+k()&SAy40UbHFql2x78<>(7?R+a~N zWb?Hq7cp!~H~+`FAb*i*8Bb%P=yI9MCmY``xb|%y!xkgY{>11*0tK_m84i{2=;LvC zkt&#}xh;q!d+p%oMB=f|3F25dK{M+m?b=gYc1$NKRZJHB5_hS7NxBWa8>#tcI%w}Nu v@Mrge+VBdte~C%TH7pNa>ip|xU}lI7YPfq|{7oD%!WleW{an^LB{Ts5EkzA! literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Throw_4.png.import b/assets/sprites/characters/pink/Pink_Monster_Throw_4.png.import new file mode 100644 index 0000000..0650510 --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Throw_4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://538sc3bsdell" +path="res://.godot/imported/Pink_Monster_Throw_4.png-153cd77a251b8f2d3f59fdb64c106944.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Throw_4.png" +dest_files=["res://.godot/imported/Pink_Monster_Throw_4.png-153cd77a251b8f2d3f59fdb64c106944.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png b/assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png new file mode 100644 index 0000000000000000000000000000000000000000..39c545a66c8a0457892fda980d69ea37483643d6 GIT binary patch literal 1521 zcmaJ=eM}Q)96l%#pew;mG@)2%BW$90^bUHd?HzZ=T1XTS z-R4}3EF{CoCRucgV{=B$Sk#4zED9UWI6u&B%EqRGX2?bagu&h-;QknUle^#hzImSK z_j`Zu^X{?bzbcN3kAfgbY{@khf*1fF93cRIF6XUw5aM`qF>j~Kc^}S_ke;B+NZ8`R zE673;C#oyE$@LHmD}9tN->XnmHS!JTfBhs($c%Bw?$&vYO# zMd*+swN-9qjHHXotzk)fO}@if<92EZBr6kM@5g|EhvaeC@7d<%Fux9&)y2R(xQ!z4 zEQELKkf%izTWzqBW=U8r(@33i#X2}$D^sX7>Du(QuoA3Mc?PPKOXXTjt-|C=cy1sd z8%va9g{GXjTwtX`Ts+TUDC+b1WImOQW-CyIR;xwjN>r(o0)&*S_VT!2>g5vW6-*@O zWGRNHXfGU8#LMU^UWb56pB}-(EXaDfxi*1@p?;h}6*777Nb^9e_5YzB&jOm`3(05o z{--eKsAfpCkmTqp)(I}IJTaJx!Hg`4^EB(A>232}w7F=W=3F!b8;!GFgOiIWFG2gb zlv$3|idnoIk9(b@#iT=kij1NNOp~tHo7D=vK1Z%rD9l>D)}S$}GR*5#ii~vzrD2|H zqMcP9(#y|tiDz8HqTHYzJPgQeB3bGUlE`6c4?KHpj9R>wj79b4xWwYMXcy(8pcpiG zx&ONC`7Pj};B>*dV6k9+(hD5V0&82u;S=Cl#Mts2=DzGnzi@17dO9pFYjn?Ju-$7$ zgdl|Th57cG;DAnc9PWUiP=&>$cld8TEWY{Pd02E(F)>rR<nG**vyE zwR2EHY(Ibt+Q&Z+gLj;^?zg>vYi*#bn~pp+KA5C`b2H_v+kIp6*4J9U+2D&*#@{`@ z_s*I?XZw=Zr%st9GqRDi6YmU10c^^-m}%kE=*Ifmx>9kjVTm=QMK5e0_f2-VTQAjL z3CJ2oK8f5p#UF$ZHQYm*_P(1oEvsLiB_+RVF}BcQe>bK|cO(qQxJG{XS#+IC_6$_4 z6!{qmElilW_H6=k5x$p@FFrf^%0T9sq~qsrE`3a~4n&Yg#sot8V_#T%nR>G3_6o)> z_y9Waph$Fe4OV$B^cPWCb08IOsVA0<3T)!&u_y5(%4A#Ci)F*tUg{j}%8suqkC^=W zY^*%9?X>#00Hn4%K8)Lcv!SK*hN8LkyTHIncd_wcc$4`jtOZ5(IRnfxmc2OgW!Cbg zR~p6>ItMdfrrwSlE<0LVyM1ZF>g?!0LMIA(?sxxqRUCHJF$Dj0_5`915%u@YJQ||g z3wo^5ZGlhqv304Ns!)4n+p$owqonO&Q||?NT^e^pjt7v9zl&BTA5mO4CA&1PxV~L! dHI?Iu0qD*b_;AukaV5Y`kj0#DI%e3q^B+?JF1`Q& literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png.import b/assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png.import new file mode 100644 index 0000000..1acfb04 --- /dev/null +++ b/assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cyfq0x0h2qeof" +path="res://.godot/imported/Pink_Monster_Walk+Attack_6.png-78419941eebf906a7eea98871d563b0e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png" +dest_files=["res://.godot/imported/Pink_Monster_Walk+Attack_6.png-78419941eebf906a7eea98871d563b0e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/characters/pink/Pink_Monster_Walk_6.png b/assets/sprites/characters/pink/Pink_Monster_Walk_6.png new file mode 100644 index 0000000000000000000000000000000000000000..30b1fc1254356388b8e25ce5100f8c25ea1956f6 GIT binary patch literal 1426 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_CgBeH`yR~lzQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{;ELn2Bde0{8v^KVPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP; zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb4mAah@XWlF z{PJQ=upVDuE6=>*lEl2^R8JRMC7>yKnVBh8t}bpa&ZfrZj&24fhK8<|jwTkC&Soy= zMo#9&#+Hs|FugAM$)&lec_lEtDG0q5IQ4>(Lv8`kW|!2W%(B!Jx1#)91+cfRGI6`b z6sLJmy(zfeVun+%KF~4xpvXmvY?u%*1%a6GqzmN06Mt$RFvS-ElQu&}`5a)j5DM@K zalPU2yMp`spMU>YB<;U+egg`hbyea9Qfwtbe!>4ifMN6gCHol|7%zFcIEGZ*dJ}QF z=!gQ(WW&Gz$Uw;(XYW0+{U9m=b&gm>oTVD5C6|NoNA1)xU@ke=fQDB)~sa* zL^!sXt`XV&IoZuXJm6VyBkwxKEbcE)jvGE$cOZ&sVUOfNy*dldHJ6>GjhPGi?dPy$ zwFdXL|50U>{_#*{!z0P7e{5x!-v04W^@Gs9M)`G2{~7G1E;MPWF0iO-n44G*)ceNt z5?iDBhr^x;$_#gx>;`F@KlzK^hHm*drr-9WGvA)bk9#J^(PLH@{yFs0`9^~}~Q z=8A?JJPu_4t*GJWW&8BAErHWTRAbNEfM0B0Ra$#JQtw4psycAYxo*Gr*Kykht24*g z-b(Q>t}(vyibHMRtJML_vigiIPNDh|4|sQ7n-OuqEqQo`OXjbY8&%;pdK foF*v);UxRrdwSpZes8B%U7DGmn+5>P zRF?HRlT*nzHNpNr_NuR$I7drO+92z+YlRpT9I}RC#j{$tjxA^F&MwXaFmc&6o3v@H zs5bF0H+ogm?rqqL z!!6u|`B-HH9;OzIy-hz-V~y+cs_dSa5eNG&bVK8gl4=??SR^5aGM`P^f|!9hg%{;) zPRU(|64Q}z14%+kP*gds3KAR~jztTdb+xXS2eFu@acxQi6`^jo%XiZ}30p{16a@(q zlB5*#NJU#dwc?Z?%?}xL9ND28P?z{HVYJprhiV+l^r!?c7}5ICpiQh{D7FG5@|!G77QJ3bd_EZ+d@jL#)K7K>Oi zC>icw!ycO01|`?g>M~`t{Mct3AF|cn|5*FVp2f-9idniQRKM&WJbCu!!koZtsizm0 zn3$yXYU7X{@axrVgBegoFPQP?%)`Pg5WxFKzYjmzyS=@s?bD}}OV1DNZ#yq`AMC7} f_iueTyf=9koH-93w@&;_GbpH(s`|^t+uMHt)1o=F literal 0 HcmV?d00001 diff --git a/assets/sprites/objects/objects.png.import b/assets/sprites/characters/pink/Rock1.png.import similarity index 68% rename from assets/sprites/objects/objects.png.import rename to assets/sprites/characters/pink/Rock1.png.import index 7813e92..6b48308 100644 --- a/assets/sprites/objects/objects.png.import +++ b/assets/sprites/characters/pink/Rock1.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dpumvq8hurh2k" -path="res://.godot/imported/objects.png-d2d4a55345a132e9a8ff3dd2e52d6372.ctex" +uid="uid://b82eovf1htp4i" +path="res://.godot/imported/Rock1.png-ba89fc56a2a75848b726a2843d6128b3.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/sprites/objects/objects.png" -dest_files=["res://.godot/imported/objects.png-d2d4a55345a132e9a8ff3dd2e52d6372.ctex"] +source_file="res://assets/sprites/characters/pink/Rock1.png" +dest_files=["res://.godot/imported/Rock1.png-ba89fc56a2a75848b726a2843d6128b3.ctex"] [params] diff --git a/assets/sprites/characters/pink/Rock2.png b/assets/sprites/characters/pink/Rock2.png new file mode 100644 index 0000000000000000000000000000000000000000..0167f1bc2e151df514205aff9cf5840f4806cec5 GIT binary patch literal 1039 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 diff --git a/assets/sprites/characters/skeleton.png b/assets/sprites/characters/skeleton.png deleted file mode 100644 index 14a64b498143a3ae82ca0499763fcf9a49db9cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20099 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

^$@{UW~=S9Ewlk^OYdHcHOd zlyZ+~t#a}xn)?BP5eUv-IJ+78y_^Udrlp|;@s?oUq4G5Fy<+g}MK-&Jff7&SVkOaq)s_9{2w$#!62 z!@^Otni|2(s3sl;cS>h!#vFXx;7$}6#pVo^*&BeHdeg4ST?c!4u$t}1L%6N#3;sG; z-?7^1IoD5K&~g{}57;R}A?uTXs>=+wy~{EazdjIW`DM&!qLAxpe$VmZdaC{{x?JPN zHw6q~7k)NvO2-9$`dHINzH^bAAZ}UMc*wX@;_)n%o7AP70>#!;!<0i5n7=t9E=Cnc zou=L2Q=()cWDT8Casc;*8s3h70a!hFiam#clAgA1SLh0lmk`mUwBPYqD+7P*B)D0E zN#Vp(2hY+ykrMCj8|ZlbLj!WY-g;2JQ$MV`)!n@=yNUBgdOyY0m`JY=ewK28CdXT07QJz>iv3XS~lwe}}Kh~Y{Zu@@V>S0f*c7|QauAhu5**pTGz1>RItiR{9 z|CR5xca~vG*+f&OB+7pf{bCppedpxl?dn<pD|>f)4dwWo!I?=nPu+4H|Nq(F?pwC!t9YY}{prWWq1%Ms+}`RZ7i-|U>u6Qo>s`-QTBx`A%HZ6l$Rx#m zVy8db=dTg@{cYXz-Lgl^mDVo!t8$}{PsjCl*v4Mr_ETIZf_AL60c{%r8wA~7SP&HW ztyHE(KuElgQS+GzkBnI3qWSHMUiW(~+MVF=LwIrF$;}%>U$JeuyEoV=?AGQ>+LKdv si^tYa^vD68t~N=m5A_JPWB>VmK7EM&99+T*JXMat)78&qol`;+0F*^U3jhEB diff --git a/assets/sprites/characters/skeleton_swordless.png b/assets/sprites/characters/skeleton_swordless.png deleted file mode 100644 index db7640e9a043a60f372648721f3e43adc4348f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18162 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 diff --git a/assets/sprites/characters/slime.png b/assets/sprites/characters/slime.png deleted file mode 100644 index 5de1aed32cf4b7e2d841ef8641ecf28ee506f62f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10007 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 diff --git a/assets/sprites/objects/chest_01.png b/assets/sprites/objects/chest_01.png deleted file mode 100644 index 5f9051e2a44bbd4231ad9e5f77e87b5c5e9bce2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmV-E0>S->P)Px$_(?=TR9J=Ol|M@(K^Vq=kyHi?5s8HCb!(`o!Gn)ks_cYn;`#$r|{PJuz*3;g` z|E#!l?Pz*qQEud`Ex=K!#dmVBG#`kC?I5IqFdA0e{2A_19H2O~cR0XV$v z@NJgsXU2nE(oK&m`5?~9=3Zs}mEZpJ^UDC_r^kcfYXgke>r#|6km&-@N)RBY$e9`K zCqF%2chJT`r9Ly-&&I*I7eXk2Q2-#5sw74yL4Y?!jVLt0mZ)~ntP%+@Oq-Y8QvfW} z_H7QT8>TH%pen;>4b=#*F8tD(RZjwd`+U0BQ`NY-`cpl;=r!hR>Wu&dxVKAUhGp6$ zhv(SeSp#5fVixOYN%-&W(g%N7fC9krR*|;8NdR82wzx&aG)_pe`MqvTQ%ZYTM_3Z{g9Kw1$B$>?#0KM6qxCd}t1yD|;3qbMi z@A{$_&}RVcrxN8vx(JB*x~k5n5r5scz}UpB)`DJuaw_})ekR@dVf=vrg5Kq-Y8HPB zKsk{v+D{+(^b diff --git a/assets/sprites/objects/chest_02.png b/assets/sprites/objects/chest_02.png deleted file mode 100644 index a98db11688d99cb7d1ec8e48f1f288c0ef21fd0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 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 igulcnc*fU2T~LWSJx;Qs-+EVT;& diff --git a/assets/sprites/objects/rock_in_water_01-sheet.png b/assets/sprites/objects/rock_in_water_01-sheet.png deleted file mode 100644 index abda63a6e90615dfd589a982a6a8764a30cc22ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmVPx$w@E}nR9J=Wm$6F2P!xv$wB4$xXdp|44v9&YY9_(W;1v1-X3^P25PXO{gya>Z zv*6e%AVLxnq=QSqrHgYMuH4?nsdoHj% zn^G8Ma83RC{ueK+jSN+%6vAupg(;2TulxA`rvub)mpQAx00000NkvXXu0mjfKFjnY diff --git a/assets/sprites/objects/rock_in_water_01-sheet.png.import b/assets/sprites/objects/rock_in_water_01-sheet.png.import deleted file mode 100644 index 2aed9ea..0000000 --- a/assets/sprites/objects/rock_in_water_01-sheet.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bemqlej7o4t4n" -path="res://.godot/imported/rock_in_water_01-sheet.png-3620ca531764c61ef4f85db7254bee8b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/objects/rock_in_water_01-sheet.png" -dest_files=["res://.godot/imported/rock_in_water_01-sheet.png-3620ca531764c61ef4f85db7254bee8b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/objects/rock_in_water_01.png b/assets/sprites/objects/rock_in_water_01.png deleted file mode 100644 index 84f3985f92ade70eab3cd30e9097b45229d628dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmV-m0iXVfP)Px$8c9S!R49>^lCes}KoExitm&>fI09>tgB)bpq`2c!rB4}rf;3)jBMA2pc>>Gp zEqw@sLck^$l2##wh=sOlF)+8c7Z8VmoeBRp^KV$^qP)j{!Zn-yuH-tp-2MUVcjeXf z4S=>Ex~68>B88;}phKzR1b`nzeh`^!4}cXqlztEaP;p{0g2rcgaf+!p;cd(uHnjaP zTI)~($nt`iv+viJEH88@-`+nt0nEH}k^*?D9u{i3P|L@=TVYK)ZQFjx@}g_%BTMAL zWZHh9OPpy6KulJiGfi2| yh1HUJvhrLyzMj*ck7|@L)!@fR%&2J=Q1J`woPm$+VtrNs0000Px$B1uF+R49>^lCf%pKoEw1&2=`yA#4f{JlJKmI5{hOOUV=10QUFiY!&0r5YV~+`Ya5fMZQBo7UUW@;WQjbC znYJG&`3o_&q0mxL8an#*#d>petzA>|NW&oj%S{2y7VAydR4Pi?<=Dn}iRGqF?AcE2 zS#HW|E{vAOgWi%8dtc8ffS-?Q%COXlJ@DhBhOlYSDa9`+je*!1#|jJp0000Px$9!W$&R49>^Qn5J+!GLGik=NOK7_O z&pwg@KwfC_9DTpN=7o-=c>nk^1>nR#B`JWH<NN2;guGnY_fL-YOpUPx$8A(JzR49>^k}+$8P!Pxe&$wj?6u}M-hWb#41e{zlIZ8f(OZP5?LO+C`pkwxq z`49~)2rfo+O+iR09qQV4xNtt6DW!+to&0`x?^LnQxA;$(YO&wsoCnwUe+c_cesg;V zpl-XSDp=M`L!$xso-M-&fa3;^8>nLkK?~or9X9|V!$@-sYM-RpSd(GI)7Tj%)NOY* z_dOdxl4j&gzFrSWn)#mn_WsEifD7xAPyjExr@36r<>LAA!O%L5%ew87G;6AYN^upg zXaOSB!>B=mn8m|)AXIJ4DD5p~@o8xu*Hi^_>IoT`E-kUnw|#m1{@AH+bBt2^>C!Uk x)|W9m3~?|G{+Gx(yDkHinA)ShJpP7K`~X?+c{)_y;e`MI002ovPDHLkV1ikSnuGuV diff --git a/assets/sprites/objects/rock_in_water_04.png.import b/assets/sprites/objects/rock_in_water_04.png.import deleted file mode 100644 index c922398..0000000 --- a/assets/sprites/objects/rock_in_water_04.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dbn6gtau8l7mt" -path="res://.godot/imported/rock_in_water_04.png-56d7d053f05d3af179eabd417470e2d9.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/objects/rock_in_water_04.png" -dest_files=["res://.godot/imported/rock_in_water_04.png-56d7d053f05d3af179eabd417470e2d9.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/objects/rock_in_water_05.png b/assets/sprites/objects/rock_in_water_05.png deleted file mode 100644 index 5ce6c883bc324b09cb51e0b45e5229f295d22e07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 358 zcmV-s0h#`ZP)Px$AW1|)R49>^k+Dj|KoExi#9(vHfdpcaB8OR$E$(2eG&ZITKEXEE+X#XWkteW{ z>n(i<4~4)rxsbFf0YxmlRxL&*%SI4?w%FPEznR%x=d`@Vf8?3Lc2)8|U0(hHY**#k z`2~Qc>)X0w*dkra4IqgFAr*iyO2a5M+YW%GBo4wT1t6rd7?;ZDg&t!06-(0y?rE%DFeO~Cct|)Yl zYam zzBgI;yG;gwF*dQtO>&8&Q!~LPx$B1uF+R49>^lCf%pKoEw1&2=`yA#4f{JlJKmI5{hOOUV=10QUFiY!&0r5YV~+`Ya5fMZQBo7UUW@;WQjbC znYJG&`3o_&q0mxL8an#*#d>petzA>|NW&oj%S{2y7VAydR4Pi?<=Dn}iRGqF?AcE2 zS#HW|E{vAOgWi%8dtc8ffS-?Q%COXlJ@DhBhOlYSDa9`+je*!1#|jJp0000O(=gp#^2qb zi+SfNiEUS~qnrE5G~PVeljVTb8+==EQ0}>Lc7*fwF*zM=u0*`!q(IWQyE-2^!~WqX z##I;&NvDo%Cy$$%w?E5@^g5MnlQS^?XMCzl@@fzD+_|#NkTj}5Le{@<06b_*^>b2T zB37ipRiwC3xO_%|JHb31@FqVvczv|~umA1OZ*LxKnsD&G4$iUQ<_uvY3}fRZ+Ll+O zP(IW42CT9NBD>`tV_SLt`lNkL*^KWozRU*MS|)LP7Wf#92|dnci*oDX0Tj-KBt1$w z%M;Y@VxYg{Dt;oLgoUvYa)`!G4)R>?#S7Gsk3TuoYkQevF?KEEg<<-NgCAxHK;8XL z#Iz_~W{VYoxQf&&6Q;naGTQe$VPDAIH}WAUXmKu+DYy&`67x0Ku-yK4EIy=W zNX+c*Gt9IfB-;qqgRsNix@!vnCx6@jFgn~xvHR*Hp>rC|u(f_};4 zftmV>6m}tRR7nqCG>2R0O9Iwwg=n5t2cj1P5>^*W>nZX9+nw4 zE*CTK_~yAN3T-;z*=sde{=_^ww_=5?>Xo~A66$jE<7vyET5fJF(dxwq|Blba59vz= zbfn6LZ%EV0%qfU8a(C*8fhLVOZ)|3W-$?Zq;ln(){*!vpehj)`R`iEiz+W~z9@&|04_r;$tls#uZj&%&9Q;K z0L}M~xG7obHA?t^BE?&#Nl*)IRKC}O3(TLTJ-S4Z-%P)XjyI6w+yMOHJFofHd^5c+ z&$9z4<*A?rQ8S89IP$x@WV6=irIqh{A;=9yeb!(+geqvB89>z=8UNfK=j}_+U;0O> z)kVHAA*_GLnI@kP2dFs?(kVdDX3xO7MG4uW7nfB3N@u|OUrLW-lx`-jtbg)MX{%#w zNB$QhF5y>@0m)jkK=yC@nH*0nAT_EsjK>pm=qCq9RT~`;?3@gbxjbdlQN>ZH=lL+u zw3Z2@G0>zca~gEE(DyOx4$;-V#lghI$o+rX_*{-j?*OOJcaXPKYAgwJr8DC}i8Bey zd(2A%Xwz&GGc*ZssASWDsYl3yQTgvh0#7mnB9qA{#6qEWobqnP;noGL>b-RAiDHYA zxoIFtPV*tJatbzq7}@QZZnD?C)}(Z$VncI7iy==&pBKonwzafOq?V_e2f7s6$nM0w zo2UoOtrY785#1MaK?iP6AD!I$e#Aq>RXi&AUg3mt|I1y%FrKuPtcjn;*`yRXm~kHMBZ(Dvt{Gp7Oo2g%BzvxZNVie0l^QpaWM0-nce zmmADD-iWwt@p^f9`QEO6cD5`_6Z&C&#{e$YbieQ|TV$MN8{1&S=&LMASjFd}bG>MG zMT+|4)7bB)nJOF38YkI4TPA(xzqig#Q<$^2S`LrmnV1Hzvw|{rjx={EnIt7_nQ#;B zZYN@ls31>@xsr*1RpkPwiJ~{7)GGtz3p5JSScRGsi0-6 z2Oe+?zp7yi*^>wg1C;$m)-$qF1 zZWekmll}y0>fPGhf&LZ8$2`U=DWR+tO!vZ*Jfi>etrGC}HI=gQ6FNY9U(`DD`Bc!^ zJtzX+(H{j5F-oyXtg{QqS|XQ(bi#1;Z{~G1V=q7b_94HQ8Svzgo6wpd8B?oOzTJNH zsf#UylotsL+;R}%&K~2fl6B)CDZCW)I#`JP*m}VJ)$7?k3@&AytO~0FkFH5m1AA|D z%Z|)A5v)#eot{-7;7GS6A*=jsv$-#kE$Z)w!NE3Cp$v~1{~Q{O6V)S75Be)ZKr|G@ zICPpxLguTqY8(v$myuQT!G$gz?WIl~TkbrA7p%o|Yd6Q{G_iz0GjFRHhm)?A@H5En z_Zd}tm?IQL6aRl&a-+v06EEHWeVieHNY3QEZ0iSG)Syl?pfLQI(_dmhZ2we4j!)&B z5vPcIOq=lw0oT>K_pdQIRP!J!AI}3Xj2Wp&z_rSlxvNW(hdPD1vIctWhkCtZgZ*EV zd*A2i+0bX4-!Lr|fBT4tz8$lEx_LIJ<_`lD8((Xe0)RB-Us*5n7z{ht=(p{`=FzTa zGalrj#hq+x@lSr*;rZyJ#M{JF%#^;6(fosfpg{34qHc@T`jysG^CHlI~^T>&qcKoY!oQ8P9+ zeL-G#qJmc#o|Ppt;v25~3Xx8S~aqEK0`V=l04X1M z#B%eeyU4NQRpI)NA~66C<}O~yK0N(Y^%Q_cF-7OS0MK_uE?Fr9?GRO;M7o2S#RNA+ zZ#i@Lq_6Ztec)%LdJe)$^g4-EC4kx;Gd!~p8F0afjcWF8OB#;OWDqnaoUrAtG`f>#xa`gyc zJ(v)F^~jEnV&m;GBEH}uzy%%Xhig|R{*|3cM+lC)YSnwihS-DNSsvLihyDwc+oR(y zu1WR+46+UT*(faL6H`x3{v;@zY5x<+%IJx?iQxesM}QOvD={t1eYsdTeHiWeec-~q zIuORk`Fy&jhjePI!<{=;yFWgZRQK)Z;DUol#ttFH44a{|L>~Q(0|5c559ODFRduu^ zB*FXjDE^Naf=+L@qy4v(L<>SyiqYdHk|Jk*;sv1FKMcTXCX6FUnSu6B96kh(_Vt-= z!=%TzL{sN|;hTNLau+WdZ27JtrL~e`v7eCg3CaakU7StUJ!4(D;GR_b^g{6x1pzUn zjwnKWh;3FV&6YY5^M!5_d`+Jjn@H6#&_gW=LTAx8D)tJQNut2&KV2aZx*Aw{oyR-x zPtPl*DE!``*Cm;IN!aE#E}_Az@plkrj6kkC<@*FJ>|+_-S=tXuK5xnEEh;0DW*EA! ze}*MRS2G8>+Ucx5=%quM;*HgB3aX5P&?!}pSs&yq@1!GUC7ExpP1%z*dWlZhJ|3zc zPQk@`M8ouL4T`1Tj}8aE+XIQqEPtTa0`P8^5$Jzk-CrO&R14uX0(25BKN4}Z7GsQy zwds=PxK|)Yb^n~hlk@7bxrQ{6|B`2M9$55cF1**Nw?wK*)zMK7|87xITm!Y z_**G4&94GCH66mAHjE|I^iN{*c@tB9JFPR>akAtias@n`BQC>Eys23K z$5exOrURyL2Xonw2$osJF;1Jjr7$2*gLVOtfW$w^wj78z5P9~_u}fnnh?@xe_d*;5 zl5w=VI$PhU}3GKWv0 za9~A~{PjoHvt@sFq&!REWdfEZ9hxpKeHm{q~O7Uok%dd-upzJ_2Gu%C?o?$XK#nf{DNuPvjPQjhA z{CgZ|dCyn<7gF6)b2aPL>L^xLDIzFdtw9;kcfLN0;rl#DMrwBSS@;ZS-_0dUl%ChpEQ{_zG_`VA;;$1`Vq?ueS#*sqdr3-yq>Z`o3AY0}CZ1mDS zK>(d?emHD198b=?-)~Wjy?+tqgr$sC+X8I}jgWV9p%jmKShk zLhqix0%eUf_w$cf2;@{U4d3q57tbyIauw!|sln1PwQ8bGgGZFa5#0^4sj=G(%qHf1V*_$pWL_G?Wuwec$OA$lzxL3olX6ZEG6r zsow;AUs1A~0e|8ExtXxHVZfXDBhJ##u9LE%@_kUioaC@HUT#lc1ljVAVamwHe%{op zvNz3nEtR%o(0U204uQk{@iH7#=1G&Dpyi_E$Wc@mv-AgkKN1+6-^Mu{!K9@TC0V9=`eitZQrYjT%%W0E%EsWJY8S3;5U50y4KUZ=82}a=ZlT{ zaVt4DZAA;8(dy>2zv%mp6jtYlRQupFU!5n(#UCAcbba0`u_m~<<@o0qd#^v=od1%m znaz{`-jb4n;f&BwSj+rcuj}Q;ifwY*)^8}bKMH4n6-gD9dd1JQHK6#PgaZZOn)(bS zS&&RkQ|M->^+cR=s*UA4v7o%z!qOd>8x|mTcTwCRI~L|OFI!(TV}tM-fHq!D*fZOS z^4B|A$jakLQ0+e}S z1P1Ay44jKcF5B>#%AU%8aiIW0jx8hHdi2g@VCcZ;;|Q(3;2Ios6_jE4&rwdnS8#*hQq9(7oK)3AEO1j>gFu$_FBYHJ6U!&3&yk~ z)WH$L^7r*!VKRN{$;Tb~SRr|tq1sy++bQs7?nu_~h=7-s8_Z8Jvmacq`eXl6!Y*!R#%$XkYwCxn6}f6+7*odnz`OA7Gg~jXt74b1DUt z>|ox%{zJ2)4*vKBJxr(s4S29Twbr{rKH25p$5qKQHZFdvd<{#pR)DtA>Ve_;`$>Hg zTcq}Hwx(Gpwmk?x86?l~qC9*w&!}|pA`vI!TWHZ3@oq)YYq zI3dm0ehtu=)_C!FCYm{mQuzKEmEQ&hDlRSmZTPsZ&bER9*we%r&m6VU=#zV_x2IZ4M}5jH%O=Q_!G~O#AzrU=!Vr-6GNGkExyKwH{V9@XiBzQNI88#SO)wU6zTR91v8I;5D?<8m4wqxm& zOT;YgcDSu55VSRvSYm zuiZB@pSKm&j?*eg>Xqnk>x|6?V39!V%grPa^WEp>v<;AbG^(!o=j-4v_q4xsix+)! zd!zm%k9JK{BtR($6_aU9p1SJp_+%&ZZvA1UKNyk#f#o7_ELIlp0ha1$M>Lca&y!() za+Uc+UH}J-x=S}H6iu!^9MT((B)9F z&lmS}*5jV_-8erCW%Bu#`^lx8HG(BIY z(?$D|-Zb4%4PacX^!qt10R*H~&8jsouTAlw#SI zdShs-qcXqX&Qe~;vz^dt-o#5@Hnd@vQwn2HSalyrqAE%Ygl$m# zu4`E7o{z2j8y{aNK+Glz;ehxjrBa8_gzjtCy@{CXJy~3ew`|Yhq|A;}#epJE9y#YN z4PxWV;Q=l@wIlD@pblbWm;Pog$4yoft0O5_*>=L!`?4(A&s)UD1Spvxy-fHoR#+!N z^Z(wQ4~jbV_#sazi)EN{^D^%TCogaju9_P2DWm+;+e_~i;-%Fe9ZJqY*p8X((+*=% zt8S`O^;5*~d&r@8O^EH&#?N?&PL6aj1joV2m~&v=sQMe5rsziM(7_*+yo(FJj8a|0 zfcA*GM|>wCFR*Ij>##|7D7Ix5M2^2sLxm+78#~GSvG>0-WoI%`${@^<28hv1Znd z!_gcBrk}~u`&jHOIn(8ReMJ>i8K$sJ`W)A?&{y#KO5@MD6hn?vcuX2NM)ha<2HmV@ z_C>m9s|9R{+TIkik@};~ga2=vr=>gcyZ&Xc2PIxD&OzR8i=BweLV|SB5B<1F#5MGo^eXOuwD=X{+@?N9)T6{Dd+UF+HfxtA z3+aGUDWmd~9B_*%v&0Jlc!gHxi^n)hNZ?(BI z@(mAJueD~C&|^!jtR=ZYUqmZ( zI6#1**7jKb0tmUcRh7n=UHHzXG$6&s=Jr22nRGg<>kxDQAwQPV@bjHHIf2$c(IegT z!kzlPLMir(9fCDSL-8-BI9Y?Ql}qA6eD8E-8irJaHVMZsw7#xiAx?ZunNu1<1}`~u zbdo4+j+7MRQoKFmPl+eDY2?l*IcP8rCSnx|$9Kt0VS+wnT7FqIr#a4c#o1y^;ag7` ziGflC?8mmT|1bj&%w>_8aoW8_uG)&Y9k(m4(ksdlVccXazLx?t*Jr;xN>0-v#a1;l zz;$#aKyND+`N z#Fs$1ycL#n4JYC_PkyzGI4;^SIgk19XB+jeZA`^De(U=qc{y+DgNnWSNVx|;jik`z z``2GSa5Ph$|Ez4y-%V=Ldx^HsgfUbc3FG1Vs^29{bO97>ZENtqR{Y6Qua;lY(U#=* zmv}fg>s|+vGT>@wa?eF0YP@!Ae)l=0rx4^N>!x?8iMIE9Oi~FG8gF`}5LNfNB%|I_ zn`Ups_4nJ7J~3aDO|piy=I3}C|9$lm^G#+6BW_Ef;FD#>7d$jtlJJ2Q?rO~vW%$Gu z!!mQu(Wm~bpUo<@?*(r+ORYgW_upyI76;&UX~F%yHov|Sc>3DqbSM944C8Ve_rd;; z`#=0pZ+He*yfEC-IQ07so`~90}3DwI+u9@_}rwl-q(5$8rc!4xac-nU|a`*N5 zpU~qA*??1Qpz}v0xl|bT-Vs;d?R?o66N!p@TD+rrvDR66rx`NMSBm15RVBrZtUfsw z?nYQI?=|10Kv)x_7<6{;p9VKC&f^3A5pKYV|363sGsNn2&(rS~!oh2=ioUNl!6${) zm?K53Q~xBJ_Y+xF4v)cQ^&bCdongJ{tRyu*`K`@lw{h?ptsD+ehk=iBN`eP}Mqw<} zj6i2p=~ffO_2dY@)9;mHEUxIaro8%s1>gr46B~;P2bv)6> zqaV1+SgI%;8ufALa<>g{b}lv(KU#DUl#p z(#Mc8n~8WFX!iLsgyGUVC^k=A7;WFMLD~#Tyf)0F`bIX@QRpFH?WBW$wBx|+i#m8D zhpdP1)Oay3RuAq5*q-r%0aGFD0cbLkA>{h>Nr#Ofs0@#xbP^hMH!hv4p%ADlz(;Gkd zX!Rf#AGZ0WB|p+~V}4bFG;@RlTkpFMRPge|_^dYF5?!f2dBz)+cU>59ZLE5F(gkH1 zXky7ft(Wlu2q7n3)Ll{Sx#l1hy&|w)^+V-RLN^Ka+i4h`lFZkYvKoYl8CYm}B(Y~m0ycY+Whv~t>tEIx35#E(7`YFzNrpT@wb!n4aUmUq#9=8|!lBYCE>c4y&G z)kTHD)~3&R!h|O`+`It1Z#y@`&DmowClIrquzENeiuNIvJiE&bD9q2?3m#u$JQsS7 zUz(w7D$w@7v;a~%sKt_!hSv76=%16;`Y(s?H_|)Ql4;Y^x5>UKPf*SQ_W}3a2M{m-udMU zK%5}3^D;il)sJ|_=e;>$4apYvPoDEFidrwriS2R!&I+x=^{Ls;gb88ojp?riAp4Z> zzaBKT)ZCSs72c7TS2dVZJT}W(;6Im2x_WY&sxqDZfH{FZ0nUG!eSedC<@wCza^45b zl5a!Qg44G$S78%xtb>%xY;Qo}+ok*@;?e}EY))_%Ji`tlMO-K-?J+aC!p_6%dbk8J zE|-=r(H3zAxt_YtF)^vJz$yOYTVH}U+q(x}PSA9Fc@+2r{B?b(tK22CVBZq5UZLS4 z!uU#&{TD)AU?Jxo`IQ0niSA3fny`*hw<|6NAc4gd1@ajL)7&D_6_M_QD!wgXB;w-Og z?E<>qzEwPy1ZQ0%Aqf|I=NEO?X11Q&FF2v^!Cn79?-=8fcehv81e zN;FdWtsVbO-Sm;pakgC_;rMBainsY~jaNd0hq8A3tsCKG)}r+RLi?0u*nJco&2H%v9b#C}cdU?7Dw%&)!Ce^>qJ+Yj-+l5P)-`eI^_co#-uwM!EAUTBZ zifO$fx;IhNq4W+uRXWH>xt#Qxzs3OF!q;LNcQLp6nfmmh-UMtZ4<t)1O#|OOUrRasLM&cda&1v%1#|>t)vgC-N>Eo3Z3x=hRJWO;q>5J>_Ffh;~lUYl4hS1{95iB^suag0FcrtPHWX^k&A}O!j#mlr4YwC|OMjlvE$1>6jxcYJ5{qERBLz zXuMmE?KM;kj#>Lec11SUh9g(t?s_Po6QTZXe>V5YcApJR+h*r0%f6I7RkS#1+Ggte zKZDhDOA+@>l-D_Y*XC*<2C%azI=4KWeSPt={1mj=k7I?Xy&>lqO(1A38-o+@cESeZ zckV@Wb&buh8g+n?~Lnnb46SYdMhx z0Ig?P>ZOFHg{zi|-+CR}=bqByuD%zIx5nGms2Li3mw;JU#GEP>_a801X(k54#1f*z2mEkX7tr(iP}u$9N!?IRx6 zYwNgt<1VSBJz-W)a^R1nZk}9Jo;P0-?`|R4?cM9hC=6WtWPYV&aiJSb&%2a%#pY0v zG^|1Othcu}O;;~2GBJDdu$vz zcI?g{gBi*Qn45XNEEcM5BJBU?izN&{_#zwmb<7=M^0qBJziz*-XVa{ET>+hK*>-E4 zZ3Uk#fA~`Hf9kNK>dbArTsFWv7H6UAgnylzB;+VFSv420FMO5$>! zn2+#DcX9`vj)(`-w-Hp4FqhUP61>x|AL&g!=w;}0AS)gS4h2+=csk{@!^!ZiHhvnp!|DnJ7 z;mZWap?Z`DJBr4Wg$}KTWQCoQ+74H);69*tvb%-d{R(4~oBq_B4;e_oc6?TZi@N3% zI+lkvr7c@&^juUd!2U)9&3Q0-!79=mGN9(>`V3T zESW>xOikunDE}|1dtDnL_%cGZ6QR*g24u=sSJ#bh4?NuW$}nOJC#R)m{z)9C4)5Mg zf0`;p2X9w!s$+>({(UX3ruKrqyQ`RE>X~0ct})tA)YkPmURvvCzZxjTpog~$O_~J7 zzAkuj=}v|FxV$I*zAze`g;N1mg`hv4@VS-ZL|5B*%C{#O5Jkh_RlP%8V7Qz6Sa}o- zU6Yew8wfsuxc+*epG*DptW2jF>vHZ0Md{&+HheiFk6$C3CUm-Cg(aLcc6yHk=^TY% zWZXSpUYo%K9ytH#on&G*pv5rIGYL);j(b3KcG6KWRNE5J{@CGleEq?GEx!rAl5Hbw zQB=4Rw!K~Jx(1GlcOcPi?5n7BD0f_yvVY5wCp+TL`E<8|)Vja7On}EKiL!?PTQeNE z=k9#C_GbsX6Eh2Hh83t3W-nUhfsl(66n8G`N5SmR_7CA0p~U@(*j&&!WcYV&P;~zV z<1gX>l+U%>o}#l=`nMN0l2G>Ogzk8~9-VZAfx;}Y`>xt0!XE+Y3-<{hvESS3;4epr zMX}$hZO#eNRHc@0|Ie;p>~#eLif{vl_Dgpf;DP#)*WGtQey(WRy@lGjA>(6L$@8fO z7&ZcSq_&@3R5bS7NXbW~ZinMxjZ)e7_ZhHjG&D+$cLNQ7I%y)WIZN(fRVV`H>C&x+ zLZj2ZP17^;KDBo#9+4Z7!1YX4Ju6$EK13v5Z{gY(Skc?2Ve3%5S)|Gb-yqtRET z{#1^ku+rz2$ftWhI=}VUSty32T(bU1xtjXR|Gzy-Da8!M?oq&BaX@Pt_Is6rKjhqB z2QHdw=_& z_pirS_9EC2@mCD{wr3&MG`4UxP-v*&V9eP$t*wU#>TmTrTJZffFh|qr{GPXd4=JPm zn^WyP5KV=W5TWxzX?8lZ!{e{zJzpqQjmcD}NKaqQATRlED z5rNA}B23A6+*GUKZ+P>iAjj!^bUU7co$V5bu)+e%`rfLzBZ{g9Y#JD$vqrJ%Y4mKJ zh>gN5rfKPtgj|$93}ON&&Tadm-D2C1e-FL7IC|Rj9zvQrE!P)cH>qua2YqY$W&?D= zqqpM>7JQRiA$e+YQ-|8+RR*(d_NrwTS<{%`*Nj^s47xHk-c!Ok!Zogx3^^_d9uVwX z0A=jZ;y#$8Ul7dA)zTx;UC0(>%q{?Z|9E|NC>yMY|Gv>h4x^Ws)(_aOaKXRc{Xy+~ z8yX=Hrd?brFt*--Rk#8swpW{WV{j&ZLu$LEh<*o|6&Q~V;U#U;cL*VgpD2nlq%qi|U7Uts>$M7(Ki)^@eQHF#hUYgZr#=-JwVaOc?XAKDQmzR$=klO7#^*nvnPBLVi zVz>RKfOGVFCHAUE72j=k!j0nSdU(O375MtKOqyE#6B?b7bQi{N4q1YxPZbv0{TGgS z35JwG71j0g@rhXWEz{qn8kelKtF!ar=*8q<1B%Y>P{~sa+IA*Ho1ZG@7yXYFu z#A8B{V|s!(mHL2bvDq1>WyV#2R&I5G<^N^c`*Q4MfD6Lpcouww14x-&7Sw)Y>R)b( z7uC?yz&hDz5eyu0*?Y z&q{~+=bqzK%v0mpeqb(gUehw2XWOpMttR7C_xc@|xh|fB4g*0@^gJd{+Qq z%s#ID8uj)C1>n8<2b^ee?mB1t@TY^Y;=|IxVb5~W)o4u}1=q5u_hk0)9!B zVEX0Z(~<n_587Ppal*9ndLrEY2YXMYi`nseup14q1vh;kYudFBwCbj{G6nkm4)rv zEU_<$EiGF~5>(+3#*X&In4cgTtdd;$M3#3loqVF@wU!vM?504OOcsn(b8O6~9sH<+ zi0Lq>f|?oCn|YA-)wmY>M7}%tb;uttMV7NrhhVaeYr6N3L7N$mTUl5Xr39ie@DE%8 z+1to!N*@Epj{_^x^(sok(StHLWAY}ZE0ox$(nl5xkIeK6tC_7zd#YZ=7Tw0}FCePC zFE)0a4H^Ypmz?5Yu76lcmH(3(hUmM4CG83m=A)3|QVkg%AC33B+6`Yfq$4!G@D#fY zcJakjX@Y9H^!e?7QXdsEhNIpK5&ZSaDlX2xwTIwZ+N?(D9LXa5DgTRO1}dO9?q&Ab zAZ>`{ph!KAh5_jDpH3uU0uua~8k!XpRxaJsF$o0^RD;$YMrerQBdBc1ej{acbRc1I zhi3f<=UWVN62GeKe!B4lctDKMWyFFCKbkPr4?^tHs6rK(F(;5SAAM4IRhV$bIw)aE zPsuk)IDXPawx+*Pr_v+xxAM+e#ok`3K?QEr6_#c`SRHPbR~^$~+Kv#u4P__;U&*WZ z?7T1rCFsJX2$!y_albnuWi|3KW#_D5L-pML>^MD8OYmmrM11jC@8kEU6JSlfOKB;F z&ZK%pgz$l!x5&CnvLdJ?Vc_qovyG2V5E@mnp@TI971ft}gaj?L?fCQEvwc zUr~bdTlI7|2R|AdxYgf7ST$0?`zFf=i}}TpET(2|Hw-_p?PF^gw9?m!5)6En3oT&z z1BS}vvaG$cAhn^U&l1UF@P~(0BYEd4g^4|J90*B#BeubZHqYu{7^vzne8iri=}Xf5 zld90v4x(AdT?Kg`fv&ai=q!741+{tKgpR$F<{T``%6}@^00m^@cN+t9aaQ!%3byv_ zOb~5)o<5XN`?fZMoh;7q#h0GrZKqv})>8%Ue1*Qt=qdX&qxwIj!^MlwOM2r5C!|(j zgsbpbaDgOLCKmW?zuWfeg_^RGG$@oIB0{l%4zXjSIYd^z7f7;$1P>FjfH$Plr(@x? za;EBEwcOQh*?0}IH&$6^Np|An>7TWz6YJAl`@Y2V*K^~b%_xNs%c24Fa7tf z86g$apQ;m>m=c>i8uoIpq&}Zw@giZZ-~;BW%aY2R>nY16tFvWeJUy0ax&l7<{LA8f zsESigG+a|@u#DomuWj%L>Ejk;a1qpgX=zLcu;K`R!g5+aAG>evu9-#LAl!kHuPWMJ zI{Om$=SqVmJ`5PnT5QST z+w$N{_a0V$#GD%4aMHMiG8qv>->)h!L3NhEvS(uJ+#34%~TlBPY$QUh&!ijJ#Z%CsbUh zx@7}J)Cd&=0a&p5g&amECBxaIv-73O@b5P-PrDd{O66b2K{~65*=K~I?X48JTK@+;|jrG;P20AW+Jbr?#{k*1V3lq2|Pi5#k}Q1g$BN@|)3 zof!_6mOv-vZ4w#KmK0ds8Qlp{=dIo`JA%KNV^8Pe`w2F89JNWEqr}UH4~Qy;WlT|c z^8=qLB!vo*`0tyZ^e3z(;!Wz~g+h>a@dj*c2dJoq-nz*YQg1Q^UQ5B|>_2G>_}Cho zIKg`x47mLP2lsJG4=Y;eQix`ra4OXOidn})av8uMWd^5iEp=6%z6`d2{SN(ml6&jF zdOlbIW(OXdP<58|eEQeFBe?iOtuL>@-BJ6d`q#J*Dj^4V2)7PGtST zPF#>|0Gc;Ar3@2X&ksE$Og#H(im$(J?kD(m92VSK{G4Xzct{yRCbKto9q2b!_&eD; z78_`0=@fWZ3_oI#?wJ%L%n27<4W9_2IuutY&494&0$3EiSOakwCd|f>!>M+a1M~4o zcFp#Ne(g5(d%9h8=&9VxJAbu^$wc4z^n?hPM4Y@il15xxTs>9k1rXu$pP^K!la_>$ zaV(nEl#uw4SzHUgE{#+xV`6X)BbY~;Mmy_7qTZu8F9>17P=$j)P7BNFCR zjj|QKhSwmV+|{XLsN^VEcNnqfa0= z{uLtKOXo!X-=4aiU(}whywmOyphNeOQJe?2iZx&2@-lxy2SY~$(zjG5AS{rmk-?Ik zd0(d8&uQnrV^{Xqg{F9fs|X`Axj7#LuDj=H&^bk0@bA^cYQVc}l z;0C_^-h22foRA+1baBj?dB>Kbr%KYskPcyAjq;N^XoDALOJ>Y6`mGYP{=d8G)!8x( zk-J3QCLw6Dk@;vs~}KAt3i{ z^>es(xWXF04MJD^LdY{>{`z7((uc}(t53rd^-iBNazJ8pM!%P@NV`+YFmnOJ55H*W zY)Zh`Yoc;)nMC+Vb)_LCZRJN7?OS4r9UR%DK1y{0k zItfNq{H4Lh5xWTkmv>{+yOrS;Z{SO@|k3XjWGc& zHc?zDflvp+J-}7={Oro}wGX>qM_zqniWxF`I-Xn9JK)+n^lbHHvh~DkDi%)y3$$GJWs$w7Kr}Y4vc$s9kGbN+KSiNK<>k$>NG6kh?tdU$IsEa_K`6* zC8_x`zbRvB+(Zh=n(TEK%qynWW+Hs6>o&I>u7n;)u(;3wMr~$~M{aqw_2zkeQe(72 zttze&0iAAx**yDWpCOt0L-?r}{Oo$il?9HG;L;o3;~{pbW}UlQqLl-XQkxXM7#kB4 zi-Ef|i~q}oZQkt;6mRv2fBWloB1nOIH)-&|Gqaav&z;Ux`oYh+;DS7`MDj(&T;tB= z&Aray(zcNu*^W2qeWmj81Jna0W2 zTC8d(RJOx^4{Xo~@jF?da#efN?xb)@B@5 z@E8K(^ais~sF7AZnr_r!j&o+$XzFCnN4zong8&EYvjKi3q$ z*Z6DFex*n}i1&J9obcMihXGi`|2Sd14ocU=SB8<}`8xZJ*=dtK{DQov3or$#U4MdRVd38Y;z@L)lD)rewL$eJ}KIn>j z6xAUr!sV9D8|s6>`Yx>~)>vQk@#LeLz)IsJ#%$t9m|$?Wx<>sA7y1j`;lur|3gU6< zx-_>uP#|bC=*?8oqts)|*|hS~OV$9>c%tQ25aREWh_I`m{1PJh-Y*qBvC4#nn4{-t zaJ|WZt>-uk9K5f%gslzU-9Ml^+fNv2pZkYCL^ede?OGa%5>ZJG?uiBi9-^i#(6e_2 z#}*+v{Z2?vVX09a;pug0g_^~-sL-3rrPzH6vNp%W=nli0-D&CROWDHrgO_J%oeel? z=wEv9v!i{Ott#+c6|@(GS)G`3txD>d+?JaYsXt%;d8gT-NKoS45Yy_S5O$h?D$wz$ zld-NDGgDTZPD%U9dwmHbS41B7Sn@6SFmAg$l5fMfxxB*1L`R;2N_6|jczv%@am-Y<<#+ei z{cUU0^}B$Ti-s;f90fbv;*3{%+{~6n|A^sDX9aKX0u*BuRg|!)0fIQ-lratenKwKZ zD#a?uW)p73IkVyboqzhP&g{3lp&M0O!uq!71(;eJDpG-ZL6P_vWP%Ja>xg;XrHeT` zn=ef#o{U9?h{^{T?a$g~EQ}AI{;F|}k1ctnKqspcITo-Ak^06CMD>oeA)56eJ9XFe z0$vn=(6(tDyrcBE6FTf~u1eRT0*?Zq>nP$LfhD8ltmBYYsL^A8J@(waY~)AhYU636 zQqCkSnaXXaV0|~byD;Rr!7)PQb)Ko+aP7EZ7No9q^Jd@`4%7t~sux5r5r2sPY}3zOkcDL{m{lgm`$Q>>vwVXoM!VqgGC-8^noS5<{$sxgfroN_7xh=Ew$QRM53qVtc ziu8#sl#>0&{{?U#%9)ea8)~NijLK$;|x)wMt@P!Y(i^`*3Trk4Ilm* zGa4oHfTio}*fX2>4i6aGf@(=6@aL;?E}43$+uqjFo>AD(fQ8+`F|70EywX2^`93z= zteWZ_mdv^AG(5Q$XN+TX*Eq*jd-YRHO--5u#0g)osum*$5}y*4YCzb>dm&oBFg7ia z%hXZwQ&J~BRMkpGVne*{Xd7V@Wr_F!807y(M*G0+HK=AJB+hyfdnUyGD8?NxS zJV}6;spxyJ5FriEDtDQhRnOH!O`h);b05@%q-U|<`(_;{YAn?Cs6pB(>!?z%3Sm_b zQ6e^HlKxnr6=t{o!as;+R=idV^}bS;l)HWQiQwzWse+Z}=b&(9 zlZfBb*Dmbgf%PeS6ByPJ*_*tvRe4O-Inl>v5kEPSH9^7+6399)`5j+9^aw20Rj~Qa zSdzCgwdeKod_=~b7XuYE>sGRs5v~xsHX7>?AI}?Z%HG}h!P%P`^xE`0Js(tuS9d7?O*(w)QlQCO5s;=bOSi~hCK-y7ll zmt%ByKHfqsK02kx?<3>u7@MB3H#&DAQJ|^W*$*V*-wk}xya&8hZ`0MRxD%)P?f4~K z5eaczu_4a+^z_Z1^m;lcZDIdrSu1egaSb&=SareAVsUNvd*d8l;YFkfoFbuH^_o;j zRu2aEYkx#0A8k4`2BIOKDLZ303cG|l2K9&W5))EU?SINoSqw9CqoYn)kNEUkg{*{M zUWBITfV^ z7La_NF7=^IG1dOWDP5r(0ztzeX<2gV46EE0Z_3fISX*oMq^Dj7$!u7|-H5NhDqW8) z39|Dx!qj)gls5w-N`pt9RRHCO@lZ8Y5df;$I}=o9DI`3%8pjE>*{Onk!|*AdjTTOT z+*+6*HDWdlOZ4`2?NQjsi2+`*Ztpj(5R#uPGtKQWnsPIG5yc~93ch8l*JsOg?Ra10 zJ3g5xT3HSybY&u)I?iXtgaa-#65`ZEf(?F=C(@vYukI=`Vq~DZJ$r^B9NOC*B~$~9 zpZpCg>u)JTmBoM1a}8Kz@N&<*f1r@{w2!eF!ptJyrASg}gA|SoDP!f{t zyYjx@_q*qeJI4L%jFT~xl)cwldzHE7n)8{@G|5eLPlxzEs>kCoJSCK?lRcHPjLklD zx7$=8wrpfsNAlhwzA`=MVi?mpU2GnKB8T{o-}_Rci2&8fLjqc ztga#ZxMG1Q=wP4B-TF5(p%0lLxPFHD4S}=i#$m+qgyLr83O`b`Qpa*2g5c3C;+%Ic z`YvU}FEO(KnA}{F+iM=#zPugc+&{V%+&vJj z$8YUJ6B~UAPtaDjGnH`ll(><{X8epNC|s^;b#wIhguZVDYHqLEipDW_zKgN4OR-)p*DMt%f4lsrs-GcMk0A1#Smy714CijUqwW zBKS;v_a;rGZ)(&AN6968m?gqs*iDfN6MZHKkr{UVIh{uu4$5jO#mhv|`dlZb_wf0Y zjPBH}(3*Q+G*42pEMYya0i8$}zYy<69XECk(YJ2YGak7oP3+CjS~iMW*PPHZA5q2+ z_^t|?_Y;^}PQ3!>sJ;*zcA=O1j=-6qzhke6geqi8Egnd!p5(w#0U3>doO0UpJS$#C^cHhhlw zr>;w|t^aFEWi%WV8VM;Y5mpf&i0j88Hm)n1>Mb7%;FSYs^xIm(Sf~}kD;s9?rG24W zLf}I5(MlEG{&vxoupawFOzv*+aOyCyA0St%nlzpD>|Jsw3CH_Pv=D=g$=6+I^ZOw~ zD}=#27^yCJ|Ki0awBOvJC+H*m-uC+pGnumtIZf}Nym{p1ij(kkLkb7LxmQoL+`0 zn!NkJ%?Ue=EOgoKABh8-`N_E z%b%CbUYcKeRZ$bXcinq??eplL7R#M0FZc7BOR~;bf3)gS7W=u5v;C|;^6mqOOs(EC zC$=W_{Ar0g@wfg{_z#bsf<(5=7E%7L8pKoJtXE()_wPn^HBTx-D~~@{Bx!MnJG6N! zsE5_K7`=FP|Ek0b8JZ8*Wp)*^=B?=Me!~6>b3SPUoj-z}9u_0^ z2>8VUOL*S2>k>Bg2``2R(+yOwQQ+j|;6uh39Y1sB<+hep3e(7l3-69~kk{8+==QgX z*6uwJQ3zVZB!KWpU?`gU91YM>sRLBQLqB{%n-&47o{%$VC{FycU%&5XM3ig48OnW* zK8hCFl79O4)!!a|7oe1@S$kHy1yMRGH>fZQs>4s}{x{}8^Yd{iWeSh_n zLjv$X7+R7>v;}_tyoIo$550W{Z^&HQrik3QQ(b<7IPIsyS#aYK0_^u2TTecp*o!P- zcQR9!paoPv+4LNDFt}LIL#vivr>SHW-UJG_^u$DG8{t+qhf{l&b^2| zIM9<`X&mxtdyb@bJ+R^c&X+d3HyCcf3FKT;M9cUN{-X!!#NjT_VnQEzr$JAqi2cvx zK5r2vi+yFATPWqb4|ahF-)J9jEppk5&h+YIbZT>~*-O$7l%ZO0M?(q)ie+l_?74Rw zU!{BIO}_1$iC>mPVS|}#cxABG+URRZz?e#J6dKCviG3bHTosLIK) zz4GT$(O1$Nf{`hg2TA3kRuuqVjy4TuF(D8TDPS%PTJYa8^$h(gSn6J=`4e>7ElaV9 z*TLd@VR^#c1>c&`p^sJtte#9=A!g#J93V6=YMr|DVX{<7dm&o*T|5zvk!xbp@U3th z?bBH!~`S?Tm*02!XeWH4Zj#09Ir-Xd+jde5XtSi;=3halB- zQN>u@Hj2UV(>4RMpl$LXSX{ExhsiOR%eHibD+2w*Ec~1hZ9|I^BxA}GhiYD<9HV@F zVvjQ^Dz9k8=#|zP(R);W<+0>ozw2r{)Wj5A~(k))=1Q5j+kqpva|riIR3Kmgen_N=FROo`3c3-EFTtW@rp4v9lSI&vNpQigwf`i${r%%4fZG|1guvGh7c86+~g&rl?;_J;su81i0q*h>B(iRmu=Ra*i ze_^5oz}*fCF&Pi8xXx0;d}XwkQ6U+@3~AoBr;v_v^>YA+Fma^F0FYBSo8BY`{!?Z1 zcxp-a&^k#C@ErhW0mm=6TjQ&OJ-|mXEn*N0U$a;OngBz5MQ&r zixhFA-Dr1@S_!%-hk+{7P>j#hMfszovlH{EK%_vuyf>puxJAj!3t`18dw@0OCngPV z6`(f|P^9^C2iJl02Ub-Ujl~M_vMAb#%dIsMPK9)|m*MFpO#aI8KHeMbu4?1tr{OtXs4?a@aBBiRZFI{NHGZo+q}YE9(8&>WT~uyfzaS7`kgxmloZB5e z&FZ6N4NarM6tU3zgus_Q&U$cCQJ3YIv2JPVBblGh&qOFDA&jyIMtak%%@YMbf3#f) z*-y+&Tar>=9+Iz&-*C}E;>NC~s1w89_l%V0%GGN%K%ET!KGDEFB z5!vMhqgz#>80OH?jc;ECuey<0*`W;^71sl6nq(qLGisJV!;B==K}VdWTu;R zyR=ukxe~c{BwXZviI>+)?$?}~z;%)X^B3mBS@W8G!xrAbqfM3hzcA@d41h=RhPeL7 z<-Nnu{(D2YiHS%mqO>~Nwin}M9CEwNG?@FCsHS3v{UgYMRNfKoDa>rUnF$cwq6c4| zxyCwMNq+E^Z7CPec&33XS6Ww`+WN=~#a>p2o~aL#g1Uba7~BlYysit`-^e&mt9udB zyfu?a_Cf;#10=Nkn%T(x6KUUq?zuc9)TL=k$7sd`y-;>mrD@*VQE=u%H0--vtMy{7 zTs;&2#W8xdp<}3as(lgQpnyNpxBXyHFnIDD>q8a@da;P}g__TM-#_RUS;Qg0ew$UR zujcqrA|TfpP!pWSJMuvCBQ8IZ=GA~z(qkEg(m+R?Vu3moOe_$QDM+wH+m>=C_ORQUN6ZGXhS4lyqKzVT#ZcGI zNBbw|F71G+BAr8iycpJtIL`u^0{-|}2<9H`{j`cOS$8xdL zl9Gn?pVz_d%7*EWNYmwIe|zpWz{wj^3DO%f{J4Tg7dXg)-s8DfQvE@UV`3cTUBt02 zn-hYn*X~o{mP`O(Slk!0rK`LT2BE{PF>)2nwQeNhtLeUbcrv0@py%E-_(-!Vwu8*5v$W| zCu4{KFotVSC8ZL3DuI~|SldqE$Q)ii zuV^X%))qez5c>C=IUSP$6+~2DHX=71@sxoZjf~jF8DO z

    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 zΝ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 literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/skeleton_swordless.png.import b/assets/sprites/tilesets/Sprites/foreground_trees.png.import similarity index 65% rename from assets/sprites/characters/skeleton_swordless.png.import rename to assets/sprites/tilesets/Sprites/foreground_trees.png.import index 66321ee..f797321 100644 --- a/assets/sprites/characters/skeleton_swordless.png.import +++ b/assets/sprites/tilesets/Sprites/foreground_trees.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dd4x5oeym48l5" -path="res://.godot/imported/skeleton_swordless.png-95add0301a56da4e5c440a853795f167.ctex" +uid="uid://bjxmo55titd4x" +path="res://.godot/imported/foreground_trees.png-82ac9c507bbc53c68ff4d089c72143af.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/sprites/characters/skeleton_swordless.png" -dest_files=["res://.godot/imported/skeleton_swordless.png-95add0301a56da4e5c440a853795f167.ctex"] +source_file="res://assets/sprites/tilesets/Sprites/foreground_trees.png" +dest_files=["res://.godot/imported/foreground_trees.png-82ac9c507bbc53c68ff4d089c72143af.ctex"] [params] diff --git a/assets/sprites/tilesets/Sprites/hexedforest_props.png b/assets/sprites/tilesets/Sprites/hexedforest_props.png new file mode 100644 index 0000000000000000000000000000000000000000..b18baaf5a384dcdad54f45894621669e0dccdfbe GIT binary patch literal 176787 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

    nn2q+>*r^t{}(v2Y9jYtk5Fmw&f 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ό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

    *+mUd7{h95}WRYPB! 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 MO-j{sd>;l$(6jJ!O%J>6j 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

    NQ;=J7bxUAoLd8;FVOj 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

    w=iZ+B~sJ!BZ<{+Xj+s9xy@? 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 G;Qs)^tk^#Q literal 0 HcmV?d00001 diff --git a/assets/ui/items/RA_Item_Icons_Background.png.import b/assets/ui/items/RA_Item_Icons_Background.png.import new file mode 100644 index 0000000..465a7c2 --- /dev/null +++ b/assets/ui/items/RA_Item_Icons_Background.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://g6dn4ukiy60l" +path="res://.godot/imported/RA_Item_Icons_Background.png-9ba88c6492d283edcfdac3592d021c4a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ui/items/RA_Item_Icons_Background.png" +dest_files=["res://.godot/imported/RA_Item_Icons_Background.png-9ba88c6492d283edcfdac3592d021c4a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/components/FreeCameraComponent.tscn b/components/FreeCameraComponent.tscn new file mode 100644 index 0000000..84227bf --- /dev/null +++ b/components/FreeCameraComponent.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3 uid="uid://4ajjlg37ssja"] + +[ext_resource type="Script" uid="uid://dy08nb2aotcf7" path="res://components/scripts/free_camera_component.gd" id="1_ang1s"] +[ext_resource type="Script" uid="uid://ox4lxm83ciu" path="res://components/scripts/free_camera_game_camera_component.gd" id="2_3cl4c"] + +[node name="FreeCameraComponent" type="Node2D"] +script = ExtResource("1_ang1s") + +[node name="GameCamera" type="Camera2D" parent="."] +script = ExtResource("2_3cl4c") +key = false +edge = true +wheel = false diff --git a/components/scripts/free_camera_component.gd b/components/scripts/free_camera_component.gd new file mode 100644 index 0000000..1de5d3e --- /dev/null +++ b/components/scripts/free_camera_component.gd @@ -0,0 +1,17 @@ +extends Node2D +class_name FreeCameraComponent + +@onready var camera: GameCamera = $GameCamera + +func _ready() -> void: + var map_size_x: int = Global.TILE_SIZE * (Global.ROOM_WIDTH * Global.GRID_WIDTH) + var map_size_y: int = Global.TILE_SIZE * (Global.ROOM_HEIGHT * Global.GRID_HEIGHT) + + Log.pr("Map size: ", map_size_x, map_size_y) + + camera.set_limit(SIDE_LEFT, -100) + camera.set_limit(SIDE_TOP, -100) + camera.set_limit(SIDE_RIGHT, map_size_x + 100) + camera.set_limit(SIDE_BOTTOM, map_size_y + 100) + + pass diff --git a/components/scripts/free_camera_component.gd.uid b/components/scripts/free_camera_component.gd.uid new file mode 100644 index 0000000..f0bba64 --- /dev/null +++ b/components/scripts/free_camera_component.gd.uid @@ -0,0 +1 @@ +uid://dy08nb2aotcf7 diff --git a/components/scripts/free_camera_game_camera_component.gd b/components/scripts/free_camera_game_camera_component.gd new file mode 100644 index 0000000..c6a2577 --- /dev/null +++ b/components/scripts/free_camera_game_camera_component.gd @@ -0,0 +1,118 @@ +extends Camera2D +class_name GameCamera + +@export var key: bool = true +@export var drag: bool = true +@export var edge: bool = false +@export var wheel: bool = true + +@export var zoom_in_limit: float = 2.5 # The max vector2 zoom value + +@export var camera_speed: int = 450 # Camera speed in px/s +@export var camera_margin: int = 50 # Pixels around edge of screen where the mouse will start moving the camera + +# Initial zoom value taken from Editor. +var camera_zoom: Vector2 = zoom + +const camera_zoom_speed = Vector2(0.5, 0.5) +var camera_movement: Vector2 = Vector2.ZERO +var _prev_mouse_pos: Vector2 = Vector2.ZERO + +# INPUTS + +# Right mouse button was or is pressed. +var __rmbk: bool = false +# Move camera by keys: left, top, right, bottom. +var __keys: Array[bool] = [false, false, false, false] + +func _ready() -> void: + set_drag_horizontal_enabled(false) + set_drag_vertical_enabled(false) + set_position_smoothing_enabled(true) + set_position_smoothing_speed(4) + +func _physics_process(delta: float) -> void: + # Move camera by keys defined in InputMap (ui_left/top/right/bottom). + if key: + if __keys[0]: + camera_movement.x -= camera_speed * delta + if __keys[1]: + camera_movement.y -= camera_speed * delta + if __keys[2]: + camera_movement.x += camera_speed * delta + if __keys[3]: + camera_movement.y += camera_speed * delta + + # Move camera by mouse, when it's on the margin (defined by camera_margin). + if edge: + var rec: Rect2 = get_viewport().get_visible_rect() + var v: Vector2 = get_local_mouse_position() + rec.size / 2 + if rec.size.x - v.x <= camera_margin: + camera_movement.x += camera_speed * delta + if v.x <= camera_margin: + camera_movement.x -= camera_speed * delta + if rec.size.y - v.y <= camera_margin: + camera_movement.y += camera_speed * delta + if v.y <= camera_margin: + camera_movement.y -= camera_speed * delta + + # When RMB is pressed, move camera by difference of mouse position + if drag and __rmbk: + camera_movement = _prev_mouse_pos - get_local_mouse_position() + + # If this movement would take us out of clamp we don't want to do it: + var position_change: Vector2 = camera_movement * get_zoom() + + if (position.x + position_change.x) < limit_left or \ + (position.x + position_change.x) > limit_right: + camera_movement.x = 0 + + if (position.y + position_change.y) < limit_top or \ + (position.y + position_change.y) > limit_bottom: + camera_movement.y = 0 + + if camera_movement.y != 0 or camera_movement.x != 0: + # Update position of the camera. + position += camera_movement * get_zoom() + + # Set camera movement to zero, update old mouse position. + camera_movement = Vector2(0, 0) + _prev_mouse_pos = get_local_mouse_position() + +func _unhandled_input(event: InputEvent) -> void: + if event is InputEventMouseButton: + var mouse_event: InputEventMouseButton = event as InputEventMouseButton + if drag and \ + mouse_event.button_index == MOUSE_BUTTON_RIGHT: + # Control by right mouse button. + if mouse_event.pressed: __rmbk = true + else: __rmbk = false + # Check if mouse wheel was used. Not handled by InputMap! + if wheel: + if mouse_event.button_index == MOUSE_BUTTON_WHEEL_DOWN and \ + camera_zoom.x - camera_zoom_speed.x > 0 and \ + camera_zoom.y - camera_zoom_speed.y > 0: + camera_zoom -= camera_zoom_speed + set_zoom(camera_zoom) + if mouse_event.button_index == MOUSE_BUTTON_WHEEL_UP and \ + camera_zoom.x + camera_zoom_speed.x < zoom_in_limit and \ + camera_zoom.y + camera_zoom_speed.y < zoom_in_limit: + camera_zoom += camera_zoom_speed + set_zoom(camera_zoom) + # Control by keyboard handled by InpuMap. + if event.is_action_pressed("ui_left"): + __keys[0] = true + if event.is_action_pressed("ui_up"): + __keys[1] = true + if event.is_action_pressed("ui_right"): + __keys[2] = true + if event.is_action_pressed("ui_down"): + __keys[3] = true + if event.is_action_released("ui_left"): + __keys[0] = false + if event.is_action_released("ui_up"): + __keys[1] = false + if event.is_action_released("ui_right"): + __keys[2] = false + if event.is_action_released("ui_down"): + __keys[3] = false diff --git a/components/scripts/free_camera_game_camera_component.gd.uid b/components/scripts/free_camera_game_camera_component.gd.uid new file mode 100644 index 0000000..ed61a8e --- /dev/null +++ b/components/scripts/free_camera_game_camera_component.gd.uid @@ -0,0 +1 @@ +uid://ox4lxm83ciu diff --git a/map/Map.tscn b/map/Map.tscn new file mode 100644 index 0000000..b4071fe --- /dev/null +++ b/map/Map.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://cfkusqucsap26"] + +[ext_resource type="Script" uid="uid://begwu0icmrxyw" path="res://map/map.gd" id="1_l804v"] +[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="2_3nv2f"] +[ext_resource type="PackedScene" uid="uid://bo5aw2cad3akl" path="res://player/player.tscn" id="5_3nv2f"] + +[node name="Map" type="Node2D"] +script = ExtResource("1_l804v") + +[node name="Ground" type="TileMapLayer" parent="."] +tile_set = ExtResource("2_3nv2f") + +[node name="Water" type="TileMapLayer" parent="."] +tile_set = ExtResource("2_3nv2f") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_set = ExtResource("2_3nv2f") + +[node name="Player" parent="." instance=ExtResource("5_3nv2f")] diff --git a/map/map.gd b/map/map.gd new file mode 100644 index 0000000..d473480 --- /dev/null +++ b/map/map.gd @@ -0,0 +1,105 @@ +extends Node2D + +## MAP VARIABLES +var GRID_WIDTH = Global.GRID_WIDTH +var GRID_HEIGHT = Global.GRID_HEIGHT +var EMPTY = Global.MAP_EMPTY +var PATH = Global.MAP_PATH +var START = Global.MAP_START +var FINISH = Global.MAP_FINISH +var UP_CELL = Global.MAP_UP_CELL + +## MAP LAYERS +var ground: TileMapLayer +var water: TileMapLayer +var walls: TileMapLayer +var scatter: TileMapLayer +var cells: Array + +## MAP +var map: Array + +var map_width: int +var map_height: int + +func _ready() -> void: + Log.pr("Level ready") + + map_width = Global.GRID_WIDTH * Global.ROOM_WIDTH + map_height = Global.GRID_HEIGHT * Global.ROOM_HEIGHT + + ground = $Ground + water = $Water + #walls = $Walls + scatter = $Scatter + + cells = CoordUtil.all_cells(Vector2i(-1, -1), Vector2i(map_width + 1, map_height + 1)) + + #RNG.set_seed(123456789) + Log.pr(RNG.get_seed()) + Log.pr(RNG.randf()) + Log.pr(RNG.randf()) + Log.pr(RNG.randf()) + Log.pr(RNG.randf()) + #RNG.set_seed(123456789) + Log.pr(RNG.get_seed()) + Log.pr(RNG.randf()) + Log.pr(RNG.randf()) + Log.pr(RNG.randf()) + Log.pr(RNG.randf()) + generateMap() + +func generateMap() -> void: + Log.pr("Generating map") + + var map_generator = MapGenerator.new() + map_generator.generate_map() + map_generator.print_map() + + map = map_generator.get_map() + Log.pr(map) + + drawGround() + drawPerimiter() + populateMapCells() + +func drawGround() -> void: + Log.pr("Drawing ground") + ground.clear() + ground.set_cells_terrain_connect(cells, 0, 0, false) + +func drawPerimiter() -> void: + Log.pr("Drawing perimeter") + var perimeter_cells: Array = CoordUtil.perimeter_cells(Vector2i(0, 0), Vector2i(map_width - 1, map_height - 1), false, 2) + water.set_cells_terrain_connect(perimeter_cells, 0, 1, false) + +func populateMapCells() -> void: + # Loop through the map and check which type of cell it is + Log.pr("Populating map cells") + for y in range(GRID_HEIGHT): + for x in range(GRID_WIDTH): + var cell_value = map[y][x] + + var scene = null + + match cell_value: + EMPTY: + scene = SceneSelector.get_random_scene("res://mapgen/layout/misc") + Log.pr("Empty cell ", y, x, scene) + PATH: + scene = SceneSelector.get_random_scene("res://mapgen/layout/path") + Log.pr("Path cell", y, x, scene) + START: + scene = SceneSelector.get_random_scene("res://mapgen/layout/start") + Log.pr("Start cell", y, x, scene) + FINISH: + scene = SceneSelector.get_random_scene("res://mapgen/layout/finish") + Log.pr("Finish cell", y, x, scene) + UP_CELL: + scene = SceneSelector.get_random_scene("res://mapgen/layout/link") + Log.pr("Up cell", y, x, scene) + + MapBuilder.copy_tilemap_to_target(scene, water, "Water", Vector2i(x, y)) + MapBuilder.copy_tilemap_to_target(scene, scatter, "Scatter", Vector2i(x, y)) + #walls.set_cells_terrain_connect(cells, 0, 0, true) + MapBuilder.redraw_terrain(cells, water, 0, 1) diff --git a/map/map.gd.uid b/map/map.gd.uid new file mode 100644 index 0000000..24d32b5 --- /dev/null +++ b/map/map.gd.uid @@ -0,0 +1 @@ +uid://begwu0icmrxyw diff --git a/mapgen/layout/finish/001.tscn b/mapgen/layout/finish/001.tscn new file mode 100644 index 0000000..ea6f636 --- /dev/null +++ b/mapgen/layout/finish/001.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=4 uid="uid://bojsp6ifotdwm"] + +[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="1_xrr0o"] + +[node name="Finish-001" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAA8AAAADAAIAAAAAAA4AAAADAAIAAAAAAA0AAAADAAIAAAAAAAwAAAADAAIAAAAAAAsAAAADAAIAAAAAAAoAAAADAAIAAAAAAAkAAAADAAIAAAAAAAgAAAADAAIAAAAAAAcAAAADAAIAAAAAAAYAAAADAAIAAAAAAAUAAAADAAIAAAAAAAQAAAADAAIAAAAAAAMAAAADAAIAAAAAAAIAAAADAAIAAAAAAAEAAAADAAIAAAAAAAAAAAADAAIAAAAJAAAAAAADAAIAAAAIAAAAAAADAAIAAAAHAAAAAAADAAIAAAAGAAAAAAADAAIAAAAFAAAAAAADAAIAAAAEAAAAAAADAAIAAAADAAAAAAADAAIAAAACAAAAAAADAAIAAAABAAAAAAADAAIAAAATAAAAAAADAAIAAAASAAAAAAADAAIAAAARAAAAAAADAAIAAAAQAAAAAAADAAIAAAAPAAAAAAADAAIAAAAOAAAAAAADAAIAAAANAAAAAAADAAIAAAAMAAAAAAADAAIAAAALAAAAAAADAAIAAAAKAAAAAAADAAIAAAATAA8AAAADAAIAAAATAA4AAAADAAIAAAATAA0AAAADAAIAAAATAAwAAAADAAIAAAATAAsAAAADAAIAAAATAAoAAAADAAIAAAATAAkAAAADAAIAAAATAAgAAAADAAIAAAATAAcAAAADAAIAAAATAAYAAAADAAIAAAATAAUAAAADAAIAAAATAAQAAAADAAIAAAATAAMAAAADAAIAAAATAAIAAAADAAIAAAATAAEAAAADAAIAAAASAA8AAAADAAIAAAASAA4AAAADAAIAAAASAA0AAAADAAIAAAASAAwAAAADAAIAAAASAAsAAAADAAIAAAASAAoAAAADAAIAAAASAAkAAAADAAIAAAASAAgAAAADAAIAAAASAAcAAAADAAIAAAASAAYAAAADAAIAAAASAAUAAAADAAIAAAASAAQAAAADAAIAAAASAAMAAAADAAIAAAASAAIAAAADAAIAAAASAAEAAAADAAIAAAARAA8AAAADAAIAAAARAA4AAAADAAIAAAARAA0AAAADAAIAAAARAAwAAAADAAIAAAARAAsAAAADAAIAAAARAAoAAAADAAIAAAARAAkAAAADAAIAAAARAAgAAAADAAIAAAARAAcAAAADAAIAAAARAAYAAAADAAIAAAARAAUAAAADAAIAAAARAAQAAAADAAIAAAARAAMAAAADAAIAAAARAAIAAAADAAIAAAARAAEAAAADAAIAAAAQAA8AAAADAAIAAAAQAA4AAAADAAIAAAAQAA0AAAADAAIAAAAQAAwAAAADAAIAAAAQAAsAAAADAAIAAAAQAAoAAAADAAIAAAAQAAkAAAADAAIAAAAQAAgAAAADAAIAAAAQAAcAAAADAAIAAAAQAAYAAAADAAIAAAAQAAUAAAADAAIAAAAQAAQAAAADAAIAAAAQAAMAAAADAAIAAAAQAAIAAAADAAIAAAAQAAEAAAADAAIAAAAPAA8AAAADAAIAAAAPAA4AAAADAAIAAAAPAA0AAAADAAIAAAAPAAwAAAADAAIAAAAPAAsAAAADAAIAAAAPAAoAAAADAAIAAAAPAAkAAAADAAIAAAAPAAgAAAADAAIAAAAPAAcAAAADAAIAAAAPAAYAAAADAAIAAAAPAAUAAAADAAIAAAAPAAQAAAADAAIAAAAPAAMAAAADAAIAAAAPAAIAAAADAAIAAAAPAAEAAAADAAIAAAAOAA8AAAADAAIAAAAOAA4AAAADAAIAAAAOAA0AAAADAAIAAAAOAAwAAAADAAIAAAAOAAsAAAADAAIAAAAOAAoAAAADAAIAAAAOAAkAAAADAAIAAAAOAAgAAAADAAIAAAAOAAcAAAADAAIAAAAOAAYAAAADAAIAAAAOAAUAAAADAAIAAAAOAAQAAAADAAIAAAAOAAMAAAADAAIAAAAOAAIAAAADAAIAAAAOAAEAAAADAAIAAAANAA8AAAADAAIAAAANAA4AAAADAAIAAAANAA0AAAADAAIAAAANAAwAAAADAAIAAAANAAsAAAADAAIAAAANAAoAAAADAAIAAAANAAkAAAADAAIAAAANAAgAAAADAAIAAAANAAcAAAADAAIAAAANAAYAAAADAAIAAAANAAUAAAADAAIAAAANAAQAAAADAAIAAAANAAMAAAADAAIAAAANAAIAAAADAAIAAAANAAEAAAADAAIAAAAMAA8AAAADAAIAAAAMAA4AAAADAAIAAAAMAA0AAAADAAIAAAAMAAwAAAADAAIAAAAMAAsAAAADAAIAAAAMAAoAAAADAAIAAAAMAAkAAAADAAIAAAAMAAgAAAADAAIAAAAMAAcAAAADAAIAAAAMAAYAAAADAAIAAAAMAAUAAAADAAIAAAAMAAQAAAADAAIAAAAMAAMAAAADAAIAAAAMAAIAAAADAAIAAAAMAAEAAAADAAIAAAALAA8AAAADAAIAAAALAA4AAAADAAIAAAALAA0AAAADAAIAAAALAAwAAAADAAIAAAALAAsAAAADAAIAAAALAAoAAAADAAIAAAALAAkAAAADAAIAAAALAAgAAAADAAIAAAALAAcAAAADAAIAAAALAAYAAAADAAIAAAALAAUAAAADAAIAAAALAAQAAAADAAIAAAALAAMAAAADAAIAAAALAAIAAAADAAIAAAALAAEAAAADAAIAAAAKAA8AAAADAAIAAAAKAA4AAAADAAIAAAAKAA0AAAADAAIAAAAKAAwAAAADAAIAAAAKAAsAAAADAAIAAAAKAAoAAAADAAIAAAAKAAkAAAADAAIAAAAKAAgAAAADAAIAAAAKAAcAAAADAAIAAAAKAAYAAAADAAIAAAAKAAUAAAADAAIAAAAKAAQAAAADAAIAAAAKAAMAAAADAAIAAAAKAAIAAAADAAIAAAAKAAEAAAADAAIAAAAJAA8AAAADAAIAAAAJAA4AAAADAAIAAAAJAA0AAAADAAIAAAAJAAwAAAADAAIAAAAJAAsAAAADAAIAAAAJAAoAAAADAAIAAAAJAAkAAAADAAIAAAAJAAgAAAADAAIAAAAJAAcAAAADAAIAAAAJAAYAAAADAAIAAAAJAAUAAAADAAIAAAAJAAQAAAADAAIAAAAJAAMAAAADAAIAAAAJAAIAAAADAAIAAAAJAAEAAAADAAIAAAAIAA8AAAADAAIAAAAIAA4AAAADAAIAAAAIAA0AAAADAAIAAAAIAAwAAAADAAIAAAAIAAsAAAADAAIAAAAIAAoAAAADAAIAAAAIAAkAAAADAAIAAAAIAAgAAAADAAIAAAAIAAcAAAADAAIAAAAIAAYAAAADAAIAAAAIAAUAAAADAAIAAAAIAAQAAAADAAIAAAAIAAMAAAADAAIAAAAIAAIAAAADAAIAAAAIAAEAAAADAAIAAAAHAA8AAAADAAIAAAAHAA4AAAADAAIAAAAHAA0AAAADAAIAAAAHAAwAAAADAAIAAAAHAAsAAAADAAIAAAAHAAoAAAADAAIAAAAHAAkAAAADAAIAAAAHAAgAAAADAAIAAAAHAAcAAAADAAIAAAAHAAYAAAADAAIAAAAHAAUAAAADAAIAAAAHAAQAAAADAAIAAAAHAAMAAAADAAIAAAAHAAIAAAADAAIAAAAHAAEAAAADAAIAAAAGAA8AAAADAAIAAAAGAA4AAAADAAIAAAAGAA0AAAADAAIAAAAGAAwAAAADAAIAAAAGAAsAAAADAAIAAAAGAAoAAAADAAIAAAAGAAkAAAADAAIAAAAGAAgAAAADAAIAAAAGAAcAAAADAAIAAAAGAAYAAAADAAIAAAAGAAUAAAADAAIAAAAGAAQAAAADAAIAAAAGAAMAAAADAAIAAAAGAAIAAAADAAIAAAAGAAEAAAADAAIAAAAFAA8AAAADAAIAAAAFAA4AAAADAAIAAAAFAA0AAAADAAIAAAAFAAwAAAADAAIAAAAFAAsAAAADAAIAAAAFAAoAAAADAAIAAAAFAAkAAAADAAIAAAAFAAgAAAADAAIAAAAFAAcAAAADAAIAAAAFAAYAAAADAAIAAAAFAAUAAAADAAIAAAAFAAQAAAADAAIAAAAFAAMAAAADAAIAAAAFAAIAAAADAAIAAAAFAAEAAAADAAIAAAAEAA8AAAADAAIAAAAEAA4AAAADAAIAAAAEAA0AAAADAAIAAAAEAAwAAAADAAIAAAAEAAsAAAADAAIAAAAEAAoAAAADAAIAAAAEAAkAAAADAAIAAAAEAAgAAAADAAIAAAAEAAcAAAADAAIAAAAEAAYAAAADAAIAAAAEAAUAAAADAAIAAAAEAAQAAAADAAIAAAAEAAMAAAADAAIAAAAEAAIAAAADAAIAAAAEAAEAAAADAAIAAAADAA8AAAADAAIAAAADAA4AAAADAAIAAAADAA0AAAADAAIAAAADAAwAAAADAAIAAAADAAsAAAADAAIAAAADAAoAAAADAAIAAAADAAkAAAADAAIAAAADAAgAAAADAAIAAAADAAcAAAADAAIAAAADAAYAAAADAAIAAAADAAUAAAADAAIAAAADAAQAAAADAAIAAAADAAMAAAADAAIAAAADAAIAAAADAAIAAAADAAEAAAADAAIAAAACAA8AAAADAAIAAAACAA4AAAADAAIAAAACAA0AAAADAAIAAAACAAwAAAADAAIAAAACAAsAAAADAAIAAAACAAoAAAADAAIAAAACAAkAAAADAAIAAAACAAgAAAADAAIAAAACAAcAAAADAAIAAAACAAYAAAADAAIAAAACAAUAAAADAAIAAAACAAQAAAADAAIAAAACAAMAAAADAAIAAAACAAIAAAADAAIAAAACAAEAAAADAAIAAAABAA8AAAADAAIAAAABAA4AAAADAAIAAAABAA0AAAADAAIAAAABAAwAAAADAAIAAAABAAsAAAADAAIAAAABAAoAAAADAAIAAAABAAkAAAADAAIAAAABAAgAAAADAAIAAAABAAcAAAADAAIAAAABAAYAAAADAAIAAAABAAUAAAADAAIAAAABAAQAAAADAAIAAAABAAMAAAADAAIAAAABAAIAAAADAAIAAAABAAEAAAADAAIAAAA=") +tile_set = ExtResource("1_xrr0o") + +[node name="Water" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAEAAEAAAAMAAIAAAAEAAAAAAAMAAAAAAADAAEAAAALAAIAAAADAAAAAAALAAAAAAACAAEAAAALAAIAAAACAAAAAAALAAAAAAABAAEAAAAOAAEAAAABAAAAAAALAAAAAAAAAAEAAAAKAAEAAAAAAAAAAAAKAAAAAAABAAMAAAAMAAIAAAABAAIAAAAMAAEAAAAAAAMAAAAKAAIAAAAAAAIAAAAKAAEAAAATAAEAAAAMAAEAAAATAAAAAAAMAAAAAAASAAEAAAANAAEAAAASAAAAAAALAAAAAAARAAEAAAALAAIAAAARAAAAAAALAAAAAAAQAAEAAAAKAAIAAAAQAAAAAAAKAAAAAAATAAMAAAAMAAIAAAATAAIAAAAMAAEAAAASAAMAAAAKAAIAAAASAAIAAAAKAAEAAAATAA8AAAAMAAIAAAATAA4AAAAMAAEAAAASAA8AAAALAAIAAAASAA4AAAANAAAAAAARAA8AAAALAAIAAAARAA4AAAALAAAAAAAQAA8AAAAKAAIAAAAQAA4AAAAKAAAAAAATAA0AAAAMAAAAAAASAA0AAAAKAAAAAAADAA8AAAAMAAIAAAADAA4AAAAMAAAAAAACAA8AAAALAAIAAAACAA4AAAALAAAAAAABAA8AAAALAAIAAAABAA4AAAAOAAAAAAAAAA8AAAAKAAIAAAAAAA4AAAAKAAEAAAABAA0AAAAMAAEAAAABAAwAAAAMAAAAAAAAAA0AAAAKAAEAAAAAAAwAAAAKAAAAAAAKAAQAAAAMAAIAAAAIAAQAAAALAAIAAAAHAAQAAAALAAIAAAAGAAQAAAAOAAEAAAAGAAsAAAAMAAIAAAAGAAoAAAAMAAEAAAAGAAkAAAAMAAEAAAAGAAgAAAAOAAEAAAAGAAcAAAAOAAAAAAAGAAYAAAAMAAEAAAAGAAUAAAAMAAEAAAAJAAgAAAAMAAIAAAAIAAgAAAALAAIAAAAHAAgAAAALAAIAAAAKAAMAAAAMAAAAAAAJAAMAAAALAAAAAAAIAAMAAAALAAAAAAAHAAMAAAALAAAAAAAGAAMAAAALAAAAAAAFAAMAAAAKAAAAAAAFAAsAAAAKAAIAAAAFAAoAAAAKAAEAAAAFAAkAAAAKAAEAAAAFAAgAAAAKAAEAAAAFAAcAAAAKAAEAAAAFAAYAAAAKAAEAAAAFAAUAAAAKAAEAAAAFAAQAAAAKAAEAAAAIAAcAAAALAAAAAAAHAAcAAAALAAAAAAAJAAcAAAAMAAAAAAAJAAQAAAALAAIAAAAMAAsAAAAMAAIAAAAMAAoAAAAMAAEAAAAMAAkAAAAMAAEAAAAMAAgAAAAMAAEAAAAMAAcAAAAMAAAAAAALAAsAAAAKAAIAAAALAAoAAAAKAAEAAAALAAkAAAAKAAEAAAALAAgAAAAKAAEAAAALAAcAAAAKAAAAAAAPAAsAAAAMAAIAAAAPAAoAAAAMAAEAAAAPAAkAAAAOAAEAAAAPAAgAAAALAAAAAAAOAAsAAAAKAAIAAAAOAAoAAAAKAAEAAAAOAAkAAAAKAAEAAAAOAAgAAAAKAAAAAAARAAkAAAANAAEAAAARAAgAAAALAAEAAAAQAAkAAAALAAIAAAAQAAgAAAANAAAAAAASAAoAAAAMAAEAAAASAAkAAAAMAAEAAAASAAgAAAAMAAEAAAARAAoAAAAKAAEAAAASAAsAAAAMAAIAAAARAAsAAAAKAAIAAAASAAcAAAAMAAAAAAARAAcAAAALAAAAAAAQAAcAAAAKAAAAAAAMAAUAAAAKAAIAAAAMAAQAAAAKAAAAAAANAAQAAAAMAAAAAAANAAUAAAAMAAIAAAA=") +tile_set = ExtResource("1_xrr0o") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAEAAMAEwADAAEAAAAFAAMAEwAEAAEAAAA=") +tile_set = ExtResource("1_xrr0o") diff --git a/mapgen/layout/link/001.tscn b/mapgen/layout/link/001.tscn new file mode 100644 index 0000000..ff7e06f --- /dev/null +++ b/mapgen/layout/link/001.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=2 format=4 uid="uid://cn5l7ev6eesln"] + +[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="1_8ayb0"] + +[node name="Link-001" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAAAAAAADAAIAAAAAAAEAAAADAAIAAAAAAAIAAAADAAIAAAAAAAMAAAADAAIAAAAAAAQAAAADAAIAAAAAAAUAAAADAAIAAAAAAAYAAAADAAIAAAAAAAcAAAADAAIAAAAAAAgAAAADAAIAAAAAAAkAAAADAAIAAAAAAAoAAAADAAIAAAAAAAsAAAADAAIAAAAAAAwAAAADAAIAAAAAAA0AAAADAAIAAAAAAA4AAAADAAIAAAAAAA8AAAADAAIAAAABAAAAAAADAAIAAAABAAEAAAADAAIAAAABAAIAAAADAAIAAAABAAMAAAADAAIAAAABAAQAAAADAAIAAAABAAUAAAADAAIAAAABAAYAAAADAAIAAAABAAcAAAADAAIAAAABAAgAAAADAAIAAAABAAkAAAADAAIAAAABAAoAAAADAAIAAAABAAsAAAADAAIAAAABAAwAAAADAAIAAAABAA0AAAADAAIAAAABAA4AAAADAAIAAAABAA8AAAADAAIAAAACAAAAAAADAAIAAAACAAEAAAADAAIAAAACAAIAAAADAAIAAAACAAMAAAADAAIAAAACAAQAAAADAAIAAAACAAUAAAADAAIAAAACAAYAAAADAAIAAAACAAcAAAADAAIAAAACAAgAAAADAAIAAAACAAkAAAADAAIAAAACAAoAAAADAAIAAAACAAsAAAADAAIAAAACAAwAAAADAAIAAAACAA0AAAADAAIAAAACAA4AAAADAAIAAAACAA8AAAADAAIAAAADAAAAAAADAAIAAAADAAEAAAADAAIAAAADAAIAAAADAAIAAAADAAMAAAADAAIAAAADAAQAAAADAAIAAAADAAUAAAADAAIAAAADAAYAAAADAAIAAAADAAcAAAADAAIAAAADAAgAAAADAAIAAAADAAkAAAADAAIAAAADAAoAAAADAAIAAAADAAsAAAADAAIAAAADAAwAAAADAAIAAAADAA0AAAADAAIAAAADAA4AAAADAAIAAAADAA8AAAADAAIAAAAEAAAAAAADAAIAAAAEAAEAAAADAAIAAAAEAAIAAAADAAIAAAAEAAMAAAADAAIAAAAEAAQAAAADAAIAAAAEAAUAAAADAAIAAAAEAAYAAAADAAIAAAAEAAcAAAADAAIAAAAEAAgAAAADAAIAAAAEAAkAAAADAAIAAAAEAAoAAAADAAIAAAAEAAsAAAADAAIAAAAEAAwAAAADAAIAAAAEAA0AAAADAAIAAAAEAA4AAAADAAIAAAAEAA8AAAADAAIAAAAFAAAAAAADAAIAAAAFAAEAAAADAAIAAAAFAAIAAAADAAIAAAAFAAMAAAADAAIAAAAFAAQAAAADAAIAAAAFAAUAAAADAAIAAAAFAAYAAAADAAIAAAAFAAcAAAADAAIAAAAFAAgAAAADAAIAAAAFAAkAAAADAAIAAAAFAAoAAAADAAIAAAAFAAsAAAADAAIAAAAFAAwAAAADAAIAAAAFAA0AAAADAAIAAAAFAA4AAAADAAIAAAAFAA8AAAADAAIAAAAGAAAAAAADAAIAAAAGAAEAAAADAAIAAAAGAAIAAAADAAIAAAAGAAMAAAADAAIAAAAGAAQAAAADAAIAAAAGAAUAAAADAAIAAAAGAAYAAAADAAIAAAAGAAcAAAADAAIAAAAGAAgAAAADAAIAAAAGAAkAAAADAAIAAAAGAAoAAAADAAIAAAAGAAsAAAADAAIAAAAGAAwAAAADAAIAAAAGAA0AAAADAAIAAAAGAA4AAAADAAIAAAAGAA8AAAADAAIAAAAHAAAAAAADAAIAAAAHAAEAAAADAAIAAAAHAAIAAAADAAIAAAAHAAMAAAADAAIAAAAHAAQAAAADAAIAAAAHAAUAAAADAAIAAAAHAAYAAAADAAIAAAAHAAcAAAADAAIAAAAHAAgAAAADAAIAAAAHAAkAAAADAAIAAAAHAAoAAAADAAIAAAAHAAsAAAADAAIAAAAHAAwAAAADAAIAAAAHAA0AAAADAAIAAAAHAA4AAAADAAIAAAAHAA8AAAADAAIAAAAIAAAAAAADAAIAAAAIAAEAAAADAAIAAAAIAAIAAAADAAIAAAAIAAMAAAADAAIAAAAIAAQAAAADAAIAAAAIAAUAAAADAAIAAAAIAAYAAAADAAIAAAAIAAcAAAADAAIAAAAIAAgAAAADAAIAAAAIAAkAAAADAAIAAAAIAAoAAAADAAIAAAAIAAsAAAADAAIAAAAIAAwAAAADAAIAAAAIAA0AAAADAAIAAAAIAA4AAAADAAIAAAAIAA8AAAADAAIAAAAJAAAAAAADAAIAAAAJAAEAAAADAAIAAAAJAAIAAAADAAIAAAAJAAMAAAADAAIAAAAJAAQAAAADAAIAAAAJAAUAAAADAAIAAAAJAAYAAAADAAIAAAAJAAcAAAADAAIAAAAJAAgAAAADAAIAAAAJAAkAAAADAAIAAAAJAAoAAAADAAIAAAAJAAsAAAADAAIAAAAJAAwAAAADAAIAAAAJAA0AAAADAAIAAAAJAA4AAAADAAIAAAAJAA8AAAADAAIAAAAKAAAAAAADAAIAAAAKAAEAAAADAAIAAAAKAAIAAAADAAIAAAAKAAMAAAADAAIAAAAKAAQAAAADAAIAAAAKAAUAAAADAAIAAAAKAAYAAAADAAIAAAAKAAcAAAADAAIAAAAKAAgAAAADAAIAAAAKAAkAAAADAAIAAAAKAAoAAAADAAIAAAAKAAsAAAADAAIAAAAKAAwAAAADAAIAAAAKAA0AAAADAAIAAAAKAA4AAAADAAIAAAAKAA8AAAADAAIAAAALAAAAAAADAAIAAAALAAEAAAADAAIAAAALAAIAAAADAAIAAAALAAMAAAADAAIAAAALAAQAAAADAAIAAAALAAUAAAADAAIAAAALAAYAAAADAAIAAAALAAcAAAADAAIAAAALAAgAAAADAAIAAAALAAkAAAADAAIAAAALAAoAAAADAAIAAAALAAsAAAADAAIAAAALAAwAAAADAAIAAAALAA0AAAADAAIAAAALAA4AAAADAAIAAAALAA8AAAADAAIAAAAMAAAAAAADAAIAAAAMAAEAAAADAAIAAAAMAAIAAAADAAIAAAAMAAMAAAADAAIAAAAMAAQAAAADAAIAAAAMAAUAAAADAAIAAAAMAAYAAAADAAIAAAAMAAcAAAADAAIAAAAMAAgAAAADAAIAAAAMAAkAAAADAAIAAAAMAAoAAAADAAIAAAAMAAsAAAADAAIAAAAMAAwAAAADAAIAAAAMAA0AAAADAAIAAAAMAA4AAAADAAIAAAAMAA8AAAADAAIAAAANAAAAAAADAAIAAAANAAEAAAADAAIAAAANAAIAAAADAAIAAAANAAMAAAADAAIAAAANAAQAAAADAAIAAAANAAUAAAADAAIAAAANAAYAAAADAAIAAAANAAcAAAADAAIAAAANAAgAAAADAAIAAAANAAkAAAADAAIAAAANAAoAAAADAAIAAAANAAsAAAADAAIAAAANAAwAAAADAAIAAAANAA0AAAADAAIAAAANAA4AAAADAAIAAAANAA8AAAADAAIAAAAOAAAAAAADAAIAAAAOAAEAAAADAAIAAAAOAAIAAAADAAIAAAAOAAMAAAADAAIAAAAOAAQAAAADAAIAAAAOAAUAAAADAAIAAAAOAAYAAAADAAIAAAAOAAcAAAADAAIAAAAOAAgAAAADAAIAAAAOAAkAAAADAAIAAAAOAAoAAAADAAIAAAAOAAsAAAADAAIAAAAOAAwAAAADAAIAAAAOAA0AAAADAAIAAAAOAA4AAAADAAIAAAAOAA8AAAADAAIAAAAPAAAAAAADAAIAAAAPAAEAAAADAAIAAAAPAAIAAAADAAIAAAAPAAMAAAADAAIAAAAPAAQAAAADAAIAAAAPAAUAAAADAAIAAAAPAAYAAAADAAIAAAAPAAcAAAADAAIAAAAPAAgAAAADAAIAAAAPAAkAAAADAAIAAAAPAAoAAAADAAIAAAAPAAsAAAADAAIAAAAPAAwAAAADAAIAAAAPAA0AAAADAAIAAAAPAA4AAAADAAIAAAAPAA8AAAADAAIAAAAQAAAAAAADAAIAAAAQAAEAAAADAAIAAAAQAAIAAAADAAIAAAAQAAMAAAADAAIAAAAQAAQAAAADAAIAAAAQAAUAAAADAAIAAAAQAAYAAAADAAIAAAAQAAcAAAADAAIAAAAQAAgAAAADAAIAAAAQAAkAAAADAAIAAAAQAAoAAAADAAIAAAAQAAsAAAADAAIAAAAQAAwAAAADAAIAAAAQAA0AAAADAAIAAAAQAA4AAAADAAIAAAAQAA8AAAADAAIAAAARAAAAAAADAAIAAAARAAEAAAADAAIAAAARAAIAAAADAAIAAAARAAMAAAADAAIAAAARAAQAAAADAAIAAAARAAUAAAADAAIAAAARAAYAAAADAAIAAAARAAcAAAADAAIAAAARAAgAAAADAAIAAAARAAkAAAADAAIAAAARAAoAAAADAAIAAAARAAsAAAADAAIAAAARAAwAAAADAAIAAAARAA0AAAADAAIAAAARAA4AAAADAAIAAAARAA8AAAADAAIAAAASAAAAAAADAAIAAAASAAEAAAADAAIAAAASAAIAAAADAAIAAAASAAMAAAADAAIAAAASAAQAAAADAAIAAAASAAUAAAADAAIAAAASAAYAAAADAAIAAAASAAcAAAADAAIAAAASAAgAAAADAAIAAAASAAkAAAADAAIAAAASAAoAAAADAAIAAAASAAsAAAADAAIAAAASAAwAAAADAAIAAAASAA0AAAADAAIAAAASAA4AAAADAAIAAAASAA8AAAADAAIAAAATAAAAAAADAAIAAAATAAEAAAADAAIAAAATAAIAAAADAAIAAAATAAMAAAADAAIAAAATAAQAAAADAAIAAAATAAUAAAADAAIAAAATAAYAAAADAAIAAAATAAcAAAADAAIAAAATAAgAAAADAAIAAAATAAkAAAADAAIAAAATAAoAAAADAAIAAAATAAsAAAADAAIAAAATAAwAAAADAAIAAAATAA0AAAADAAIAAAATAA4AAAADAAIAAAATAA8AAAADAAIAAAA=") +tile_set = ExtResource("1_8ayb0") + +[node name="Water" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAIAAUAAAALAAEAAAAIAAQAAAALAAEAAAAIAAMAAAALAAAAAAAHAAUAAAALAAEAAAAHAAQAAAALAAEAAAAHAAMAAAALAAAAAAAGAAUAAAALAAEAAAAGAAQAAAALAAEAAAAGAAMAAAALAAAAAAAFAAUAAAALAAEAAAAFAAQAAAALAAEAAAAFAAMAAAALAAAAAAAEAAUAAAALAAEAAAAEAAQAAAANAAAAAAAEAAMAAAAKAAAAAAALAAcAAAALAAEAAAALAAYAAAALAAEAAAALAAUAAAALAAEAAAALAAQAAAALAAAAAAAKAAcAAAANAAEAAAAKAAYAAAALAAEAAAAKAAUAAAALAAEAAAAKAAQAAAAOAAAAAAAJAAcAAAALAAIAAAAJAAYAAAALAAEAAAAJAAUAAAALAAEAAAAJAAQAAAALAAEAAAAIAAcAAAALAAIAAAAIAAYAAAALAAEAAAAHAAcAAAALAAIAAAAHAAYAAAALAAEAAAAGAAgAAAAMAAIAAAAGAAcAAAAOAAEAAAAGAAYAAAALAAEAAAAFAAgAAAAKAAIAAAAFAAcAAAANAAEAAAAFAAYAAAALAAEAAAAOAAkAAAAMAAIAAAAOAAgAAAAMAAEAAAAOAAcAAAAMAAAAAAANAAkAAAALAAIAAAANAAgAAAALAAEAAAANAAcAAAAOAAAAAAAMAAkAAAALAAIAAAAMAAgAAAALAAEAAAAMAAcAAAALAAEAAAALAAkAAAALAAIAAAALAAgAAAALAAEAAAAKAAkAAAAKAAIAAAAKAAgAAAAKAAEAAAANAAYAAAAMAAEAAAANAAUAAAAMAAEAAAANAAQAAAAMAAAAAAAMAAYAAAALAAEAAAAMAAUAAAALAAEAAAAMAAQAAAALAAAAAAAKAAMAAAAMAAAAAAAJAAMAAAALAAAAAAAEAAcAAAALAAIAAAAEAAYAAAALAAEAAAADAAcAAAAKAAIAAAADAAYAAAAKAAEAAAADAAUAAAAKAAEAAAADAAQAAAAKAAAAAAA=") +tile_set = ExtResource("1_8ayb0") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAGAAYAAQAQAAIAAAAGAAcAAQAQAAMAAAAGAAgAAQAQAAQAAAAHAAYAAQARAAIAAAAHAAcAAQARAAMAAAAHAAgAAQARAAQAAAAHAAoAAQAQAAEAAAALAAcAAQAWAAIAAAALAAgAAQAWAAMAAAAMAAcAAQAXAAIAAAAMAAgAAQAXAAMAAAAJAAQAAQAaAAEAAAAJAAUAAQAaAAIAAAAKAAQAAQAbAAEAAAAKAAUAAQAbAAIAAAAEAAYAAQAeAAEAAAACAAMAAQATAAQAAAAFAAEAAQAWAAcAAAAFAAIAAQAWAAgAAAANAAcAAQAAAAEAAAANAAgAAQAAAAIAAAANAAkAAQAAAAMAAAANAAoAAQAAAAQAAAAOAAYAAQABAAAAAAAOAAcAAQABAAEAAAAOAAgAAQABAAIAAAAOAAkAAQABAAMAAAAOAAoAAQABAAQAAAAPAAYAAQACAAAAAAAPAAcAAQACAAEAAAAPAAgAAQACAAIAAAAPAAkAAQACAAMAAAAPAAoAAQACAAQAAAAPAAsAAQACAAUAAAAPAAwAAQACAAYAAAAPAA0AAQACAAcAAAAQAAYAAQADAAAAAAAQAAcAAQADAAEAAAAQAAgAAQADAAIAAAAQAAkAAQADAAMAAAAQAAoAAQADAAQAAAAQAAsAAQADAAUAAAAQAAwAAQADAAYAAAAQAA0AAQADAAcAAAARAAYAAQAEAAAAAAARAAcAAQAEAAEAAAARAAgAAQAEAAIAAAARAAkAAQAEAAMAAAARAAoAAQAEAAQAAAARAAsAAQAEAAUAAAARAAwAAQAEAAYAAAARAA0AAQAEAAcAAAASAAcAAQAFAAEAAAASAAgAAQAFAAIAAAASAAkAAQAFAAMAAAASAAoAAQAFAAQAAAA=") +tile_set = ExtResource("1_8ayb0") + +[node name="Scatter" type="TileMapLayer" parent="Scatter"] +tile_map_data = PackedByteArray("AAAGAAYAAQAQAAIAAAAGAAcAAQAQAAMAAAAGAAgAAQAQAAQAAAAHAAYAAQARAAIAAAAHAAcAAQARAAMAAAAHAAgAAQARAAQAAAAHAAoAAQAQAAEAAAALAAcAAQAWAAIAAAALAAgAAQAWAAMAAAAMAAcAAQAXAAIAAAAMAAgAAQAXAAMAAAAJAAQAAQAaAAEAAAAJAAUAAQAaAAIAAAAKAAQAAQAbAAEAAAAKAAUAAQAbAAIAAAAEAAYAAQAeAAEAAAACAAMAAQATAAQAAAAFAAEAAQAWAAcAAAAFAAIAAQAWAAgAAAANAAcAAQAAAAEAAAANAAgAAQAAAAIAAAANAAkAAQAAAAMAAAANAAoAAQAAAAQAAAAOAAYAAQABAAAAAAAOAAcAAQABAAEAAAAOAAgAAQABAAIAAAAOAAkAAQABAAMAAAAOAAoAAQABAAQAAAAPAAYAAQACAAAAAAAPAAcAAQACAAEAAAAPAAgAAQACAAIAAAAPAAkAAQACAAMAAAAPAAoAAQACAAQAAAAPAAsAAQACAAUAAAAPAAwAAQACAAYAAAAPAA0AAQACAAcAAAAQAAYAAQADAAAAAAAQAAcAAQADAAEAAAAQAAgAAQADAAIAAAAQAAkAAQADAAMAAAAQAAoAAQADAAQAAAAQAAsAAQADAAUAAAAQAAwAAQADAAYAAAAQAA0AAQADAAcAAAARAAYAAQAEAAAAAAARAAcAAQAEAAEAAAARAAgAAQAEAAIAAAARAAkAAQAEAAMAAAARAAoAAQAEAAQAAAARAAsAAQAEAAUAAAARAAwAAQAEAAYAAAARAA0AAQAEAAcAAAASAAcAAQAFAAEAAAASAAgAAQAFAAIAAAASAAkAAQAFAAMAAAASAAoAAQAFAAQAAAA=") +tile_set = ExtResource("1_8ayb0") diff --git a/mapgen/layout/misc/001.tscn b/mapgen/layout/misc/001.tscn new file mode 100644 index 0000000..3fb8104 --- /dev/null +++ b/mapgen/layout/misc/001.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=4 uid="uid://bftvnbc5cyniy"] + +[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="1_78ovd"] + +[node name="Misc-001" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAJAAEAAAADAAIAAAAJAAAAAAADAAIAAAAIAAEAAAADAAIAAAAIAAAAAAADAAIAAAAHAAEAAAADAAIAAAAHAAAAAAADAAIAAAAGAAEAAAADAAIAAAAGAAAAAAADAAIAAAAFAAEAAAADAAIAAAAFAAAAAAADAAIAAAAEAAEAAAADAAIAAAAEAAAAAAADAAIAAAADAAEAAAADAAIAAAADAAAAAAADAAIAAAACAAEAAAADAAIAAAACAAAAAAADAAIAAAABAAEAAAADAAIAAAABAAAAAAADAAIAAAAAAAEAAAADAAIAAAAAAAAAAAADAAIAAAATAAEAAAADAAIAAAATAAAAAAADAAIAAAASAAEAAAADAAIAAAASAAAAAAADAAIAAAARAAEAAAADAAIAAAARAAAAAAADAAIAAAAQAAEAAAADAAIAAAAQAAAAAAADAAIAAAAPAAEAAAADAAIAAAAPAAAAAAADAAIAAAAOAAEAAAADAAIAAAAOAAAAAAADAAIAAAANAAEAAAADAAIAAAANAAAAAAADAAIAAAAMAAEAAAADAAIAAAAMAAAAAAADAAIAAAALAAEAAAADAAIAAAALAAAAAAADAAIAAAAKAAEAAAADAAIAAAAKAAAAAAADAAIAAAATAAMAAAADAAIAAAATAAIAAAADAAIAAAASAAMAAAADAAIAAAASAAIAAAADAAIAAAARAAMAAAADAAIAAAARAAIAAAADAAIAAAAQAAMAAAADAAIAAAAQAAIAAAADAAIAAAAPAAMAAAADAAIAAAAPAAIAAAADAAIAAAAOAAMAAAADAAIAAAAOAAIAAAADAAIAAAANAAMAAAADAAIAAAANAAIAAAADAAIAAAAMAAMAAAADAAIAAAAMAAIAAAADAAIAAAALAAMAAAADAAIAAAALAAIAAAADAAIAAAAKAAMAAAADAAIAAAAKAAIAAAADAAIAAAAJAAMAAAADAAIAAAAJAAIAAAADAAIAAAAIAAMAAAADAAIAAAAIAAIAAAADAAIAAAAHAAMAAAADAAIAAAAHAAIAAAADAAIAAAAGAAMAAAADAAIAAAAGAAIAAAADAAIAAAAFAAMAAAADAAIAAAAFAAIAAAADAAIAAAAEAAMAAAADAAIAAAAEAAIAAAADAAIAAAADAAMAAAADAAIAAAADAAIAAAADAAIAAAACAAMAAAADAAIAAAACAAIAAAADAAIAAAABAAMAAAADAAIAAAABAAIAAAADAAIAAAAAAAMAAAADAAIAAAAAAAIAAAADAAIAAAATAAUAAAADAAIAAAATAAQAAAADAAIAAAASAAUAAAADAAIAAAASAAQAAAADAAIAAAARAAUAAAADAAIAAAARAAQAAAADAAIAAAAQAAUAAAADAAIAAAAQAAQAAAADAAIAAAAPAAUAAAADAAIAAAAPAAQAAAADAAIAAAAOAAUAAAADAAIAAAAOAAQAAAADAAIAAAANAAUAAAADAAIAAAANAAQAAAADAAIAAAAMAAUAAAADAAIAAAAMAAQAAAADAAIAAAALAAUAAAADAAIAAAALAAQAAAADAAIAAAAKAAUAAAADAAIAAAAKAAQAAAADAAIAAAAJAAUAAAADAAIAAAAJAAQAAAADAAIAAAAIAAUAAAADAAIAAAAIAAQAAAADAAIAAAAHAAUAAAADAAIAAAAHAAQAAAADAAIAAAAGAAUAAAADAAIAAAAGAAQAAAADAAIAAAAFAAUAAAADAAIAAAAFAAQAAAADAAIAAAAEAAUAAAADAAIAAAAEAAQAAAADAAIAAAADAAUAAAADAAIAAAADAAQAAAADAAIAAAACAAUAAAADAAIAAAACAAQAAAADAAIAAAABAAUAAAADAAIAAAABAAQAAAADAAIAAAAAAAUAAAADAAIAAAAAAAQAAAADAAIAAAATAAkAAAADAAIAAAATAAgAAAADAAIAAAATAAcAAAADAAIAAAATAAYAAAADAAIAAAASAAkAAAADAAIAAAASAAgAAAADAAIAAAASAAcAAAADAAIAAAASAAYAAAADAAIAAAARAAkAAAADAAIAAAARAAgAAAADAAIAAAARAAcAAAADAAIAAAARAAYAAAADAAIAAAAQAAkAAAADAAIAAAAQAAgAAAADAAIAAAAQAAcAAAADAAIAAAAQAAYAAAADAAIAAAAPAAkAAAADAAIAAAAPAAgAAAADAAIAAAAPAAcAAAADAAIAAAAPAAYAAAADAAIAAAAOAAkAAAADAAIAAAAOAAgAAAADAAIAAAAOAAcAAAADAAIAAAAOAAYAAAADAAIAAAANAAkAAAADAAIAAAANAAgAAAADAAIAAAANAAcAAAADAAIAAAANAAYAAAADAAIAAAAMAAkAAAADAAIAAAAMAAgAAAADAAIAAAAMAAcAAAADAAIAAAAMAAYAAAADAAIAAAALAAkAAAADAAIAAAALAAgAAAADAAIAAAALAAcAAAADAAIAAAALAAYAAAADAAIAAAAKAAkAAAADAAIAAAAKAAgAAAADAAIAAAAKAAcAAAADAAIAAAAKAAYAAAADAAIAAAAJAAkAAAADAAIAAAAJAAgAAAADAAIAAAAJAAcAAAADAAIAAAAJAAYAAAADAAIAAAAIAAkAAAADAAIAAAAIAAgAAAADAAIAAAAIAAcAAAADAAIAAAAIAAYAAAADAAIAAAAHAAkAAAADAAIAAAAHAAgAAAADAAIAAAAHAAcAAAADAAIAAAAHAAYAAAADAAIAAAAGAAkAAAADAAIAAAAGAAgAAAADAAIAAAAGAAcAAAADAAIAAAAGAAYAAAADAAIAAAAFAAkAAAADAAIAAAAFAAgAAAADAAIAAAAFAAcAAAADAAIAAAAFAAYAAAADAAIAAAAEAAkAAAADAAIAAAAEAAgAAAADAAIAAAAEAAcAAAADAAIAAAAEAAYAAAADAAIAAAADAAkAAAADAAIAAAADAAgAAAADAAIAAAADAAcAAAADAAIAAAADAAYAAAADAAIAAAACAAkAAAADAAIAAAACAAgAAAADAAIAAAACAAcAAAADAAIAAAACAAYAAAADAAIAAAABAAkAAAADAAIAAAABAAgAAAADAAIAAAABAAcAAAADAAIAAAABAAYAAAADAAIAAAAAAAkAAAADAAIAAAAAAAgAAAADAAIAAAAAAAcAAAADAAIAAAAAAAYAAAADAAIAAAATAA8AAAADAAIAAAATAA4AAAADAAIAAAATAA0AAAADAAIAAAATAAwAAAADAAIAAAATAAsAAAADAAIAAAATAAoAAAADAAIAAAASAA8AAAADAAIAAAASAA4AAAADAAIAAAASAA0AAAADAAIAAAASAAwAAAADAAIAAAASAAsAAAADAAIAAAASAAoAAAADAAIAAAARAA8AAAADAAIAAAARAA4AAAADAAIAAAARAA0AAAADAAIAAAARAAwAAAADAAIAAAARAAsAAAADAAIAAAARAAoAAAADAAIAAAAQAA8AAAADAAIAAAAQAA4AAAADAAIAAAAQAA0AAAADAAIAAAAQAAwAAAADAAIAAAAQAAsAAAADAAIAAAAQAAoAAAADAAIAAAAPAA8AAAADAAIAAAAPAA4AAAADAAIAAAAPAA0AAAADAAIAAAAPAAwAAAADAAIAAAAPAAsAAAADAAIAAAAPAAoAAAADAAIAAAAOAA8AAAADAAIAAAAOAA4AAAADAAIAAAAOAA0AAAADAAIAAAAOAAwAAAADAAIAAAAOAAsAAAADAAIAAAAOAAoAAAADAAIAAAANAA8AAAADAAIAAAANAA4AAAADAAIAAAANAA0AAAADAAIAAAANAAwAAAADAAIAAAANAAsAAAADAAIAAAANAAoAAAADAAIAAAAMAA8AAAADAAIAAAAMAA4AAAADAAIAAAAMAA0AAAADAAIAAAAMAAwAAAADAAIAAAAMAAsAAAADAAIAAAAMAAoAAAADAAIAAAALAA8AAAADAAIAAAALAA4AAAADAAIAAAALAA0AAAADAAIAAAALAAwAAAADAAIAAAALAAsAAAADAAIAAAALAAoAAAADAAIAAAAKAA8AAAADAAIAAAAKAA4AAAADAAIAAAAKAA0AAAADAAIAAAAKAAwAAAADAAIAAAAKAAsAAAADAAIAAAAKAAoAAAADAAIAAAAJAA8AAAADAAIAAAAJAA4AAAADAAIAAAAJAA0AAAADAAIAAAAJAAwAAAADAAIAAAAJAAsAAAADAAIAAAAJAAoAAAADAAIAAAAIAA8AAAADAAIAAAAIAA4AAAADAAIAAAAIAA0AAAADAAIAAAAIAAwAAAADAAIAAAAIAAsAAAADAAIAAAAIAAoAAAADAAIAAAAHAA8AAAADAAIAAAAHAA4AAAADAAIAAAAHAA0AAAADAAIAAAAHAAwAAAADAAIAAAAHAAsAAAADAAIAAAAHAAoAAAADAAIAAAAGAA8AAAADAAIAAAAGAA4AAAADAAIAAAAGAA0AAAADAAIAAAAGAAwAAAADAAIAAAAGAAsAAAADAAIAAAAGAAoAAAADAAIAAAAFAA8AAAADAAIAAAAFAA4AAAADAAIAAAAFAA0AAAADAAIAAAAFAAwAAAADAAIAAAAFAAsAAAADAAIAAAAFAAoAAAADAAIAAAAEAA8AAAADAAIAAAAEAA4AAAADAAIAAAAEAA0AAAADAAIAAAAEAAwAAAADAAIAAAAEAAsAAAADAAIAAAAEAAoAAAADAAIAAAADAA8AAAADAAIAAAADAA4AAAADAAIAAAADAA0AAAADAAIAAAADAAwAAAADAAIAAAADAAsAAAADAAIAAAADAAoAAAADAAIAAAACAA8AAAADAAIAAAACAA4AAAADAAIAAAACAA0AAAADAAIAAAACAAwAAAADAAIAAAACAAsAAAADAAIAAAACAAoAAAADAAIAAAABAA8AAAADAAIAAAABAA4AAAADAAIAAAABAA0AAAADAAIAAAABAAwAAAADAAIAAAABAAsAAAADAAIAAAABAAoAAAADAAIAAAAAAA8AAAADAAIAAAAAAA4AAAADAAIAAAAAAA0AAAADAAIAAAAAAAwAAAADAAIAAAAAAAsAAAADAAIAAAAAAAoAAAADAAIAAAA=") +tile_set = ExtResource("1_78ovd") + +[node name="Water" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAIAAQAAAAMAAIAAAAIAAMAAAAMAAEAAAAIAAIAAAAMAAAAAAAHAAQAAAAOAAEAAAAHAAMAAAALAAEAAAAHAAIAAAALAAAAAAAGAAQAAAAKAAEAAAAGAAMAAAAKAAEAAAAGAAIAAAAKAAAAAAAHAAcAAAAMAAIAAAAHAAYAAAAMAAEAAAAHAAUAAAAMAAEAAAAGAAcAAAALAAIAAAAGAAYAAAALAAEAAAAGAAUAAAANAAAAAAAFAAcAAAAKAAIAAAAFAAYAAAAKAAEAAAAFAAUAAAAKAAAAAAANAAcAAAALAAEAAAANAAYAAAAOAAAAAAANAAUAAAAMAAAAAAAMAAcAAAANAAEAAAAMAAYAAAALAAEAAAAMAAUAAAALAAAAAAALAAcAAAALAAIAAAALAAYAAAALAAEAAAALAAUAAAALAAAAAAAKAAcAAAAKAAIAAAAKAAYAAAAKAAEAAAAKAAUAAAAKAAAAAAAPAAkAAAAMAAIAAAAPAAgAAAAMAAEAAAAPAAcAAAAMAAEAAAAPAAYAAAAMAAAAAAAOAAkAAAALAAIAAAAOAAgAAAALAAEAAAAOAAcAAAALAAEAAAAOAAYAAAALAAAAAAANAAkAAAALAAIAAAANAAgAAAALAAEAAAAMAAkAAAAKAAIAAAAMAAgAAAAKAAEAAAADAA0AAAAMAAEAAAADAAwAAAAMAAAAAAACAA0AAAALAAEAAAACAAwAAAALAAAAAAABAA0AAAANAAAAAAABAAwAAAAKAAAAAAADAA4AAAAMAAEAAAACAA4AAAALAAEAAAABAA4AAAALAAEAAAADAA8AAAAMAAIAAAACAA8AAAALAAIAAAABAA8AAAALAAIAAAAAAA8AAAAKAAIAAAAAAA4AAAAKAAEAAAAAAA0AAAAKAAAAAAA=") +tile_set = ExtResource("1_78ovd") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAJAAIABQABAAAAAAAJAAMABQABAAEAAAAJAAQABQABAAIAAAAKAAIABQACAAAAAAAKAAMABQACAAEAAAAKAAQABQACAAIAAAALAAIABQADAAAAAAALAAMABQADAAEAAAALAAQABQADAAIAAAA=") +tile_set = ExtResource("1_78ovd") diff --git a/mapgen/layout/misc/002.tscn b/mapgen/layout/misc/002.tscn new file mode 100644 index 0000000..3427329 --- /dev/null +++ b/mapgen/layout/misc/002.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=4 uid="uid://88fqx4nh5j7q"] + +[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="1_cxtl7"] + +[node name="Misc-002" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAJAAEAAAADAAIAAAAJAAAAAAADAAIAAAAIAAEAAAADAAIAAAAIAAAAAAADAAIAAAAHAAEAAAADAAIAAAAHAAAAAAADAAIAAAAGAAEAAAADAAIAAAAGAAAAAAADAAIAAAAFAAEAAAADAAIAAAAFAAAAAAADAAIAAAAEAAEAAAADAAIAAAAEAAAAAAADAAIAAAADAAEAAAADAAIAAAADAAAAAAADAAIAAAACAAEAAAADAAIAAAACAAAAAAADAAIAAAABAAEAAAADAAIAAAABAAAAAAADAAIAAAAAAAEAAAADAAIAAAAAAAAAAAADAAIAAAATAAEAAAADAAIAAAATAAAAAAADAAIAAAASAAEAAAADAAIAAAASAAAAAAADAAIAAAARAAEAAAADAAIAAAARAAAAAAADAAIAAAAQAAEAAAADAAIAAAAQAAAAAAADAAIAAAAPAAEAAAADAAIAAAAPAAAAAAADAAIAAAAOAAEAAAADAAIAAAAOAAAAAAADAAIAAAANAAEAAAADAAIAAAANAAAAAAADAAIAAAAMAAEAAAADAAIAAAAMAAAAAAADAAIAAAALAAEAAAADAAIAAAALAAAAAAADAAIAAAAKAAEAAAADAAIAAAAKAAAAAAADAAIAAAATAAMAAAADAAIAAAATAAIAAAADAAIAAAASAAMAAAADAAIAAAASAAIAAAADAAIAAAARAAMAAAADAAIAAAARAAIAAAADAAIAAAAQAAMAAAADAAIAAAAQAAIAAAADAAIAAAAPAAMAAAADAAIAAAAPAAIAAAADAAIAAAAOAAMAAAADAAIAAAAOAAIAAAADAAIAAAANAAMAAAADAAIAAAANAAIAAAADAAIAAAAMAAMAAAADAAIAAAAMAAIAAAADAAIAAAALAAMAAAADAAIAAAALAAIAAAADAAIAAAAKAAMAAAADAAIAAAAKAAIAAAADAAIAAAAJAAMAAAADAAIAAAAJAAIAAAADAAIAAAAIAAMAAAADAAIAAAAIAAIAAAADAAIAAAAHAAMAAAADAAIAAAAHAAIAAAADAAIAAAAGAAMAAAADAAIAAAAGAAIAAAADAAIAAAAFAAMAAAADAAIAAAAFAAIAAAADAAIAAAAEAAMAAAADAAIAAAAEAAIAAAADAAIAAAADAAMAAAADAAIAAAADAAIAAAADAAIAAAACAAMAAAADAAIAAAACAAIAAAADAAIAAAABAAMAAAADAAIAAAABAAIAAAADAAIAAAAAAAMAAAADAAIAAAAAAAIAAAADAAIAAAATAAUAAAADAAIAAAATAAQAAAADAAIAAAASAAUAAAADAAIAAAASAAQAAAADAAIAAAARAAUAAAADAAIAAAARAAQAAAADAAIAAAAQAAUAAAADAAIAAAAQAAQAAAADAAIAAAAPAAUAAAADAAIAAAAPAAQAAAADAAIAAAAOAAUAAAADAAIAAAAOAAQAAAADAAIAAAANAAUAAAADAAIAAAANAAQAAAADAAIAAAAMAAUAAAADAAIAAAAMAAQAAAADAAIAAAALAAUAAAADAAIAAAALAAQAAAADAAIAAAAKAAUAAAADAAIAAAAKAAQAAAADAAIAAAAJAAUAAAADAAIAAAAJAAQAAAADAAIAAAAIAAUAAAADAAIAAAAIAAQAAAADAAIAAAAHAAUAAAADAAIAAAAHAAQAAAADAAIAAAAGAAUAAAADAAIAAAAGAAQAAAADAAIAAAAFAAUAAAADAAIAAAAFAAQAAAADAAIAAAAEAAUAAAADAAIAAAAEAAQAAAADAAIAAAADAAUAAAADAAIAAAADAAQAAAADAAIAAAACAAUAAAADAAIAAAACAAQAAAADAAIAAAABAAUAAAADAAIAAAABAAQAAAADAAIAAAAAAAUAAAADAAIAAAAAAAQAAAADAAIAAAATAAkAAAADAAIAAAATAAgAAAADAAIAAAATAAcAAAADAAIAAAATAAYAAAADAAIAAAASAAkAAAADAAIAAAASAAgAAAADAAIAAAASAAcAAAADAAIAAAASAAYAAAADAAIAAAARAAkAAAADAAIAAAARAAgAAAADAAIAAAARAAcAAAADAAIAAAARAAYAAAADAAIAAAAQAAkAAAADAAIAAAAQAAgAAAADAAIAAAAQAAcAAAADAAIAAAAQAAYAAAADAAIAAAAPAAkAAAADAAIAAAAPAAgAAAADAAIAAAAPAAcAAAADAAIAAAAPAAYAAAADAAIAAAAOAAkAAAADAAIAAAAOAAgAAAADAAIAAAAOAAcAAAADAAIAAAAOAAYAAAADAAIAAAANAAkAAAADAAIAAAANAAgAAAADAAIAAAANAAcAAAADAAIAAAANAAYAAAADAAIAAAAMAAkAAAADAAIAAAAMAAgAAAADAAIAAAAMAAcAAAADAAIAAAAMAAYAAAADAAIAAAALAAkAAAADAAIAAAALAAgAAAADAAIAAAALAAcAAAADAAIAAAALAAYAAAADAAIAAAAKAAkAAAADAAIAAAAKAAgAAAADAAIAAAAKAAcAAAADAAIAAAAKAAYAAAADAAIAAAAJAAkAAAADAAIAAAAJAAgAAAADAAIAAAAJAAcAAAADAAIAAAAJAAYAAAADAAIAAAAIAAkAAAADAAIAAAAIAAgAAAADAAIAAAAIAAcAAAADAAIAAAAIAAYAAAADAAIAAAAHAAkAAAADAAIAAAAHAAgAAAADAAIAAAAHAAcAAAADAAIAAAAHAAYAAAADAAIAAAAGAAkAAAADAAIAAAAGAAgAAAADAAIAAAAGAAcAAAADAAIAAAAGAAYAAAADAAIAAAAFAAkAAAADAAIAAAAFAAgAAAADAAIAAAAFAAcAAAADAAIAAAAFAAYAAAADAAIAAAAEAAkAAAADAAIAAAAEAAgAAAADAAIAAAAEAAcAAAADAAIAAAAEAAYAAAADAAIAAAADAAkAAAADAAIAAAADAAgAAAADAAIAAAADAAcAAAADAAIAAAADAAYAAAADAAIAAAACAAkAAAADAAIAAAACAAgAAAADAAIAAAACAAcAAAADAAIAAAACAAYAAAADAAIAAAABAAkAAAADAAIAAAABAAgAAAADAAIAAAABAAcAAAADAAIAAAABAAYAAAADAAIAAAAAAAkAAAADAAIAAAAAAAgAAAADAAIAAAAAAAcAAAADAAIAAAAAAAYAAAADAAIAAAATAA8AAAADAAIAAAATAA4AAAADAAIAAAATAA0AAAADAAIAAAATAAwAAAADAAIAAAATAAsAAAADAAIAAAATAAoAAAADAAIAAAASAA8AAAADAAIAAAASAA4AAAADAAIAAAASAA0AAAADAAIAAAASAAwAAAADAAIAAAASAAsAAAADAAIAAAASAAoAAAADAAIAAAARAA8AAAADAAIAAAARAA4AAAADAAIAAAARAA0AAAADAAIAAAARAAwAAAADAAIAAAARAAsAAAADAAIAAAARAAoAAAADAAIAAAAQAA8AAAADAAIAAAAQAA4AAAADAAIAAAAQAA0AAAADAAIAAAAQAAwAAAADAAIAAAAQAAsAAAADAAIAAAAQAAoAAAADAAIAAAAPAA8AAAADAAIAAAAPAA4AAAADAAIAAAAPAA0AAAADAAIAAAAPAAwAAAADAAIAAAAPAAsAAAADAAIAAAAPAAoAAAADAAIAAAAOAA8AAAADAAIAAAAOAA4AAAADAAIAAAAOAA0AAAADAAIAAAAOAAwAAAADAAIAAAAOAAsAAAADAAIAAAAOAAoAAAADAAIAAAANAA8AAAADAAIAAAANAA4AAAADAAIAAAANAA0AAAADAAIAAAANAAwAAAADAAIAAAANAAsAAAADAAIAAAANAAoAAAADAAIAAAAMAA8AAAADAAIAAAAMAA4AAAADAAIAAAAMAA0AAAADAAIAAAAMAAwAAAADAAIAAAAMAAsAAAADAAIAAAAMAAoAAAADAAIAAAALAA8AAAADAAIAAAALAA4AAAADAAIAAAALAA0AAAADAAIAAAALAAwAAAADAAIAAAALAAsAAAADAAIAAAALAAoAAAADAAIAAAAKAA8AAAADAAIAAAAKAA4AAAADAAIAAAAKAA0AAAADAAIAAAAKAAwAAAADAAIAAAAKAAsAAAADAAIAAAAKAAoAAAADAAIAAAAJAA8AAAADAAIAAAAJAA4AAAADAAIAAAAJAA0AAAADAAIAAAAJAAwAAAADAAIAAAAJAAsAAAADAAIAAAAJAAoAAAADAAIAAAAIAA8AAAADAAIAAAAIAA4AAAADAAIAAAAIAA0AAAADAAIAAAAIAAwAAAADAAIAAAAIAAsAAAADAAIAAAAIAAoAAAADAAIAAAAHAA8AAAADAAIAAAAHAA4AAAADAAIAAAAHAA0AAAADAAIAAAAHAAwAAAADAAIAAAAHAAsAAAADAAIAAAAHAAoAAAADAAIAAAAGAA8AAAADAAIAAAAGAA4AAAADAAIAAAAGAA0AAAADAAIAAAAGAAwAAAADAAIAAAAGAAsAAAADAAIAAAAGAAoAAAADAAIAAAAFAA8AAAADAAIAAAAFAA4AAAADAAIAAAAFAA0AAAADAAIAAAAFAAwAAAADAAIAAAAFAAsAAAADAAIAAAAFAAoAAAADAAIAAAAEAA8AAAADAAIAAAAEAA4AAAADAAIAAAAEAA0AAAADAAIAAAAEAAwAAAADAAIAAAAEAAsAAAADAAIAAAAEAAoAAAADAAIAAAADAA8AAAADAAIAAAADAA4AAAADAAIAAAADAA0AAAADAAIAAAADAAwAAAADAAIAAAADAAsAAAADAAIAAAADAAoAAAADAAIAAAACAA8AAAADAAIAAAACAA4AAAADAAIAAAACAA0AAAADAAIAAAACAAwAAAADAAIAAAACAAsAAAADAAIAAAACAAoAAAADAAIAAAABAA8AAAADAAIAAAABAA4AAAADAAIAAAABAA0AAAADAAIAAAABAAwAAAADAAIAAAABAAsAAAADAAIAAAABAAoAAAADAAIAAAAAAA8AAAADAAIAAAAAAA4AAAADAAIAAAAAAA0AAAADAAIAAAAAAAwAAAADAAIAAAAAAAsAAAADAAIAAAAAAAoAAAADAAIAAAA=") +tile_set = ExtResource("1_cxtl7") + +[node name="Water" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAIAAQAAAAMAAIAAAAIAAMAAAAMAAEAAAAIAAIAAAAOAAEAAAAHAAQAAAAOAAEAAAAHAAMAAAALAAEAAAAHAAIAAAANAAAAAAAGAAQAAAAKAAEAAAAGAAMAAAAKAAEAAAAGAAIAAAAKAAAAAAAHAAcAAAAMAAIAAAAHAAYAAAAMAAEAAAAHAAUAAAAMAAEAAAAGAAcAAAALAAIAAAAGAAYAAAALAAEAAAAGAAUAAAANAAAAAAAFAAcAAAAKAAIAAAAFAAYAAAAKAAEAAAAFAAUAAAAKAAAAAAADAA0AAAAOAAEAAAADAAwAAAANAAAAAAACAA0AAAALAAEAAAACAAwAAAALAAAAAAABAA0AAAANAAAAAAABAAwAAAAKAAAAAAADAA4AAAAMAAEAAAACAA4AAAALAAEAAAABAA4AAAALAAEAAAADAA8AAAAMAAIAAAACAA8AAAALAAIAAAABAA8AAAALAAIAAAAAAA8AAAAKAAIAAAAAAA4AAAAKAAEAAAAAAA0AAAAKAAAAAAATAAMAAAAMAAEAAAATAAIAAAAMAAEAAAATAAEAAAAMAAAAAAASAAMAAAALAAEAAAASAAIAAAALAAEAAAASAAEAAAALAAAAAAARAAMAAAALAAEAAAARAAIAAAALAAEAAAARAAEAAAALAAAAAAAQAAMAAAALAAEAAAAQAAIAAAALAAEAAAAQAAEAAAALAAAAAAAPAAMAAAALAAEAAAAPAAIAAAALAAEAAAAPAAEAAAALAAAAAAAOAAMAAAALAAEAAAAOAAIAAAALAAEAAAAOAAEAAAALAAAAAAANAAMAAAANAAEAAAANAAIAAAALAAEAAAANAAEAAAALAAAAAAAMAAMAAAALAAIAAAAMAAIAAAALAAEAAAAMAAEAAAALAAAAAAALAAMAAAAKAAIAAAALAAIAAAANAAEAAAALAAEAAAALAAAAAAATAAYAAAAMAAEAAAATAAUAAAAMAAEAAAATAAQAAAAMAAEAAAASAAYAAAALAAEAAAASAAUAAAALAAEAAAASAAQAAAALAAEAAAARAAYAAAANAAEAAAARAAUAAAALAAEAAAARAAQAAAALAAEAAAAQAAYAAAALAAIAAAAQAAUAAAALAAEAAAAQAAQAAAALAAEAAAAPAAYAAAAKAAIAAAAPAAUAAAANAAEAAAAPAAQAAAALAAEAAAAOAAUAAAALAAIAAAAOAAQAAAALAAEAAAANAAUAAAAKAAIAAAANAAQAAAAKAAEAAAATAAgAAAAMAAIAAAATAAcAAAAMAAEAAAASAAgAAAALAAIAAAASAAcAAAALAAEAAAARAAgAAAAKAAIAAAARAAcAAAAKAAEAAAAKAAIAAAALAAIAAAAJAAIAAAALAAIAAAAKAAEAAAALAAAAAAAJAAEAAAALAAAAAAAIAAEAAAALAAAAAAAHAAEAAAAKAAAAAAAGAA0AAAAMAAIAAAAGAAwAAAAMAAEAAAAGAAsAAAAMAAAAAAAFAA0AAAALAAIAAAAFAAwAAAALAAEAAAAFAAsAAAALAAAAAAAEAA0AAAALAAIAAAAEAAwAAAALAAEAAAAEAAsAAAALAAAAAAADAAsAAAAKAAAAAAA=") +tile_set = ExtResource("1_cxtl7") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAJAAIABQABAAAAAAAJAAMABQABAAEAAAAJAAQABQABAAIAAAAKAAIABQACAAAAAAAKAAMABQACAAEAAAAKAAQABQACAAIAAAALAAIABQADAAAAAAALAAMABQADAAEAAAALAAQABQADAAIAAAA=") +tile_set = ExtResource("1_cxtl7") diff --git a/mapgen/layout/path/001.tscn b/mapgen/layout/path/001.tscn new file mode 100644 index 0000000..5061fef --- /dev/null +++ b/mapgen/layout/path/001.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=4 uid="uid://c18iub1rftxu2"] + +[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="1_ndgny"] + +[node name="Template" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAA8AAAADAAIAAAAAAA4AAAADAAIAAAAAAA0AAAADAAIAAAAAAAwAAAADAAIAAAAAAAsAAAADAAIAAAAAAAoAAAADAAIAAAAAAAkAAAADAAIAAAAAAAgAAAADAAIAAAAAAAcAAAADAAIAAAAAAAYAAAADAAIAAAAAAAUAAAADAAIAAAAAAAQAAAADAAIAAAAAAAMAAAADAAIAAAAAAAIAAAADAAIAAAAAAAEAAAADAAIAAAAAAAAAAAADAAIAAAAJAAAAAAADAAIAAAAIAAAAAAADAAIAAAAHAAAAAAADAAIAAAAGAAAAAAADAAIAAAAFAAAAAAADAAIAAAAEAAAAAAADAAIAAAADAAAAAAADAAIAAAACAAAAAAADAAIAAAABAAAAAAADAAIAAAATAAAAAAADAAIAAAASAAAAAAADAAIAAAARAAAAAAADAAIAAAAQAAAAAAADAAIAAAAPAAAAAAADAAIAAAAOAAAAAAADAAIAAAANAAAAAAADAAIAAAAMAAAAAAADAAIAAAALAAAAAAADAAIAAAAKAAAAAAADAAIAAAATAA8AAAADAAIAAAATAA4AAAADAAIAAAATAA0AAAADAAIAAAATAAwAAAADAAIAAAATAAsAAAADAAIAAAATAAoAAAADAAIAAAATAAkAAAADAAIAAAATAAgAAAADAAIAAAATAAcAAAADAAIAAAATAAYAAAADAAIAAAATAAUAAAADAAIAAAATAAQAAAADAAIAAAATAAMAAAADAAIAAAATAAIAAAADAAIAAAATAAEAAAADAAIAAAASAA8AAAADAAIAAAASAA4AAAADAAIAAAASAA0AAAADAAIAAAASAAwAAAADAAIAAAASAAsAAAADAAIAAAASAAoAAAADAAIAAAASAAkAAAADAAIAAAASAAgAAAADAAIAAAASAAcAAAADAAIAAAASAAYAAAADAAIAAAASAAUAAAADAAIAAAASAAQAAAADAAIAAAASAAMAAAADAAIAAAASAAIAAAADAAIAAAASAAEAAAADAAIAAAARAA8AAAADAAIAAAARAA4AAAADAAIAAAARAA0AAAADAAIAAAARAAwAAAADAAIAAAARAAsAAAADAAIAAAARAAoAAAADAAIAAAARAAkAAAADAAIAAAARAAgAAAADAAIAAAARAAcAAAADAAIAAAARAAYAAAADAAIAAAARAAUAAAADAAIAAAARAAQAAAADAAIAAAARAAMAAAADAAIAAAARAAIAAAADAAIAAAARAAEAAAADAAIAAAAQAA8AAAADAAIAAAAQAA4AAAADAAIAAAAQAA0AAAADAAIAAAAQAAwAAAADAAIAAAAQAAsAAAADAAIAAAAQAAoAAAADAAIAAAAQAAkAAAADAAIAAAAQAAgAAAADAAIAAAAQAAcAAAADAAIAAAAQAAYAAAADAAIAAAAQAAUAAAADAAIAAAAQAAQAAAADAAIAAAAQAAMAAAADAAIAAAAQAAIAAAADAAIAAAAQAAEAAAADAAIAAAAPAA8AAAADAAIAAAAPAA4AAAADAAIAAAAPAA0AAAADAAIAAAAPAAwAAAADAAIAAAAPAAsAAAADAAIAAAAPAAoAAAADAAIAAAAPAAkAAAADAAIAAAAPAAgAAAADAAIAAAAPAAcAAAADAAIAAAAPAAYAAAADAAIAAAAPAAUAAAADAAIAAAAPAAQAAAADAAIAAAAPAAMAAAADAAIAAAAPAAIAAAADAAIAAAAPAAEAAAADAAIAAAAOAA8AAAADAAIAAAAOAA4AAAADAAIAAAAOAA0AAAADAAIAAAAOAAwAAAADAAIAAAAOAAsAAAADAAIAAAAOAAoAAAADAAIAAAAOAAkAAAADAAIAAAAOAAgAAAADAAIAAAAOAAcAAAADAAIAAAAOAAYAAAADAAIAAAAOAAUAAAADAAIAAAAOAAQAAAADAAIAAAAOAAMAAAADAAIAAAAOAAIAAAADAAIAAAAOAAEAAAADAAIAAAANAA8AAAADAAIAAAANAA4AAAADAAIAAAANAA0AAAADAAIAAAANAAwAAAADAAIAAAANAAsAAAADAAIAAAANAAoAAAADAAIAAAANAAkAAAADAAIAAAANAAgAAAADAAIAAAANAAcAAAADAAIAAAANAAYAAAADAAIAAAANAAUAAAADAAIAAAANAAQAAAADAAIAAAANAAMAAAADAAIAAAANAAIAAAADAAIAAAANAAEAAAADAAIAAAAMAA8AAAADAAIAAAAMAA4AAAADAAIAAAAMAA0AAAADAAIAAAAMAAwAAAADAAIAAAAMAAsAAAADAAIAAAAMAAoAAAADAAIAAAAMAAkAAAADAAIAAAAMAAgAAAADAAIAAAAMAAcAAAADAAIAAAAMAAYAAAADAAIAAAAMAAUAAAADAAIAAAAMAAQAAAADAAIAAAAMAAMAAAADAAIAAAAMAAIAAAADAAIAAAAMAAEAAAADAAIAAAALAA8AAAADAAIAAAALAA4AAAADAAIAAAALAA0AAAADAAIAAAALAAwAAAADAAIAAAALAAsAAAADAAIAAAALAAoAAAADAAIAAAALAAkAAAADAAIAAAALAAgAAAADAAIAAAALAAcAAAADAAIAAAALAAYAAAADAAIAAAALAAUAAAADAAIAAAALAAQAAAADAAIAAAALAAMAAAADAAIAAAALAAIAAAADAAIAAAALAAEAAAADAAIAAAAKAA8AAAADAAIAAAAKAA4AAAADAAIAAAAKAA0AAAADAAIAAAAKAAwAAAADAAIAAAAKAAsAAAADAAIAAAAKAAoAAAADAAIAAAAKAAkAAAADAAIAAAAKAAgAAAADAAIAAAAKAAcAAAADAAIAAAAKAAYAAAADAAIAAAAKAAUAAAADAAIAAAAKAAQAAAADAAIAAAAKAAMAAAADAAIAAAAKAAIAAAADAAIAAAAKAAEAAAADAAIAAAAJAA8AAAADAAIAAAAJAA4AAAADAAIAAAAJAA0AAAADAAIAAAAJAAwAAAADAAIAAAAJAAsAAAADAAIAAAAJAAoAAAADAAIAAAAJAAkAAAADAAIAAAAJAAgAAAADAAIAAAAJAAcAAAADAAIAAAAJAAYAAAADAAIAAAAJAAUAAAADAAIAAAAJAAQAAAADAAIAAAAJAAMAAAADAAIAAAAJAAIAAAADAAIAAAAJAAEAAAADAAIAAAAIAA8AAAADAAIAAAAIAA4AAAADAAIAAAAIAA0AAAADAAIAAAAIAAwAAAADAAIAAAAIAAsAAAADAAIAAAAIAAoAAAADAAIAAAAIAAkAAAADAAIAAAAIAAgAAAADAAIAAAAIAAcAAAADAAIAAAAIAAYAAAADAAIAAAAIAAUAAAADAAIAAAAIAAQAAAADAAIAAAAIAAMAAAADAAIAAAAIAAIAAAADAAIAAAAIAAEAAAADAAIAAAAHAA8AAAADAAIAAAAHAA4AAAADAAIAAAAHAA0AAAADAAIAAAAHAAwAAAADAAIAAAAHAAsAAAADAAIAAAAHAAoAAAADAAIAAAAHAAkAAAADAAIAAAAHAAgAAAADAAIAAAAHAAcAAAADAAIAAAAHAAYAAAADAAIAAAAHAAUAAAADAAIAAAAHAAQAAAADAAIAAAAHAAMAAAADAAIAAAAHAAIAAAADAAIAAAAHAAEAAAADAAIAAAAGAA8AAAADAAIAAAAGAA4AAAADAAIAAAAGAA0AAAADAAIAAAAGAAwAAAADAAIAAAAGAAsAAAADAAIAAAAGAAoAAAADAAIAAAAGAAkAAAADAAIAAAAGAAgAAAADAAIAAAAGAAcAAAADAAIAAAAGAAYAAAADAAIAAAAGAAUAAAADAAIAAAAGAAQAAAADAAIAAAAGAAMAAAADAAIAAAAGAAIAAAADAAIAAAAGAAEAAAADAAIAAAAFAA8AAAADAAIAAAAFAA4AAAADAAIAAAAFAA0AAAADAAIAAAAFAAwAAAADAAIAAAAFAAsAAAADAAIAAAAFAAoAAAADAAIAAAAFAAkAAAADAAIAAAAFAAgAAAADAAIAAAAFAAcAAAADAAIAAAAFAAYAAAADAAIAAAAFAAUAAAADAAIAAAAFAAQAAAADAAIAAAAFAAMAAAADAAIAAAAFAAIAAAADAAIAAAAFAAEAAAADAAIAAAAEAA8AAAADAAIAAAAEAA4AAAADAAIAAAAEAA0AAAADAAIAAAAEAAwAAAADAAIAAAAEAAsAAAADAAIAAAAEAAoAAAADAAIAAAAEAAkAAAADAAIAAAAEAAgAAAADAAIAAAAEAAcAAAADAAIAAAAEAAYAAAADAAIAAAAEAAUAAAADAAIAAAAEAAQAAAADAAIAAAAEAAMAAAADAAIAAAAEAAIAAAADAAIAAAAEAAEAAAADAAIAAAADAA8AAAADAAIAAAADAA4AAAADAAIAAAADAA0AAAADAAIAAAADAAwAAAADAAIAAAADAAsAAAADAAIAAAADAAoAAAADAAIAAAADAAkAAAADAAIAAAADAAgAAAADAAIAAAADAAcAAAADAAIAAAADAAYAAAADAAIAAAADAAUAAAADAAIAAAADAAQAAAADAAIAAAADAAMAAAADAAIAAAADAAIAAAADAAIAAAADAAEAAAADAAIAAAACAA8AAAADAAIAAAACAA4AAAADAAIAAAACAA0AAAADAAIAAAACAAwAAAADAAIAAAACAAsAAAADAAIAAAACAAoAAAADAAIAAAACAAkAAAADAAIAAAACAAgAAAADAAIAAAACAAcAAAADAAIAAAACAAYAAAADAAIAAAACAAUAAAADAAIAAAACAAQAAAADAAIAAAACAAMAAAADAAIAAAACAAIAAAADAAIAAAACAAEAAAADAAIAAAABAA8AAAADAAIAAAABAA4AAAADAAIAAAABAA0AAAADAAIAAAABAAwAAAADAAIAAAABAAsAAAADAAIAAAABAAoAAAADAAIAAAABAAkAAAADAAIAAAABAAgAAAADAAIAAAABAAcAAAADAAIAAAABAAYAAAADAAIAAAABAAUAAAADAAIAAAABAAQAAAADAAIAAAABAAMAAAADAAIAAAABAAIAAAADAAIAAAABAAEAAAADAAIAAAA=") +tile_set = ExtResource("1_ndgny") + +[node name="Water" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAEAAEAAAALAAIAAAAEAAAAAAALAAAAAAADAAEAAAALAAIAAAADAAAAAAALAAAAAAACAAEAAAALAAIAAAACAAAAAAALAAAAAAABAAEAAAAOAAEAAAABAAAAAAALAAAAAAAAAAEAAAAKAAEAAAAAAAAAAAAKAAAAAAABAAMAAAAMAAIAAAABAAIAAAAMAAEAAAAAAAMAAAAKAAIAAAAAAAIAAAAKAAEAAAATAAEAAAAMAAEAAAATAAAAAAAMAAAAAAASAAEAAAANAAEAAAASAAAAAAALAAAAAAARAAEAAAALAAIAAAARAAAAAAALAAAAAAAQAAEAAAAKAAIAAAAQAAAAAAAKAAAAAAATAAMAAAAMAAIAAAATAAIAAAAMAAEAAAASAAMAAAAKAAIAAAASAAIAAAAKAAEAAAATAA8AAAAMAAIAAAATAA4AAAAMAAEAAAASAA8AAAALAAIAAAASAA4AAAALAAEAAAARAA8AAAALAAIAAAARAA4AAAANAAAAAAAQAA8AAAALAAIAAAAQAA4AAAALAAAAAAATAA0AAAAMAAEAAAATAAwAAAAMAAAAAAASAA0AAAALAAEAAAASAAwAAAAOAAAAAAADAA8AAAALAAIAAAADAA4AAAALAAAAAAACAA8AAAALAAIAAAACAA4AAAALAAAAAAABAA8AAAALAAIAAAABAA4AAAAOAAAAAAAAAA8AAAAKAAIAAAAAAA4AAAAKAAEAAAABAA0AAAAMAAEAAAABAAwAAAAMAAAAAAAAAA0AAAAKAAEAAAAAAAwAAAAKAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAGAAEAAAALAAEAAAAHAAEAAAALAAEAAAAHAAIAAAALAAEAAAAIAAIAAAAMAAEAAAAIAAMAAAAMAAEAAAAIAAQAAAAMAAIAAAAFAAEAAAANAAEAAAAFAAIAAAAKAAEAAAAFAAMAAAAKAAEAAAAFAAQAAAAKAAEAAAAFAAUAAAAKAAIAAAAGAAUAAAANAAEAAAAGAAQAAAALAAEAAAAHAAQAAAAOAAEAAAAHAAMAAAALAAEAAAAGAAIAAAALAAEAAAAGAAMAAAALAAEAAAAHAAAAAAALAAAAAAAIAAEAAAAMAAEAAAAIAAAAAAAMAAAAAAAHAAUAAAAMAAEAAAAHAAYAAAAMAAEAAAAHAAcAAAAMAAIAAAAGAAcAAAAKAAIAAAAGAAYAAAAKAAEAAAARAA0AAAAKAAEAAAARAAwAAAAKAAEAAAARAAsAAAAKAAEAAAARAAoAAAAKAAEAAAARAAkAAAAKAAAAAAASAAkAAAAMAAAAAAASAAoAAAAMAAEAAAASAAsAAAAMAAEAAAAPAA8AAAALAAIAAAAOAA8AAAALAAIAAAANAA8AAAAKAAIAAAANAA4AAAAKAAAAAAAOAA4AAAALAAAAAAAPAA4AAAALAAAAAAAEAA4AAAANAAAAAAAFAA4AAAALAAEAAAAGAA4AAAAOAAAAAAAHAA4AAAAMAAAAAAAEAA8AAAALAAIAAAAFAA8AAAALAAIAAAAGAA8AAAALAAIAAAAHAA8AAAAMAAIAAAAEAA0AAAAKAAEAAAAEAAwAAAAKAAEAAAAEAAsAAAAKAAEAAAAEAAoAAAAKAAAAAAAFAAsAAAALAAEAAAAFAAwAAAALAAEAAAAFAA0AAAALAAEAAAAFAAoAAAALAAAAAAAOAAMAAAAMAAAAAAAOAAQAAAAMAAEAAAANAAQAAAAKAAEAAAANAAUAAAAKAAIAAAAOAAUAAAAMAAIAAAANAAMAAAAKAAAAAAAGAA0AAAAMAAEAAAAGAAwAAAAMAAEAAAAGAAsAAAAOAAEAAAAGAAoAAAALAAAAAAAHAAsAAAAMAAIAAAAHAAoAAAAMAAAAAAA=") +tile_set = ExtResource("1_ndgny") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAANAAsAEwAGAAcAAAANAAwAEwAGAAgAAAAOAAsAEwAHAAcAAAAOAAwAEwAHAAgAAAAHAAkAEwAKAAUAAAAHAAoAEwAKAAYAAAAIAAkAEwALAAUAAAAIAAoAEwALAAYAAAARAAUAEwAGAAkAAAASAAUAEwAHAAkAAAATAAUAEwAIAAkAAAA=") +tile_set = ExtResource("1_ndgny") diff --git a/mapgen/layout/path/002.tscn b/mapgen/layout/path/002.tscn new file mode 100644 index 0000000..d85b619 --- /dev/null +++ b/mapgen/layout/path/002.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=4 uid="uid://cm5qjm3qtooki"] + +[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="1_joa6j"] + +[node name="Path-002" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAA8AAAADAAIAAAAAAA4AAAADAAIAAAAAAA0AAAADAAIAAAAAAAwAAAADAAIAAAAAAAsAAAADAAIAAAAAAAoAAAADAAIAAAAAAAkAAAADAAIAAAAAAAgAAAADAAIAAAAAAAcAAAADAAIAAAAAAAYAAAADAAIAAAAAAAUAAAADAAIAAAAAAAQAAAADAAIAAAAAAAMAAAADAAIAAAAAAAIAAAADAAIAAAAAAAEAAAADAAIAAAAAAAAAAAADAAIAAAAJAAAAAAADAAIAAAAIAAAAAAADAAIAAAAHAAAAAAADAAIAAAAGAAAAAAADAAIAAAAFAAAAAAADAAIAAAAEAAAAAAADAAIAAAADAAAAAAADAAIAAAACAAAAAAADAAIAAAABAAAAAAADAAIAAAATAAAAAAADAAIAAAASAAAAAAADAAIAAAARAAAAAAADAAIAAAAQAAAAAAADAAIAAAAPAAAAAAADAAIAAAAOAAAAAAADAAIAAAANAAAAAAADAAIAAAAMAAAAAAADAAIAAAALAAAAAAADAAIAAAAKAAAAAAADAAIAAAATAA8AAAADAAIAAAATAA4AAAADAAIAAAATAA0AAAADAAIAAAATAAwAAAADAAIAAAATAAsAAAADAAIAAAATAAoAAAADAAIAAAATAAkAAAADAAIAAAATAAgAAAADAAIAAAATAAcAAAADAAIAAAATAAYAAAADAAIAAAATAAUAAAADAAIAAAATAAQAAAADAAIAAAATAAMAAAADAAIAAAATAAIAAAADAAIAAAATAAEAAAADAAIAAAASAA8AAAADAAIAAAASAA4AAAADAAIAAAASAA0AAAADAAIAAAASAAwAAAADAAIAAAASAAsAAAADAAIAAAASAAoAAAADAAIAAAASAAkAAAADAAIAAAASAAgAAAADAAIAAAASAAcAAAADAAIAAAASAAYAAAADAAIAAAASAAUAAAADAAIAAAASAAQAAAADAAIAAAASAAMAAAADAAIAAAASAAIAAAADAAIAAAASAAEAAAADAAIAAAARAA8AAAADAAIAAAARAA4AAAADAAIAAAARAA0AAAADAAIAAAARAAwAAAADAAIAAAARAAsAAAADAAIAAAARAAoAAAADAAIAAAARAAkAAAADAAIAAAARAAgAAAADAAIAAAARAAcAAAADAAIAAAARAAYAAAADAAIAAAARAAUAAAADAAIAAAARAAQAAAADAAIAAAARAAMAAAADAAIAAAARAAIAAAADAAIAAAARAAEAAAADAAIAAAAQAA8AAAADAAIAAAAQAA4AAAADAAIAAAAQAA0AAAADAAIAAAAQAAwAAAADAAIAAAAQAAsAAAADAAIAAAAQAAoAAAADAAIAAAAQAAkAAAADAAIAAAAQAAgAAAADAAIAAAAQAAcAAAADAAIAAAAQAAYAAAADAAIAAAAQAAUAAAADAAIAAAAQAAQAAAADAAIAAAAQAAMAAAADAAIAAAAQAAIAAAADAAIAAAAQAAEAAAADAAIAAAAPAA8AAAADAAIAAAAPAA4AAAADAAIAAAAPAA0AAAADAAIAAAAPAAwAAAADAAIAAAAPAAsAAAADAAIAAAAPAAoAAAADAAIAAAAPAAkAAAADAAIAAAAPAAgAAAADAAIAAAAPAAcAAAADAAIAAAAPAAYAAAADAAIAAAAPAAUAAAADAAIAAAAPAAQAAAADAAIAAAAPAAMAAAADAAIAAAAPAAIAAAADAAIAAAAPAAEAAAADAAIAAAAOAA8AAAADAAIAAAAOAA4AAAADAAIAAAAOAA0AAAADAAIAAAAOAAwAAAADAAIAAAAOAAsAAAADAAIAAAAOAAoAAAADAAIAAAAOAAkAAAADAAIAAAAOAAgAAAADAAIAAAAOAAcAAAADAAIAAAAOAAYAAAADAAIAAAAOAAUAAAADAAIAAAAOAAQAAAADAAIAAAAOAAMAAAADAAIAAAAOAAIAAAADAAIAAAAOAAEAAAADAAIAAAANAA8AAAADAAIAAAANAA4AAAADAAIAAAANAA0AAAADAAIAAAANAAwAAAADAAIAAAANAAsAAAADAAIAAAANAAoAAAADAAIAAAANAAkAAAADAAIAAAANAAgAAAADAAIAAAANAAcAAAADAAIAAAANAAYAAAADAAIAAAANAAUAAAADAAIAAAANAAQAAAADAAIAAAANAAMAAAADAAIAAAANAAIAAAADAAIAAAANAAEAAAADAAIAAAAMAA8AAAADAAIAAAAMAA4AAAADAAIAAAAMAA0AAAADAAIAAAAMAAwAAAADAAIAAAAMAAsAAAADAAIAAAAMAAoAAAADAAIAAAAMAAkAAAADAAIAAAAMAAgAAAADAAIAAAAMAAcAAAADAAIAAAAMAAYAAAADAAIAAAAMAAUAAAADAAIAAAAMAAQAAAADAAIAAAAMAAMAAAADAAIAAAAMAAIAAAADAAIAAAAMAAEAAAADAAIAAAALAA8AAAADAAIAAAALAA4AAAADAAIAAAALAA0AAAADAAIAAAALAAwAAAADAAIAAAALAAsAAAADAAIAAAALAAoAAAADAAIAAAALAAkAAAADAAIAAAALAAgAAAADAAIAAAALAAcAAAADAAIAAAALAAYAAAADAAIAAAALAAUAAAADAAIAAAALAAQAAAADAAIAAAALAAMAAAADAAIAAAALAAIAAAADAAIAAAALAAEAAAADAAIAAAAKAA8AAAADAAIAAAAKAA4AAAADAAIAAAAKAA0AAAADAAIAAAAKAAwAAAADAAIAAAAKAAsAAAADAAIAAAAKAAoAAAADAAIAAAAKAAkAAAADAAIAAAAKAAgAAAADAAIAAAAKAAcAAAADAAIAAAAKAAYAAAADAAIAAAAKAAUAAAADAAIAAAAKAAQAAAADAAIAAAAKAAMAAAADAAIAAAAKAAIAAAADAAIAAAAKAAEAAAADAAIAAAAJAA8AAAADAAIAAAAJAA4AAAADAAIAAAAJAA0AAAADAAIAAAAJAAwAAAADAAIAAAAJAAsAAAADAAIAAAAJAAoAAAADAAIAAAAJAAkAAAADAAIAAAAJAAgAAAADAAIAAAAJAAcAAAADAAIAAAAJAAYAAAADAAIAAAAJAAUAAAADAAIAAAAJAAQAAAADAAIAAAAJAAMAAAADAAIAAAAJAAIAAAADAAIAAAAJAAEAAAADAAIAAAAIAA8AAAADAAIAAAAIAA4AAAADAAIAAAAIAA0AAAADAAIAAAAIAAwAAAADAAIAAAAIAAsAAAADAAIAAAAIAAoAAAADAAIAAAAIAAkAAAADAAIAAAAIAAgAAAADAAIAAAAIAAcAAAADAAIAAAAIAAYAAAADAAIAAAAIAAUAAAADAAIAAAAIAAQAAAADAAIAAAAIAAMAAAADAAIAAAAIAAIAAAADAAIAAAAIAAEAAAADAAIAAAAHAA8AAAADAAIAAAAHAA4AAAADAAIAAAAHAA0AAAADAAIAAAAHAAwAAAADAAIAAAAHAAsAAAADAAIAAAAHAAoAAAADAAIAAAAHAAkAAAADAAIAAAAHAAgAAAADAAIAAAAHAAcAAAADAAIAAAAHAAYAAAADAAIAAAAHAAUAAAADAAIAAAAHAAQAAAADAAIAAAAHAAMAAAADAAIAAAAHAAIAAAADAAIAAAAHAAEAAAADAAIAAAAGAA8AAAADAAIAAAAGAA4AAAADAAIAAAAGAA0AAAADAAIAAAAGAAwAAAADAAIAAAAGAAsAAAADAAIAAAAGAAoAAAADAAIAAAAGAAkAAAADAAIAAAAGAAgAAAADAAIAAAAGAAcAAAADAAIAAAAGAAYAAAADAAIAAAAGAAUAAAADAAIAAAAGAAQAAAADAAIAAAAGAAMAAAADAAIAAAAGAAIAAAADAAIAAAAGAAEAAAADAAIAAAAFAA8AAAADAAIAAAAFAA4AAAADAAIAAAAFAA0AAAADAAIAAAAFAAwAAAADAAIAAAAFAAsAAAADAAIAAAAFAAoAAAADAAIAAAAFAAkAAAADAAIAAAAFAAgAAAADAAIAAAAFAAcAAAADAAIAAAAFAAYAAAADAAIAAAAFAAUAAAADAAIAAAAFAAQAAAADAAIAAAAFAAMAAAADAAIAAAAFAAIAAAADAAIAAAAFAAEAAAADAAIAAAAEAA8AAAADAAIAAAAEAA4AAAADAAIAAAAEAA0AAAADAAIAAAAEAAwAAAADAAIAAAAEAAsAAAADAAIAAAAEAAoAAAADAAIAAAAEAAkAAAADAAIAAAAEAAgAAAADAAIAAAAEAAcAAAADAAIAAAAEAAYAAAADAAIAAAAEAAUAAAADAAIAAAAEAAQAAAADAAIAAAAEAAMAAAADAAIAAAAEAAIAAAADAAIAAAAEAAEAAAADAAIAAAADAA8AAAADAAIAAAADAA4AAAADAAIAAAADAA0AAAADAAIAAAADAAwAAAADAAIAAAADAAsAAAADAAIAAAADAAoAAAADAAIAAAADAAkAAAADAAIAAAADAAgAAAADAAIAAAADAAcAAAADAAIAAAADAAYAAAADAAIAAAADAAUAAAADAAIAAAADAAQAAAADAAIAAAADAAMAAAADAAIAAAADAAIAAAADAAIAAAADAAEAAAADAAIAAAACAA8AAAADAAIAAAACAA4AAAADAAIAAAACAA0AAAADAAIAAAACAAwAAAADAAIAAAACAAsAAAADAAIAAAACAAoAAAADAAIAAAACAAkAAAADAAIAAAACAAgAAAADAAIAAAACAAcAAAADAAIAAAACAAYAAAADAAIAAAACAAUAAAADAAIAAAACAAQAAAADAAIAAAACAAMAAAADAAIAAAACAAIAAAADAAIAAAACAAEAAAADAAIAAAABAA8AAAADAAIAAAABAA4AAAADAAIAAAABAA0AAAADAAIAAAABAAwAAAADAAIAAAABAAsAAAADAAIAAAABAAoAAAADAAIAAAABAAkAAAADAAIAAAABAAgAAAADAAIAAAABAAcAAAADAAIAAAABAAYAAAADAAIAAAABAAUAAAADAAIAAAABAAQAAAADAAIAAAABAAMAAAADAAIAAAABAAIAAAADAAIAAAABAAEAAAADAAIAAAA=") +tile_set = ExtResource("1_joa6j") + +[node name="Water" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAEAAEAAAALAAIAAAAEAAAAAAALAAAAAAADAAEAAAALAAIAAAADAAAAAAALAAAAAAACAAEAAAALAAIAAAACAAAAAAALAAAAAAABAAEAAAAOAAEAAAABAAAAAAALAAAAAAAAAAEAAAAKAAEAAAAAAAAAAAAKAAAAAAABAAMAAAAMAAIAAAABAAIAAAAMAAEAAAAAAAMAAAAKAAIAAAAAAAIAAAAKAAEAAAATAAEAAAAMAAEAAAATAAAAAAAMAAAAAAASAAEAAAANAAEAAAASAAAAAAALAAAAAAARAAEAAAALAAIAAAARAAAAAAALAAAAAAAQAAEAAAALAAIAAAAQAAAAAAALAAAAAAATAAMAAAAMAAIAAAATAAIAAAAMAAEAAAASAAMAAAAKAAIAAAASAAIAAAAKAAEAAAATAA8AAAAMAAIAAAATAA4AAAAMAAEAAAASAA8AAAALAAIAAAASAA4AAAALAAEAAAARAA8AAAALAAIAAAARAA4AAAANAAAAAAAQAA8AAAALAAIAAAAQAA4AAAALAAAAAAATAA0AAAAMAAEAAAATAAwAAAAMAAAAAAASAA0AAAALAAEAAAASAAwAAAAOAAAAAAADAA8AAAALAAIAAAADAA4AAAALAAAAAAACAA8AAAALAAIAAAACAA4AAAALAAAAAAABAA8AAAALAAIAAAABAA4AAAAOAAAAAAAAAA8AAAAKAAIAAAAAAA4AAAAKAAEAAAABAA0AAAAMAAEAAAABAAwAAAAMAAAAAAAAAA0AAAAKAAEAAAAAAAwAAAAKAAAAAAAFAAAAAAALAAAAAAAGAAAAAAALAAAAAAAGAAEAAAALAAIAAAAHAAEAAAALAAIAAAAFAAEAAAALAAIAAAAHAAAAAAALAAAAAAAIAAEAAAAMAAIAAAAIAAAAAAAMAAAAAAARAA0AAAAKAAEAAAARAAwAAAAKAAEAAAARAAsAAAAKAAAAAAASAAsAAAAMAAAAAAAPAA8AAAALAAIAAAAOAA8AAAALAAIAAAANAA8AAAALAAIAAAANAA4AAAALAAAAAAAOAA4AAAALAAAAAAAPAA4AAAALAAAAAAAEAA4AAAALAAAAAAAFAA4AAAALAAAAAAAGAA4AAAANAAAAAAAHAA4AAAALAAEAAAAEAA8AAAALAAIAAAAFAA8AAAALAAIAAAAGAA8AAAALAAIAAAAHAA8AAAALAAIAAAAIAA4AAAALAAEAAAAJAA4AAAALAAEAAAAKAA4AAAALAAEAAAALAA4AAAAOAAAAAAAMAA4AAAALAAAAAAAMAA8AAAALAAIAAAALAA8AAAALAAIAAAAKAA8AAAALAAIAAAAJAA8AAAALAAIAAAAIAA8AAAALAAIAAAAPAAEAAAAOAAEAAAAOAAEAAAALAAAAAAANAAEAAAAKAAAAAAANAAIAAAANAAAAAAAMAAIAAAAKAAAAAAAMAAMAAAANAAAAAAALAAMAAAALAAAAAAALAAQAAAALAAEAAAAKAAQAAAAKAAEAAAAKAAUAAAANAAAAAAAPAAIAAAAMAAIAAAAOAAMAAAAMAAIAAAANAAQAAAAMAAIAAAAMAAQAAAAOAAEAAAAMAAUAAAAMAAIAAAALAAUAAAAOAAEAAAALAAYAAAAMAAIAAAANAAMAAAAOAAEAAAAOAAIAAAAOAAEAAAAPAAAAAAALAAAAAAAKAAMAAAAKAAAAAAAKAAYAAAAOAAEAAAAKAAcAAAAMAAEAAAAJAAcAAAANAAAAAAAIAAcAAAAKAAAAAAAJAAYAAAAKAAEAAAAJAAUAAAAKAAAAAAAIAAgAAAAKAAIAAAAKAAgAAAAMAAIAAAAJAAgAAAALAAIAAAAKAA0AAAAOAAAAAAAKAAwAAAAMAAAAAAAJAA0AAAALAAEAAAAJAAwAAAALAAAAAAAIAA0AAAALAAEAAAAIAAwAAAALAAAAAAAHAA0AAAALAAEAAAAHAAwAAAALAAAAAAAGAA0AAAAKAAEAAAAGAAwAAAAKAAAAAAALAA0AAAAMAAAAAAA=") +tile_set = ExtResource("1_joa6j") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_set = ExtResource("1_joa6j") diff --git a/mapgen/layout/path/003.tscn b/mapgen/layout/path/003.tscn new file mode 100644 index 0000000..05ffe6a --- /dev/null +++ b/mapgen/layout/path/003.tscn @@ -0,0 +1,11 @@ +[gd_scene format=4 uid="uid://myaqar677n7t"] + +[node name="Path-002" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAA8AGwAEAAAAAAAAAA4AGwACAAIAAAAAAA0AGwAEAAAAAAAAAAwAGwAEAAAAAAAAAAsAGwAEAAAAAAAAAAoAGwAEAAAAAAAAAAkAGwABAAIAAAAAAAgAGwACAAEAAAAAAAcAGwAEAAAAAAAAAAYAGwAEAAAAAAAAAAUAGwAEAAAAAAAAAAQAGwAEAAAAAAAAAAMAGwABAAMAAAAAAAIAGwABAAIAAAAAAAEAGwAEAAAAAAAAAAAAGwAEAAAAAAAJAAAAGwACAAEAAAAIAAAAGwAEAAAAAAAHAAAAGwAEAAAAAAAGAAAAGwABAAAAAAAFAAAAGwAEAAAAAAAEAAAAGwAEAAAAAAADAAAAGwAEAAAAAAACAAAAGwADAAIAAAABAAAAGwAEAAAAAAATAAAAGwADAAAAAAASAAAAGwAEAAAAAAARAAAAGwAEAAAAAAAQAAAAGwAEAAAAAAAPAAAAGwAEAAAAAAAOAAAAGwAEAAAAAAANAAAAGwAEAAAAAAAMAAAAGwAEAAAAAAALAAAAGwAAAAEAAAAKAAAAGwAEAAAAAAATAA8AGwAEAAAAAAATAA4AGwAEAAAAAAATAA0AGwAEAAAAAAATAAwAGwAEAAAAAAATAAsAGwAEAAAAAAATAAoAGwAEAAAAAAATAAkAGwAEAAAAAAATAAgAGwAEAAAAAAATAAcAGwAEAAAAAAATAAYAGwAEAAAAAAATAAUAGwAEAAAAAAATAAQAGwAEAAAAAAATAAMAGwAEAAAAAAATAAIAGwAEAAAAAAATAAEAGwAEAAAAAAASAA8AGwAEAAAAAAASAA4AGwAEAAAAAAASAA0AGwAEAAAAAAASAAwAGwACAAEAAAASAAsAGwAEAAAAAAASAAoAGwAEAAAAAAASAAkAGwAEAAAAAAASAAgAGwAEAAAAAAASAAcAGwAEAAAAAAASAAYAGwAAAAAAAAASAAUAGwACAAAAAAASAAQAGwAEAAAAAAASAAMAGwAEAAAAAAASAAIAGwAEAAAAAAASAAEAGwAEAAAAAAARAA8AGwAEAAAAAAARAA4AGwAEAAAAAAARAA0AGwABAAAAAAARAAwAGwAEAAAAAAARAAsAGwAEAAAAAAARAAoAGwAAAAIAAAARAAkAGwAEAAAAAAARAAgAGwAEAAAAAAARAAcAGwAEAAAAAAARAAYAGwAEAAAAAAARAAUAGwACAAIAAAARAAQAGwAEAAAAAAARAAMAGwAEAAAAAAARAAIAGwAEAAAAAAARAAEAGwAEAAAAAAAQAA8AGwAAAAAAAAAQAA4AGwAEAAAAAAAQAA0AGwAEAAAAAAAQAAwAGwAEAAAAAAAQAAsAGwACAAIAAAAQAAoAGwAEAAAAAAAQAAkAGwAEAAAAAAAQAAgAGwAEAAAAAAAQAAcAGwADAAEAAAAQAAYAGwAEAAAAAAAQAAUAGwAEAAAAAAAQAAQAGwABAAMAAAAQAAMAGwABAAAAAAAQAAIAGwAEAAAAAAAQAAEAGwAEAAAAAAAPAA8AGwABAAEAAAAPAA4AGwAEAAAAAAAPAA0AGwAEAAAAAAAPAAwAGwAEAAAAAAAPAAsAGwAEAAAAAAAPAAoAGwAEAAAAAAAPAAkAGwAEAAAAAAAPAAgAGwAEAAAAAAAPAAcAGwAEAAAAAAAPAAYAGwADAAAAAAAPAAUAGwAEAAAAAAAPAAQAGwAEAAAAAAAPAAMAGwAEAAAAAAAPAAIAGwAEAAAAAAAPAAEAGwAEAAAAAAAOAA8AGwAEAAAAAAAOAA4AGwAEAAAAAAAOAA0AGwAEAAAAAAAOAAwAGwAEAAAAAAAOAAsAGwAEAAAAAAAOAAoAGwAEAAAAAAAOAAkAGwAEAAAAAAAOAAgAGwABAAIAAAAOAAcAGwAEAAAAAAAOAAYAGwAEAAAAAAAOAAUAGwAAAAIAAAAOAAQAGwAEAAAAAAAOAAMAGwAEAAAAAAAOAAIAGwAEAAAAAAAOAAEAGwAEAAAAAAANAA8AGwAEAAAAAAANAA4AGwAEAAAAAAANAA0AGwABAAAAAAANAAwAGwAEAAAAAAANAAsAGwAEAAAAAAANAAoAGwABAAMAAAANAAkAGwAEAAAAAAANAAgAGwACAAIAAAANAAcAGwAEAAAAAAANAAYAGwABAAIAAAANAAUAGwAEAAAAAAANAAQAGwAEAAAAAAANAAMAGwAEAAAAAAANAAIAGwAEAAAAAAANAAEAGwABAAAAAAAMAA8AGwAEAAAAAAAMAA4AGwAEAAAAAAAMAA0AGwAAAAEAAAAMAAwAGwABAAIAAAAMAAsAGwAEAAAAAAAMAAoAGwAEAAAAAAAMAAkAGwAEAAAAAAAMAAgAGwAEAAAAAAAMAAcAGwAEAAAAAAAMAAYAGwAEAAAAAAAMAAUAGwAEAAAAAAAMAAQAGwAEAAAAAAAMAAMAGwAEAAAAAAAMAAIAGwAEAAAAAAAMAAEAGwAEAAAAAAALAA8AGwAEAAAAAAALAA4AGwAEAAAAAAALAA0AGwAEAAAAAAALAAwAGwAEAAAAAAALAAsAGwAEAAAAAAALAAoAGwAEAAAAAAALAAkAGwAEAAAAAAALAAgAGwAEAAAAAAALAAcAGwAEAAAAAAALAAYAGwAEAAAAAAALAAUAGwAAAAAAAAALAAQAGwAEAAAAAAALAAMAGwAEAAAAAAALAAIAGwAEAAAAAAALAAEAGwABAAAAAAAKAA8AGwAEAAAAAAAKAA4AGwAEAAAAAAAKAA0AGwAEAAAAAAAKAAwAGwAEAAAAAAAKAAsAGwAEAAAAAAAKAAoAGwAEAAAAAAAKAAkAGwAEAAAAAAAKAAgAGwAEAAAAAAAKAAcAGwAEAAAAAAAKAAYAGwAEAAAAAAAKAAUAGwAEAAAAAAAKAAQAGwAEAAAAAAAKAAMAGwAEAAAAAAAKAAIAGwADAAAAAAAKAAEAGwABAAIAAAAJAA8AGwAEAAAAAAAJAA4AGwAEAAAAAAAJAA0AGwAEAAAAAAAJAAwAGwAEAAAAAAAJAAsAGwAEAAAAAAAJAAoAGwAEAAAAAAAJAAkAGwAEAAAAAAAJAAgAGwADAAAAAAAJAAcAGwAEAAAAAAAJAAYAGwAEAAAAAAAJAAUAGwAAAAAAAAAJAAQAGwAEAAAAAAAJAAMAGwAEAAAAAAAJAAIAGwAEAAAAAAAJAAEAGwAEAAAAAAAIAA8AGwAEAAAAAAAIAA4AGwAEAAAAAAAIAA0AGwAEAAAAAAAIAAwAGwAAAAEAAAAIAAsAGwAEAAAAAAAIAAoAGwAEAAAAAAAIAAkAGwAEAAAAAAAIAAgAGwAEAAAAAAAIAAcAGwAEAAAAAAAIAAYAGwAEAAAAAAAIAAUAGwAEAAAAAAAIAAQAGwAEAAAAAAAIAAMAGwAEAAAAAAAIAAIAGwAEAAAAAAAIAAEAGwAEAAAAAAAHAA8AGwABAAIAAAAHAA4AGwAEAAAAAAAHAA0AGwAEAAAAAAAHAAwAGwABAAAAAAAHAAsAGwAEAAAAAAAHAAoAGwAEAAAAAAAHAAkAGwAEAAAAAAAHAAgAGwAEAAAAAAAHAAcAGwAEAAAAAAAHAAYAGwAEAAAAAAAHAAUAGwAEAAAAAAAHAAQAGwAEAAAAAAAHAAMAGwAEAAAAAAAHAAIAGwAEAAAAAAAHAAEAGwAEAAAAAAAGAA8AGwAEAAAAAAAGAA4AGwAEAAAAAAAGAA0AGwAEAAAAAAAGAAwAGwAEAAAAAAAGAAsAGwAEAAAAAAAGAAoAGwAEAAAAAAAGAAkAGwAEAAAAAAAGAAgAGwACAAEAAAAGAAcAGwAEAAAAAAAGAAYAGwAEAAAAAAAGAAUAGwAAAAAAAAAGAAQAGwAEAAAAAAAGAAMAGwAEAAAAAAAGAAIAGwAEAAAAAAAGAAEAGwAEAAAAAAAFAA8AGwACAAEAAAAFAA4AGwABAAIAAAAFAA0AGwAEAAAAAAAFAAwAGwAEAAAAAAAFAAsAGwAEAAAAAAAFAAoAGwAEAAAAAAAFAAkAGwAEAAAAAAAFAAgAGwAEAAAAAAAFAAcAGwAEAAAAAAAFAAYAGwAEAAAAAAAFAAUAGwAAAAAAAAAFAAQAGwAEAAAAAAAFAAMAGwAEAAAAAAAFAAIAGwAEAAAAAAAFAAEAGwACAAEAAAAEAA8AGwAEAAAAAAAEAA4AGwAEAAAAAAAEAA0AGwAAAAAAAAAEAAwAGwAEAAAAAAAEAAsAGwAEAAAAAAAEAAoAGwAEAAAAAAAEAAkAGwAEAAAAAAAEAAgAGwAEAAAAAAAEAAcAGwAEAAAAAAAEAAYAGwAEAAAAAAAEAAUAGwAEAAAAAAAEAAQAGwAEAAAAAAAEAAMAGwAEAAAAAAAEAAIAGwAEAAAAAAAEAAEAGwAEAAAAAAADAA8AGwAEAAAAAAADAA4AGwAEAAAAAAADAA0AGwAEAAAAAAADAAwAGwAEAAAAAAADAAsAGwAEAAAAAAADAAoAGwAEAAAAAAADAAkAGwAEAAAAAAADAAgAGwAEAAAAAAADAAcAGwAEAAAAAAADAAYAGwAEAAAAAAADAAUAGwAEAAAAAAADAAQAGwAEAAAAAAADAAMAGwAEAAAAAAADAAIAGwAEAAAAAAADAAEAGwABAAIAAAACAA8AGwAEAAAAAAACAA4AGwAAAAAAAAACAA0AGwAAAAEAAAACAAwAGwAEAAAAAAACAAsAGwAEAAAAAAACAAoAGwAEAAAAAAACAAkAGwADAAIAAAACAAgAGwAEAAAAAAACAAcAGwAEAAAAAAACAAYAGwABAAIAAAACAAUAGwAEAAAAAAACAAQAGwAEAAAAAAACAAMAGwAEAAAAAAACAAIAGwAEAAAAAAACAAEAGwAAAAMAAAABAA8AGwAEAAAAAAABAA4AGwAEAAAAAAABAA0AGwAEAAAAAAABAAwAGwAEAAAAAAABAAsAGwADAAMAAAABAAoAGwABAAAAAAABAAkAGwAEAAAAAAABAAgAGwAEAAAAAAABAAcAGwABAAAAAAABAAYAGwAEAAAAAAABAAUAGwAEAAAAAAABAAQAGwAEAAAAAAABAAMAGwAEAAAAAAABAAIAGwAEAAAAAAABAAEAGwAEAAAAAAA=") + +[node name="Walls" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAEAAEABAAFAAQAAAAEAAAABAACAAQAAAADAAEABAACAAYAAAADAAAABAACAAQAAAACAAEABAACAAYAAAACAAAABAACAAQAAAABAAEABAAEAAQAAAABAAAABAACAAQAAAAAAAEABAABAAUAAAAAAAAABAABAAQAAAABAAMABAADAAYAAAABAAIABAADAAUAAAAAAAMABAABAAYAAAAAAAIABAABAAUAAAATAAEABAADAAUAAAATAAAABAADAAQAAAASAAEABAAFAAQAAAASAAAABAACAAQAAAARAAEABAACAAYAAAARAAAABAACAAQAAAAQAAEABAACAAYAAAAQAAAABAACAAQAAAATAAMABAADAAYAAAATAAIABAADAAUAAAASAAMABAABAAYAAAASAAIABAABAAUAAAATAA8ABAADAAYAAAATAA4ABAADAAUAAAASAA8ABAACAAYAAAASAA4ABAACAAUAAAARAA8ABAACAAYAAAARAA4ABAAFAAUAAAAQAA8ABAACAAYAAAAQAA4ABAACAAQAAAATAA0ABAADAAQAAAASAA0ABAACAAQAAAADAA8ABAACAAYAAAADAA4ABAACAAQAAAACAA8ABAACAAYAAAACAA4ABAACAAQAAAABAA8ABAACAAYAAAABAA4ABAACAAQAAAAAAA8ABAABAAYAAAAAAA4ABAABAAQAAAAFAAAABAACAAQAAAAGAAAABAACAAQAAAAGAAEABAACAAYAAAAHAAEABAACAAYAAAAFAAEABAAEAAQAAAAHAAAABAACAAQAAAAIAAEABAACAAYAAAAIAAAABAACAAQAAAARAA0ABAABAAQAAAAPAA8ABAACAAYAAAAOAA8ABAACAAYAAAANAA8ABAACAAYAAAANAA4ABAAFAAUAAAAOAA4ABAAEAAUAAAAPAA4ABAACAAQAAAAEAA4ABAACAAQAAAAFAA4ABAAFAAUAAAAGAA4ABAACAAUAAAAHAA4ABAACAAUAAAAEAA8ABAACAAYAAAAFAA8ABAACAAYAAAAGAA8ABAACAAYAAAAHAA8ABAACAAYAAAAIAA4ABAAEAAUAAAAJAA4ABAACAAQAAAAKAA4ABAACAAQAAAALAA4ABAACAAQAAAAMAA4ABAACAAQAAAAMAA8ABAACAAYAAAALAA8ABAACAAYAAAAKAA8ABAACAAYAAAAJAA8ABAACAAYAAAAIAA8ABAACAAYAAAAJAAAABAACAAQAAAAKAAAABAACAAQAAAALAAEABAACAAUAAAAMAAEABAACAAUAAAANAAEABAAEAAQAAAAOAAEABAACAAYAAAAPAAEABAACAAYAAAAPAAAABAACAAQAAAAOAAAABAACAAQAAAANAAAABAACAAQAAAAMAAAABAACAAQAAAAKAAEABAACAAUAAAAJAAEABAAFAAQAAAALAAAABAACAAQAAAANAAIABAADAAYAAAAMAAIABAACAAYAAAALAAIABAACAAYAAAAKAAMABAADAAUAAAAJAAMABAAFAAUAAAAIAAQABAACAAUAAAAHAAQABAABAAUAAAAHAAUABAAFAAUAAAAGAAUABAABAAQAAAAJAAQABAACAAUAAAAKAAIABAAEAAQAAAAJAAIABAABAAUAAAAIAAMABAACAAQAAAAIAAUABAAEAAQAAAAHAAYABAAEAAQAAAAIAAYABAADAAYAAAAJAAUABAACAAYAAAAKAAUABAACAAYAAAAKAAQABAAEAAUAAAAGAAYABAAFAAUAAAAGAAcABAACAAYAAAAFAAcABAABAAYAAAAHAAcABAADAAYAAAAHAAMABAABAAQAAAALAAUABAAFAAYAAAAMAAUABAADAAQAAAAMAAYABAADAAUAAAANAAcABAACAAQAAAAOAAcABAACAAQAAAAOAAgABAACAAYAAAAPAAgABAADAAYAAAANAAgABAACAAYAAAAMAAcABAAFAAYAAAALAAcABAABAAYAAAALAAYABAABAAUAAAALAAQABAADAAQAAAAMAAgABAABAAYAAAAFAAYABAABAAQAAAAPAAcABAADAAQAAAAIAA0ABAADAAQAAAAHAA0ABAAEAAUAAAAHAAwABAADAAQAAAAGAAwABAAEAAUAAAAGAAsABAADAAQAAAAFAAsABAABAAQAAAAFAAwABAABAAUAAAAFAA0ABAABAAUAAAAGAA0ABAACAAUAAAAOAA0ABAADAAUAAAANAAwABAABAAQAAAANAA0ABAABAAUAAAAOAAwABAADAAQAAAABAAcABAADAAQAAAAAAAcABAABAAQAAAAAAAgABAABAAYAAAABAAgABAADAAYAAAAEAAIABAABAAYAAAAFAAIABAADAAYAAAA=") + +[node name="Scatter" type="TileMapLayer" parent="."] diff --git a/mapgen/layout/start/001.tscn b/mapgen/layout/start/001.tscn new file mode 100644 index 0000000..69739cb --- /dev/null +++ b/mapgen/layout/start/001.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=4 uid="uid://ddvhey8d6vfbl"] + +[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="1_atytl"] + +[node name="Start-001" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAAAAAAADAAIAAAAAAAEAAAADAAIAAAAAAAIAAAADAAIAAAAAAAMAAAADAAIAAAAAAAQAAAADAAIAAAAAAAUAAAADAAIAAAAAAAYAAAADAAIAAAAAAAcAAAADAAIAAAAAAAgAAAADAAIAAAAAAAkAAAADAAIAAAAAAAoAAAADAAIAAAAAAAsAAAADAAIAAAAAAAwAAAADAAIAAAAAAA0AAAADAAIAAAAAAA4AAAADAAIAAAAAAA8AAAADAAIAAAABAAAAAAADAAIAAAABAAEAAAADAAIAAAABAAIAAAADAAIAAAABAAMAAAADAAIAAAABAAQAAAADAAIAAAABAAUAAAADAAIAAAABAAYAAAADAAIAAAABAAcAAAADAAIAAAABAAgAAAADAAIAAAABAAkAAAADAAIAAAABAAoAAAADAAIAAAABAAsAAAADAAIAAAABAAwAAAADAAIAAAABAA0AAAADAAIAAAABAA4AAAADAAIAAAABAA8AAAADAAIAAAACAAAAAAADAAIAAAACAAEAAAADAAIAAAACAAIAAAADAAIAAAACAAMAAAADAAIAAAACAAQAAAADAAIAAAACAAUAAAADAAIAAAACAAYAAAADAAIAAAACAAcAAAADAAIAAAACAAgAAAADAAIAAAACAAkAAAADAAIAAAACAAoAAAADAAIAAAACAAsAAAADAAIAAAACAAwAAAADAAIAAAACAA0AAAADAAIAAAACAA4AAAADAAIAAAACAA8AAAADAAIAAAADAAAAAAADAAIAAAADAAEAAAADAAIAAAADAAIAAAADAAIAAAADAAMAAAADAAIAAAADAAQAAAADAAIAAAADAAUAAAADAAIAAAADAAYAAAADAAIAAAADAAcAAAADAAIAAAADAAgAAAADAAIAAAADAAkAAAADAAIAAAADAAoAAAADAAIAAAADAAsAAAADAAIAAAADAAwAAAADAAIAAAADAA0AAAADAAIAAAADAA4AAAADAAIAAAADAA8AAAADAAIAAAAEAAAAAAADAAIAAAAEAAEAAAADAAIAAAAEAAIAAAADAAIAAAAEAAMAAAADAAIAAAAEAAQAAAADAAIAAAAEAAUAAAADAAIAAAAEAAYAAAADAAIAAAAEAAcAAAADAAIAAAAEAAgAAAADAAIAAAAEAAkAAAADAAIAAAAEAAoAAAADAAIAAAAEAAsAAAADAAIAAAAEAAwAAAADAAIAAAAEAA0AAAADAAIAAAAEAA4AAAADAAIAAAAEAA8AAAADAAIAAAAFAAAAAAADAAIAAAAFAAEAAAADAAIAAAAFAAIAAAADAAIAAAAFAAMAAAADAAIAAAAFAAQAAAADAAIAAAAFAAUAAAADAAIAAAAFAAYAAAADAAIAAAAFAAcAAAADAAIAAAAFAAgAAAADAAIAAAAFAAkAAAADAAIAAAAFAAoAAAADAAIAAAAFAAsAAAADAAIAAAAFAAwAAAADAAIAAAAFAA0AAAADAAIAAAAFAA4AAAADAAIAAAAFAA8AAAADAAIAAAAGAAAAAAADAAIAAAAGAAEAAAADAAIAAAAGAAIAAAADAAIAAAAGAAMAAAADAAIAAAAGAAQAAAADAAIAAAAGAAUAAAADAAIAAAAGAAYAAAADAAIAAAAGAAcAAAADAAIAAAAGAAgAAAADAAIAAAAGAAkAAAADAAIAAAAGAAoAAAADAAIAAAAGAAsAAAADAAIAAAAGAAwAAAADAAIAAAAGAA0AAAADAAIAAAAGAA4AAAADAAIAAAAGAA8AAAADAAIAAAAHAAAAAAADAAIAAAAHAAEAAAADAAIAAAAHAAIAAAADAAIAAAAHAAMAAAADAAIAAAAHAAQAAAADAAIAAAAHAAUAAAADAAIAAAAHAAYAAAADAAIAAAAHAAcAAAADAAIAAAAHAAgAAAADAAIAAAAHAAkAAAADAAIAAAAHAAoAAAADAAIAAAAHAAsAAAADAAIAAAAHAAwAAAADAAIAAAAHAA0AAAADAAIAAAAHAA4AAAADAAIAAAAHAA8AAAADAAIAAAAIAAAAAAADAAIAAAAIAAEAAAADAAIAAAAIAAIAAAADAAIAAAAIAAMAAAADAAIAAAAIAAQAAAADAAIAAAAIAAUAAAADAAIAAAAIAAYAAAADAAIAAAAIAAcAAAADAAIAAAAIAAgAAAADAAIAAAAIAAkAAAADAAIAAAAIAAoAAAADAAIAAAAIAAsAAAADAAIAAAAIAAwAAAADAAIAAAAIAA0AAAADAAIAAAAIAA4AAAADAAIAAAAIAA8AAAADAAIAAAAJAAAAAAADAAIAAAAJAAEAAAADAAIAAAAJAAIAAAADAAIAAAAJAAMAAAADAAIAAAAJAAQAAAADAAIAAAAJAAUAAAADAAIAAAAJAAYAAAADAAIAAAAJAAcAAAADAAIAAAAJAAgAAAADAAIAAAAJAAkAAAADAAIAAAAJAAoAAAADAAIAAAAJAAsAAAADAAIAAAAJAAwAAAADAAIAAAAJAA0AAAADAAIAAAAJAA4AAAADAAIAAAAJAA8AAAADAAIAAAAKAAAAAAADAAIAAAAKAAEAAAADAAIAAAAKAAIAAAADAAIAAAAKAAMAAAADAAIAAAAKAAQAAAADAAIAAAAKAAUAAAADAAIAAAAKAAYAAAADAAIAAAAKAAcAAAADAAIAAAAKAAgAAAADAAIAAAAKAAkAAAADAAIAAAAKAAoAAAADAAIAAAAKAAsAAAADAAIAAAAKAAwAAAADAAIAAAAKAA0AAAADAAIAAAAKAA4AAAADAAIAAAAKAA8AAAADAAIAAAALAAAAAAADAAIAAAALAAEAAAADAAIAAAALAAIAAAADAAIAAAALAAMAAAADAAIAAAALAAQAAAADAAIAAAALAAUAAAADAAIAAAALAAYAAAADAAIAAAALAAcAAAADAAIAAAALAAgAAAADAAIAAAALAAkAAAADAAIAAAALAAoAAAADAAIAAAALAAsAAAADAAIAAAALAAwAAAADAAIAAAALAA0AAAADAAIAAAALAA4AAAADAAIAAAALAA8AAAADAAIAAAAMAAAAAAADAAIAAAAMAAEAAAADAAIAAAAMAAIAAAADAAIAAAAMAAMAAAADAAIAAAAMAAQAAAADAAIAAAAMAAUAAAADAAIAAAAMAAYAAAADAAIAAAAMAAcAAAADAAIAAAAMAAgAAAADAAIAAAAMAAkAAAADAAIAAAAMAAoAAAADAAIAAAAMAAsAAAADAAIAAAAMAAwAAAADAAIAAAAMAA0AAAADAAIAAAAMAA4AAAADAAIAAAAMAA8AAAADAAIAAAANAAAAAAADAAIAAAANAAEAAAADAAIAAAANAAIAAAADAAIAAAANAAMAAAADAAIAAAANAAQAAAADAAIAAAANAAUAAAADAAIAAAANAAYAAAADAAIAAAANAAcAAAADAAIAAAANAAgAAAADAAIAAAANAAkAAAADAAIAAAANAAoAAAADAAIAAAANAAsAAAADAAIAAAANAAwAAAADAAIAAAANAA0AAAADAAIAAAANAA4AAAADAAIAAAANAA8AAAADAAIAAAAOAAAAAAADAAIAAAAOAAEAAAADAAIAAAAOAAIAAAADAAIAAAAOAAMAAAADAAIAAAAOAAQAAAADAAIAAAAOAAUAAAADAAIAAAAOAAYAAAADAAIAAAAOAAcAAAADAAIAAAAOAAgAAAADAAIAAAAOAAkAAAADAAIAAAAOAAoAAAADAAIAAAAOAAsAAAADAAIAAAAOAAwAAAADAAIAAAAOAA0AAAADAAIAAAAOAA4AAAADAAIAAAAOAA8AAAADAAIAAAAPAAAAAAADAAIAAAAPAAEAAAADAAIAAAAPAAIAAAADAAIAAAAPAAMAAAADAAIAAAAPAAQAAAADAAIAAAAPAAUAAAADAAIAAAAPAAYAAAADAAIAAAAPAAcAAAADAAIAAAAPAAgAAAADAAIAAAAPAAkAAAADAAIAAAAPAAoAAAADAAIAAAAPAAsAAAADAAIAAAAPAAwAAAADAAIAAAAPAA0AAAADAAIAAAAPAA4AAAADAAIAAAAPAA8AAAADAAIAAAAQAAAAAAADAAIAAAAQAAEAAAADAAIAAAAQAAIAAAADAAIAAAAQAAMAAAADAAIAAAAQAAQAAAADAAIAAAAQAAUAAAADAAIAAAAQAAYAAAADAAIAAAAQAAcAAAADAAIAAAAQAAgAAAADAAIAAAAQAAkAAAADAAIAAAAQAAoAAAADAAIAAAAQAAsAAAADAAIAAAAQAAwAAAADAAIAAAAQAA0AAAADAAIAAAAQAA4AAAADAAIAAAAQAA8AAAADAAIAAAARAAAAAAADAAIAAAARAAEAAAADAAIAAAARAAIAAAADAAIAAAARAAMAAAADAAIAAAARAAQAAAADAAIAAAARAAUAAAADAAIAAAARAAYAAAADAAIAAAARAAcAAAADAAIAAAARAAgAAAADAAIAAAARAAkAAAADAAIAAAARAAoAAAADAAIAAAARAAsAAAADAAIAAAARAAwAAAADAAIAAAARAA0AAAADAAIAAAARAA4AAAADAAIAAAARAA8AAAADAAIAAAASAAAAAAADAAIAAAASAAEAAAADAAIAAAASAAIAAAADAAIAAAASAAMAAAADAAIAAAASAAQAAAADAAIAAAASAAUAAAADAAIAAAASAAYAAAADAAIAAAASAAcAAAADAAIAAAASAAgAAAADAAIAAAASAAkAAAADAAIAAAASAAoAAAADAAIAAAASAAsAAAADAAIAAAASAAwAAAADAAIAAAASAA0AAAADAAIAAAASAA4AAAADAAIAAAASAA8AAAADAAIAAAATAAAAAAADAAIAAAATAAEAAAADAAIAAAATAAIAAAADAAIAAAATAAMAAAADAAIAAAATAAQAAAADAAIAAAATAAUAAAADAAIAAAATAAYAAAADAAIAAAATAAcAAAADAAIAAAATAAgAAAADAAIAAAATAAkAAAADAAIAAAATAAoAAAADAAIAAAATAAsAAAADAAIAAAATAAwAAAADAAIAAAATAA0AAAADAAIAAAATAA4AAAADAAIAAAATAA8AAAADAAIAAAA=") +tile_set = ExtResource("1_atytl") + +[node name="Water" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAANAAgAAAAMAAIAAAANAAcAAAAMAAEAAAANAAYAAAAMAAAAAAAMAAgAAAALAAIAAAAMAAcAAAALAAEAAAAMAAYAAAALAAAAAAALAAgAAAAOAAEAAAALAAcAAAALAAEAAAALAAYAAAALAAAAAAAKAAgAAAANAAAAAAAKAAcAAAAKAAEAAAAKAAYAAAAKAAAAAAALAAoAAAAMAAIAAAALAAkAAAAMAAEAAAAKAAoAAAALAAIAAAAKAAkAAAALAAEAAAAJAAoAAAAOAAEAAAAJAAkAAAANAAAAAAAJAAgAAAAKAAAAAAAJAAsAAAAMAAIAAAAIAAsAAAALAAIAAAAIAAoAAAALAAEAAAAIAAkAAAALAAAAAAAHAAsAAAAOAAEAAAAHAAoAAAANAAAAAAAHAAkAAAAKAAAAAAAHAAwAAAAMAAIAAAAGAAwAAAALAAIAAAAGAAsAAAALAAEAAAAGAAoAAAALAAAAAAAFAAwAAAAKAAIAAAAFAAsAAAAKAAEAAAAFAAoAAAAKAAAAAAA=") +tile_set = ExtResource("1_atytl") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAEAAMAEwADAAEAAAAFAAMAEwAEAAEAAAALAAcACwAAAAAAAAALAAgACwAAAAEAAAALAAkACwAAAAIAAAAMAAcACwABAAAAAAAMAAgACwABAAEAAAAMAAkACwABAAIAAAANAAcACwACAAAAAAANAAgACwACAAEAAAANAAkACwACAAIAAAA=") +tile_set = ExtResource("1_atytl") diff --git a/mapgen/layout/template.tscn b/mapgen/layout/template.tscn new file mode 100644 index 0000000..5e63f13 --- /dev/null +++ b/mapgen/layout/template.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=4 uid="uid://ktvm2hjo3ywv"] + +[ext_resource type="TileSet" uid="uid://eucffgw5x26k" path="res://assets/sprites/tilesets/basic.tres" id="1_13h24"] + +[node name="Template" type="Node2D"] + +[node name="Ground" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAA8AGwAEAAAAAAAAAA4AGwACAAIAAAAAAA0AGwAEAAAAAAAAAAwAGwAEAAAAAAAAAAsAGwAEAAAAAAAAAAoAGwAEAAAAAAAAAAkAGwABAAIAAAAAAAgAGwACAAEAAAAAAAcAGwAEAAAAAAAAAAYAGwAEAAAAAAAAAAUAGwAEAAAAAAAAAAQAGwAEAAAAAAAAAAMAGwABAAMAAAAAAAIAGwABAAIAAAAAAAEAGwAEAAAAAAAAAAAAGwAEAAAAAAAJAAAAGwACAAEAAAAIAAAAGwAEAAAAAAAHAAAAGwAEAAAAAAAGAAAAGwABAAAAAAAFAAAAGwAEAAAAAAAEAAAAGwAEAAAAAAADAAAAGwAEAAAAAAACAAAAGwADAAIAAAABAAAAGwAEAAAAAAATAAAAGwADAAAAAAASAAAAGwAEAAAAAAARAAAAGwAEAAAAAAAQAAAAGwAEAAAAAAAPAAAAGwAEAAAAAAAOAAAAGwAEAAAAAAANAAAAGwAEAAAAAAAMAAAAGwAEAAAAAAALAAAAGwAAAAEAAAAKAAAAGwAEAAAAAAATAA8AGwAEAAAAAAATAA4AGwAEAAAAAAATAA0AGwAEAAAAAAATAAwAGwAEAAAAAAATAAsAGwAEAAAAAAATAAoAGwAEAAAAAAATAAkAGwAEAAAAAAATAAgAGwAEAAAAAAATAAcAGwAEAAAAAAATAAYAGwAEAAAAAAATAAUAGwAEAAAAAAATAAQAGwAEAAAAAAATAAMAGwAEAAAAAAATAAIAGwAEAAAAAAATAAEAGwAEAAAAAAASAA8AGwAEAAAAAAASAA4AGwAEAAAAAAASAA0AGwAEAAAAAAASAAwAGwACAAEAAAASAAsAGwAEAAAAAAASAAoAGwAEAAAAAAASAAkAGwAEAAAAAAASAAgAGwAEAAAAAAASAAcAGwAEAAAAAAASAAYAGwAAAAAAAAASAAUAGwACAAAAAAASAAQAGwAEAAAAAAASAAMAGwAEAAAAAAASAAIAGwAEAAAAAAASAAEAGwAEAAAAAAARAA8AGwAEAAAAAAARAA4AGwAEAAAAAAARAA0AGwABAAAAAAARAAwAGwAEAAAAAAARAAsAGwAEAAAAAAARAAoAGwAAAAIAAAARAAkAGwAEAAAAAAARAAgAGwAEAAAAAAARAAcAGwAEAAAAAAARAAYAGwAEAAAAAAARAAUAGwACAAIAAAARAAQAGwAEAAAAAAARAAMAGwAEAAAAAAARAAIAGwAEAAAAAAARAAEAGwAEAAAAAAAQAA8AGwAAAAAAAAAQAA4AGwAEAAAAAAAQAA0AGwAEAAAAAAAQAAwAGwAEAAAAAAAQAAsAGwACAAIAAAAQAAoAGwAEAAAAAAAQAAkAGwAEAAAAAAAQAAgAGwAEAAAAAAAQAAcAGwADAAEAAAAQAAYAGwAEAAAAAAAQAAUAGwAEAAAAAAAQAAQAGwABAAMAAAAQAAMAGwABAAAAAAAQAAIAGwAEAAAAAAAQAAEAGwAEAAAAAAAPAA8AGwABAAEAAAAPAA4AGwAEAAAAAAAPAA0AGwAEAAAAAAAPAAwAGwAEAAAAAAAPAAsAGwAEAAAAAAAPAAoAGwAEAAAAAAAPAAkAGwAEAAAAAAAPAAgAGwAEAAAAAAAPAAcAGwAEAAAAAAAPAAYAGwADAAAAAAAPAAUAGwAEAAAAAAAPAAQAGwAEAAAAAAAPAAMAGwAEAAAAAAAPAAIAGwAEAAAAAAAPAAEAGwAEAAAAAAAOAA8AGwAEAAAAAAAOAA4AGwAEAAAAAAAOAA0AGwAEAAAAAAAOAAwAGwAEAAAAAAAOAAsAGwAEAAAAAAAOAAoAGwAEAAAAAAAOAAkAGwAEAAAAAAAOAAgAGwABAAIAAAAOAAcAGwAEAAAAAAAOAAYAGwAEAAAAAAAOAAUAGwAAAAIAAAAOAAQAGwAEAAAAAAAOAAMAGwAEAAAAAAAOAAIAGwAEAAAAAAAOAAEAGwAEAAAAAAANAA8AGwAEAAAAAAANAA4AGwAEAAAAAAANAA0AGwABAAAAAAANAAwAGwAEAAAAAAANAAsAGwAEAAAAAAANAAoAGwABAAMAAAANAAkAGwAEAAAAAAANAAgAGwACAAIAAAANAAcAGwAEAAAAAAANAAYAGwABAAIAAAANAAUAGwAEAAAAAAANAAQAGwAEAAAAAAANAAMAGwAEAAAAAAANAAIAGwAEAAAAAAANAAEAGwABAAAAAAAMAA8AGwAEAAAAAAAMAA4AGwAEAAAAAAAMAA0AGwAAAAEAAAAMAAwAGwABAAIAAAAMAAsAGwAEAAAAAAAMAAoAGwAEAAAAAAAMAAkAGwAEAAAAAAAMAAgAGwAEAAAAAAAMAAcAGwAEAAAAAAAMAAYAGwAEAAAAAAAMAAUAGwAEAAAAAAAMAAQAGwAEAAAAAAAMAAMAGwAEAAAAAAAMAAIAGwAEAAAAAAAMAAEAGwAEAAAAAAALAA8AGwAEAAAAAAALAA4AGwAEAAAAAAALAA0AGwAEAAAAAAALAAwAGwAEAAAAAAALAAsAGwAEAAAAAAALAAoAGwAEAAAAAAALAAkAGwAEAAAAAAALAAgAGwAEAAAAAAALAAcAGwAEAAAAAAALAAYAGwAEAAAAAAALAAUAGwAAAAAAAAALAAQAGwAEAAAAAAALAAMAGwAEAAAAAAALAAIAGwAEAAAAAAALAAEAGwABAAAAAAAKAA8AGwAEAAAAAAAKAA4AGwAEAAAAAAAKAA0AGwAEAAAAAAAKAAwAGwAEAAAAAAAKAAsAGwAEAAAAAAAKAAoAGwAEAAAAAAAKAAkAGwAEAAAAAAAKAAgAGwAEAAAAAAAKAAcAGwAEAAAAAAAKAAYAGwAEAAAAAAAKAAUAGwAEAAAAAAAKAAQAGwAEAAAAAAAKAAMAGwAEAAAAAAAKAAIAGwADAAAAAAAKAAEAGwABAAIAAAAJAA8AGwAEAAAAAAAJAA4AGwAEAAAAAAAJAA0AGwAEAAAAAAAJAAwAGwAEAAAAAAAJAAsAGwAEAAAAAAAJAAoAGwAEAAAAAAAJAAkAGwAEAAAAAAAJAAgAGwADAAAAAAAJAAcAGwAEAAAAAAAJAAYAGwAEAAAAAAAJAAUAGwAAAAAAAAAJAAQAGwAEAAAAAAAJAAMAGwAEAAAAAAAJAAIAGwAEAAAAAAAJAAEAGwAEAAAAAAAIAA8AGwAEAAAAAAAIAA4AGwAEAAAAAAAIAA0AGwAEAAAAAAAIAAwAGwAAAAEAAAAIAAsAGwAEAAAAAAAIAAoAGwAEAAAAAAAIAAkAGwAEAAAAAAAIAAgAGwAEAAAAAAAIAAcAGwAEAAAAAAAIAAYAGwAEAAAAAAAIAAUAGwAEAAAAAAAIAAQAGwAEAAAAAAAIAAMAGwAEAAAAAAAIAAIAGwAEAAAAAAAIAAEAGwAEAAAAAAAHAA8AGwABAAIAAAAHAA4AGwAEAAAAAAAHAA0AGwAEAAAAAAAHAAwAGwABAAAAAAAHAAsAGwAEAAAAAAAHAAoAGwAEAAAAAAAHAAkAGwAEAAAAAAAHAAgAGwAEAAAAAAAHAAcAGwAEAAAAAAAHAAYAGwAEAAAAAAAHAAUAGwAEAAAAAAAHAAQAGwAEAAAAAAAHAAMAGwAEAAAAAAAHAAIAGwAEAAAAAAAHAAEAGwAEAAAAAAAGAA8AGwAEAAAAAAAGAA4AGwAEAAAAAAAGAA0AGwAEAAAAAAAGAAwAGwAEAAAAAAAGAAsAGwAEAAAAAAAGAAoAGwAEAAAAAAAGAAkAGwAEAAAAAAAGAAgAGwACAAEAAAAGAAcAGwAEAAAAAAAGAAYAGwAEAAAAAAAGAAUAGwAAAAAAAAAGAAQAGwAEAAAAAAAGAAMAGwAEAAAAAAAGAAIAGwAEAAAAAAAGAAEAGwAEAAAAAAAFAA8AGwACAAEAAAAFAA4AGwABAAIAAAAFAA0AGwAEAAAAAAAFAAwAGwAEAAAAAAAFAAsAGwAEAAAAAAAFAAoAGwAEAAAAAAAFAAkAGwAEAAAAAAAFAAgAGwAEAAAAAAAFAAcAGwAEAAAAAAAFAAYAGwAEAAAAAAAFAAUAGwAAAAAAAAAFAAQAGwAEAAAAAAAFAAMAGwAEAAAAAAAFAAIAGwAEAAAAAAAFAAEAGwACAAEAAAAEAA8AGwAEAAAAAAAEAA4AGwAEAAAAAAAEAA0AGwAAAAAAAAAEAAwAGwAEAAAAAAAEAAsAGwAEAAAAAAAEAAoAGwAEAAAAAAAEAAkAGwAEAAAAAAAEAAgAGwAEAAAAAAAEAAcAGwAEAAAAAAAEAAYAGwAEAAAAAAAEAAUAGwAEAAAAAAAEAAQAGwAEAAAAAAAEAAMAGwAEAAAAAAAEAAIAGwAEAAAAAAAEAAEAGwAEAAAAAAADAA8AGwAEAAAAAAADAA4AGwAEAAAAAAADAA0AGwAEAAAAAAADAAwAGwAEAAAAAAADAAsAGwAEAAAAAAADAAoAGwAEAAAAAAADAAkAGwAEAAAAAAADAAgAGwAEAAAAAAADAAcAGwAEAAAAAAADAAYAGwAEAAAAAAADAAUAGwAEAAAAAAADAAQAGwAEAAAAAAADAAMAGwAEAAAAAAADAAIAGwAEAAAAAAADAAEAGwABAAIAAAACAA8AGwAEAAAAAAACAA4AGwAAAAAAAAACAA0AGwAAAAEAAAACAAwAGwAEAAAAAAACAAsAGwAEAAAAAAACAAoAGwAEAAAAAAACAAkAGwADAAIAAAACAAgAGwAEAAAAAAACAAcAGwAEAAAAAAACAAYAGwABAAIAAAACAAUAGwAEAAAAAAACAAQAGwAEAAAAAAACAAMAGwAEAAAAAAACAAIAGwAEAAAAAAACAAEAGwAAAAMAAAABAA8AGwAEAAAAAAABAA4AGwAEAAAAAAABAA0AGwAEAAAAAAABAAwAGwAEAAAAAAABAAsAGwADAAMAAAABAAoAGwABAAAAAAABAAkAGwAEAAAAAAABAAgAGwAEAAAAAAABAAcAGwABAAAAAAABAAYAGwAEAAAAAAABAAUAGwAEAAAAAAABAAQAGwAEAAAAAAABAAMAGwAEAAAAAAABAAIAGwAEAAAAAAABAAEAGwAEAAAAAAA=") +tile_set = ExtResource("1_13h24") + +[node name="Walls" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAEAAEABAADAAYAAAAEAAAABAADAAQAAAADAAEABAACAAYAAAADAAAABAACAAQAAAACAAEABAACAAYAAAACAAAABAACAAQAAAABAAEABAAEAAQAAAABAAAABAACAAQAAAAAAAEABAABAAUAAAAAAAAABAABAAQAAAABAAMABAADAAYAAAABAAIABAADAAUAAAAAAAMABAABAAYAAAAAAAIABAABAAUAAAATAAEABAADAAUAAAATAAAABAADAAQAAAASAAEABAAFAAQAAAASAAAABAACAAQAAAARAAEABAACAAYAAAARAAAABAACAAQAAAAQAAEABAABAAYAAAAQAAAABAABAAQAAAATAAMABAADAAYAAAATAAIABAADAAUAAAASAAMABAABAAYAAAASAAIABAABAAUAAAATAA8ABAADAAYAAAATAA4ABAADAAUAAAASAA8ABAACAAYAAAASAA4ABAAFAAUAAAARAA8ABAACAAYAAAARAA4ABAACAAQAAAAQAA8ABAABAAYAAAAQAA4ABAABAAQAAAATAA0ABAADAAUAAAATAAwABAADAAQAAAASAA0ABAABAAUAAAASAAwABAABAAQAAAADAA8ABAADAAYAAAADAA4ABAADAAQAAAACAA8ABAACAAYAAAACAA4ABAACAAQAAAABAA8ABAACAAYAAAABAA4ABAAEAAUAAAAAAA8ABAABAAYAAAAAAA4ABAABAAUAAAABAA0ABAADAAUAAAABAAwABAADAAQAAAAAAA0ABAABAAUAAAAAAAwABAABAAQAAAA=") +tile_set = ExtResource("1_13h24") + +[node name="Scatter" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAEAAMAEwADAAEAAAAFAAMAEwAEAAEAAAA=") +tile_set = ExtResource("1_13h24") diff --git a/player/abilities/ability.gd b/player/abilities/ability.gd new file mode 100644 index 0000000..5888cf9 --- /dev/null +++ b/player/abilities/ability.gd @@ -0,0 +1,63 @@ +class_name Ability extends Node2D + +@export var cooldown: float = 5.0 +@export var effect_duration: float = 3.0 + +var modifiers: Array = [] +var can_activate: bool = true +var cooldown_timer: Timer +var effect_timer: Timer +var is_active: bool = false + +func _ready(): + cooldown_timer = Timer.new() + add_child(cooldown_timer) + cooldown_timer.one_shot = true + cooldown_timer.connect("timeout", _on_cooldown_timeout) + + effect_timer = Timer.new() + add_child(effect_timer) + effect_timer.one_shot = true + effect_timer.connect("timeout", _on_effect_timeout) + +func activate(): + if !can_activate: + return + + # Apply ability effects + _start_ability() + + # Apply modifiers to the ability + for modifier in modifiers: + modifier.modify_ability(self) + + is_active = true + can_activate = false + effect_timer.start(effect_duration) + +func add_modifier(modifier: Modifier): + modifiers.append(modifier) + modifier.on_equip(self) + +func remove_modifier(modifier_id: String): + for i in range(modifiers.size()): + if modifiers[i].id == modifier_id: + modifiers[i].on_unequip(self) + modifiers.remove_at(i) + break + +# Override in child classes +func _start_ability(): + pass + +# Override in child classes +func _end_ability(): + pass + +func _on_effect_timeout(): + is_active = false + _end_ability() + cooldown_timer.start(cooldown) + +func _on_cooldown_timeout(): + can_activate = true \ No newline at end of file diff --git a/player/abilities/ability.gd.uid b/player/abilities/ability.gd.uid new file mode 100644 index 0000000..629ba9f --- /dev/null +++ b/player/abilities/ability.gd.uid @@ -0,0 +1 @@ +uid://hhd27rd8ii8j diff --git a/player/abilities/ice_field.gd b/player/abilities/ice_field.gd new file mode 100644 index 0000000..1df0a30 --- /dev/null +++ b/player/abilities/ice_field.gd @@ -0,0 +1,23 @@ +class_name IceFieldAbility extends Ability + +@export var field_radius: float = 150.0 +@export var damage_per_second: float = 5.0 +@export var slow_amount: float = 0.5 + +var field_instance: Node2D + +func _init(): + cooldown = 10.0 + effect_duration = 6.0 + +func _start_ability(): + field_instance = preload("scenes/ice_field.tscn").instantiate() + field_instance.global_position = global_position + field_instance.radius = field_radius + field_instance.damage = damage_per_second + field_instance.slow = slow_amount + get_tree().root.add_child(field_instance) + +func _end_ability(): + if is_instance_valid(field_instance): + field_instance.queue_free() \ No newline at end of file diff --git a/player/abilities/ice_field.gd.uid b/player/abilities/ice_field.gd.uid new file mode 100644 index 0000000..bc38dc1 --- /dev/null +++ b/player/abilities/ice_field.gd.uid @@ -0,0 +1 @@ +uid://cs28213tcth26 diff --git a/player/abilities/scenes/ice_field.tscn b/player/abilities/scenes/ice_field.tscn new file mode 100644 index 0000000..b5c0706 --- /dev/null +++ b/player/abilities/scenes/ice_field.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://btymtl71y0hx7"] + +[sub_resource type="ImageTexture" id="ImageTexture_6kos1"] + +[node name="IceField" type="Node2D"] + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = SubResource("ImageTexture_6kos1") diff --git a/player/modifiers/fire_rate_additive.gd b/player/modifiers/fire_rate_additive.gd new file mode 100644 index 0000000..9ffdbd8 --- /dev/null +++ b/player/modifiers/fire_rate_additive.gd @@ -0,0 +1,13 @@ +class_name FireRateAdditive extends Modifier + +@export var fire_rate_bonus: float = 1.0 # +1 shot per second + +func _init(): + id = "fire_rate_additive" + display_name = "Rapid Fire" + description = "Increases fire rate by %0.1f shots per second" % fire_rate_bonus + modifier_type = ModifierType.ADDITIVE + +func apply_stats_modification(final_stats: Dictionary, base_stats: Dictionary) -> void: + if final_stats.has("fire_rate"): + final_stats.fire_rate += fire_rate_bonus \ No newline at end of file diff --git a/player/modifiers/fire_rate_additive.gd.uid b/player/modifiers/fire_rate_additive.gd.uid new file mode 100644 index 0000000..24a2b14 --- /dev/null +++ b/player/modifiers/fire_rate_additive.gd.uid @@ -0,0 +1 @@ +uid://cqamoc42g8sam diff --git a/player/modifiers/fire_rate_multiplicative.gd b/player/modifiers/fire_rate_multiplicative.gd new file mode 100644 index 0000000..9a7867f --- /dev/null +++ b/player/modifiers/fire_rate_multiplicative.gd @@ -0,0 +1,13 @@ +class_name FireRateMultiplicative extends Modifier + +@export var fire_rate_multiplier: float = 1.2 # 20% faster firing + +func _init(): + id = "fire_rate_multiplicative" + display_name = "Frenzy" + description = "Increases fire rate by %d%%" % ((fire_rate_multiplier - 1.0) * 100) + modifier_type = ModifierType.MULTIPLICATIVE + +func apply_stats_modification(final_stats: Dictionary, base_stats: Dictionary) -> void: + if final_stats.has("fire_rate"): + final_stats.fire_rate *= fire_rate_multiplier \ No newline at end of file diff --git a/player/modifiers/fire_rate_multiplicative.gd.uid b/player/modifiers/fire_rate_multiplicative.gd.uid new file mode 100644 index 0000000..0178172 --- /dev/null +++ b/player/modifiers/fire_rate_multiplicative.gd.uid @@ -0,0 +1 @@ +uid://bbqp2rhogkicu diff --git a/player/modifiers/modifier.gd b/player/modifiers/modifier.gd new file mode 100644 index 0000000..ae7f82a --- /dev/null +++ b/player/modifiers/modifier.gd @@ -0,0 +1,31 @@ +class_name Modifier extends Resource + +enum ModifierType { + ADDITIVE, # Simply adds values (e.g., +5 damage) + MULTIPLICATIVE, # Multiplies by a percentage (e.g., 20% more damage) + OVERRIDE, # Completely replaces the value + CONDITIONAL # Applies under certain conditions +} + +@export var id: String +@export var display_name: String +@export var description: String +@export var icon: Texture +@export var rarity: int +@export var modifier_type: ModifierType = ModifierType.ADDITIVE +@export var priority: int = 0 # Higher priority modifiers apply first + +# Called when the modifier is added to a weapon or ability +func on_equip(_owner) -> void: + pass + +# Called when the modifier is removed +func on_unequip(_owner) -> void: + pass + +# Override in child classes for specific modification logic +func modify_projectile(_projectile) -> void: + pass + +func modify_ability(_ability) -> void: + pass \ No newline at end of file diff --git a/player/modifiers/modifier.gd.uid b/player/modifiers/modifier.gd.uid new file mode 100644 index 0000000..3108eea --- /dev/null +++ b/player/modifiers/modifier.gd.uid @@ -0,0 +1 @@ +uid://c2vpdeqk0vvrg diff --git a/player/modifiers/piercing.gd b/player/modifiers/piercing.gd new file mode 100644 index 0000000..5259cda --- /dev/null +++ b/player/modifiers/piercing.gd @@ -0,0 +1,18 @@ +class_name PiercingModifier extends Modifier + +@export var pierce_count: int = 2 + +func _init(): + id = "piercing" + display_name = "Piercing Shot" + description = "Projectiles pass through %d enemies" % pierce_count + +func modify_projectile(projectile): + projectile.pierce_count = pierce_count + projectile.connect("on_hit", _on_projectile_hit) + +func _on_projectile_hit(projectile, _target): + projectile.pierce_count -= 1 + if projectile.pierce_count <= 0: + projectile.pierce_count = 0 + projectile.set_piercing(false) \ No newline at end of file diff --git a/player/modifiers/piercing.gd.uid b/player/modifiers/piercing.gd.uid new file mode 100644 index 0000000..910337a --- /dev/null +++ b/player/modifiers/piercing.gd.uid @@ -0,0 +1 @@ +uid://b60nonvh7ml2o diff --git a/player/modifiers/projectile_size_additive.gd b/player/modifiers/projectile_size_additive.gd new file mode 100644 index 0000000..cac295b --- /dev/null +++ b/player/modifiers/projectile_size_additive.gd @@ -0,0 +1,25 @@ +class_name ProjectileSizeAdditive extends Modifier + +@export var size_increase: float = 0.5 # +50% bigger + +func _init(): + id = "size_additive" + display_name = "Enlarged Projectiles" + description = "Increases projectile size by %d%%" % (size_increase * 100) + modifier_type = ModifierType.ADDITIVE + +func apply_stats_modification(final_stats: Dictionary, base_stats: Dictionary) -> void: + if final_stats.has("projectile_size"): + final_stats.projectile_size += size_increase + +func modify_projectile(projectile) -> void: + # This will be called when the projectile is created + # Scale is often handled in the recalculate_stats method, but we can also add visual effects here + projectile.connect("on_spawned", _on_projectile_spawned) + +func _on_projectile_spawned(projectile): + # Add a trail effect for larger projectiles + if projectile.scale.x > 1.2: + pass + #var trail = preload("res://scenes/projectile_trail.tscn").instantiate() + #projectile.add_child(trail) \ No newline at end of file diff --git a/player/modifiers/projectile_size_additive.gd.uid b/player/modifiers/projectile_size_additive.gd.uid new file mode 100644 index 0000000..b4f7466 --- /dev/null +++ b/player/modifiers/projectile_size_additive.gd.uid @@ -0,0 +1 @@ +uid://hsl3es4bcvqf diff --git a/player/modifiers/projectile_size_multiplicative.gd b/player/modifiers/projectile_size_multiplicative.gd new file mode 100644 index 0000000..f520d7a --- /dev/null +++ b/player/modifiers/projectile_size_multiplicative.gd @@ -0,0 +1,14 @@ +class_name ProjectileSizeMultiplicative extends Modifier + +@export var size_multiplier: float = 1.5 # 50% bigger + +func _init(): + id = "size_multiplicative" + display_name = "Giant Projectiles" + description = "Multiplies projectile size by %0.1fx" % size_multiplier + modifier_type = ModifierType.MULTIPLICATIVE + priority = 10 # Higher priority than the additive version + +func apply_stats_modification(final_stats: Dictionary, base_stats: Dictionary) -> void: + if final_stats.has("projectile_size"): + final_stats.projectile_size *= size_multiplier \ No newline at end of file diff --git a/player/modifiers/projectile_size_multiplicative.gd.uid b/player/modifiers/projectile_size_multiplicative.gd.uid new file mode 100644 index 0000000..6161101 --- /dev/null +++ b/player/modifiers/projectile_size_multiplicative.gd.uid @@ -0,0 +1 @@ +uid://bvfir8srnaraa diff --git a/player/player.tscn b/player/player.tscn new file mode 100644 index 0000000..65945b8 --- /dev/null +++ b/player/player.tscn @@ -0,0 +1,558 @@ +[gd_scene load_steps=82 format=3 uid="uid://bo5aw2cad3akl"] + +[ext_resource type="Script" uid="uid://bq038uo4cm6nv" path="res://player/scripts/player.gd" id="1_oul6g"] +[ext_resource type="Texture2D" uid="uid://dqgq2c1h6yk3k" path="res://assets/sprites/characters/pink/Pink_Monster_Attack1_4.png" id="2_yllr7"] +[ext_resource type="Texture2D" uid="uid://dinwwco5v2km5" path="res://assets/sprites/characters/pink/Pink_Monster_Attack2_6.png" id="3_kb6p2"] +[ext_resource type="Texture2D" uid="uid://bx6nst3hqsww0" path="res://assets/sprites/characters/pink/Pink_Monster_Climb_4.png" id="4_wodsf"] +[ext_resource type="Texture2D" uid="uid://0muqa26ngic7" path="res://assets/sprites/characters/pink/Pink_Monster_Death_8.png" id="5_32hag"] +[ext_resource type="Texture2D" uid="uid://nyfqe1b4k8sx" path="res://assets/sprites/characters/pink/Pink_Monster_Hurt_4.png" id="6_tqiix"] +[ext_resource type="Texture2D" uid="uid://b6ihjsu8qhm2x" path="res://assets/sprites/characters/pink/Pink_Monster_Idle_4.png" id="7_e7oew"] +[ext_resource type="Texture2D" uid="uid://hnw46ye6vusn" path="res://assets/sprites/characters/pink/Pink_Monster_Jump_8.png" id="8_c35mf"] +[ext_resource type="Texture2D" uid="uid://dun0f0rkhaew5" path="res://assets/sprites/characters/pink/Pink_Monster_Push_6.png" id="9_65viv"] +[ext_resource type="Texture2D" uid="uid://cx2x6p0dnnm6y" path="res://assets/sprites/characters/pink/Pink_Monster_Run_6.png" id="10_x7c3f"] +[ext_resource type="Texture2D" uid="uid://538sc3bsdell" path="res://assets/sprites/characters/pink/Pink_Monster_Throw_4.png" id="11_bjvpn"] +[ext_resource type="Texture2D" uid="uid://efnfh4mf0ia2" path="res://assets/sprites/characters/pink/Pink_Monster_Walk_6.png" id="12_s7qer"] +[ext_resource type="Texture2D" uid="uid://cyfq0x0h2qeof" path="res://assets/sprites/characters/pink/Pink_Monster_Walk+Attack_6.png" id="13_g4c7l"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_rkbax"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_knn7v"] +atlas = ExtResource("2_yllr7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7pqkx"] +atlas = ExtResource("2_yllr7") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uw77l"] +atlas = ExtResource("2_yllr7") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rptt4"] +atlas = ExtResource("2_yllr7") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_r7pn3"] +atlas = ExtResource("3_kb6p2") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b8hi5"] +atlas = ExtResource("3_kb6p2") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2uvqg"] +atlas = ExtResource("3_kb6p2") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1s1yo"] +atlas = ExtResource("3_kb6p2") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5ejfk"] +atlas = ExtResource("3_kb6p2") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jd2rm"] +atlas = ExtResource("3_kb6p2") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_q28gw"] +atlas = ExtResource("4_wodsf") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ge24q"] +atlas = ExtResource("4_wodsf") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pnw6m"] +atlas = ExtResource("4_wodsf") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1so5t"] +atlas = ExtResource("4_wodsf") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_55jnj"] +atlas = ExtResource("5_32hag") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_dx5ib"] +atlas = ExtResource("5_32hag") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a2xo5"] +atlas = ExtResource("5_32hag") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_art4l"] +atlas = ExtResource("5_32hag") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fjxoa"] +atlas = ExtResource("5_32hag") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gswnw"] +atlas = ExtResource("5_32hag") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xcnuv"] +atlas = ExtResource("5_32hag") +region = Rect2(192, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j55il"] +atlas = ExtResource("5_32hag") +region = Rect2(224, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hjies"] +atlas = ExtResource("6_tqiix") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_mmwog"] +atlas = ExtResource("6_tqiix") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8pxes"] +atlas = ExtResource("6_tqiix") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fmu53"] +atlas = ExtResource("6_tqiix") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_w7j2h"] +atlas = ExtResource("7_e7oew") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n0b8q"] +atlas = ExtResource("7_e7oew") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jfgyi"] +atlas = ExtResource("7_e7oew") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_237xx"] +atlas = ExtResource("7_e7oew") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wpyo2"] +atlas = ExtResource("8_c35mf") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7crtr"] +atlas = ExtResource("8_c35mf") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vgvch"] +atlas = ExtResource("8_c35mf") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_a1u5o"] +atlas = ExtResource("8_c35mf") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3dxkp"] +atlas = ExtResource("8_c35mf") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6wior"] +atlas = ExtResource("8_c35mf") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p5tca"] +atlas = ExtResource("8_c35mf") +region = Rect2(192, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jbx34"] +atlas = ExtResource("8_c35mf") +region = Rect2(224, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s3g0c"] +atlas = ExtResource("9_65viv") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_35wys"] +atlas = ExtResource("9_65viv") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pjwc4"] +atlas = ExtResource("9_65viv") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_or4qq"] +atlas = ExtResource("9_65viv") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hggc2"] +atlas = ExtResource("9_65viv") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_b2j0d"] +atlas = ExtResource("9_65viv") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7l6ig"] +atlas = ExtResource("10_x7c3f") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j3r50"] +atlas = ExtResource("10_x7c3f") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_utr5e"] +atlas = ExtResource("10_x7c3f") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kewli"] +atlas = ExtResource("10_x7c3f") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_do7qw"] +atlas = ExtResource("10_x7c3f") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2h6tc"] +atlas = ExtResource("10_x7c3f") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8rogd"] +atlas = ExtResource("11_bjvpn") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_48p26"] +atlas = ExtResource("11_bjvpn") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_anp34"] +atlas = ExtResource("11_bjvpn") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jdjat"] +atlas = ExtResource("11_bjvpn") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j420s"] +atlas = ExtResource("12_s7qer") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kcq4v"] +atlas = ExtResource("12_s7qer") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qavcc"] +atlas = ExtResource("12_s7qer") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bd26m"] +atlas = ExtResource("12_s7qer") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lufic"] +atlas = ExtResource("12_s7qer") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nxclr"] +atlas = ExtResource("12_s7qer") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_onxu2"] +atlas = ExtResource("13_g4c7l") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gci7n"] +atlas = ExtResource("13_g4c7l") +region = Rect2(32, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tcwf7"] +atlas = ExtResource("13_g4c7l") +region = Rect2(64, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_20bc7"] +atlas = ExtResource("13_g4c7l") +region = Rect2(96, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jfgxe"] +atlas = ExtResource("13_g4c7l") +region = Rect2(128, 0, 32, 32) + +[sub_resource type="AtlasTexture" id="AtlasTexture_yg0n1"] +atlas = ExtResource("13_g4c7l") +region = Rect2(160, 0, 32, 32) + +[sub_resource type="SpriteFrames" id="SpriteFrames_qjt2w"] +animations = [{ +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_knn7v") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_7pqkx") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_uw77l") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_rptt4") +}], +"loop": true, +"name": &"attack_1", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_r7pn3") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_b8hi5") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_2uvqg") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_1s1yo") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_5ejfk") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_jd2rm") +}], +"loop": true, +"name": &"attack_2", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_q28gw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ge24q") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_pnw6m") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1so5t") +}], +"loop": true, +"name": &"climb", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_55jnj") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_dx5ib") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_a2xo5") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_art4l") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_fjxoa") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_gswnw") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_xcnuv") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_j55il") +}], +"loop": true, +"name": &"death", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_hjies") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_mmwog") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_8pxes") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_fmu53") +}], +"loop": true, +"name": &"hurt", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_w7j2h") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_n0b8q") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_jfgyi") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_237xx") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_wpyo2") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_7crtr") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_vgvch") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_a1u5o") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_3dxkp") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_6wior") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_p5tca") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_jbx34") +}], +"loop": true, +"name": &"jump", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_s3g0c") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_35wys") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_pjwc4") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_or4qq") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_hggc2") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_b2j0d") +}], +"loop": true, +"name": &"push", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_7l6ig") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_j3r50") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_utr5e") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_kewli") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_do7qw") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_2h6tc") +}], +"loop": true, +"name": &"run", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_8rogd") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_48p26") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_anp34") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_jdjat") +}], +"loop": true, +"name": &"throw", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_j420s") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_kcq4v") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_qavcc") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_bd26m") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_lufic") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_nxclr") +}], +"loop": true, +"name": &"walk", +"speed": 5.0 +}, { +"frames": [{ +"duration": 0.5, +"texture": SubResource("AtlasTexture_onxu2") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_gci7n") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_tcwf7") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_20bc7") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_jfgxe") +}, { +"duration": 0.5, +"texture": SubResource("AtlasTexture_yg0n1") +}], +"loop": true, +"name": &"walk_attack", +"speed": 5.0 +}] + +[node name="Player" type="CharacterBody2D"] +collision_mask = 14 +script = ExtResource("1_oul6g") + +[node name="PlayerCollision" type="CollisionShape2D" parent="."] +position = Vector2(0, 7) +shape = SubResource("CircleShape2D_rkbax") + +[node name="PlayerSprite" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_qjt2w") +animation = &"attack_2" +frame_progress = 0.752485 + +[node name="Camera2D" type="Camera2D" parent="."] +zoom = Vector2(2, 2) diff --git a/player/scripts/modifier_management.gd b/player/scripts/modifier_management.gd new file mode 100644 index 0000000..173547d --- /dev/null +++ b/player/scripts/modifier_management.gd @@ -0,0 +1,84 @@ +class_name ModifierManager extends Node + +signal modifier_added(modifier) +signal modifier_removed(modifier) +signal stats_updated() + +# Stores all active modifiers +var modifiers: Array[Modifier] = [] + +# Base stats (before modifiers) +var base_stats: Dictionary = {} + +# Final calculated stats +var final_stats: Dictionary = {} + +func _init(initial_base_stats: Dictionary = {}): + base_stats = initial_base_stats.duplicate() + final_stats = initial_base_stats.duplicate() + +func add_modifier(modifier: Modifier) -> void: + modifiers.append(modifier) + modifier.on_equip(get_parent()) + emit_signal("modifier_added", modifier) + recalculate_stats() + +func remove_modifier(modifier_id: String) -> void: + for i in range(modifiers.size()): + if modifiers[i].id == modifier_id: + var modifier = modifiers[i] + modifier.on_unequip(get_parent()) + modifiers.remove_at(i) + emit_signal("modifier_removed", modifier) + recalculate_stats() + break + +func recalculate_stats() -> void: + # Reset stats to base values + final_stats = base_stats.duplicate() + + # Sort modifiers by priority + modifiers.sort_custom(func(a, b): return a.priority > b.priority) + + # First pass: Apply OVERRIDE modifiers (highest priority first) + for modifier in modifiers: + if modifier.modifier_type == Modifier.ModifierType.OVERRIDE: + _apply_modifier_stats(modifier) + + # Second pass: Apply ADDITIVE modifiers + for modifier in modifiers: + if modifier.modifier_type == Modifier.ModifierType.ADDITIVE: + _apply_modifier_stats(modifier) + + # Third pass: Apply MULTIPLICATIVE modifiers + for modifier in modifiers: + if modifier.modifier_type == Modifier.ModifierType.MULTIPLICATIVE: + _apply_modifier_stats(modifier) + + # Last pass: Apply CONDITIONAL modifiers + for modifier in modifiers: + if modifier.modifier_type == Modifier.ModifierType.CONDITIONAL: + _apply_modifier_stats(modifier) + + # Apply caps and floors to stats + _apply_stat_limits() + + emit_signal("stats_updated") + +func _apply_modifier_stats(modifier: Modifier) -> void: + if modifier.has_method("apply_stats_modification"): + modifier.apply_stats_modification(final_stats, base_stats) + +func _apply_stat_limits() -> void: + # Example: Cap fire rate + if final_stats.has("fire_rate"): + final_stats.fire_rate = min(final_stats.fire_rate, 20.0) # Max 20 shots per second + final_stats.fire_rate = max(final_stats.fire_rate, 0.5) # Min 0.5 shots per second + + # Example: Cap projectile size + if final_stats.has("projectile_size"): + final_stats.projectile_size = min(final_stats.projectile_size, 5.0) # Max 5x normal size + final_stats.projectile_size = max(final_stats.projectile_size, 0.2) # Min 0.2x normal size + +func get_stat(stat_name: String, default_value = 0): + return final_stats.get(stat_name, default_value) \ No newline at end of file diff --git a/player/scripts/modifier_management.gd.uid b/player/scripts/modifier_management.gd.uid new file mode 100644 index 0000000..6f277c5 --- /dev/null +++ b/player/scripts/modifier_management.gd.uid @@ -0,0 +1 @@ +uid://cvklefr50qhfb diff --git a/player/scripts/movement.gd.uid b/player/scripts/movement.gd.uid new file mode 100644 index 0000000..eaa4cf4 --- /dev/null +++ b/player/scripts/movement.gd.uid @@ -0,0 +1 @@ +uid://bw6kcdfiq3ugv diff --git a/player/scripts/player.gd b/player/scripts/player.gd new file mode 100644 index 0000000..ab1dff0 --- /dev/null +++ b/player/scripts/player.gd @@ -0,0 +1,47 @@ +extends CharacterBody2D + +@export var speed = 200 +@export var weapon: RangedWeapon +@export var special_ability: Ability +@export var movement: PlayerMovement + +# Last direction for idle state +var last_direction = Vector2.DOWN + +@onready var animated_sprite = $PlayerSprite + +func _ready(): + weapon = RangedWeapon.new() + Log.pr("Weapon", weapon) + + # Initialize the movement resource with references + if movement: + movement.player = self + movement.animated_sprite = animated_sprite + movement.last_direction = Vector2.DOWN # Default direction + else: + # Create a new resource instance if none was assigned in the editor + movement = PlayerMovement.new() + movement.player = self + movement.animated_sprite = animated_sprite + + Log.pr("Adding projectile size additive modifier") + weapon.add_modifier(ProjectileSizeAdditive.new()) + Log.pr(weapon.stats.get_stat("projectile_size")) # Size is now 1.0 + 0.5 = 1.5 +# Size is now 1.0 + 0.5 = 1.5 + +# Add the multiplicative size modifier (1.5x multiplier) + Log.pr("Adding projectile size multiplicative modifier") + weapon.add_modifier(ProjectileSizeMultiplicative.new()) + Log.pr(weapon.stats.get_stat("projectile_size")) +# Size is now 1.5 * 1.5 = 2.25 + +# Add another additive size modifier (+0.7 or 70% increase) + Log.pr("Adding another projectile size additive modifier", 0.7) + var another_size_mod = ProjectileSizeAdditive.new() + another_size_mod.size_increase = 0.7 + weapon.add_modifier(another_size_mod) + Log.pr(weapon.stats.get_stat("projectile_size")) + +func _physics_process(delta): + movement.process(delta) diff --git a/player/scripts/player.gd.uid b/player/scripts/player.gd.uid new file mode 100644 index 0000000..d6fafd1 --- /dev/null +++ b/player/scripts/player.gd.uid @@ -0,0 +1 @@ +uid://bq038uo4cm6nv diff --git a/player/scripts/player_movement.gd b/player/scripts/player_movement.gd new file mode 100644 index 0000000..dea2c9e --- /dev/null +++ b/player/scripts/player_movement.gd @@ -0,0 +1,48 @@ +# PlayerMovement.gd +extends Resource +class_name PlayerMovement + +var player: CharacterBody2D +var animated_sprite: AnimatedSprite2D +var speed: float = 300.0 +var last_direction: Vector2 = Vector2.ZERO + +func process(_delta): + # Get input direction + var direction = Vector2.ZERO + + if Input.is_action_pressed("move_right"): + direction.x += 1 + if Input.is_action_pressed("move_left"): + direction.x -= 1 + if Input.is_action_pressed("move_down"): + direction.y += 1 + if Input.is_action_pressed("move_up"): + direction.y -= 1 + + # Normalize the direction + if direction.length() > 0: + direction = direction.normalized() + last_direction = direction + + # Set velocity + player.velocity = direction * speed + + # Move the character + player.move_and_slide() + + # Update animation + update_animation(direction) + +func update_animation(direction): + var anim_name = "idle" # Default animation + + if direction == Vector2.ZERO: + # Character is idle + anim_name = "idle" + else: + # Character is moving + anim_name = "walk" + + if animated_sprite.animation != anim_name: + animated_sprite.play(anim_name) diff --git a/player/scripts/player_movement.gd.uid b/player/scripts/player_movement.gd.uid new file mode 100644 index 0000000..1154f3b --- /dev/null +++ b/player/scripts/player_movement.gd.uid @@ -0,0 +1 @@ +uid://b3wtxr3udscoa diff --git a/player/weapons/ranged_weapon.gd b/player/weapons/ranged_weapon.gd new file mode 100644 index 0000000..167bf68 --- /dev/null +++ b/player/weapons/ranged_weapon.gd @@ -0,0 +1,85 @@ +class_name RangedWeapon extends Node2D + +signal projectile_spawned(projectile) + +@export var projectile_scene: PackedScene + +# Base stats - will be modified by modifiers +var base_stats = { + "damage": 10.0, + "fire_rate": 2.0, # Shots per second + "projectile_speed": 500.0, + "projectile_size": 1.0, + "projectile_lifetime": 5.0, + "max_pierce": 0 +} + +# Components +var stats: ModifierManager +var can_fire: bool = true +var fire_timer: Timer + +func _init() -> void: + stats = ModifierManager.new(base_stats) + Log.pr(stats) + add_child(stats) + +func _ready(): + # Connect to stats updated signal + stats.connect("stats_updated", _on_stats_updated) + + # Setup fire timer + fire_timer = Timer.new() + add_child(fire_timer) + fire_timer.one_shot = true + fire_timer.connect("timeout", _on_fire_timer_timeout) + + # Initial update + _on_stats_updated() + +func fire(direction: Vector2): + if !can_fire: + return + + _spawn_projectile(global_position, direction) + + can_fire = false + fire_timer.start(1.0 / stats.get_stat("fire_rate")) + +func _spawn_projectile(spawn_position: Vector2, spawn_direction: Vector2): + var projectile = projectile_scene.instantiate() + projectile.global_position = spawn_position + projectile.direction = spawn_direction + + # Apply stats to projectile + projectile.speed = stats.get_stat("projectile_speed") + projectile.damage = stats.get_stat("damage") + projectile.lifetime = stats.get_stat("projectile_lifetime") + projectile.pierce_count = stats.get_stat("max_pierce") + projectile.source_weapon = self + + # Apply size (scale) + var size = stats.get_stat("projectile_size") + projectile.scale = Vector2(size, size) + + # Allow modifiers to directly modify the projectile + for modifier in stats.modifiers: + modifier.modify_projectile(projectile) + + get_tree().root.add_child(projectile) + projectile.emit_signal("on_spawned", projectile) + emit_signal("projectile_spawned", projectile) + +func add_modifier(modifier: Modifier): + stats.add_modifier(modifier) + +func remove_modifier(modifier_id: String): + stats.remove_modifier(modifier_id) + +func _on_stats_updated(): + # Update any visual components based on new stats + # For example, if weapon appearance changes based on damage/fire rate + pass + +func _on_fire_timer_timeout(): + can_fire = true diff --git a/player/weapons/ranged_weapon.gd.uid b/player/weapons/ranged_weapon.gd.uid new file mode 100644 index 0000000..91bd784 --- /dev/null +++ b/player/weapons/ranged_weapon.gd.uid @@ -0,0 +1 @@ +uid://dcenqdci4hjes diff --git a/playground/level.gd b/playground/level.gd deleted file mode 100644 index c29f29e..0000000 --- a/playground/level.gd +++ /dev/null @@ -1,38 +0,0 @@ -extends Node2D - -var ground: TileMapLayer -var walls : TileMapLayer -var cells : Array - -var map_width : int = 40 -var map_height : int = 32 - -func _ready() -> void: - print("Level ready") - - ground = $Ground - walls = $Walls - - Log.pr(ground) - - cells = CoordUtil.all_cells(Vector2i(-1, -1), Vector2i(map_width + 1, map_height + 1)) - - Log.pr(cells) - - ground.clear() - ground.set_cells_terrain_connect(cells, 0, 1, false) - - var perimeter_cells : Array = CoordUtil.perimeter_cells(Vector2i(0, 0), Vector2i(map_width, map_height), false, 2) - walls.set_cells_terrain_connect(perimeter_cells, 0, 0, false) - # walls.set_cells_terrain_connect(cells, 0, 0, true) - - #var map_generator = load("res://utility/MapGenerator.gd") - var map_generator = MapGenerator.new() - # Generate a new map - map_generator.generate_map() - - # Print the map to console - map_generator.print_map() - - # Get the generated map data for use in your game - # var map_data = map_generator.get_map() diff --git a/playground/level.gd.uid b/playground/level.gd.uid deleted file mode 100644 index 9e5c9f9..0000000 --- a/playground/level.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://danlcoyd8tlji diff --git a/playground/level.tscn b/playground/level.tscn deleted file mode 100644 index bf53de0..0000000 --- a/playground/level.tscn +++ /dev/null @@ -1,18 +0,0 @@ -[gd_scene load_steps=3 format=4 uid="uid://fqdbtka7hqn"] - -[ext_resource type="TileSet" uid="uid://eucffgw5x26k" path="res://assets/tileset/basic.tres" id="1_bdmjt"] -[ext_resource type="Script" uid="uid://danlcoyd8tlji" path="res://playground/level.gd" id="1_ny3pf"] - -[node name="Level" type="Node2D"] -script = ExtResource("1_ny3pf") - -[node name="Ground" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAATABAAGwAEAAAAAAATAA8AGwAEAAAAAAATAA4AGwAEAAAAAAATAA0AGwADAAAAAAATAAwAGwAEAAAAAAATAAsAGwACAAAAAAATAAoAGwAEAAAAAAATAAkAGwAEAAAAAAATAAgAGwAAAAAAAAATAAcAGwAEAAAAAAATAAYAGwAEAAAAAAATAAUAGwAEAAAAAAATAAQAGwAEAAAAAAATAAMAGwAEAAAAAAATAAIAGwAEAAAAAAATAAEAGwAEAAAAAAATAAAAGwAEAAAAAAASABIAGwAEAAAAAAASAA8AGwAEAAAAAAASAA4AGwAEAAAAAAASAA0AGwAEAAAAAAASAAwAGwAEAAAAAAASAAsAGwAEAAAAAAASAAoAGwADAAAAAAASAAkAGwAEAAAAAAASAAgAGwAEAAAAAAASAAcAGwAEAAAAAAASAAYAGwAEAAAAAAASAAUAGwAEAAAAAAASAAQAGwAEAAAAAAASAAMAGwAEAAAAAAASAAIAGwAEAAAAAAASAAEAGwAEAAAAAAASAAAAGwAAAAIAAAARABIAGwAEAAAAAAARABEAGwAEAAAAAAARABAAGwACAAIAAAARAA4AGwAEAAAAAAARAA0AGwAEAAAAAAARAAwAGwAEAAAAAAARAAsAGwAEAAAAAAARAAoAGwAEAAAAAAARAAkAGwAEAAAAAAARAAgAGwABAAIAAAARAAcAGwAEAAAAAAARAAYAGwACAAAAAAARAAUAGwAEAAAAAAARAAQAGwAEAAAAAAARAAMAGwAEAAAAAAARAAIAGwAAAAEAAAARAAEAGwAEAAAAAAARAAAAGwAEAAAAAAAQABIAGwABAAIAAAAQABEAGwAEAAAAAAAQABAAGwAEAAAAAAAQAA4AGwAEAAAAAAAQAA0AGwAEAAAAAAAQAAwAGwAAAAAAAAAQAAsAGwAEAAAAAAAQAAoAGwAEAAAAAAAQAAkAGwAEAAAAAAAQAAgAGwAEAAAAAAAQAAcAGwAEAAAAAAAQAAYAGwAEAAAAAAAQAAUAGwAEAAAAAAAQAAQAGwAEAAAAAAAQAAMAGwAEAAAAAAAQAAIAGwABAAMAAAAQAAEAGwAEAAAAAAAQAAAAGwADAAAAAAAPABIAGwADAAIAAAAPABEAGwAEAAAAAAAPABAAGwAEAAAAAAAPAA8AGwAEAAAAAAAPAA0AGwAEAAAAAAAPAAwAGwAAAAIAAAAPAAsAGwACAAAAAAAPAAoAGwAEAAAAAAAPAAkAGwAEAAAAAAAPAAgAGwADAAEAAAAPAAcAGwAEAAAAAAAPAAYAGwAEAAAAAAAPAAUAGwAEAAAAAAAPAAQAGwAEAAAAAAAPAAMAGwAEAAAAAAAPAAIAGwAEAAAAAAAPAAEAGwAEAAAAAAAPAAAAGwAEAAAAAAAOABIAGwAEAAAAAAAOABEAGwAEAAAAAAAOABAAGwAEAAAAAAAOAA8AGwAEAAAAAAAOAA4AGwAEAAAAAAAOAAwAGwAEAAAAAAAOAAsAGwAEAAAAAAAOAAoAGwAEAAAAAAAOAAkAGwAEAAAAAAAOAAgAGwAEAAAAAAAOAAcAGwAEAAAAAAAOAAYAGwAEAAAAAAAOAAUAGwAEAAAAAAAOAAQAGwACAAIAAAAOAAMAGwAEAAAAAAAOAAIAGwAEAAAAAAAOAAEAGwAEAAAAAAAOAAAAGwAEAAAAAAANABIAGwAEAAAAAAANABEAGwAEAAAAAAANABAAGwAEAAAAAAANAA8AGwAEAAAAAAANAA4AGwACAAIAAAANAA0AGwAEAAAAAAANAAsAGwAEAAAAAAANAAoAGwAEAAAAAAANAAkAGwACAAIAAAANAAgAGwAEAAAAAAANAAcAGwAAAAIAAAANAAYAGwAEAAAAAAANAAUAGwAEAAAAAAANAAQAGwAEAAAAAAANAAMAGwAEAAAAAAANAAIAGwAEAAAAAAANAAEAGwAEAAAAAAANAAAAGwAEAAAAAAAMABIAGwAEAAAAAAAMABEAGwACAAEAAAAMABAAGwAEAAAAAAAMAA8AGwAEAAAAAAAMAA4AGwAEAAAAAAAMAA0AGwAEAAAAAAAMAAwAGwAEAAAAAAAMAAoAGwAEAAAAAAAMAAkAGwAEAAAAAAAMAAgAGwAEAAAAAAAMAAcAGwAEAAAAAAAMAAYAGwAEAAAAAAAMAAUAGwAEAAAAAAAMAAQAGwAEAAAAAAAMAAMAGwAEAAAAAAAMAAIAGwAEAAAAAAAMAAEAGwACAAIAAAAMAAAAGwAEAAAAAAALABIAGwAEAAAAAAALABEAGwAEAAAAAAALABAAGwAEAAAAAAALAA8AGwAEAAAAAAALAA4AGwAEAAAAAAALAA0AGwACAAAAAAALAAwAGwAEAAAAAAALAAsAGwADAAAAAAALAAgAGwAEAAAAAAALAAcAGwAEAAAAAAALAAYAGwAEAAAAAAALAAUAGwAEAAAAAAALAAQAGwAEAAAAAAALAAMAGwAEAAAAAAALAAIAGwAEAAAAAAALAAEAGwAEAAAAAAALAAAAGwAEAAAAAAAKABIAGwABAAMAAAAKABEAGwAEAAAAAAAKABAAGwAEAAAAAAAKAA8AGwAEAAAAAAAKAA4AGwAEAAAAAAAKAA0AGwAEAAAAAAAKAAwAGwAEAAAAAAAKAAsAGwABAAIAAAAKAAoAGwAEAAAAAAAKAAkAGwAEAAAAAAAKAAcAGwAEAAAAAAAKAAYAGwAEAAAAAAAKAAUAGwADAAAAAAAKAAQAGwAEAAAAAAAKAAMAGwAEAAAAAAAKAAIAGwAEAAAAAAAKAAEAGwAEAAAAAAAKAAAAGwACAAEAAAAJABIAGwAEAAAAAAAJABEAGwAEAAAAAAAJABAAGwAEAAAAAAAJAA8AGwABAAIAAAAJAA4AGwAEAAAAAAAJAA0AGwAEAAAAAAAJAAwAGwAEAAAAAAAJAAsAGwAEAAAAAAAJAAoAGwAEAAAAAAAJAAkAGwAEAAAAAAAJAAgAGwAEAAAAAAAJAAYAGwAEAAAAAAAJAAUAGwAEAAAAAAAJAAQAGwAEAAAAAAAJAAMAGwAEAAAAAAAJAAIAGwAEAAAAAAAJAAEAGwAEAAAAAAAJAAAAGwAEAAAAAAAIABIAGwAEAAAAAAAIABEAGwADAAMAAAAIABAAGwAEAAAAAAAIAA8AGwAEAAAAAAAIAA4AGwAEAAAAAAAIAA0AGwAEAAAAAAAIAAwAGwAEAAAAAAAIAAsAGwAAAAIAAAAIAAoAGwAEAAAAAAAIAAkAGwAEAAAAAAAIAAgAGwAEAAAAAAAIAAYAGwAEAAAAAAAIAAUAGwAEAAAAAAAIAAQAGwAAAAIAAAAIAAMAGwAEAAAAAAAIAAIAGwAEAAAAAAAIAAEAGwAEAAAAAAAIAAAAGwACAAIAAAAHABIAGwADAAEAAAAHABEAGwAEAAAAAAAHABAAGwACAAMAAAAHAA8AGwAEAAAAAAAHAA4AGwAAAAIAAAAHAA0AGwAEAAAAAAAHAAwAGwAEAAAAAAAHAAsAGwADAAEAAAAHAAoAGwAEAAAAAAAHAAkAGwAEAAAAAAAHAAgAGwAEAAAAAAAHAAcAGwAEAAAAAAAHAAUAGwAEAAAAAAAHAAQAGwAAAAIAAAAHAAMAGwAEAAAAAAAHAAIAGwACAAIAAAAHAAEAGwABAAIAAAAHAAAAGwAEAAAAAAAGABIAGwAEAAAAAAAGABEAGwAEAAAAAAAGABAAGwAEAAAAAAAGAA8AGwAEAAAAAAAGAA4AGwAEAAAAAAAGAA0AGwAEAAAAAAAGAAwAGwAEAAAAAAAGAAsAGwAEAAAAAAAGAAoAGwAEAAAAAAAGAAkAGwAEAAAAAAAGAAgAGwAEAAAAAAAGAAcAGwAEAAAAAAAGAAYAGwAEAAAAAAAGAAQAGwACAAAAAAAGAAMAGwAEAAAAAAAGAAIAGwABAAIAAAAGAAEAGwAEAAAAAAAGAAAAGwAEAAAAAAAFABIAGwAEAAAAAAAFABEAGwAEAAAAAAAFABAAGwAEAAAAAAAFAA8AGwAEAAAAAAAFAA4AGwAEAAAAAAAFAA0AGwAEAAAAAAAFAAwAGwAEAAAAAAAFAAsAGwAAAAMAAAAFAAoAGwAEAAAAAAAFAAkAGwABAAAAAAAFAAgAGwAEAAAAAAAFAAcAGwAAAAAAAAAFAAYAGwABAAAAAAAFAAUAGwAEAAAAAAAFAAMAGwADAAMAAAAFAAIAGwAEAAAAAAAFAAEAGwAEAAAAAAAFAAAAGwAEAAAAAAAEABIAGwAEAAAAAAAEABEAGwAAAAIAAAAEABAAGwADAAAAAAAEAA8AGwAAAAEAAAAEAA4AGwAEAAAAAAAEAA0AGwAEAAAAAAAEAAwAGwABAAIAAAAEAAsAGwAEAAAAAAAEAAoAGwAEAAAAAAAEAAkAGwABAAIAAAAEAAgAGwAEAAAAAAAEAAcAGwAAAAIAAAAEAAYAGwAEAAAAAAAEAAUAGwAEAAAAAAAEAAQAGwAEAAAAAAAEAAIAGwAEAAAAAAAEAAEAGwADAAMAAAAEAAAAGwAEAAAAAAADABIAGwAEAAAAAAADABEAGwAEAAAAAAADABAAGwAEAAAAAAADAA8AGwAEAAAAAAADAA4AGwAEAAAAAAADAA0AGwAEAAAAAAADAAwAGwAEAAAAAAADAAsAGwAEAAAAAAADAAoAGwAEAAAAAAADAAkAGwAEAAAAAAADAAgAGwAEAAAAAAADAAcAGwAEAAAAAAADAAYAGwAEAAAAAAADAAUAGwAEAAAAAAADAAQAGwABAAAAAAADAAMAGwAEAAAAAAADAAEAGwAEAAAAAAADAAAAGwAEAAAAAAACABIAGwAEAAAAAAACABEAGwAEAAAAAAACABAAGwAEAAAAAAACAA8AGwAEAAAAAAACAA4AGwAEAAAAAAACAA0AGwAEAAAAAAACAAwAGwAEAAAAAAACAAsAGwAEAAAAAAACAAoAGwABAAIAAAACAAkAGwAEAAAAAAACAAgAGwAEAAAAAAACAAcAGwAEAAAAAAACAAYAGwAEAAAAAAACAAUAGwAEAAAAAAACAAQAGwAEAAAAAAACAAMAGwADAAIAAAACAAEAGwAEAAAAAAACAAAAGwAEAAAAAAABABIAGwAAAAAAAAABABEAGwAEAAAAAAABABAAGwAEAAAAAAABAA8AGwAEAAAAAAABAA4AGwAEAAAAAAABAA0AGwAEAAAAAAABAAwAGwAEAAAAAAABAAsAGwAEAAAAAAABAAoAGwADAAIAAAABAAkAGwAEAAAAAAABAAgAGwAEAAAAAAABAAcAGwACAAIAAAABAAYAGwAEAAAAAAABAAUAGwADAAMAAAABAAQAGwAEAAAAAAABAAMAGwACAAAAAAABAAIAGwAEAAAAAAABAAAAGwAEAAAAAAAAABIAGwAEAAAAAAAAABEAGwAEAAAAAAAAABAAGwAEAAAAAAAAAA8AGwAEAAAAAAAAAA4AGwAEAAAAAAAAAA0AGwAEAAAAAAAAAAwAGwAEAAAAAAAAAAsAGwAEAAAAAAAAAAoAGwAEAAAAAAAAAAkAGwAEAAAAAAAAAAgAGwAEAAAAAAAAAAcAGwADAAEAAAAAAAYAGwAEAAAAAAAAAAUAGwAEAAAAAAAAAAQAGwAEAAAAAAAAAAMAGwAEAAAAAAAAAAIAGwAEAAAAAAAAAAEAGwAEAAAAAAAAAAAAGwAEAAAAAAABAAEAGwAEAAAAAAACAAIAGwAEAAAAAAAIAAcAGwABAAAAAAAHAAYAGwAEAAAAAAALAAoAGwAEAAAAAAAMAAsAGwABAAAAAAANAAwAGwADAAMAAAAOAA0AGwAEAAAAAAAPAA4AGwAEAAAAAAAQAA8AGwAEAAAAAAARAA8AGwAEAAAAAAASABAAGwAEAAAAAAASABEAGwAEAAAAAAATABEAGwAEAAAAAAATABIAGwACAAAAAAAUABIAGwAEAAAAAAAUABEAGwAEAAAAAAAVABEAGwAEAAAAAAAWABEAGwAEAAAAAAAWABAAGwACAAAAAAAWAA8AGwAEAAAAAAAWAA4AGwAEAAAAAAAWAA0AGwAEAAAAAAAWAAwAGwAEAAAAAAAWAAsAGwAEAAAAAAAWAAoAGwAEAAAAAAAWAAkAGwAEAAAAAAAWAAgAGwAEAAAAAAAWAAcAGwAEAAAAAAAWAAYAGwAEAAAAAAAWAAUAGwAEAAAAAAAWAAQAGwAEAAAAAAAWAAMAGwAEAAAAAAAWAAIAGwAEAAAAAAAVAAIAGwAEAAAAAAAVAAEAGwAEAAAAAAAVAAAAGwAEAAAAAAAUAAAAGwAEAAAAAAAUAAEAGwAEAAAAAAAUAAIAGwAEAAAAAAAUAAMAGwACAAAAAAAVAAMAGwAAAAEAAAAVAAQAGwAEAAAAAAAVAAUAGwAEAAAAAAAVAAYAGwAEAAAAAAAVAAcAGwAEAAAAAAAVAAgAGwAEAAAAAAAVAAkAGwAEAAAAAAAVAAoAGwAEAAAAAAAVAAsAGwACAAAAAAAVAAwAGwABAAAAAAAWABIAGwAEAAAAAAAVABIAGwAEAAAAAAAVABAAGwAEAAAAAAAVAA8AGwAEAAAAAAAVAA4AGwAEAAAAAAAVAA0AGwAEAAAAAAAUABAAGwAEAAAAAAAUAA8AGwAEAAAAAAAUAA4AGwAEAAAAAAAUAA0AGwAEAAAAAAAUAAwAGwAEAAAAAAAUAAsAGwAEAAAAAAAUAAoAGwAEAAAAAAAUAAkAGwAEAAAAAAAUAAgAGwAEAAAAAAAUAAcAGwAEAAAAAAAUAAYAGwABAAIAAAAUAAUAGwAEAAAAAAAUAAQAGwAEAAAAAAAWAAEAGwAAAAMAAAAWAAAAGwAEAAAAAAAJAAcAGwAEAAAAAAAKAAgAGwAEAAAAAAADAAIAGwAEAAAAAAAEAAMAGwAEAAAAAAAFAAQAGwAEAAAAAAAGAAUAGwAAAAIAAAALAAkAGwAEAAAAAAA=") -tile_set = ExtResource("1_bdmjt") - -[node name="Walls" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAAGAAUABAABAAQAAAAGAAYABAABAAUAAAAGAAcABAAFAAUAAAAHAAcABAACAAUAAAAHAAgABAACAAUAAAAIAAgABAACAAUAAAAJAAgABAADAAUAAAAJAAkABAADAAYAAAAIAAkABAACAAYAAAAHAAkABAACAAYAAAAGAAkABAABAAYAAAAGAAgABAAFAAQAAAAHAAUABAACAAQAAAAHAAYABAACAAUAAAAIAAYABAACAAUAAAAIAAcABAACAAUAAAAIAAUABAAFAAUAAAANAAYABAABAAQAAAAOAAYABAACAAQAAAAPAAYABAACAAQAAAAQAAYABAADAAQAAAANAAcABAABAAUAAAAOAAcABAACAAUAAAAPAAcABAACAAUAAAAQAAcABAADAAUAAAANAAgABAABAAUAAAAOAAgABAACAAUAAAAPAAgABAACAAUAAAAQAAgABAADAAUAAAAQAAkABAADAAYAAAAPAAkABAACAAYAAAAOAAkABAACAAYAAAANAAkABAABAAYAAAAMAAsABAACAAQAAAANAAsABAACAAQAAAAOAAsABAADAAQAAAAOAAwABAADAAYAAAANAAwABAACAAYAAAAMAAwABAACAAYAAAALAAwABAABAAYAAAALAAsABAABAAQAAAAJAAYABAAEAAQAAAAJAAcABAADAAUAAAAJAAUABAAEAAUAAAAKAAUABAACAAQAAAALAAUABAADAAQAAAALAAYABAADAAYAAAAKAAYABAACAAYAAAAEAAcABAAEAAUAAAAEAAgABAACAAYAAAAFAAgABAACAAYAAAAFAAcABAACAAQAAAAEAAYABAADAAUAAAADAAYABAAFAAQAAAADAAcABAABAAUAAAADAAgABAABAAYAAAADAAUABAACAAQAAAAEAAUABAADAAQAAAACAAUABAACAAQAAAABAAUABAACAAQAAAABAAYABAAEAAQAAAACAAYABAACAAYAAAABAAcABAADAAUAAAABAAgABAADAAYAAAAAAAgABAABAAYAAAAAAAcABAABAAUAAAAAAAYABAABAAUAAAAAAAUABAABAAQAAAAJAAQABAADAAUAAAAJAAMABAADAAQAAAAIAAMABAABAAQAAAAIAAQABAABAAUAAAACAAMABAABAAcAAAADAAMABAACAAcAAAAEAAMABAACAAcAAAAFAAMABAACAAcAAAAGAAMABAADAAcAAAAOAAIABAAAAAQAAAAOAAMABAAAAAUAAAAOAAQABAAAAAYAAAARAAMABAAAAAcAAAADAAsABAABAAQAAAAEAAsABAADAAQAAAADAAwABAABAAYAAAAEAAwABAAFAAYAAAAFAA0ABAADAAYAAAAFAAwABAADAAQAAAAEAA0ABAABAAYAAAA=") -tile_set = ExtResource("1_bdmjt") - -[node name="Camera2D" type="Camera2D" parent="."] -position = Vector2(98, 86) diff --git a/project.godot b/project.godot index 452c276..7a567a2 100644 --- a/project.godot +++ b/project.godot @@ -11,22 +11,57 @@ config_version=5 [application] config/name="Randomgeon" -run/main_scene="uid://fqdbtka7hqn" +run/main_scene="uid://cfkusqucsap26" config/features=PackedStringArray("4.4", "Forward Plus") [autoload] CoordUtil="*res://utility/CoordUtility.gd" +RNG="*res://utility/RngUtility.gd" +Global="*res://utility/Globals.gd" +SceneSelector="*res://utility/SceneSelector.gd" +MapBuilder="*res://utility/MapBuilder.gd" [display] -window/size/viewport_width=800 -window/size/viewport_height=600 window/size/resizable=false window/stretch/mode="viewport" -window/stretch/scale=2.0 window/stretch/scale_mode="integer" [editor_plugins] enabled=PackedStringArray("res://addons/log/plugin.cfg") + +[input] + +move_up={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +] +} +move_down={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +] +} +move_left={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +move_right={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} + +[layer_names] + +2d_physics/layer_1="Player" +2d_physics/layer_2="Water" +2d_physics/layer_3="Objects" +2d_physics/layer_4="Enemies" + +[rendering] + +environment/defaults/default_clear_color=Color(0, 0, 0, 1) diff --git a/utility/CoordUtility.gd b/utility/CoordUtility.gd index 85bf36e..a51252e 100644 --- a/utility/CoordUtility.gd +++ b/utility/CoordUtility.gd @@ -4,7 +4,7 @@ func _ready() -> void: Log.pr("CoordUtility ready") -func all_cells(start : Vector2i, end : Vector2i) -> Array: +func all_cells(start: Vector2i, end: Vector2i) -> Array: # Returns all cells between start and end var cells = [] @@ -21,7 +21,6 @@ func perimeter_cells(start: Vector2i, end: Vector2i, inclusive: bool = true, wid # Returns cells on the perimeter between start and end # inclusive: if true, includes the area cells, if false, excludes them # width: the thickness of the perimeter (default: 1) - var cells: Array[Vector2i] = [] var min_x: int = min(start.x, end.x) var max_x: int = max(start.x, end.x) @@ -39,6 +38,7 @@ func perimeter_cells(start: Vector2i, end: Vector2i, inclusive: bool = true, wid var outer_max_y: int if inclusive: + Log.pr("Drawing within bounds of the original rectangle") # For inclusive, inner bounds are the original rectangle inner_min_x = min_x inner_min_y = min_y @@ -51,6 +51,7 @@ func perimeter_cells(start: Vector2i, end: Vector2i, inclusive: bool = true, wid outer_max_x = max_x + (width - 1) outer_max_y = max_y + (width - 1) else: + Log.pr("Drawing outside bounds of the original rectangle") # For exclusive, inner bounds are the original rectangle inner_min_x = min_x inner_min_y = min_y @@ -77,4 +78,21 @@ func perimeter_cells(start: Vector2i, end: Vector2i, inclusive: bool = true, wid if x < inner_min_x or x > inner_max_x or y < inner_min_y or y > inner_max_y: cells.append(pos) - return cells \ No newline at end of file + return cells + +func get_surrounding_tiles(given_tile: Vector2i, spread: int = 1) -> Array[Vector2i]: + Log.pr("Getting surrounding tiles for tile: ", given_tile, " with spread: ", spread) + var surrounding_tiles: Array[Vector2i] = [] + + # Loop from -spread to +spread in both directions + for y in range(-spread, spread + 1): + for x in range(-spread, spread + 1): + # Skip the center tile if you don't want it included + if x == 0 and y == 0: + continue + + var target_tile = given_tile + Vector2i(x, y) + surrounding_tiles.append(target_tile) + + Log.pr("Surrounding tiles: ", surrounding_tiles) + return surrounding_tiles \ No newline at end of file diff --git a/utility/Globals.gd b/utility/Globals.gd new file mode 100644 index 0000000..534d90f --- /dev/null +++ b/utility/Globals.gd @@ -0,0 +1,14 @@ +extends Node + +class_name GlobalVariables + +const TILE_SIZE = 32 +const ROOM_WIDTH = 20 +const ROOM_HEIGHT = 16 +const GRID_WIDTH = 4 +const GRID_HEIGHT = 4 +const MAP_EMPTY = 0 +const MAP_PATH = 1 +const MAP_START = 2 +const MAP_FINISH = 4 +const MAP_UP_CELL = 3 \ No newline at end of file diff --git a/utility/Globals.gd.uid b/utility/Globals.gd.uid new file mode 100644 index 0000000..6a09020 --- /dev/null +++ b/utility/Globals.gd.uid @@ -0,0 +1 @@ +uid://gf47g1mgttf5 diff --git a/utility/MapBuilder.gd b/utility/MapBuilder.gd new file mode 100644 index 0000000..1a0e126 --- /dev/null +++ b/utility/MapBuilder.gd @@ -0,0 +1,86 @@ +extends Node + +class_name MapBuilderClass + +# Function to copy a TileMap layer from one scene to a target TileMap at a specific grid position +func copy_tilemap_to_target(source_scene, target_tilemap: TileMapLayer, target_layer: String, grid_position: Vector2i): + # First, load and instantiate the source scene if it's a resource path + Log.pr("Copying tilemap from source scene to target tilemap at grid position: ", grid_position) + Log.pr("Source scene: ", source_scene) + var source_instance + if source_scene is String: + source_instance = load(source_scene).instantiate() + elif source_scene is PackedScene: + Log.pr("Source scene is a PackedScene, instantiating it") + source_instance = source_scene.instantiate() + else: + source_instance = source_scene + + # Find the source TileMap in the loaded scene + var source_tilemap = find_tilemap_by_name(source_instance, target_layer) + if not source_tilemap: + push_error("Could not find TileMapLayer in source scene", source_tilemap) + if source_instance is Node and source_instance.is_inside_tree(): + source_instance.queue_free() + return + + # Get the size of the source room in tiles + var source_used_cells = source_tilemap.get_used_cells() # 0 is the layer index + if source_used_cells.size() == 0: + push_warning("Source TileMapLayer has no cells") + if source_instance is Node and source_instance.is_inside_tree(): + source_instance.queue_free() + return + + # Calculate the offset for placement in the target grid + var offset_x = grid_position.x * Global.ROOM_WIDTH + var offset_y = grid_position.y * Global.ROOM_HEIGHT + + # Copy cells from source to target with proper offset + for cell in source_used_cells: + var target_cell = Vector2i(cell.x + offset_x, cell.y + offset_y) + + # Get the tile data from source + #var source_tile_data = source_tilemap.get_cell_tile_data(cell) + var source_atlas_coords = source_tilemap.get_cell_atlas_coords(cell) + var source_alternative_tile = source_tilemap.get_cell_alternative_tile(cell) + + # Set the same tile in the target TileMap + target_tilemap.set_cell(target_cell, source_tilemap.get_cell_source_id(cell), source_atlas_coords, source_alternative_tile) + + + # Clean up the source instance if we instantiated it + if source_instance is Node and source_instance.is_inside_tree(): + source_instance.queue_free() + + +# Helper function to find a TileMap by name in a scene +func find_tilemap_by_name(root_node: Node, tilemap_name: String) -> TileMapLayer: + if root_node is TileMapLayer and root_node.name == tilemap_name: + return root_node + + for child in root_node.get_children(): + var result = find_tilemap_by_name(child, tilemap_name) + if result: + return result + + return null + + +func redraw_terrain(positions: Array, layer: TileMapLayer, terrain_set: int, terrain: int) -> void: + Log.pr("Filtering and redrawing surrounding tiles", positions) + + # Filter positions to only include cells with terrainset 0 and terrain 0 + var filtered_positions: Array = [] + for cell in positions: + var tile_data = layer.get_cell_tile_data(cell) + + if tile_data and tile_data.get_terrain_set() == terrain_set and tile_data.get_terrain() == terrain: + filtered_positions.append(cell) + + # Only redraw if we have filtered cells + if filtered_positions.size() > 0: + Log.pr("Redrawing filtered tiles:", filtered_positions) + layer.set_cells_terrain_connect(filtered_positions, terrain_set, terrain) + else: + Log.pr("No tiles to redraw after filtering") diff --git a/utility/MapBuilder.gd.uid b/utility/MapBuilder.gd.uid new file mode 100644 index 0000000..daff072 --- /dev/null +++ b/utility/MapBuilder.gd.uid @@ -0,0 +1 @@ +uid://cuyp1adhi86bs diff --git a/utility/MapGenerator.gd b/utility/MapGenerator.gd index 11f5e56..bcb3606 100644 --- a/utility/MapGenerator.gd +++ b/utility/MapGenerator.gd @@ -2,157 +2,157 @@ extends Node class_name MapGenerator # Map constants -const GRID_WIDTH = 4 -const GRID_HEIGHT = 4 -const EMPTY = 0 -const PATH = 1 -const START = 2 -const FINISH = 4 -const UP_CELL = 3 +var GRID_WIDTH = Global.GRID_WIDTH +var GRID_HEIGHT = Global.GRID_HEIGHT +var EMPTY = Global.MAP_EMPTY +var PATH = Global.MAP_PATH +var START = Global.MAP_START +var FINISH = Global.MAP_FINISH +var UP_CELL = Global.MAP_UP_CELL # Map generation parameters -var up_probability_base = 0.1 # Base probability to move up -var up_probability_increase = 0.2 # How much the probability increases each time we stay on the same row +var up_probability_base = 0.1 # Base probability to move up +var up_probability_increase = 0.2 # How much the probability increases each time we stay on the same row # The map grid var map = [] func generate_map(): - # Initialize map with empty cells - map = [] - for y in range(GRID_HEIGHT): - var row = [] - for x in range(GRID_WIDTH): - row.append(EMPTY) - map.append(row) - - # Pick a starting location in the bottom row - var current_x = randi() % GRID_WIDTH - var current_y = GRID_HEIGHT - 1 - - # Mark as start - map[current_y][current_x] = START - - # Track visited cells to avoid loops - var visited = {} - visited[Vector2(current_x, current_y)] = true - - # Path generation - var final_position = generate_path(current_x, current_y, visited) - - # Set finish cell in top row and connect path to it - connect_to_finish(final_position.x, final_position.y, visited) + # Initialize map with empty cells + map = [] + for y in range(GRID_HEIGHT): + var row = [] + for x in range(GRID_WIDTH): + row.append(EMPTY) + map.append(row) + + # Pick a starting location in the bottom row + var current_x = RNG.randi() % GRID_WIDTH + var current_y = GRID_HEIGHT - 1 + + # Mark as start + map[current_y][current_x] = START + + # Track visited cells to avoid loops + var visited = {} + visited[Vector2(current_x, current_y)] = true + + # Path generation + var final_position = generate_path(current_x, current_y, visited) + + # Set finish cell in top row and connect path to it + connect_to_finish(final_position.x, final_position.y, visited) # Generate path from start to top row, return final position func generate_path(current_x, current_y, visited): - var up_probability = up_probability_base - - while current_y > 0: # Continue until we reach the top row - # Try to move left or right until we can't proceed further - var can_move_horizontal = true - - while can_move_horizontal: - # Decide whether to try moving up - if randf() < up_probability: - # We'll try moving up - break - - # Increase probability for next time - up_probability += up_probability_increase - - # Choose direction randomly (left or right) - var direction = 1 if randf() > 0.5 else -1 - var new_x = current_x + direction - - # Check if we can move in that direction - if new_x >= 0 and new_x < GRID_WIDTH and not Vector2(new_x, current_y) in visited: - current_x = new_x - map[current_y][current_x] = PATH - visited[Vector2(current_x, current_y)] = true - else: - # Try the other direction - direction = -direction - new_x = current_x + direction - - if new_x >= 0 and new_x < GRID_WIDTH and not Vector2(new_x, current_y) in visited: - current_x = new_x - map[current_y][current_x] = PATH - visited[Vector2(current_x, current_y)] = true - else: - # Can't move horizontally anymore - can_move_horizontal = false - - # Mark current cell as an UP_CELL before moving up - map[current_y][current_x] = UP_CELL - - # Move up - current_y -= 1 - map[current_y][current_x] = PATH - visited[Vector2(current_x, current_y)] = true - - # Reset up probability since we've moved up - up_probability = up_probability_base - - # Return the final position (on the top row) - return Vector2(current_x, current_y) + var up_probability = up_probability_base + + while current_y > 0: # Continue until we reach the top row + # Try to move left or right until we can't proceed further + var can_move_horizontal = true + + while can_move_horizontal: + # Decide whether to try moving up + if RNG.randf() < up_probability: + # We'll try moving up + break + + # Increase probability for next time + up_probability += up_probability_increase + + # Choose direction randomly (left or right) + var direction = 1 if RNG.randf() > 0.5 else -1 + var new_x = current_x + direction + + # Check if we can move in that direction + if new_x >= 0 and new_x < GRID_WIDTH and not Vector2(new_x, current_y) in visited: + current_x = new_x + map[current_y][current_x] = PATH + visited[Vector2(current_x, current_y)] = true + else: + # Try the other direction + direction = - direction + new_x = current_x + direction + + if new_x >= 0 and new_x < GRID_WIDTH and not Vector2(new_x, current_y) in visited: + current_x = new_x + map[current_y][current_x] = PATH + visited[Vector2(current_x, current_y)] = true + else: + # Can't move horizontally anymore + can_move_horizontal = false + + # Mark current cell as an UP_CELL before moving up + map[current_y][current_x] = UP_CELL + + # Move up + current_y -= 1 + map[current_y][current_x] = PATH + visited[Vector2(current_x, current_y)] = true + + # Reset up probability since we've moved up + up_probability = up_probability_base + + # Return the final position (on the top row) + return Vector2(current_x, current_y) # Connect the path to a finish point in the top row func connect_to_finish(current_x, current_y, visited): - # Choose a finish position - var finish_x = randi() % GRID_WIDTH - - # If we randomly picked the current position, we're done - if finish_x == current_x: - map[current_y][current_x] = FINISH - return - - # Otherwise, create a path to the finish - var direction = 1 if finish_x > current_x else -1 - - # Move horizontally toward the finish position - while current_x != finish_x: - current_x += direction - - # If we've already visited this cell, we have a loop - break and place finish here - if Vector2(current_x, current_y) in visited: - break - - map[current_y][current_x] = PATH - visited[Vector2(current_x, current_y)] = true - - # Place finish at the final position - map[current_y][current_x] = FINISH + # Choose a finish position + var finish_x = RNG.randi() % GRID_WIDTH + + # If we randomly picked the current position, we're done + if finish_x == current_x: + map[current_y][current_x] = FINISH + return + + # Otherwise, create a path to the finish + var direction = 1 if finish_x > current_x else -1 + + # Move horizontally toward the finish position + while current_x != finish_x: + current_x += direction + + # If we've already visited this cell, we have a loop - break and place finish here + if Vector2(current_x, current_y) in visited: + break + + map[current_y][current_x] = PATH + visited[Vector2(current_x, current_y)] = true + + # Place finish at the final position + map[current_y][current_x] = FINISH func print_map(): - print("Generated Map:") - print("- Legend: 0=Empty, 1=Path, 2=Start, 4=Finish, 3=MoveUp") - print("") - - var visual_map = "" - - for y in range(GRID_HEIGHT): - var row_str = "" - for x in range(GRID_WIDTH): - var cell_value = map[y][x] - match cell_value: - EMPTY: row_str += "[ ] " - PATH: row_str += "[•] " - START: row_str += "[S] " - FINISH: row_str += "[F] " - UP_CELL: row_str += "[↑] " - visual_map += row_str + "\n" - - print(visual_map) - - # Also print as numerical grid - visual_map = "" - for y in range(GRID_HEIGHT): - var row_str = "" - for x in range(GRID_WIDTH): - row_str += str(map[y][x]) + " " - visual_map += row_str + "\n" - - print(visual_map) + print("Generated Map:") + print("- Legend: 0=Empty, 1=Path, 2=Start, 4=Finish, 3=MoveUp") + print("") + + var visual_map = "" + + for y in range(GRID_HEIGHT): + var row_str = "" + for x in range(GRID_WIDTH): + var cell_value = map[y][x] + match cell_value: + EMPTY: row_str += "[ ] " + PATH: row_str += "[•] " + START: row_str += "[S] " + FINISH: row_str += "[F] " + UP_CELL: row_str += "[↑] " + visual_map += row_str + "\n" + + print(visual_map) + + # Also print as numerical grid + visual_map = "" + for y in range(GRID_HEIGHT): + var row_str = "" + for x in range(GRID_WIDTH): + row_str += str(map[y][x]) + " " + visual_map += row_str + "\n" + + print(visual_map) func get_map(): - return map \ No newline at end of file + return map diff --git a/utility/RngUtility.gd b/utility/RngUtility.gd new file mode 100644 index 0000000..2dd302d --- /dev/null +++ b/utility/RngUtility.gd @@ -0,0 +1,59 @@ +# file: global_rng.gd +extends Node + +class_name RngUtility + +# Underlying RandomNumberGenerator +var _rng: RandomNumberGenerator + +func _ready(): + _rng = RandomNumberGenerator.new() + randomize() + print("Global RNG initialized with seed: ", _rng.seed) + +# Set a specific seed for reproducible results +func set_seed(seed_value: int) -> void: + _rng.seed = seed_value + print("RNG seed set to: ", seed_value) + +# Randomize the seed (for non-reproducible results) +func randomize() -> void: + _rng.randomize() + print("RNG seed randomized to: ", _rng.seed) + +# Get the current seed value +func get_seed() -> int: + return _rng.seed + +# Get a random integer between min and max (inclusive) +func randi_range(min_value: int, max_value: int) -> int: + return _rng.randi_range(min_value, max_value) + +# Get a random float between 0.0 and 1.0 +func randf() -> float: + return _rng.randf() + +func randi() -> int: + return _rng.randi() + +# Get a random float between min and max +func randf_range(min_value: float, max_value: float) -> float: + return _rng.randf_range(min_value, max_value) + +# Get a random normalized vector +func random_unit_vector() -> Vector2: + return Vector2(randf_range(-1.0, 1.0), randf_range(-1.0, 1.0)).normalized() + +# Get a random point inside a circle with radius 1 +func random_point_in_circle() -> Vector2: + var r = sqrt(randf()) + var theta = randf() * 2.0 * PI + return Vector2(r * cos(theta), r * sin(theta)) + +# Get a random point inside a circle with specified radius +func random_point_in_circle_with_radius(radius: float) -> Vector2: + return random_point_in_circle() * radius + +# Get a random boolean value with specified probability +func random_bool(probability: float = 0.5) -> bool: + return randf() < probability \ No newline at end of file diff --git a/utility/RngUtility.gd.uid b/utility/RngUtility.gd.uid new file mode 100644 index 0000000..f608d26 --- /dev/null +++ b/utility/RngUtility.gd.uid @@ -0,0 +1 @@ +uid://b8ita2lyak2o3 diff --git a/utility/SceneSelector.gd b/utility/SceneSelector.gd new file mode 100644 index 0000000..7862481 --- /dev/null +++ b/utility/SceneSelector.gd @@ -0,0 +1,69 @@ +extends Node + +class_name SceneSelectorUtility + +# Cache of scene paths +var _scene_paths_cache = {} + +# Cache of loaded scenes (only populated if preload_scenes is true) +var _loaded_scenes_cache = {} + +# Initialize the cache for a specific folder +func initialize_cache(folder_path: String, preload_scenes: bool = false): + if _scene_paths_cache.has(folder_path): + return # Already cached + + var dir = DirAccess.open(folder_path) + if not dir: + push_error("Error: Could not open directory: " + folder_path) + return + + var scene_files = [] + + # List all scene files + dir.list_dir_begin() + var file_name = dir.get_next() + + while file_name != "": + if file_name.ends_with(".tscn"): + scene_files.append(folder_path + "/" + file_name) + file_name = dir.get_next() + + Log.pr("Found %d scene files in %s" % [scene_files.size(), folder_path]) + # Store in cache + _scene_paths_cache[folder_path] = scene_files + + # Optionally preload all scenes + if preload_scenes and scene_files.size() > 0: + _loaded_scenes_cache[folder_path] = [] + for scene_path in scene_files: + Log.pr("Preloading scene: " + scene_path) + # Load the scene and store it in the cache + #var loaded_scene = preload(scene_path) + _loaded_scenes_cache[folder_path].append(load(scene_path)) + + +# Get a random scene from a folder (using caches) +func get_random_scene(folder_path: String): + # Make sure the cache is initialized + if not _scene_paths_cache.has(folder_path): + Log.pr("Initializing cache for folder: " + folder_path) + initialize_cache(folder_path, true) + + var scene_paths = _scene_paths_cache[folder_path] + if scene_paths.size() == 0: + push_error("No scene files found in directory: " + folder_path) + return null + + # Get random index + var random_index = RNG.randi_range(0, scene_paths.size() - 1) + + # Return from loaded scenes cache if available + if _loaded_scenes_cache.has(folder_path): + Log.pr("Returning preloaded scene from cache") + return _loaded_scenes_cache[folder_path][random_index] + + # Otherwise load the scene + var scene = load(scene_paths[random_index]) + Log.pr(scene) + return scene diff --git a/utility/SceneSelector.gd.uid b/utility/SceneSelector.gd.uid new file mode 100644 index 0000000..eeab268 --- /dev/null +++ b/utility/SceneSelector.gd.uid @@ -0,0 +1 @@ +uid://cs18x6clkepoa

    -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 S4{`(#TsF5cEBVvq;r{}~nJQfX literal 0 HcmV?d00001 diff --git a/assets/sprites/tilesets/Sprites/hexedforest_props_noshadow.png.import b/assets/sprites/tilesets/Sprites/hexedforest_props_noshadow.png.import new file mode 100644 index 0000000..0326091 --- /dev/null +++ b/assets/sprites/tilesets/Sprites/hexedforest_props_noshadow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdmvs4fivkkwl" +path="res://.godot/imported/hexedforest_props_noshadow.png-93e5ecb03facac489293d9b79a185008.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/tilesets/Sprites/hexedforest_props_noshadow.png" +dest_files=["res://.godot/imported/hexedforest_props_noshadow.png-93e5ecb03facac489293d9b79a185008.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/Sprites/hexedforest_tileset.png b/assets/sprites/tilesets/Sprites/hexedforest_tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed360335850181e20837abf365dc3d5ca461448 GIT binary patch literal 153643 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±;fn0PkT&2!TxeFjZj@aiWq9~zk91`&D-i3< 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 UmPI)O0_!5ojV+Dff8LAxZ!SWX!vFvP literal 0 HcmV?d00001 diff --git a/assets/sprites/tilesets/Sprites/hexedforest_tileset.png.import b/assets/sprites/tilesets/Sprites/hexedforest_tileset.png.import new file mode 100644 index 0000000..9c11def --- /dev/null +++ b/assets/sprites/tilesets/Sprites/hexedforest_tileset.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://buwkb3nded8w4" +path="res://.godot/imported/hexedforest_tileset.png-2a6865e3ab8b13d5236db845b1ed8df9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/tilesets/Sprites/hexedforest_tileset.png" +dest_files=["res://.godot/imported/hexedforest_tileset.png-2a6865e3ab8b13d5236db845b1ed8df9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/decor_16x16.png b/assets/sprites/tilesets/decor_16x16.png deleted file mode 100644 index 692df2b99be6685565a21440203d29cff9022081..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1970 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 diff --git a/assets/sprites/tilesets/floors/carpet.png.import b/assets/sprites/tilesets/floors/carpet.png.import deleted file mode 100644 index e64ec02..0000000 --- a/assets/sprites/tilesets/floors/carpet.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://f2k4x0c17w1g" -path="res://.godot/imported/carpet.png-e8b23c3dd0dfa76142c349d59f207122.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/floors/carpet.png" -dest_files=["res://.godot/imported/carpet.png-e8b23c3dd0dfa76142c349d59f207122.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/floors/flooring.png b/assets/sprites/tilesets/floors/flooring.png deleted file mode 100644 index 74a61bde28a0af7adbfbe10e25e22d409adb9cf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmV-x0+juUP)Px%B}qgdCEJ`4dtsyt)C32KrAPZm7kgXvQD0myZRX3I^ zkL4d}5^JW`2LU;*?8&R%j3irqe|~{9PP>hLsAI(e0Pq&`=Ajf-9Xo^;kpgl83#j4G z5B_>>t{q1XPUJYKHe7h9Eu8}#vV?TOWh>Fq#? zRhYzxO@n^7h>0|UlmnZQr_G29v8|0n3kT;wTXf6Dy38}}`kOgOtis;d^E%h_6f+9V zIiHF2YAkH8Fvj{)mvRya-b|RY!k}&@{QD~W>@7Np6KPiafvc**uV58b_?09J6G;{( zk}OOlS(r$&FcFC>5lqyyBQXcEicw+?Y-8kLV~IJC6%scSIuIfPbi8xe+)q?HNJ}huqI7U0PPju2!jz|)a$S;7H1$%xkRdN6T002ovPDHLk FV1gI&3$p+K diff --git a/assets/sprites/tilesets/floors/flooring.png.import b/assets/sprites/tilesets/floors/flooring.png.import deleted file mode 100644 index c9659fb..0000000 --- a/assets/sprites/tilesets/floors/flooring.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b51a0hwypuu47" -path="res://.godot/imported/flooring.png-26145fa990ec148278aa695adca94be5.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/floors/flooring.png" -dest_files=["res://.godot/imported/flooring.png-26145fa990ec148278aa695adca94be5.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/floors/wooden.png b/assets/sprites/tilesets/floors/wooden.png deleted file mode 100644 index 43de3402945fd2486a661b2b8647974af10d9369..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|ay?xfLo_BP z>+o(%P+-ZkuUoC9&68*>7}CoY0pxK%UvY}dc}Kx#g=2?3+1S{`QY=lDM!0&E2_2Q1 zu(w5YL&BjC2ye$|%c5BUzu2fQ#m+i=!fMcpn%+2b2C YLkhc2!^a-M9-zexp00i_>zopr06v^JivR!s diff --git a/assets/sprites/tilesets/floors/wooden.png.import b/assets/sprites/tilesets/floors/wooden.png.import deleted file mode 100644 index 805765d..0000000 --- a/assets/sprites/tilesets/floors/wooden.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://7cdq70veqnye" -path="res://.godot/imported/wooden.png-de6adc573ce9cb65f7ce8eea97dce428.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/floors/wooden.png" -dest_files=["res://.godot/imported/wooden.png-de6adc573ce9cb65f7ce8eea97dce428.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/forest.tres b/assets/sprites/tilesets/forest.tres new file mode 100644 index 0000000..09ff695 --- /dev/null +++ b/assets/sprites/tilesets/forest.tres @@ -0,0 +1,1141 @@ +[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://c66l102pgntht"] + +[ext_resource type="Texture2D" uid="uid://buwkb3nded8w4" path="res://assets/sprites/tilesets/Sprites/hexedforest_tileset.png" id="1_t7y2e"] +[ext_resource type="Texture2D" uid="uid://wxpdjbrlnij" path="res://assets/sprites/tilesets/Sprites/hexedforest_props.png" id="2_f3rn6"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kgifk"] +texture = ExtResource("1_t7y2e") +texture_region_size = Vector2i(32, 32) +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 +8:0/0 = 0 +9:0/0 = 0 +10:0/0 = 0 +10:0/0/terrain_set = 0 +10:0/0/terrain = 1 +10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-2.48804, -2.79904, 16, -8.39713, 16, 16, -1.24402, 16) +10:0/0/terrains_peering_bit/right_side = 1 +10:0/0/terrains_peering_bit/bottom_right_corner = 1 +10:0/0/terrains_peering_bit/bottom_side = 1 +11:0/0 = 0 +11:0/0/terrain_set = 0 +11:0/0/terrain = 1 +11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -8.39713, 16, -11.5072, 16, 16, -16, 16) +11:0/0/terrains_peering_bit/right_side = 1 +11:0/0/terrains_peering_bit/bottom_right_corner = 1 +11:0/0/terrains_peering_bit/bottom_side = 1 +11:0/0/terrains_peering_bit/bottom_left_corner = 1 +11:0/0/terrains_peering_bit/left_side = 1 +12:0/0 = 0 +12:0/0/terrain_set = 0 +12:0/0/terrain = 1 +12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -9.33014, -0.311005, -2.79904, 4.97608, 16, -16, 16) +12:0/0/terrains_peering_bit/bottom_side = 1 +12:0/0/terrains_peering_bit/bottom_left_corner = 1 +12:0/0/terrains_peering_bit/left_side = 1 +13:0/0 = 0 +13:0/0/terrain_set = 0 +13:0/0/terrain = 1 +13:0/0/terrains_peering_bit/right_side = 1 +13:0/0/terrains_peering_bit/bottom_right_corner = 1 +13:0/0/terrains_peering_bit/bottom_side = 1 +13:0/0/terrains_peering_bit/bottom_left_corner = 1 +13:0/0/terrains_peering_bit/left_side = 1 +13:0/0/terrains_peering_bit/top_side = 1 +13:0/0/terrains_peering_bit/top_right_corner = 1 +14:0/0 = 0 +14:0/0/terrain_set = 0 +14:0/0/terrain = 1 +14:0/0/terrains_peering_bit/right_side = 1 +14:0/0/terrains_peering_bit/bottom_right_corner = 1 +14:0/0/terrains_peering_bit/bottom_side = 1 +14:0/0/terrains_peering_bit/bottom_left_corner = 1 +14:0/0/terrains_peering_bit/left_side = 1 +14:0/0/terrains_peering_bit/top_left_corner = 1 +14:0/0/terrains_peering_bit/top_side = 1 +15:0/0 = 0 +19:0/0 = 0 +20:0/0 = 0 +21:0/0 = 0 +22:0/0 = 0 +23:0/0 = 0 +24:0/0 = 0 +25:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +3:1/0 = 0 +4:1/0 = 0 +5:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +8:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +10:1/0/terrain_set = 0 +10:1/0/terrain = 1 +10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-0.311005, -16, 16, -16, 16, 16, -2.17703, 16) +10:1/0/terrains_peering_bit/right_side = 1 +10:1/0/terrains_peering_bit/bottom_right_corner = 1 +10:1/0/terrains_peering_bit/bottom_side = 1 +10:1/0/terrains_peering_bit/top_side = 1 +10:1/0/terrains_peering_bit/top_right_corner = 1 +11:1/0 = 0 +11:1/0/terrain_set = 0 +11:1/0/terrain = 1 +11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +11:1/0/terrains_peering_bit/right_side = 1 +11:1/0/terrains_peering_bit/bottom_right_corner = 1 +11:1/0/terrains_peering_bit/bottom_side = 1 +11:1/0/terrains_peering_bit/bottom_left_corner = 1 +11:1/0/terrains_peering_bit/left_side = 1 +11:1/0/terrains_peering_bit/top_left_corner = 1 +11:1/0/terrains_peering_bit/top_side = 1 +11:1/0/terrains_peering_bit/top_right_corner = 1 +12:1/0 = 0 +12:1/0/terrain_set = 0 +12:1/0/terrain = 1 +12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 5.59809, -16, 6.2201, 16, -16, 16) +12:1/0/terrains_peering_bit/bottom_side = 1 +12:1/0/terrains_peering_bit/bottom_left_corner = 1 +12:1/0/terrains_peering_bit/left_side = 1 +12:1/0/terrains_peering_bit/top_left_corner = 1 +12:1/0/terrains_peering_bit/top_side = 1 +13:1/0 = 0 +13:1/0/terrain_set = 0 +13:1/0/terrain = 1 +13:1/0/terrains_peering_bit/right_side = 1 +13:1/0/terrains_peering_bit/bottom_right_corner = 1 +13:1/0/terrains_peering_bit/bottom_side = 1 +13:1/0/terrains_peering_bit/left_side = 1 +13:1/0/terrains_peering_bit/top_left_corner = 1 +13:1/0/terrains_peering_bit/top_side = 1 +13:1/0/terrains_peering_bit/top_right_corner = 1 +14:1/0 = 0 +14:1/0/terrain_set = 0 +14:1/0/terrain = 1 +14:1/0/terrains_peering_bit/right_side = 1 +14:1/0/terrains_peering_bit/bottom_side = 1 +14:1/0/terrains_peering_bit/bottom_left_corner = 1 +14:1/0/terrains_peering_bit/left_side = 1 +14:1/0/terrains_peering_bit/top_left_corner = 1 +14:1/0/terrains_peering_bit/top_side = 1 +14:1/0/terrains_peering_bit/top_right_corner = 1 +15:1/0 = 0 +16:1/0 = 0 +18:1/0 = 0 +19:1/0 = 0 +20:1/0 = 0 +21:1/0 = 0 +22:1/0 = 0 +23:1/0 = 0 +24:1/0 = 0 +25:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +3:2/0 = 0 +3:2/0/terrain_set = 0 +3:2/0/terrain = 0 +3:2/0/terrains_peering_bit/right_side = 0 +3:2/0/terrains_peering_bit/bottom_right_corner = 0 +3:2/0/terrains_peering_bit/bottom_side = 0 +3:2/0/terrains_peering_bit/bottom_left_corner = 0 +3:2/0/terrains_peering_bit/left_side = 0 +3:2/0/terrains_peering_bit/top_left_corner = 0 +3:2/0/terrains_peering_bit/top_side = 0 +3:2/0/terrains_peering_bit/top_right_corner = 0 +5:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 +10:2/0 = 0 +10:2/0/terrain_set = 0 +10:2/0/terrain = 1 +10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-2.17703, -16, 16, -16, 16, 4.97608, 2.48804, -2.17703) +10:2/0/terrains_peering_bit/right_side = 1 +10:2/0/terrains_peering_bit/top_side = 1 +10:2/0/terrains_peering_bit/top_right_corner = 1 +11:2/0 = 0 +11:2/0/terrain_set = 0 +11:2/0/terrain = 1 +11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 7.15311, -16, 4.97608) +11:2/0/terrains_peering_bit/right_side = 1 +11:2/0/terrains_peering_bit/left_side = 1 +11:2/0/terrains_peering_bit/top_left_corner = 1 +11:2/0/terrains_peering_bit/top_side = 1 +11:2/0/terrains_peering_bit/top_right_corner = 1 +12:2/0 = 0 +12:2/0/terrain_set = 0 +12:2/0/terrain = 1 +12:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 6.84211, -16, 2.48804, 3.42105, -16, 6.2201) +12:2/0/terrains_peering_bit/left_side = 1 +12:2/0/terrains_peering_bit/top_left_corner = 1 +12:2/0/terrains_peering_bit/top_side = 1 +13:2/0 = 0 +13:2/0/terrain_set = 0 +14:2/0 = 0 +14:2/0/terrain_set = 0 +15:2/0 = 0 +16:2/0 = 0 +17:2/0 = 0 +18:2/0 = 0 +19:2/0 = 0 +20:2/0 = 0 +21:2/0 = 0 +22:2/0 = 0 +23:2/0 = 0 +24:2/0 = 0 +25:2/0 = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_lcnnk"] +texture = ExtResource("2_f3rn6") +texture_region_size = Vector2i(32, 32) +1:0/0 = 0 +1:0/0/z_index = 10 +2:0/0 = 0 +2:0/0/z_index = 10 +3:0/0 = 0 +3:0/0/z_index = 10 +4:0/0 = 0 +4:0/0/z_index = 10 +7:0/0 = 0 +7:0/0/z_index = 10 +8:0/0 = 0 +8:0/0/z_index = 10 +9:0/0 = 0 +9:0/0/z_index = 10 +0:1/0 = 0 +0:1/0/z_index = 10 +1:1/0 = 0 +1:1/0/z_index = 10 +2:1/0 = 0 +2:1/0/z_index = 10 +3:1/0 = 0 +3:1/0/z_index = 10 +4:1/0 = 0 +4:1/0/z_index = 10 +5:1/0 = 0 +5:1/0/z_index = 10 +6:1/0 = 0 +6:1/0/z_index = 10 +7:1/0 = 0 +7:1/0/z_index = 10 +8:1/0 = 0 +8:1/0/z_index = 10 +9:1/0 = 0 +9:1/0/z_index = 10 +10:1/0 = 0 +10:1/0/z_index = 10 +12:1/0 = 0 +12:1/0/z_index = 10 +13:1/0 = 0 +13:1/0/z_index = 10 +14:1/0 = 0 +14:1/0/z_index = 10 +16:1/0 = 0 +17:1/0 = 0 +18:1/0 = 0 +19:1/0 = 0 +20:1/0 = 0 +21:1/0 = 0 +22:1/0 = 0 +23:1/0 = 0 +24:1/0 = 0 +26:1/0 = 0 +27:1/0 = 0 +28:1/0 = 0 +29:1/0 = 0 +30:1/0 = 0 +31:1/0 = 0 +0:2/0 = 0 +0:2/0/z_index = 10 +1:2/0 = 0 +1:2/0/z_index = 10 +2:2/0 = 0 +2:2/0/z_index = 10 +3:2/0 = 0 +3:2/0/z_index = 10 +4:2/0 = 0 +4:2/0/z_index = 10 +5:2/0 = 0 +5:2/0/z_index = 10 +6:2/0 = 0 +6:2/0/z_index = 10 +7:2/0 = 0 +7:2/0/z_index = 10 +8:2/0 = 0 +8:2/0/z_index = 10 +9:2/0 = 0 +9:2/0/z_index = 10 +10:2/0 = 0 +10:2/0/z_index = 10 +11:2/0 = 0 +11:2/0/z_index = 10 +12:2/0 = 0 +12:2/0/z_index = 10 +13:2/0 = 0 +13:2/0/z_index = 10 +14:2/0 = 0 +14:2/0/z_index = 10 +15:2/0 = 0 +15:2/0/z_index = 10 +16:2/0 = 0 +17:2/0 = 0 +20:2/0 = 0 +21:2/0 = 0 +22:2/0 = 0 +23:2/0 = 0 +24:2/0 = 0 +25:2/0 = 0 +26:2/0 = 0 +27:2/0 = 0 +28:2/0 = 0 +29:2/0 = 0 +30:2/0 = 0 +31:2/0 = 0 +0:3/0 = 0 +0:3/0/z_index = 10 +1:3/0 = 0 +1:3/0/z_index = 10 +2:3/0 = 0 +2:3/0/z_index = 10 +3:3/0 = 0 +3:3/0/z_index = 10 +4:3/0 = 0 +4:3/0/z_index = 10 +5:3/0 = 0 +5:3/0/z_index = 10 +6:3/0 = 0 +6:3/0/z_index = 10 +7:3/0 = 0 +7:3/0/z_index = 10 +8:3/0 = 0 +8:3/0/z_index = 10 +9:3/0 = 0 +9:3/0/z_index = 10 +10:3/0 = 0 +10:3/0/z_index = 10 +11:3/0 = 0 +11:3/0/z_index = 10 +12:3/0 = 0 +12:3/0/z_index = 10 +13:3/0 = 0 +13:3/0/z_index = 10 +14:3/0 = 0 +14:3/0/z_index = 10 +15:3/0 = 0 +15:3/0/z_index = 10 +16:3/0 = 0 +17:3/0 = 0 +18:3/0 = 0 +20:3/0 = 0 +21:3/0 = 0 +22:3/0 = 0 +23:3/0 = 0 +24:3/0 = 0 +25:3/0 = 0 +26:3/0 = 0 +27:3/0 = 0 +28:3/0 = 0 +29:3/0 = 0 +30:3/0 = 0 +31:3/0 = 0 +0:4/0 = 0 +0:4/0/z_index = 10 +1:4/0 = 0 +1:4/0/z_index = 10 +2:4/0 = 0 +2:4/0/z_index = 10 +3:4/0 = 0 +3:4/0/z_index = 10 +4:4/0 = 0 +4:4/0/z_index = 10 +5:4/0 = 0 +5:4/0/z_index = 10 +6:4/0 = 0 +6:4/0/z_index = 10 +7:4/0 = 0 +7:4/0/z_index = 10 +8:4/0 = 0 +8:4/0/z_index = 10 +9:4/0 = 0 +9:4/0/z_index = 10 +10:4/0 = 0 +10:4/0/z_index = 10 +11:4/0 = 0 +11:4/0/z_index = 10 +12:4/0 = 0 +12:4/0/z_index = 10 +13:4/0 = 0 +13:4/0/z_index = 10 +14:4/0 = 0 +14:4/0/z_index = 10 +15:4/0 = 0 +15:4/0/z_index = 10 +16:4/0 = 0 +17:4/0 = 0 +18:4/0 = 0 +19:4/0 = 0 +20:4/0 = 0 +21:4/0 = 0 +22:4/0 = 0 +23:4/0 = 0 +24:4/0 = 0 +25:4/0 = 0 +26:4/0 = 0 +27:4/0 = 0 +28:4/0 = 0 +29:4/0 = 0 +30:4/0 = 0 +31:4/0 = 0 +2:5/0 = 0 +2:5/0/z_index = 10 +3:5/0 = 0 +3:5/0/z_index = 10 +4:5/0 = 0 +4:5/0/z_index = 10 +7:5/0 = 0 +7:5/0/z_index = 10 +8:5/0 = 0 +8:5/0/z_index = 10 +9:5/0 = 0 +9:5/0/z_index = 10 +12:5/0 = 0 +12:5/0/z_index = 10 +13:5/0 = 0 +13:5/0/z_index = 10 +14:5/0 = 0 +14:5/0/z_index = 10 +20:5/0 = 0 +21:5/0 = 0 +22:5/0 = 0 +23:5/0 = 0 +26:5/0 = 0 +27:5/0 = 0 +28:5/0 = 0 +29:5/0 = 0 +30:5/0 = 0 +31:5/0 = 0 +2:6/0 = 0 +2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8.08612, -16, 16, -16, 16, 16, -16, 16) +3:6/0 = 0 +3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 9.95216, -16, 16, -2.17703, 16, 16, -16, 16) +4:6/0 = 0 +4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -9.95215, -16, -4.82057, 13.3732, -16, 16) +7:6/0 = 0 +8:6/0 = 0 +9:6/0 = 0 +13:6/0 = 0 +14:6/0 = 0 +16:6/0 = 0 +17:6/0 = 0 +21:6/0 = 0 +26:6/0 = 0 +27:6/0 = 0 +28:6/0 = 0 +29:6/0 = 0 +30:6/0 = 0 +31:6/0 = 0 +2:7/0 = 0 +2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -5.59809, -8.39713, -7.77512) +3:7/0 = 0 +3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -0.622009, -16, -3.11005) +4:7/0 = 0 +4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -6.06459, -16, -6.6866, -6.2201, -16, -4.04306) +7:7/0 = 0 +8:7/0 = 0 +9:7/0 = 0 +13:7/0 = 0 +14:7/0 = 0 +16:7/0 = 0 +17:7/0 = 0 +18:7/0 = 0 +21:7/0 = 0 +22:7/0 = 0 +23:7/0 = 0 +26:7/0 = 0 +27:7/0 = 0 +28:7/0 = 0 +29:7/0 = 0 +30:7/0 = 0 +31:7/0 = 0 +1:8/0 = 0 +1:8/0/z_index = 10 +2:8/0 = 0 +2:8/0/z_index = 10 +3:8/0 = 0 +3:8/0/z_index = 10 +4:8/0 = 0 +4:8/0/z_index = 10 +7:8/0 = 0 +7:8/0/z_index = 10 +8:8/0 = 0 +8:8/0/z_index = 10 +9:8/0 = 0 +9:8/0/z_index = 10 +16:8/0 = 0 +17:8/0 = 0 +18:8/0 = 0 +19:8/0 = 0 +21:8/0 = 0 +22:8/0 = 0 +23:8/0 = 0 +24:8/0 = 0 +26:8/0 = 0 +27:8/0 = 0 +28:8/0 = 0 +29:8/0 = 0 +30:8/0 = 0 +31:8/0 = 0 +0:9/0 = 0 +0:9/0/z_index = 10 +1:9/0 = 0 +1:9/0/z_index = 10 +2:9/0 = 0 +2:9/0/z_index = 10 +3:9/0 = 0 +3:9/0/z_index = 10 +4:9/0 = 0 +4:9/0/z_index = 10 +5:9/0 = 0 +5:9/0/z_index = 10 +6:9/0 = 0 +6:9/0/z_index = 10 +7:9/0 = 0 +7:9/0/z_index = 10 +8:9/0 = 0 +8:9/0/z_index = 10 +9:9/0 = 0 +9:9/0/z_index = 10 +10:9/0 = 0 +10:9/0/z_index = 10 +12:9/0 = 0 +12:9/0/z_index = 10 +13:9/0 = 0 +13:9/0/z_index = 10 +14:9/0 = 0 +14:9/0/z_index = 10 +16:9/0 = 0 +17:9/0 = 0 +21:9/0 = 0 +26:9/0 = 0 +27:9/0 = 0 +28:9/0 = 0 +29:9/0 = 0 +30:9/0 = 0 +31:9/0 = 0 +0:10/0 = 0 +0:10/0/z_index = 10 +1:10/0 = 0 +1:10/0/z_index = 10 +2:10/0 = 0 +2:10/0/z_index = 10 +3:10/0 = 0 +3:10/0/z_index = 10 +4:10/0 = 0 +4:10/0/z_index = 10 +5:10/0 = 0 +5:10/0/z_index = 10 +6:10/0 = 0 +6:10/0/z_index = 10 +7:10/0 = 0 +7:10/0/z_index = 10 +8:10/0 = 0 +8:10/0/z_index = 10 +9:10/0 = 0 +9:10/0/z_index = 10 +10:10/0 = 0 +10:10/0/z_index = 10 +11:10/0 = 0 +11:10/0/z_index = 10 +12:10/0 = 0 +12:10/0/z_index = 10 +13:10/0 = 0 +13:10/0/z_index = 10 +14:10/0 = 0 +14:10/0/z_index = 10 +15:10/0 = 0 +15:10/0/z_index = 10 +16:10/0 = 0 +17:10/0 = 0 +18:10/0 = 0 +21:10/0 = 0 +22:10/0 = 0 +23:10/0 = 0 +26:10/0 = 0 +27:10/0 = 0 +28:10/0 = 0 +29:10/0 = 0 +30:10/0 = 0 +31:10/0 = 0 +0:11/0 = 0 +0:11/0/z_index = 10 +1:11/0 = 0 +1:11/0/z_index = 10 +2:11/0 = 0 +2:11/0/z_index = 10 +3:11/0 = 0 +3:11/0/z_index = 10 +4:11/0 = 0 +4:11/0/z_index = 10 +5:11/0 = 0 +5:11/0/z_index = 10 +6:11/0 = 0 +6:11/0/z_index = 10 +7:11/0 = 0 +7:11/0/z_index = 10 +8:11/0 = 0 +8:11/0/z_index = 10 +9:11/0 = 0 +9:11/0/z_index = 10 +10:11/0 = 0 +10:11/0/z_index = 10 +11:11/0 = 0 +11:11/0/z_index = 10 +12:11/0 = 0 +12:11/0/z_index = 10 +13:11/0 = 0 +13:11/0/z_index = 10 +14:11/0 = 0 +14:11/0/z_index = 10 +15:11/0 = 0 +15:11/0/z_index = 10 +16:11/0 = 0 +17:11/0 = 0 +18:11/0 = 0 +19:11/0 = 0 +21:11/0 = 0 +22:11/0 = 0 +23:11/0 = 0 +24:11/0 = 0 +26:11/0 = 0 +27:11/0 = 0 +28:11/0 = 0 +29:11/0 = 0 +30:11/0 = 0 +31:11/0 = 0 +0:12/0 = 0 +0:12/0/z_index = 10 +1:12/0 = 0 +1:12/0/z_index = 10 +2:12/0 = 0 +2:12/0/z_index = 10 +3:12/0 = 0 +3:12/0/z_index = 10 +4:12/0 = 0 +4:12/0/z_index = 10 +5:12/0 = 0 +5:12/0/z_index = 10 +6:12/0 = 0 +6:12/0/z_index = 10 +7:12/0 = 0 +7:12/0/z_index = 10 +8:12/0 = 0 +8:12/0/z_index = 10 +9:12/0 = 0 +9:12/0/z_index = 10 +10:12/0 = 0 +10:12/0/z_index = 10 +11:12/0 = 0 +11:12/0/z_index = 10 +12:12/0 = 0 +12:12/0/z_index = 10 +13:12/0 = 0 +13:12/0/z_index = 10 +14:12/0 = 0 +14:12/0/z_index = 10 +15:12/0 = 0 +15:12/0/z_index = 10 +16:12/0 = 0 +17:12/0 = 0 +26:12/0 = 0 +27:12/0 = 0 +28:12/0 = 0 +29:12/0 = 0 +30:12/0 = 0 +31:12/0 = 0 +2:13/0 = 0 +2:13/0/z_index = 10 +3:13/0 = 0 +3:13/0/z_index = 10 +4:13/0 = 0 +4:13/0/z_index = 10 +7:13/0 = 0 +7:13/0/z_index = 10 +8:13/0 = 0 +8:13/0/z_index = 10 +9:13/0 = 0 +9:13/0/z_index = 10 +12:13/0 = 0 +12:13/0/z_index = 10 +13:13/0 = 0 +13:13/0/z_index = 10 +14:13/0 = 0 +14:13/0/z_index = 10 +16:13/0 = 0 +17:13/0 = 0 +18:13/0 = 0 +21:13/0 = 0 +21:13/0/z_index = 10 +22:13/0 = 0 +22:13/0/z_index = 10 +23:13/0 = 0 +24:13/0 = 0 +26:13/0 = 0 +27:13/0 = 0 +28:13/0 = 0 +29:13/0 = 0 +30:13/0 = 0 +31:13/0 = 0 +32:13/0 = 0 +33:13/0 = 0 +34:13/0 = 0 +35:13/0 = 0 +36:13/0 = 0 +37:13/0 = 0 +2:14/0 = 0 +3:14/0 = 0 +4:14/0 = 0 +7:14/0 = 0 +8:14/0 = 0 +9:14/0 = 0 +13:14/0 = 0 +14:14/0 = 0 +16:14/0 = 0 +17:14/0 = 0 +18:14/0 = 0 +19:14/0 = 0 +21:14/0 = 0 +22:14/0 = 0 +23:14/0 = 0 +24:14/0 = 0 +25:14/0 = 0 +26:14/0 = 0 +29:14/0 = 0 +30:14/0 = 0 +31:14/0 = 0 +32:14/0 = 0 +33:14/0 = 0 +34:14/0 = 0 +35:14/0 = 0 +36:14/0 = 0 +37:14/0 = 0 +2:15/0 = 0 +3:15/0 = 0 +4:15/0 = 0 +7:15/0 = 0 +8:15/0 = 0 +9:15/0 = 0 +13:15/0 = 0 +14:15/0 = 0 +16:15/0 = 0 +21:15/0 = 0 +22:15/0 = 0 +23:15/0 = 0 +26:15/0 = 0 +27:15/0 = 0 +28:15/0 = 0 +29:15/0 = 0 +30:15/0 = 0 +31:15/0 = 0 +32:15/0 = 0 +33:15/0 = 0 +34:15/0 = 0 +35:15/0 = 0 +36:15/0 = 0 +37:15/0 = 0 +2:16/0 = 0 +3:16/0 = 0 +7:16/0 = 0 +8:16/0 = 0 +9:16/0 = 0 +13:16/0 = 0 +14:16/0 = 0 +16:16/0 = 0 +17:16/0 = 0 +18:16/0 = 0 +19:16/0 = 0 +21:16/0 = 0 +22:16/0 = 0 +23:16/0 = 0 +26:16/0 = 0 +27:16/0 = 0 +28:16/0 = 0 +29:16/0 = 0 +30:16/0 = 0 +31:16/0 = 0 +32:16/0 = 0 +33:16/0 = 0 +34:16/0 = 0 +35:16/0 = 0 +36:16/0 = 0 +37:16/0 = 0 +2:17/0 = 0 +3:17/0 = 0 +4:17/0 = 0 +7:17/0 = 0 +8:17/0 = 0 +9:17/0 = 0 +13:17/0 = 0 +14:17/0 = 0 +16:17/0 = 0 +26:17/0 = 0 +29:17/0 = 0 +30:17/0 = 0 +33:17/0 = 0 +34:17/0 = 0 +37:17/0 = 0 +2:18/0 = 0 +3:18/0 = 0 +4:18/0 = 0 +7:18/0 = 0 +8:18/0 = 0 +9:18/0 = 0 +13:18/0 = 0 +14:18/0 = 0 +16:18/0 = 0 +17:18/0 = 0 +18:18/0 = 0 +19:18/0 = 0 +26:18/0 = 0 +27:18/0 = 0 +28:18/0 = 0 +29:18/0 = 0 +30:18/0 = 0 +31:18/0 = 0 +32:18/0 = 0 +33:18/0 = 0 +34:18/0 = 0 +35:18/0 = 0 +36:18/0 = 0 +37:18/0 = 0 +2:19/0 = 0 +3:19/0 = 0 +15:19/0 = 0 +15:19/0/z_index = 10 +16:19/0 = 0 +16:19/0/z_index = 10 +26:19/0 = 0 +27:19/0 = 0 +28:19/0 = 0 +29:19/0 = 0 +30:19/0 = 0 +31:19/0 = 0 +32:19/0 = 0 +33:19/0 = 0 +34:19/0 = 0 +35:19/0 = 0 +2:20/0 = 0 +2:20/0/z_index = 10 +3:20/0 = 0 +3:20/0/z_index = 10 +6:20/0 = 0 +6:20/0/z_index = 10 +7:20/0 = 0 +7:20/0/z_index = 10 +15:20/0 = 0 +15:20/0/z_index = 10 +16:20/0 = 0 +16:20/0/z_index = 10 +19:20/0 = 0 +19:20/0/z_index = 10 +20:20/0 = 0 +20:20/0/z_index = 10 +26:20/0 = 0 +28:20/0 = 0 +29:20/0 = 0 +30:20/0 = 0 +31:20/0 = 0 +32:20/0 = 0 +33:20/0 = 0 +34:20/0 = 0 +35:20/0 = 0 +1:21/0 = 0 +1:21/0/z_index = 10 +2:21/0 = 0 +2:21/0/z_index = 10 +3:21/0 = 0 +3:21/0/z_index = 10 +4:21/0 = 0 +4:21/0/z_index = 10 +6:21/0 = 0 +6:21/0/z_index = 10 +7:21/0 = 0 +7:21/0/z_index = 10 +10:21/0 = 0 +10:21/0/z_index = 10 +11:21/0 = 0 +11:21/0/z_index = 10 +14:21/0 = 0 +14:21/0/z_index = 10 +15:21/0 = 0 +15:21/0/z_index = 10 +16:21/0 = 0 +16:21/0/z_index = 10 +17:21/0 = 0 +17:21/0/z_index = 10 +19:21/0 = 0 +19:21/0/z_index = 10 +20:21/0 = 0 +20:21/0/z_index = 10 +23:21/0 = 0 +23:21/0/z_index = 10 +24:21/0 = 0 +24:21/0/z_index = 10 +26:21/0 = 0 +28:21/0 = 0 +29:21/0 = 0 +30:21/0 = 0 +31:21/0 = 0 +32:21/0 = 0 +33:21/0 = 0 +34:21/0 = 0 +35:21/0 = 0 +1:22/0 = 0 +1:22/0/z_index = 10 +2:22/0 = 0 +2:22/0/z_index = 10 +3:22/0 = 0 +3:22/0/z_index = 10 +4:22/0 = 0 +4:22/0/z_index = 10 +5:22/0 = 0 +5:22/0/z_index = 10 +6:22/0 = 0 +6:22/0/z_index = 10 +7:22/0 = 0 +7:22/0/z_index = 10 +8:22/0 = 0 +8:22/0/z_index = 10 +10:22/0 = 0 +10:22/0/z_index = 10 +11:22/0 = 0 +11:22/0/z_index = 10 +14:22/0 = 0 +14:22/0/z_index = 10 +15:22/0 = 0 +15:22/0/z_index = 10 +16:22/0 = 0 +16:22/0/z_index = 10 +17:22/0 = 0 +17:22/0/z_index = 10 +18:22/0 = 0 +18:22/0/z_index = 10 +19:22/0 = 0 +19:22/0/z_index = 10 +20:22/0 = 0 +20:22/0/z_index = 10 +21:22/0 = 0 +21:22/0/z_index = 10 +23:22/0 = 0 +23:22/0/z_index = 10 +24:22/0 = 0 +24:22/0/z_index = 10 +26:22/0 = 0 +27:22/0 = 0 +28:22/0 = 0 +29:22/0 = 0 +30:22/0 = 0 +31:22/0 = 0 +32:22/0 = 0 +33:22/0 = 0 +34:22/0 = 0 +35:22/0 = 0 +1:23/0 = 0 +1:23/0/z_index = 10 +2:23/0 = 0 +2:23/0/z_index = 10 +3:23/0 = 0 +3:23/0/z_index = 10 +4:23/0 = 0 +4:23/0/z_index = 10 +5:23/0 = 0 +5:23/0/z_index = 10 +6:23/0 = 0 +6:23/0/z_index = 10 +7:23/0 = 0 +7:23/0/z_index = 10 +8:23/0 = 0 +8:23/0/z_index = 10 +9:23/0 = 0 +9:23/0/z_index = 10 +10:23/0 = 0 +10:23/0/z_index = 10 +11:23/0 = 0 +11:23/0/z_index = 10 +12:23/0 = 0 +12:23/0/z_index = 10 +14:23/0 = 0 +14:23/0/z_index = 10 +15:23/0 = 0 +15:23/0/z_index = 10 +16:23/0 = 0 +16:23/0/z_index = 10 +17:23/0 = 0 +17:23/0/z_index = 10 +18:23/0 = 0 +18:23/0/z_index = 10 +19:23/0 = 0 +19:23/0/z_index = 10 +20:23/0 = 0 +20:23/0/z_index = 10 +21:23/0 = 0 +21:23/0/z_index = 10 +22:23/0 = 0 +22:23/0/z_index = 10 +23:23/0 = 0 +23:23/0/z_index = 10 +24:23/0 = 0 +24:23/0/z_index = 10 +25:23/0 = 0 +25:23/0/z_index = 10 +26:23/0 = 0 +27:23/0 = 0 +28:23/0 = 0 +29:23/0 = 0 +30:23/0 = 0 +31:23/0 = 0 +32:23/0 = 0 +33:23/0 = 0 +34:23/0 = 0 +1:24/0 = 0 +1:24/0/z_index = 10 +2:24/0 = 0 +2:24/0/z_index = 10 +3:24/0 = 0 +3:24/0/z_index = 10 +4:24/0 = 0 +4:24/0/z_index = 10 +5:24/0 = 0 +5:24/0/z_index = 10 +6:24/0 = 0 +6:24/0/z_index = 10 +7:24/0 = 0 +7:24/0/z_index = 10 +8:24/0 = 0 +8:24/0/z_index = 10 +9:24/0 = 0 +9:24/0/z_index = 10 +10:24/0 = 0 +10:24/0/z_index = 10 +11:24/0 = 0 +11:24/0/z_index = 10 +12:24/0 = 0 +12:24/0/z_index = 10 +14:24/0 = 0 +14:24/0/z_index = 10 +15:24/0 = 0 +15:24/0/z_index = 10 +16:24/0 = 0 +16:24/0/z_index = 10 +17:24/0 = 0 +17:24/0/z_index = 10 +18:24/0 = 0 +18:24/0/z_index = 10 +19:24/0 = 0 +19:24/0/z_index = 10 +20:24/0 = 0 +20:24/0/z_index = 10 +21:24/0 = 0 +21:24/0/z_index = 10 +22:24/0 = 0 +22:24/0/z_index = 10 +23:24/0 = 0 +23:24/0/z_index = 10 +24:24/0 = 0 +24:24/0/z_index = 10 +25:24/0 = 0 +25:24/0/z_index = 10 +26:24/0 = 0 +28:24/0 = 0 +29:24/0 = 0 +31:24/0 = 0 +32:24/0 = 0 +34:24/0 = 0 +2:25/0 = 0 +2:25/0/z_index = 10 +3:25/0 = 0 +3:25/0/z_index = 10 +6:25/0 = 0 +6:25/0/z_index = 10 +7:25/0 = 0 +7:25/0/z_index = 10 +9:25/0 = 0 +9:25/0/z_index = 10 +10:25/0 = 0 +10:25/0/z_index = 10 +11:25/0 = 0 +11:25/0/z_index = 10 +12:25/0 = 0 +12:25/0/z_index = 10 +15:25/0 = 0 +15:25/0/z_index = 10 +16:25/0 = 0 +16:25/0/z_index = 10 +19:25/0 = 0 +19:25/0/z_index = 10 +20:25/0 = 0 +20:25/0/z_index = 10 +22:25/0 = 0 +22:25/0/z_index = 10 +23:25/0 = 0 +23:25/0/z_index = 10 +24:25/0 = 0 +24:25/0/z_index = 10 +25:25/0 = 0 +25:25/0/z_index = 10 +26:25/0 = 0 +27:25/0 = 0 +28:25/0 = 0 +29:25/0 = 0 +30:25/0 = 0 +31:25/0 = 0 +32:25/0 = 0 +33:25/0 = 0 +34:25/0 = 0 +2:26/0 = 0 +3:26/0 = 0 +6:26/0 = 0 +7:26/0 = 0 +10:26/0 = 0 +11:26/0 = 0 +15:26/0 = 0 +16:26/0 = 0 +19:26/0 = 0 +20:26/0 = 0 +23:26/0 = 0 +24:26/0 = 0 +30:26/0 = 0 +2:27/0 = 0 +3:27/0 = 0 +6:27/0 = 0 +7:27/0 = 0 +10:27/0 = 0 +11:27/0 = 0 +2:28/0 = 0 +3:28/0 = 0 +6:28/0 = 0 +7:28/0 = 0 +10:28/0 = 0 +11:28/0 = 0 +0:8/0 = 0 +0:8/0/z_index = 10 +5:13/0 = 0 +5:13/0/z_index = 10 + +[resource] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 4 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "Floor" +terrain_set_0/terrain_0/color = Color(0.5, 0.4375, 0.25, 1) +terrain_set_0/terrain_1/name = "Water" +terrain_set_0/terrain_1/color = Color(0.00998942, 0.470085, 2.88785e-07, 1) +sources/0 = SubResource("TileSetAtlasSource_kgifk") +sources/1 = SubResource("TileSetAtlasSource_lcnnk") diff --git a/assets/sprites/tilesets/grass.png b/assets/sprites/tilesets/grass.png deleted file mode 100644 index 146c7b600daab3a39a7ef280fd8f9cfd1e32f59c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|Bt2amLo_BP r^URog%z-OG$@A-qwm@EIFJ=bIC5(jus%f);iWody{an^LB{Ts5p3xT3 diff --git a/assets/sprites/tilesets/grass.png.import b/assets/sprites/tilesets/grass.png.import deleted file mode 100644 index e3406d9..0000000 --- a/assets/sprites/tilesets/grass.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://kp2ka2v6xul5" -path="res://.godot/imported/grass.png-a8ad71a7b62094379d8ccf591977f6b3.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/grass.png" -dest_files=["res://.godot/imported/grass.png-a8ad71a7b62094379d8ccf591977f6b3.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/grass_scatter.png b/assets/sprites/tilesets/grass_scatter.png deleted file mode 100644 index 22b81a54a800fc0958c7b814e3368fd0699a00c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1958 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 SWHC;g0oRSKjA{+;#{Ul;H*I79 diff --git a/assets/sprites/tilesets/plains.png.import b/assets/sprites/tilesets/plains.png.import deleted file mode 100644 index 5c31285..0000000 --- a/assets/sprites/tilesets/plains.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://caehri3cruwp8" -path="res://.godot/imported/plains.png-b63aac4e7bfff1d2302cf7e7e3910af6.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/plains.png" -dest_files=["res://.godot/imported/plains.png-b63aac4e7bfff1d2302cf7e7e3910af6.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/walls/walls.png b/assets/sprites/tilesets/walls/walls.png deleted file mode 100644 index 3cd30236896fd3a7dc5ff901825444bad77aebac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2201 zcmbtW`8U+-AO8%)SQ1iKmTYD1TyppdStgVuOQO|86d_EQ7~4$QiY%2HjA?{yS+5Yr zz782%))BJAm>DrLW{lxG_uTs*+#jCz>pbWEI?wZd&U0Sx*ZYN|y|tK#tOx)AVm6no zoOp=-dkG2hVu#tiejb2=ovbZ@a*{j+0EDjDSe3sni;(h5!O+ zucL(cOXJrxgb`>34Wh8Vpady)FDj5OhpZ)Yt}R)=fAT~QKkJIbMCrz+jK!tgJ#!e2 z3JY=aC%9%WQunx~0AUIx3QT6w$H5M%bKhgKX=x@vB(5d2R*(G1sAM!i?sXwqg|<>e z$#>Nz$@Tab=bi0_hYW@Eg>F7w1J5Nag?crPnXerxIPu-9|FORj5^t)&F(OFMh0gq8 z9R6T|{G&lglcnt;SMSVrmLa};+Cx6I%=D6pN;}Gy9>nWUUuCDw9z|kcmvO@L`|nJm zn1Ah(%_!10LTd)A7(8I@QADFT+#5jaii2Ba9m=t$(KQ>g9mD{5o1x=7mds#6*#4Ep&iNXr&-uH`t}P0Jcve_Zotf*D5KN5aYa7V~ zKG`>PQ>)q5*`VaWsje{?o!LjkYd0@$tmb1bv3|3@b3>R~56ye%14pE942bTXSqx(> zrQ9L?RD9zf676+6QL<@bEqD{$7KOBq>jGYiX`drtXmZNzIw&bOUS% zU&-ligOu`JH!V3kfde)(wQQ)$&KU`4pGg$X^5FkO?Fx-#{aRV;a68}wqO0V%8;>9x zARzkNvRJb^vi?;hhO3jTTPd=Dc2QrY(}Et)PI@!R=W`sI13hSiZ*}SqluJy|l-Q?g z&im|$TUfkYX2n)dixJzbzUh`A{U3&GvAfi8mXAF8;$QI{s&i*GnJaymNmPpPyo1-5 z0^NcWrjprv+Y1ri-L-A&G5!0l?AIK{X9N83&aW}HY7<`T#O1W1#GFF~)i+|ASx_q# zjd*2siw5^zuJ|k{e#QujJ7={FU@t*-x{PsXGlaYf$tsPysf}5hU*f2B@5{5v*ayR0 zab3_A_3Lt9^^jS;h8-oXF=iEo97{%&hk{Qqv+gZwm!=vJ`0m1vc_%omH1~tep=n8D z>4K{jnTtUT)vqy@OueJ9VX}aWU5=k|wH`S+T!BQ~u?sM5tsOO%w6b~Yw!;a%Y?38( zBxR=wjo8}VZ79N=5);E-p|_{vU2qn0#kM&pvcCxJWE=uLlQ=QtY@6_GfAcWt=RzHB zRF>WBmMS}vO%Nvx@~xgV4>`gsEzf?wun*k*?i_m>zI;7uRv^f>y%wh>wW<}dz?{m2 z;t4Uy<>C^aE%()0J+nsP^@bJQ@Zbg4x{xXfhh`g<(foeRd+ zPW(t6?kCpO;6Hp)s+yd-cnmzUIZ_&VZ*JO0E<&<1jWE?xheGqjv$BS*3ioH%_PqF0 zRGcDC`7_h^qoZO$^IU*uMLLmK7#UD)sy3N4hSkFOqI@cg-RHVe<02X-qmieslisb& z!p?BUAL|Cubp*T>T3=Spq|-Kcf<~4o&4q(^jSJz~ckj%mh0BwoQ(QT=d3|{f-W8Ma z%nUzuLqlW);fm4u+S%IEa9w6F==RC}%#s6TQV~T%Q_}f6XjPc;pmCMXF)#Im^kbb`KhSj^Im5LerO5> zD|3~bRHaHGXY#@3RYBR0`k1bq;H8E>eddKq1@t~%1gBQdWHW<0CBCJwNwBeA6rI7NK;fhn{!nnMs% z5eL%U#OHlGYN!ngN-hUEULYz7bFH>X!5!By@pPOY91pafnD;dWmcH?4cs}wpg)ZJg z`&}`h3{Hllk0Pa98ddh~dV3ajU5?`S4SIfw@-9b@wh1&?!uiS|LeSJ#xhNrN#piBU z{a}nJsjcZJ0dum(iAkWegZ=QTUoD}n20M1riRu41uMqY))>ifa#BBmLS5H9y)#1Oc ooOf7B9s&F);uo_1k15i@Yj6XrQ{#RXZ`J^8F4$X@Tev^_KVc46z5oCK diff --git a/assets/sprites/tilesets/walls/walls.png.import b/assets/sprites/tilesets/walls/walls.png.import deleted file mode 100644 index eea0214..0000000 --- a/assets/sprites/tilesets/walls/walls.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bvrwvvj0kyfxo" -path="res://.godot/imported/walls.png-2ed5512c462efc1c7833a4bb9877458f.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/walls/walls.png" -dest_files=["res://.godot/imported/walls.png-2ed5512c462efc1c7833a4bb9877458f.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/walls/wooden_door.png b/assets/sprites/tilesets/walls/wooden_door.png deleted file mode 100644 index 8b3d41adbfd9de6afc4b8051e70b331eb82b6553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3HGD8EPYe6k~CayA#8@b22Z1Y(`HP#}JRs zWFP&xAM3Br31Ta1i1spP1_9MylA^4Y|JyAxC#N2mRU0lT0R$Qs&$~?X(_#{1V`FQ( z-GAT6rt){IO0Ur&n*uY{Uo$~ULQ-2FHW_eANY9qoBvZdB! z4-UVayhKBtYr}*^7Q0?^U6pMxWhr=?`6S09nEisVz*~kOZ>vR(ixl411KqS~1BjvX zEAW7#sA!wBme!3m|JG}q_&xvWzu)J1cqTlWm{RcnZ~BbZCoj_X{Qvj4o*}aIYPEI{At2SIx0thrNo_Cq%r^O`3#>Uom zyZ^qCP37-am0qJmHU(y?zal|OLQ-2L=k58+B<_-Sm|@qRRcj0mAHA(Fap7yeMd@q} zb_=NpgBYN6wa9{KKW~Q;sRdIPv)KqvdeSh{_>iR4WKp(rjPic-m#liq!*e0VL8s&0 zE~irV1YX9N$|$!P?XNluU#K_*d0Q=NT%_>69_Wls8$b-Nuf`6RPnc#Tro3inn7AO- VaPp}+bAcXY@O1TaS?83{1OUDvWHJB% diff --git a/assets/sprites/tilesets/water-sheet.png b/assets/sprites/tilesets/water-sheet.png deleted file mode 100644 index 1ffdcd0e7fa2284d1630022c78e58d64b1582b0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3019 zcmY*bc{tST7ynK&%39fCmG$0Gd+zU__kEw|J?}Z^bDqz6&*!0=%PAR2RY?E-vCO zUTOr8zmDokM#cUHne$f;=T7+2caNOZ9cvix!B z*0bx+|%rB6BN*$=05Gb z$fFM&0Id9uMu34^?xGDHQIj+AX;sWA%nY*$-l3!_9w5B&H@u%nsiSf43+|^)@FZIl zxpa{I?(%9~yUMgoA-+Kr(4P zJj(mg*GRedG%;g*%)iRAAKjvBNW~R}PY>9K@*qE&V_p8wpIHHfDn|?51?*5dkLD;C zl}6F_BZ#>um1<$^&CMYC>M905<($;X1qYXJO`G_Y*@8$-Vz8R&l=|Y z12a)|KL)M6A%S9W8MOW*-wm-Ju>=vSyx1Iz>uee8xr62vcxcsnf9^abnK758ZY@#G z@9c-IZdXWy$)J;1=KN}hgu1c)N+@{3IyxHa6o%;elvaAU_;@XZuX^t~N*rd`(qhvy9Q;<0}F!r5;W1RQGkH~A#3M)rK&dlvr&mkjk zvz7P5X3Jj*R<1QRV1Xn=r27`6758l!gLP#kr9rk~OW(u{5Oc>J?!3D3pla7EL4Et9 z`CqLF5_s~P&APKu+bkgOc}x=w5#^#~il42NWj?M%B_TdDo@FQYMIlfpN7v@dyU8WK z=F-2V#Wh5doMhRFp5_LT4VqPJ5dpZNnsiv|uxU}s;SQ{HQnqR6=}|A*$LBvDNyG7>(up+>)@e z>_&c)MQbC*7xs2Ip>d{E204Iekk?(O&DvA6I|@BRorN|Ye3_{xE8Otj&hrbViTm)G zr+b=*4U4+p712p0lIl3c1+jkD%Fra`T3fA&d47;DNw2TdIN{w`*bGLwbZVk6tEqLR zH@NB(t)lW3fzHM6`ZoAisse6z!G%pTDmRFyZp>r$W|H^u7Aik(1TpR^qZ~f&l*PQg*WVOWXK2{ZCXpH- z0ov{HKP)l9VG1*H#bI&0emBVXH>I3s&pAofxv0k;c;aT~G=&!WdaX00EeC{5e~+!R zQoovv$n5b4*5IM}0?dABok%`)hE|%^3Rd zd$6l&Ob8&w(Xq%&sy}*m#7yn{T z@t4nljq<14c~gTL%uY(YoG3}263T{rJ6BlXQ!+B}ORe?T#Gl-JiE1rQjL_KKN{wKo zN=yVhT;^smcZ~Dfc^;c*Tu1cKVY91u>cR8;+at?p8z=CEQ+qYJ@ti7Sz)!9xzdH<% zD^K6eM}F7Q-s^C1XZ)h8RJG8I+(f~4Z||9NZQGu%`3m2hG0s}3uRX9n7?_VbfDUiu z_MZ%0KD-Z+WEBMJ7C?L-q&{pf`G!&w_jcLuXFb!pvNL(rb+$G_nuc}=a=zr7Wjxu; z!IfTXqc6=bO1G_NcH8&PrQ%@5)2{u8I8!>xiF|6$&q;l@a zYBQd7c?a&u(m$Rhb4HERdOD-Az*QvWFy=KpZhk+YbSy&n7-n>ivl&tLDKrc6o{j^Ant z8W`p;+~k4k;LPeOcf0WO$VtxJ7)FBKt8#IC8mK=R#<}@K%L9_@@}*a}u zBi;<|3kEjIWS5Hye$Gq?KLNf-l9w^Mw<|`*9u`tDM+z`bu{6OSj9`^MR1=&REXrLF z3_yLH6?>4$H!5Uc-bF<#fgfzuzj;AmY4Xc5ACS^onLfZ^eU4;vTk*2r>JE`EdN7ba zANIJ0OkD6mhD9Gq0P1Fdu&{<$`7In>fUL3c6PggUHBHA8G%<0NO}a7S7R%bdeBIK>fZ zw)BLb6VSm%e-P2UITbuSEJn!qRxfHjFVUdpKc`FV#hQ;ZqqrMS&AP-t%DLq&dEu8> z$fHjzFW}t{;IH$V2gxNHQE4J_>1$}ml3IU@AfX>3c3-AfH?zzK$V2M{N0rf00t4$m z`C@nbtKdwEot-Ng+aDrk@KbUAEk0ig1CR&!!@k9oE-Vt@M@v1!gDSw4``4t)vRR-Du#YU-o^n}P-mH$f7gG%DO35*|BNcVg>skb1mPrkW~E4- O1NJ9ejuUNs;{F4n+d3xz diff --git a/assets/sprites/tilesets/water-sheet.png.import b/assets/sprites/tilesets/water-sheet.png.import deleted file mode 100644 index 6c279c7..0000000 --- a/assets/sprites/tilesets/water-sheet.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cqndfths68nrm" -path="res://.godot/imported/water-sheet.png-0762cf9cba22ea2c17ae1cdd6bde8ae6.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/water-sheet.png" -dest_files=["res://.godot/imported/water-sheet.png-0762cf9cba22ea2c17ae1cdd6bde8ae6.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/water1.png b/assets/sprites/tilesets/water1.png deleted file mode 100644 index c0d5adb033a816767ee9ece81dec941803f6b60d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1397 zcmV-*1&aEKP)Px)FG)l}RCt{2Ts>@~x#B=o5C>L3g&->#B2W>la_342u1kveKNy7+Iqnyj zOA$`!KctDffKcV)z{Me7AyB}Q3Kc4B2qu*wO-KrRM(>VxXJ^JUni1XyOyv1k?LN=U zJMYIjg@2zug$~~Tc_23Z(7Hfi`2O_|uiyWR*Kg0^UV!OnX54n)YiI62eN z4AapJi?j3C7}iEfWMjo~s`FWU==gP0U&P2@2ve=$AAHZ6Fh;SkR zC5NuU#o0O9#WDb3D3IMQmJwA-=-;&;?KUu9USoK6j_Uqi=6pIH0G|^&oCrY84qcT; zyN%VL<%&c`zBneTlw#vp-+XzEcCozH9#u++P(uG=61yK}qS~(yZ9b+II5k0RWhQ}< z%RfsXUW1K~P{Mq9ojAUqV8Vv~ddG^3rwKA9=I z8Gp&Vwlx8=Y-$?0GBU;Xq`9*1N`py`i0&erIVS5~5OYCKPCxV2pG1c03eFmrwNq49 zp$u&Pe0j}di!?Jvt?qzr$iJIHC2e8?=LH$n!`3yJ`OsY?^bn^BzO;IWN)C*|nE*Nm z(KbQMvZmHM6tS_A-n7tpt}`aq1x%;L`X&GASt7&@?5G5&zTz+e_TEY4bpzddA2XIY%L0g2aH$mH%^a%)gBPx)JV``BRCt{2n>}kIM;OQdicD`VQB`ok6H_5pWUYM&JWWDz*@u4TnkP^0*Z1XZ7r8_Ej@G<1jxkSi3X(^8DxJ zd7hcA{r&0{itxwJC*q+mg)U$jpa1>N=>5MkdUuC@0T#1m>0`TI^EsehfWv+}GR|VQ z#A3EYaCIFkL&vxgsjOHoZ+$v$J6~6IBQgdVZ!ufqu-}fA;f58BEFRCQ4`A!Ojc5^o z8;7^T;OZKKdJ_OJ6^uQoH{rJ$7(X2!cDh)tA27YThIf3FS)Z2&5Y@3AEduaihquaM zr@JY%-WZXLFP8CJjaWH4w^~17P;YJ>_gfA4XkdJM6MG&Sq6RL0Wz+8N#N2zPC;UZ9@EoSsld}>5#7TEhZzdY({PKhJIEhg7 z{CstfHz%(X@6+=SqWaU@I{R*Pk7BJqD;XyYC`c8#``2_Qa*to3IZkDnLIW&P&$vji&BSh%C0vau=mf}-K)V|=pYM#NH=pw^!^_%g+y-b_sL$tW_^ z6$w5$O4HHa@e!tvcUY|-@aE(-0*QB0C87a&98hK$p-EiEVZR-{e-V_=0bB&4s!201 zhy8Z$$y4_1MJC?Lydc2d{Cgn80!4V7f7+>j7TU6*^VPi-F#sWp0gA#Cd`asa!%i3I zgu!8+_t(B6X4~*n1oEOdVwN>=y@OpN%?6b%N&cUZEe4fEsQ@z1BC7>d%`S;Jf>z#C zpkxx}I~d3p?)eAC-B6l9d;UQz29WKzNW(ilOU%;B5VHWXp^Q)-hz&d4TnjB#KQWQS2hWY zBG^jVIUvd@3CDIpn-^ruT7azO=0)rUbUl^0&AFPXG!^k2_F@9Xp0lhAop<3#c@Gft z;Woqo>>4I-dNn>yS0`GpiRCCjR@)gtShUN+9t3t(kfDT+7 zU>GNWVYCTA>1bPqA&LQP3l_Br;I|sax2ACMZT(I_ODe)UK8kr9CVK%b$n3f&NEce% z(8X*SitrQ@1d|aw#CHnwjjsTI3i)ukW$vvJI`fB4RJxZ)5&bXe4e}LNxZ)HA>VM_wCz= zHUVU>`dNTqJB5CxBs` z0EQ_%2|Lu{dVpb^0ETe_7{&=;7$<;XoB)P#0vN^#U>GNWVVnSlaRM0TKXNng$$H#c QC;$Ke07*qoM6N<$g7z$j{Qv*} diff --git a/assets/sprites/tilesets/water2.png.import b/assets/sprites/tilesets/water2.png.import deleted file mode 100644 index 643f35f..0000000 --- a/assets/sprites/tilesets/water2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c6vdpb3jw82wa" -path="res://.godot/imported/water2.png-8c1520366c726d04b5cc3acadff0b900.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/water2.png" -dest_files=["res://.godot/imported/water2.png-8c1520366c726d04b5cc3acadff0b900.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/water3.png b/assets/sprites/tilesets/water3.png deleted file mode 100644 index 795eb6c46271d5d032e800c2286aaaef164a8231..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1425 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 diff --git a/assets/sprites/tilesets/water4.png.import b/assets/sprites/tilesets/water4.png.import deleted file mode 100644 index 26ecf92..0000000 --- a/assets/sprites/tilesets/water4.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://bahrovkle7n8c" -path="res://.godot/imported/water4.png-7e2a40803f048ca90fe06df19feead67.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/water4.png" -dest_files=["res://.godot/imported/water4.png-7e2a40803f048ca90fe06df19feead67.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/water5.png b/assets/sprites/tilesets/water5.png deleted file mode 100644 index 16256083c85c8b159abd7f0abbfd5dc2840e51c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1410 zcmV-|1%3L7P)Px)JV``BRCt{2n>}kIM;OQdicD`VQB`ok6H_5pWUYM&JWWDz*@u4TnkP^0*Z1XZ7r8_Ej@G<1jxkSi3X(^8DxJ zd7hcA{r&0{itxwJC*q+mg)U$jpa1>N=>5MkdUuC@0T#1m>0`TI^EsehfWv+}GR|VQ z#A3EYaCIFkL&vxgsjOHoZ+$v$J6~6IBQgdVZ!ufqu-}fA;f58BEFRCQ4`A!Ojc5^o z8;7^T;OZKKdJ_OJ6^uQoH{rJ$7(X2!cDh)tA27YThIf3FS)Z2&5Y@3AEduaihquaM zr@JY%-WZXLFP8CJjaWH4w^~17P;YJ>_gfA4XkdJM6MG&Sq6RL0Wz+8N#N2zPC;UZ9@EoSsld}>5#7TEhZzdY({PKhJIEhg7 z{CstfHz%(X@6+=SqWaU@I{R*Pk7BJqD;XyYC`c8#``2_Qa*to3IZkDnLIW&P&$vji&BSh%C0vau=mf}-K)V|=pYM#NH=pw^!^_%g+y-b_sL$tW_^ z6$w5$O4HHa@e!tvcUY|-@aE(-0*QB0C87a&98hK$p-EiEVZR-{e-V_=0bB&4s!201 zhy8Z$$y4_1MJC?Lydc2d{Cgn80!4V7f7+>j7TU6*^VPi-F#sWp0gA#Cd`asa!%i3I zgu!8+_t(B6X4~*n1oEOdVwN>=y@OpN%?6b%N&cUZEe4fEsQ@z1BC7>d%`S;Jf>z#C zpkxx}I~d3p?)eAC-B6l9d;UQz29WKzNW(ilOU%;B5VHWXp^Q)-hz&d4TnjB#KQWQS2hWY zBG^jVIUvd@3CDIpn-^ruT7azO=0)rUbUl^0&AFPXG!^k2_F@9Xp0lhAop<3#c@Gft z;Woqo>>4I-dNn>yS0`GpiRCCjR@)gtShUN+9t3t(kfDT+7 zU>GNWVYCTA>1bPqA&LQP3l_Br;I|sax2ACMZT(I_ODe)UK8kr9CVK%b$n3f&NEce% z(8X*SitrQ@1d|aw#CHnwjjsTI3i)ukW$vvJI`fB4RJxZ)5&bXe4e}LNxZ)HA>VM_wCz= zHUVU>`dNTqJB5CxBs` z0EQ_%2|Lu{dVpb^0ETe_7{&=;7$<;XoB)P#0vN^#U>GNWVVnSlaRM0TKXNng$$H#c QC;$Ke07*qoM6N<$g7z$j{Qv*} diff --git a/assets/sprites/tilesets/water5.png.import b/assets/sprites/tilesets/water5.png.import deleted file mode 100644 index 0aac8c2..0000000 --- a/assets/sprites/tilesets/water5.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b5q52dhjhtyql" -path="res://.godot/imported/water5.png-b971537c1b970f980c158571c19d8471.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/water5.png" -dest_files=["res://.godot/imported/water5.png-b971537c1b970f980c158571c19d8471.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/water6.png b/assets/sprites/tilesets/water6.png deleted file mode 100644 index 37c4047463ca993aa8481ae2f3ddd5cf40a60822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1430 zcmV;H1!?+;P)Px)P)S5VRCt{2T)%50M-={)OA%0Yh=3JPA-I(UCr}Zqa_34I(p`$^e-H{OF5F)r zk|IRte{gf|4umQf0T)3|A<%&(6)IHNU`#4Ons6!Xw|+aC*_~a_XvVqyz*w4jvp?Q9 z^WK~H#xDHv>J`%9x1W#2rcbFZ;2Hk?`#Y!i|HA3rbJ!Gu&< z2;j=$vv7TJiB7Q$0GJ5M?i9-iDkY2_+Ix*AR+~FaE-q0$I!qkTA&%STjM~T*M(s`C0o#5<=7E841P-AmyuOK1Y&r zfqQeKl8fsD9{q^VFhW3FxR<0rKutuP^0Fv)vc2}sIU6BBbh@2lIaWbu=O4q*t>9pX zq%{429)Urngvr%40C@ z;>zc%hp(o3yM_fGLhnIWiv(k-2$>&9Qa%6_TVL;dr=PenNiu}$$#7={rp0{FMJqUv z_Qjd9?d&%3+Ez@E3`q)Awey#d$x)k3PNje>KERX@5n*Hn@WdH~pl9bF!`ZJhQ&rHN z?J~Ki+?PNkt~Ph*HJZvC6(HaLB&`A?1kh~YH-B^d8tVrK>KbH*I>mCV0^`QVIeH+f zd>zwEFq)389vxz`z4mJJ!&d>{2k54%`S{V*T6|i(l{cYAx1G`mQ`8r(8S(KlK&^jia{!DXScCdz^D)4%dr(4coBw*4m3@nUKPU! zl@fZ5W~Lc0!pcTWrx3Gm@I8R+#Dz(ui2#jn#CnZpBx2CXhwKA1YuADk)rCx{Dn&cl zh|xxb3gWiHwlpB}=~?17QZkV3rk${;a9P@&r(pOsR50pU|s}@Q@YONvqpfp6kVZuGQ^pXibxAFEpGC?tc9UI zKs5uiJg2H~q>|M&y~Ypc`WA+AMJV$51(!cYOOjdg;rjs917u<2iH#iEu(A*EsTv08)dO6SU~L~zM#1Ez_ktHMKj5cd&h>=<%-AR3v-uk_6ZHTa zuu6arc_1I2Ar7C-3h))y2%vg^FEfz#0KRP&tq~AZN?t`nKAqCwu#$@4X=#_(&Thks zSe7$E`+$`&bTM6qr=-g$U>iciQenRuzDdvN2*hl@OWKN81eD!3A^|&7y4=9x%*|2Eu0}R1xJs|SJ?HXop?-eg9 zMr`8>4zJO!VfMDGHGciRzjJ?|%npY&0%WtT_3IA+c8_=Oe24tFd)o0y&*KBEnV@Hc zXK#X@U(&}T(SNBPYNyasnLVKS}op|0Cw_`v3p{07*qoM6N<$g1Hf%K>z>% diff --git a/assets/sprites/tilesets/water6.png.import b/assets/sprites/tilesets/water6.png.import deleted file mode 100644 index 4208400..0000000 --- a/assets/sprites/tilesets/water6.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://clxco4yisxynw" -path="res://.godot/imported/water6.png-13756df334cb3af9e273d20b2ffc8479.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/sprites/tilesets/water6.png" -dest_files=["res://.godot/imported/water6.png-13756df334cb3af9e273d20b2ffc8479.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/sprites/tilesets/water_decorations.png b/assets/sprites/tilesets/water_decorations.png deleted file mode 100644 index ce296825479234b7b9764243349f914903569b37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1357 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%0A*1WHZ&-dIGz+>i&ZE!;iZJNqLfo^Bj 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/characters/skeleton.png.import b/assets/ui/items/RA_Item_Icons.png.import similarity index 67% rename from assets/sprites/characters/skeleton.png.import rename to assets/ui/items/RA_Item_Icons.png.import index c6bf432..2297b59 100644 --- a/assets/sprites/characters/skeleton.png.import +++ b/assets/ui/items/RA_Item_Icons.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://csw18iu762nof" -path="res://.godot/imported/skeleton.png-d8aa7afaf8eaf6f264fc0a343e305765.ctex" +uid="uid://66p8cxahto41" +path="res://.godot/imported/RA_Item_Icons.png-8faa9d60987733bb88370795d5b17825.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/sprites/characters/skeleton.png" -dest_files=["res://.godot/imported/skeleton.png-d8aa7afaf8eaf6f264fc0a343e305765.ctex"] +source_file="res://assets/ui/items/RA_Item_Icons.png" +dest_files=["res://.godot/imported/RA_Item_Icons.png-8faa9d60987733bb88370795d5b17825.ctex"] [params] diff --git a/assets/ui/items/RA_Item_Icons_Background.png b/assets/ui/items/RA_Item_Icons_Background.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e444342adf0db6524ff54440aaf544fa0216b6 GIT binary patch literal 81062 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

7F|KGB*rUJ0G^2NGTBGNd4i2xtBw_6ZKF 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 Zr;80l#Kucx>8VaWkM8SeRH|8q{y$8cqYeN7 literal 0 HcmV?d00001 diff --git a/assets/sprites/objects/chest_01.png.import b/addons/phantom_camera/examples/textures/2D/sign_prompt.png.import similarity index 65% rename from assets/sprites/objects/chest_01.png.import rename to addons/phantom_camera/examples/textures/2D/sign_prompt.png.import index 3065d16..a5799d3 100644 --- a/assets/sprites/objects/chest_01.png.import +++ b/addons/phantom_camera/examples/textures/2D/sign_prompt.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cqe5b8whdo7qi" -path="res://.godot/imported/chest_01.png-e50b4b546c81afcaf19ee08cbf0a5e97.ctex" +uid="uid://bloouh2jtndx1" +path="res://.godot/imported/sign_prompt.png-18d451127e1cd1a16367acd23cec47e5.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/sprites/objects/chest_01.png" -dest_files=["res://.godot/imported/chest_01.png-e50b4b546c81afcaf19ee08cbf0a5e97.ctex"] +source_file="res://addons/phantom_camera/examples/textures/2D/sign_prompt.png" +dest_files=["res://.godot/imported/sign_prompt.png-18d451127e1cd1a16367acd23cec47e5.ctex"] [params] diff --git a/addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png b/addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..4aeae6c6aadbee8c0335d4134fb372c403aa46fa GIT binary patch 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! literal 0 HcmV?d00001 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 new file mode 100644 index 0000000..e80c132 --- /dev/null +++ b/addons/phantom_camera/examples/textures/3D/checker_pattern_dark.png.import @@ -0,0 +1,35 @@ +[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/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/phantom_camera/examples/textures/3D/target.png b/addons/phantom_camera/examples/textures/3D/target.png new file mode 100644 index 0000000000000000000000000000000000000000..96fed6562974104c8764f7ad79acc8d46c4300f5 GIT binary patch literal 96068 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 T0#~DP00000NkvXXu0mjfG+~vo literal 0 HcmV?d00001 diff --git a/addons/phantom_camera/examples/textures/3D/target.png.import b/addons/phantom_camera/examples/textures/3D/target.png.import new file mode 100644 index 0000000..6de0861 --- /dev/null +++ b/addons/phantom_camera/examples/textures/3D/target.png.import @@ -0,0 +1,35 @@ +[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/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/addons/phantom_camera/examples/ui/ui_inventory.tscn b/addons/phantom_camera/examples/ui/ui_inventory.tscn new file mode 100644 index 0000000..cddd377 --- /dev/null +++ b/addons/phantom_camera/examples/ui/ui_inventory.tscn @@ -0,0 +1,37 @@ +[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 new file mode 100644 index 0000000..1b891ef --- /dev/null +++ b/addons/phantom_camera/examples/ui/ui_sign.tscn @@ -0,0 +1,83 @@ +[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/phantom_camera/fonts/Nunito-Black.ttf b/addons/phantom_camera/fonts/Nunito-Black.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1081731539aa811b4f0e69aa547cff7f7c2a3ecb GIT binary patch literal 131568 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