From c668000f64981d9144fd67f1d9b89db040338928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agnis=20Aldi=C5=86=C5=A1=20=22NeZv=C4=93rs?= Date: Sat, 12 Oct 2024 01:03:53 +0300 Subject: [PATCH] Obstacle walls --- .../Navigation/TileNavigationBlocking.gd | 59 +++-- .../nodes/Navigation/TileNavigationSetter.gd | 13 +- .../ValueResource/AstarGridResource.gd | 16 +- .../tilesets/tileset_isometric_walls.tres | 227 ++++-------------- .../top_down/scenes/actors/ai/enemy_ai.tscn | 1 + addons/top_down/scenes/enemy_spawner.tscn | 1 + addons/top_down/scenes/levels/level_0.tscn | 48 ++-- addons/top_down/scenes/levels/level_1.tscn | 54 +++-- .../scripts/actor/bots/TargetDirection.gd | 4 - 9 files changed, 159 insertions(+), 264 deletions(-) diff --git a/addons/nezvers_library/nodes/Navigation/TileNavigationBlocking.gd b/addons/nezvers_library/nodes/Navigation/TileNavigationBlocking.gd index 5bb71fa3..64577857 100644 --- a/addons/nezvers_library/nodes/Navigation/TileNavigationBlocking.gd +++ b/addons/nezvers_library/nodes/Navigation/TileNavigationBlocking.gd @@ -12,60 +12,69 @@ extends Node ## TODO: use data in tile_set for navigation weight informtion var collider_rid_list:Array[RID] +var tile_data_names:Array[String] +var _tiles:Array[Vector2i] func _ready()-> void: assert(astargrid_resource != null) astargrid_resource.updated.connect(setup_obstacles) setup_obstacles() - tree_exiting.connect(cleanup, CONNECT_ONE_SHOT) + tree_exiting.connect(cleanup) + astargrid_resource.cleanup_event.connect(cleanup) func setup_obstacles()->void: if astargrid_resource.value == null: return + print("Collision layer: ", collision_layer) var _tilemap_rect:Rect2i = tilemap_layer.get_used_rect() var _astar_rect:Rect2i = astargrid_resource.value.region var _astar:AStarGrid2D = astargrid_resource.value - # Left side - if _tilemap_rect.position.x < _astar_rect.position.x: - _astar.region.position.x = _tilemap_rect.position.x - # Top side - if _tilemap_rect.position.y < _astar_rect.position.y: - _astar.region.position.y = _tilemap_rect.position.y - # Right side - if _tilemap_rect.position.x + _tilemap_rect.size.x > _astar_rect.position.x + _astar_rect.size.x: - _astar.region.size.x = _tilemap_rect.position.x + _tilemap_rect.size.x - _astar_rect.position.x - # Bottom side - if _tilemap_rect.position.y + _tilemap_rect.size.y > _astar_rect.position.y + _astar_rect.size.y: - _astar.region.size.y = _tilemap_rect.position.y + _tilemap_rect.size.y - _astar_rect.position.y + # Cache custom data names to later check if exist + var _tile_data_count:int = tilemap_layer.tile_set.get_custom_data_layers_count() + tile_data_names.resize(_tile_data_count) + for i:int in _tile_data_count: + tile_data_names[i] = tilemap_layer.tile_set.get_custom_data_layer_name(i) + var _has_offset:bool = tile_data_names.has("obstacle_offset") - var _tiles:Array[Vector2i] = tilemap_layer.get_used_cells() - collider_rid_list.resize(_tiles.size()) + _tiles = tilemap_layer.get_used_cells() var _space:RID = tilemap_layer.get_world_2d().space var _id:int = get_instance_id() var _body_mode:PhysicsServer2D.BodyMode = PhysicsServer2D.BODY_MODE_KINEMATIC for i:int in _tiles.size(): var _tile_pos:Vector2i = _tiles[i] - _astar.set_point_solid(_tile_pos, true) + var _tile_data:TileData = tilemap_layer.get_cell_tile_data(_tile_pos) + var _offset_list:PackedVector2Array + if _has_offset: + _offset_list = _tile_data.get_custom_data("obstacle_offset") + else: + _offset_list = PackedVector2Array([Vector2.ZERO]) - # TODO: create a collider - var _pos:Vector2 = tilemap_layer.map_to_local(_tile_pos) - var _transform:Transform2D = Transform2D(0.0, _pos) - var _body_rid:RID = PhysicsHelper.body_create_2d(_space, collision_layer, collision_mask, obstacle_shape, _transform, _body_mode, _id) - collider_rid_list[i] = _body_rid + for _offset:Vector2 in _offset_list: + var _tile_pos_off:Vector2i = _tile_pos + Vector2i(_offset) + print("Offsets: ", _tile_pos_off) + + assert(_astar.region.has_point(_tile_pos_off)) + _astar.set_point_solid(_tile_pos_off, true) + var _pos:Vector2 = tilemap_layer.map_to_local(_tile_pos_off) + var _transform:Transform2D = Transform2D(0.0, _pos) + var _body_rid:RID = PhysicsHelper.body_create_2d(_space, collision_layer, collision_mask, obstacle_shape, _transform, _body_mode, _id) + collider_rid_list.append(_body_rid) + _astar.update() ## Free obstacles from AstarGrid & PhysicsServer func cleanup() -> void: + for _body_rid:RID in collider_rid_list: + PhysicsServer2D.free_rid(_body_rid) + collider_rid_list.clear() + if astargrid_resource.value == null: return - var _tiles:Array[Vector2i] = tilemap_layer.get_used_cells() for i:int in _tiles.size(): var _tile_pos:Vector2i = _tiles[i] astargrid_resource.value.set_point_solid(_tile_pos, false) - - for _body_rid:RID in collider_rid_list: - PhysicsServer2D.free_rid(_body_rid) + _tiles.clear() diff --git a/addons/nezvers_library/nodes/Navigation/TileNavigationSetter.gd b/addons/nezvers_library/nodes/Navigation/TileNavigationSetter.gd index cc929f0a..f079eea9 100644 --- a/addons/nezvers_library/nodes/Navigation/TileNavigationSetter.gd +++ b/addons/nezvers_library/nodes/Navigation/TileNavigationSetter.gd @@ -3,7 +3,8 @@ extends Node @export var tilemap_layer:TileMapLayer @export var astargrid_resource:AstarGridResource - +## set bigger AStar region on each side +@export var grow_region:int = 1 func _ready()->void: assert(tilemap_layer != null) @@ -18,11 +19,15 @@ func initialize_astargrid()->void: astargrid_resource.tilemap_layer = tilemap_layer + var _tile_rect:Rect2i = tilemap_layer.get_used_rect() + _tile_rect = _tile_rect.grow(grow_region) + print("Tile region: ", _tile_rect) + var _astar:AStarGrid2D = AStarGrid2D.new() - _astar.region = tilemap_layer.get_used_rect() + _astar.region = _tile_rect var _tileset:TileSet = tilemap_layer.tile_set _astar.cell_size = _tileset.tile_size - _astar.offset = Vector2.ZERO#_tileset.tile_size * 0.5 + _astar.offset = Vector2.ZERO if _tileset.tile_shape == TileSet.TileShape.TILE_SHAPE_SQUARE: _astar.cell_shape = AStarGrid2D.CellShape.CELL_SHAPE_SQUARE @@ -32,5 +37,5 @@ func initialize_astargrid()->void: if _tileset.tile_layout == TileSet.TileLayout.TILE_LAYOUT_DIAMOND_DOWN: _astar.cell_shape = AStarGrid2D.CellShape.CELL_SHAPE_ISOMETRIC_DOWN - _astar.update() astargrid_resource.set_value(_astar) + tree_exiting.connect(astargrid_resource.cleanup) diff --git a/addons/nezvers_library/resources/ValueResource/AstarGridResource.gd b/addons/nezvers_library/resources/ValueResource/AstarGridResource.gd index b04bc988..98c8cb93 100644 --- a/addons/nezvers_library/resources/ValueResource/AstarGridResource.gd +++ b/addons/nezvers_library/resources/ValueResource/AstarGridResource.gd @@ -1,6 +1,8 @@ class_name AstarGridResource extends ValueResource +signal cleanup_event + @export var default_compute_heuristic:AStarGrid2D.Heuristic @export var default_estimate_heuristic:AStarGrid2D.Heuristic @export var diagonal_mode:AStarGrid2D.DiagonalMode @@ -12,8 +14,14 @@ var tilemap_layer:TileMapLayer func set_value(_value:AStarGrid2D)->void: value = _value if value != null: - default_compute_heuristic = default_compute_heuristic - default_estimate_heuristic = default_estimate_heuristic - diagonal_mode = diagonal_mode - jumping_enabled = jumping_enabled + value.default_compute_heuristic = default_compute_heuristic + value.default_estimate_heuristic = default_estimate_heuristic + value.diagonal_mode = diagonal_mode + value.jumping_enabled = jumping_enabled + value.update() updated.emit() + +func cleanup()->void: + value = null + tilemap_layer = null + cleanup_event.emit() diff --git a/addons/top_down/resources/tilesets/tileset_isometric_walls.tres b/addons/top_down/resources/tilesets/tileset_isometric_walls.tres index 86000fe8..c531222b 100644 --- a/addons/top_down/resources/tilesets/tileset_isometric_walls.tres +++ b/addons/top_down/resources/tilesets/tileset_isometric_walls.tres @@ -2,197 +2,60 @@ [ext_resource type="Texture2D" uid="uid://oywvkbs364js" path="res://addons/top_down/assets/images/tilesets/tileset_isometric_walls.png" id="1_jorl2"] -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xn6bv"] +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_f5ja1"] texture = ExtResource("1_jorl2") texture_region_size = Vector2i(32, 32) -4:0/0 = 0 -5:0/0 = 0 -6:0/0 = 0 -7:0/0 = 0 -8:0/0 = 0 -8:11/0 = 0 -8:10/0 = 0 -8:9/0 = 0 -7:8/0 = 0 -7:7/0 = 0 -6:6/0 = 0 -1:6/0 = 0 -1:7/0 = 0 -1:8/0 = 0 -1:9/0 = 0 -1:10/0 = 0 -0:10/0 = 0 -0:9/0 = 0 -0:8/0 = 0 -0:7/0 = 0 -0:6/0 = 0 -0:11/0 = 0 -1:11/0 = 0 -2:11/0 = 0 -3:11/0 = 0 -4:10/0 = 0 -5:9/0 = 0 -5:8/0 = 0 -6:7/0 = 0 -6:8/0 = 0 -6:9/0 = 0 -8:6/0 = 0 -7:6/0 = 0 -8:7/0 = 0 -8:8/0 = 0 -6:10/0 = 0 -6:11/0 = 0 -7:11/0 = 0 -7:10/0 = 0 -7:9/0 = 0 -5:6/0 = 0 -5:7/0 = 0 -5:10/0 = 0 -4:6/0 = 0 -3:7/0 = 0 -3:8/0 = 0 -3:9/0 = 0 -3:10/0 = 0 -4:7/0 = 0 -3:6/0 = 0 -4:11/0 = 0 -2:9/0 = 0 -2:10/0 = 0 -4:9/0 = 0 -2:6/0 = 0 -2:7/0 = 0 -2:8/0 = 0 -4:8/0 = 0 -5:11/0 = 0 0:0/0 = 0 -0:0/0/texture_origin = Vector2i(0, -7) -0:0/0/terrain_set = 0 -0:0/0/terrain = 0 -0:0/0/terrains_peering_bit/bottom_right_side = 0 -0:0/0/terrains_peering_bit/bottom_corner = 0 -0:0/0/terrains_peering_bit/bottom_left_side = 0 +0:0/0/texture_origin = Vector2i(0, -8) +0:0/0/y_sort_origin = 8 +0:0/0/custom_data_0 = PackedVector2Array(0, 0) 1:0/0 = 0 -1:0/0/texture_origin = Vector2i(0, -7) -1:0/0/terrain_set = 0 -1:0/0/terrain = 0 -1:0/0/terrains_peering_bit/top_left_side = 0 -1:0/0/terrains_peering_bit/top_corner = 0 -1:0/0/terrains_peering_bit/top_right_side = 0 -2:0/0 = 0 -2:0/0/texture_origin = Vector2i(0, -7) -2:0/0/terrain_set = 0 -2:0/0/terrain = 0 -2:0/0/terrains_peering_bit/bottom_left_side = 0 -2:0/0/terrains_peering_bit/left_corner = 0 -2:0/0/terrains_peering_bit/top_left_side = 0 -3:0/0 = 0 -3:0/0/texture_origin = Vector2i(0, -7) -3:0/0/terrain_set = 0 -3:0/0/terrain = 0 -3:0/0/terrains_peering_bit/right_corner = 0 -3:0/0/terrains_peering_bit/bottom_right_side = 0 -3:0/0/terrains_peering_bit/top_right_side = 0 -3:1/0 = 0 -3:1/0/texture_origin = Vector2i(0, -7) -3:1/0/terrain_set = 0 -3:1/0/terrain = 0 -3:1/0/terrains_peering_bit/bottom_right_side = 0 -3:1/0/terrains_peering_bit/bottom_corner = 0 -3:1/0/terrains_peering_bit/bottom_left_side = 0 -3:1/0/terrains_peering_bit/left_corner = 0 -3:1/0/terrains_peering_bit/top_left_side = 0 -3:1/0/terrains_peering_bit/top_corner = 0 -3:1/0/terrains_peering_bit/top_right_side = 0 -2:1/0 = 0 -2:1/0/texture_origin = Vector2i(0, -7) -2:1/0/terrain_set = 0 -2:1/0/terrain = 0 -2:1/0/terrains_peering_bit/right_corner = 0 -2:1/0/terrains_peering_bit/bottom_right_side = 0 -2:1/0/terrains_peering_bit/bottom_corner = 0 -2:1/0/terrains_peering_bit/bottom_left_side = 0 -2:1/0/terrains_peering_bit/top_left_side = 0 -2:1/0/terrains_peering_bit/top_corner = 0 -2:1/0/terrains_peering_bit/top_right_side = 0 +1:0/0/texture_origin = Vector2i(0, -8) +1:0/0/y_sort_origin = 16 +1:0/0/custom_data_0 = PackedVector2Array(0, 1, 1, 0, 1, 0) 1:1/0 = 0 -1:1/0/texture_origin = Vector2i(0, -7) -1:1/0/terrain_set = 0 -1:1/0/terrain = 0 -1:1/0/terrains_peering_bit/bottom_right_side = 0 -1:1/0/terrains_peering_bit/bottom_corner = 0 -1:1/0/terrains_peering_bit/bottom_left_side = 0 -1:1/0/terrains_peering_bit/left_corner = 0 -1:1/0/terrains_peering_bit/top_left_side = 0 -0:1/0 = 0 -0:1/0/texture_origin = Vector2i(0, -7) -0:1/0/terrain_set = 0 -0:1/0/terrain = 0 -0:1/0/terrains_peering_bit/right_corner = 0 -0:1/0/terrains_peering_bit/bottom_right_side = 0 -0:1/0/terrains_peering_bit/bottom_corner = 0 -0:1/0/terrains_peering_bit/bottom_left_side = 0 -0:1/0/terrains_peering_bit/top_right_side = 0 -0:2/0 = 0 -0:2/0/texture_origin = Vector2i(0, -7) -0:2/0/terrain_set = 0 -0:2/0/terrain = 0 -0:2/0/terrains_peering_bit/bottom_left_side = 0 -0:2/0/terrains_peering_bit/left_corner = 0 -0:2/0/terrains_peering_bit/top_left_side = 0 -0:2/0/terrains_peering_bit/top_corner = 0 -0:2/0/terrains_peering_bit/top_right_side = 0 -1:2/0 = 0 -1:2/0/texture_origin = Vector2i(0, -7) -1:2/0/terrain_set = 0 -1:2/0/terrain = 0 -1:2/0/terrains_peering_bit/right_corner = 0 -1:2/0/terrains_peering_bit/bottom_right_side = 0 -1:2/0/terrains_peering_bit/top_left_side = 0 -1:2/0/terrains_peering_bit/top_corner = 0 -1:2/0/terrains_peering_bit/top_right_side = 0 -2:2/0 = 0 -2:2/0/texture_origin = Vector2i(0, -7) -2:2/0/terrain_set = 0 -2:2/0/terrain = 0 -2:2/0/terrains_peering_bit/right_corner = 0 -2:2/0/terrains_peering_bit/bottom_right_side = 0 -2:2/0/terrains_peering_bit/bottom_corner = 0 -2:2/0/terrains_peering_bit/bottom_left_side = 0 -2:2/0/terrains_peering_bit/left_corner = 0 -2:2/0/terrains_peering_bit/top_left_side = 0 -2:2/0/terrains_peering_bit/top_right_side = 0 +1:1/0/texture_origin = Vector2i(0, -8) +1:1/0/y_sort_origin = 8 +1:1/0/custom_data_0 = PackedVector2Array(0, 0) +2:1/0 = 0 +2:1/0/texture_origin = Vector2i(0, -8) +2:1/0/y_sort_origin = 8 +3:1/0 = 0 +3:1/0/texture_origin = Vector2i(0, -8) +3:1/0/y_sort_origin = 8 3:2/0 = 0 -3:2/0/texture_origin = Vector2i(0, -7) -3:2/0/terrain_set = 0 -3:2/0/terrain = 0 -3:2/0/terrains_peering_bit/right_corner = 0 -3:2/0/terrains_peering_bit/bottom_right_side = 0 -3:2/0/terrains_peering_bit/bottom_left_side = 0 -3:2/0/terrains_peering_bit/left_corner = 0 -3:2/0/terrains_peering_bit/top_left_side = 0 -3:2/0/terrains_peering_bit/top_corner = 0 -3:2/0/terrains_peering_bit/top_right_side = 0 -0:3/0 = 0 -0:3/0/texture_origin = Vector2i(0, -7) -0:3/0/terrain_set = 0 -0:3/0/terrain = 0 -0:3/0/terrains_peering_bit/right_corner = 0 -0:3/0/terrains_peering_bit/bottom_right_side = 0 -0:3/0/terrains_peering_bit/bottom_corner = 0 -0:3/0/terrains_peering_bit/bottom_left_side = 0 -0:3/0/terrains_peering_bit/left_corner = 0 -0:3/0/terrains_peering_bit/top_left_side = 0 -0:3/0/terrains_peering_bit/top_corner = 0 -0:3/0/terrains_peering_bit/top_right_side = 0 +3:2/0/texture_origin = Vector2i(0, -8) +3:2/0/y_sort_origin = 16 +2:2/0 = 0 +2:2/0/texture_origin = Vector2i(0, -8) +2:2/0/y_sort_origin = 8 +2:2/0/custom_data_0 = PackedVector2Array(0, 0) +1:2/0 = 0 +1:2/0/texture_origin = Vector2i(0, -8) +1:2/0/y_sort_origin = 16 +1:2/0/custom_data_0 = PackedVector2Array(0, 1) +0:2/0 = 0 +0:2/0/texture_origin = Vector2i(0, -8) +0:2/0/y_sort_origin = 16 +0:2/0/custom_data_0 = PackedVector2Array(1, 0) +0:1/0 = 0 +0:1/0/texture_origin = Vector2i(0, -8) +0:1/0/y_sort_origin = 8 +0:1/0/custom_data_0 = PackedVector2Array(0, 0) +2:0/0 = 0 +2:0/0/texture_origin = Vector2i(0, -8) +2:0/0/y_sort_origin = 16 +2:0/0/custom_data_0 = PackedVector2Array(0, 0) +3:0/0 = 0 +3:0/0/texture_origin = Vector2i(0, -8) +3:0/0/y_sort_origin = 16 +3:0/0/custom_data_0 = PackedVector2Array(0, 0) [resource] tile_shape = 1 tile_layout = 5 tile_offset_axis = 1 tile_size = Vector2i(32, 16) -terrain_set_0/mode = 0 -terrain_set_0/terrain_0/name = "Terrain 0" -terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) -custom_data_layer_0/name = "" -custom_data_layer_0/type = 0 -sources/2 = SubResource("TileSetAtlasSource_xn6bv") +custom_data_layer_0/name = "obstacle_offset" +custom_data_layer_0/type = 35 +sources/0 = SubResource("TileSetAtlasSource_f5ja1") diff --git a/addons/top_down/scenes/actors/ai/enemy_ai.tscn b/addons/top_down/scenes/actors/ai/enemy_ai.tscn index 804ab5b7..37c16f46 100644 --- a/addons/top_down/scenes/actors/ai/enemy_ai.tscn +++ b/addons/top_down/scenes/actors/ai/enemy_ai.tscn @@ -16,6 +16,7 @@ script = ExtResource("1_qo7hy") attack_distance = 10.0 [node name="CollisionShape2D" type="ShapeCast2D" parent="."] +visible = false shape = SubResource("RectangleShape2D_ixqjj") collision_mask = 2 diff --git a/addons/top_down/scenes/enemy_spawner.tscn b/addons/top_down/scenes/enemy_spawner.tscn index a6597117..16d1612b 100644 --- a/addons/top_down/scenes/enemy_spawner.tscn +++ b/addons/top_down/scenes/enemy_spawner.tscn @@ -14,3 +14,4 @@ axis_multiplication = Vector2(1, 0.5) [node name="SpawnManager" type="Node" parent="." node_paths=PackedStringArray("enemy_spawner")] script = ExtResource("3_bm11t") enemy_spawner = NodePath("..") +target_count = 1 diff --git a/addons/top_down/scenes/levels/level_0.tscn b/addons/top_down/scenes/levels/level_0.tscn index 6004ad3c..449d3b48 100644 --- a/addons/top_down/scenes/levels/level_0.tscn +++ b/addons/top_down/scenes/levels/level_0.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=4 uid="uid://cpjckxc4g3s0w"] +[gd_scene load_steps=23 format=4 uid="uid://cpjckxc4g3s0w"] [ext_resource type="PackedScene" uid="uid://7ixxtkmuui6p" path="res://addons/top_down/scenes/main_camera.tscn" id="1_4dff6"] [ext_resource type="PackedScene" uid="uid://b7epulhnnr8d3" path="res://addons/top_down/scenes/tile_layers/floor_layer.tscn" id="1_4sw8k"] @@ -9,6 +9,7 @@ [ext_resource type="PackedScene" uid="uid://cfaobhr3r5ymj" path="res://addons/top_down/scenes/enemy_spawner.tscn" id="4_16naw"] [ext_resource type="Script" path="res://addons/top_down/scripts/game/PauseComponent.gd" id="5_gli6s"] [ext_resource type="PackedScene" uid="uid://cix6awgt8l8r5" path="res://addons/top_down/scenes/triggers/scene_door.tscn" id="5_mtv6i"] +[ext_resource type="TileSet" uid="uid://dah24bbc4526" path="res://addons/top_down/resources/tilesets/tileset_isometric_walls.tres" id="6_aayvs"] [ext_resource type="Resource" uid="uid://d16p36img8x6j" path="res://addons/top_down/resources/ReferenceNodeResources/front_reference.tres" id="6_uxajn"] [ext_resource type="Resource" uid="uid://ini50pn76erv" path="res://addons/top_down/resources/pause_resource.tres" id="6_wjqwx"] [ext_resource type="Script" path="res://addons/top_down/scripts/game/RestartScene.gd" id="7_it1dq"] @@ -35,7 +36,7 @@ unicode = 91 [node name="Background" type="Node2D" parent="."] [node name="FloorLayer" parent="Background" instance=ExtResource("1_4sw8k")] -tile_map_data = PackedByteArray("AAAWAAYAAQAAAAIAAAAWAAUAAQAAAAIAAAAWAAQAAQAAAAIAAAAWAAMAAQAAAAIAAAAWAAIAAQAAAAIAAAAWAAEAAQAAAAIAAAAWAAAAAQAAAAIAAAAWAP//AQADAAIAAAAWAP7/AQAAAAMAAAAWAP3/AQADAAEAAAAWAPz/AQAAAAIAAAAWAPv/AQAAAAIAAAAWAPr/AQAAAAIAAAAWAPn/AQAAAAIAAAAWAPj/AQAAAAIAAAAWAPf/AQAAAAIAAAAWAPb/AQAAAAIAAAAWAPX/AQAAAAIAAAAWAPT/AQACAAAAAAAVAAYAAQABAAMAAAAVAAUAAQAAAAMAAAAVAAQAAQAAAAMAAAAVAAMAAQAAAAMAAAAVAAIAAQAAAAMAAAAVAAEAAQAAAAMAAAAVAAAAAQAAAAMAAAAVAP//AQAAAAMAAAAVAP7/AQAAAAMAAAAVAP3/AQAAAAMAAAAVAPz/AQAAAAMAAAAVAPv/AQAAAAMAAAAVAPr/AQAAAAMAAAAVAPn/AQACAAMAAAAVAPj/AQACAAMAAAAVAPf/AQAAAAMAAAAVAPb/AQAAAAMAAAAVAPX/AQAAAAMAAAAVAPT/AQABAAEAAAAUAAYAAQADAAMAAAAUAAUAAQAAAAMAAAAUAAQAAQAAAAMAAAAUAAMAAQADAAMAAAAUAAIAAQAAAAMAAAAUAAEAAQABAAMAAAAUAAAAAQAAAAMAAAAUAP//AQAAAAMAAAAUAP7/AQAAAAMAAAAUAP3/AQAAAAMAAAAUAPz/AQAAAAMAAAAUAPv/AQAAAAMAAAAUAPr/AQAAAAMAAAAUAPn/AQAAAAMAAAAUAPj/AQAAAAMAAAAUAPf/AQAAAAMAAAAUAPb/AQACAAMAAAAUAPX/AQACAAMAAAAUAPT/AQABAAEAAAATAAYAAQAAAAMAAAATAAUAAQAAAAMAAAATAAQAAQAAAAMAAAATAAMAAQAAAAMAAAATAAIAAQAAAAMAAAATAAEAAQAAAAMAAAATAAAAAQAAAAMAAAATAP//AQAAAAMAAAATAP7/AQAAAAMAAAATAP3/AQADAAMAAAATAPz/AQAAAAMAAAATAPv/AQAAAAMAAAATAPr/AQAAAAMAAAATAPn/AQAAAAMAAAATAPj/AQABAAMAAAATAPf/AQAAAAMAAAATAPb/AQAAAAMAAAATAPX/AQAAAAMAAAATAPT/AQABAAEAAAASAAYAAQAAAAMAAAASAAUAAQABAAMAAAASAAQAAQAAAAMAAAASAAMAAQAAAAMAAAASAAIAAQAAAAMAAAASAAEAAQAAAAMAAAASAAAAAQAAAAMAAAASAP//AQAAAAMAAAASAP7/AQAAAAMAAAASAP3/AQAAAAMAAAASAPz/AQADAAMAAAASAPv/AQAAAAMAAAASAPr/AQAAAAMAAAASAPn/AQAAAAMAAAASAPj/AQAAAAMAAAASAPf/AQAAAAMAAAASAPb/AQAAAAMAAAASAPX/AQACAAMAAAASAPT/AQABAAEAAAARAAYAAQAAAAMAAAARAAUAAQAAAAMAAAARAAQAAQAAAAMAAAARAAMAAQAAAAMAAAARAAIAAQAAAAMAAAARAAEAAQAAAAMAAAARAAAAAQAAAAMAAAARAP//AQAAAAMAAAARAP7/AQABAAMAAAARAP3/AQADAAMAAAARAPz/AQAAAAMAAAARAPv/AQAAAAMAAAARAPr/AQAAAAMAAAARAPn/AQAAAAMAAAARAPj/AQAAAAMAAAARAPf/AQAAAAMAAAARAPb/AQABAAMAAAARAPX/AQACAAMAAAARAPT/AQABAAEAAAAQAAYAAQADAAMAAAAQAAUAAQAAAAMAAAAQAAQAAQAAAAMAAAAQAAMAAQAAAAMAAAAQAAIAAQAAAAMAAAAQAAEAAQAAAAMAAAAQAAAAAQAAAAMAAAAQAP//AQAAAAMAAAAQAP7/AQAAAAMAAAAQAP3/AQAAAAMAAAAQAPz/AQAAAAMAAAAQAPv/AQAAAAMAAAAQAPr/AQAAAAMAAAAQAPn/AQAAAAMAAAAQAPj/AQAAAAMAAAAQAPf/AQAAAAMAAAAQAPb/AQAAAAMAAAAQAPX/AQAAAAMAAAAQAPT/AQABAAEAAAAPAAYAAQAAAAMAAAAPAAUAAQAAAAMAAAAPAAQAAQABAAMAAAAPAAMAAQAAAAMAAAAPAAIAAQADAAMAAAAPAAEAAQAAAAMAAAAPAAAAAQAAAAMAAAAPAP//AQAAAAMAAAAPAP7/AQAAAAMAAAAPAP3/AQAAAAMAAAAPAPz/AQAAAAMAAAAPAPv/AQAAAAMAAAAPAPr/AQAAAAMAAAAPAPn/AQAAAAMAAAAPAPj/AQAAAAMAAAAPAPf/AQAAAAMAAAAPAPb/AQAAAAMAAAAPAPX/AQAAAAMAAAAPAPT/AQABAAEAAAAOAAYAAQACAAMAAAAOAAUAAQAAAAMAAAAOAAQAAQAAAAMAAAAOAAMAAQAAAAMAAAAOAAIAAQAAAAMAAAAOAAEAAQAAAAMAAAAOAAAAAQAAAAMAAAAOAP//AQAAAAMAAAAOAP7/AQADAAMAAAAOAP3/AQAAAAMAAAAOAPz/AQACAAMAAAAOAPv/AQAAAAMAAAAOAPr/AQAAAAMAAAAOAPn/AQAAAAMAAAAOAPj/AQAAAAMAAAAOAPf/AQAAAAMAAAAOAPb/AQAAAAMAAAAOAPX/AQAAAAMAAAAOAPT/AQABAAEAAAANAAYAAQAAAAMAAAANAAUAAQAAAAMAAAANAAQAAQAAAAMAAAANAAMAAQAAAAMAAAANAAIAAQAAAAMAAAANAAEAAQAAAAMAAAANAAAAAQAAAAMAAAANAP//AQADAAMAAAANAP7/AQACAAMAAAANAP3/AQACAAMAAAANAPz/AQAAAAMAAAANAPv/AQAAAAMAAAANAPr/AQAAAAMAAAANAPn/AQAAAAMAAAANAPj/AQABAAMAAAANAPf/AQAAAAMAAAANAPb/AQAAAAMAAAANAPX/AQAAAAMAAAANAPT/AQABAAEAAAAMAAYAAQAAAAMAAAAMAAUAAQAAAAMAAAAMAAQAAQAAAAMAAAAMAAMAAQAAAAMAAAAMAAIAAQAAAAMAAAAMAAEAAQADAAMAAAAMAAAAAQAAAAMAAAAMAP//AQAAAAMAAAAMAP7/AQADAAMAAAAMAP3/AQAAAAMAAAAMAPz/AQAAAAMAAAAMAPv/AQAAAAMAAAAMAPr/AQAAAAMAAAAMAPn/AQADAAMAAAAMAPj/AQAAAAMAAAAMAPf/AQAAAAMAAAAMAPb/AQAAAAMAAAAMAPX/AQAAAAMAAAAMAPT/AQADAAEAAAALAAYAAQAAAAMAAAALAAUAAQAAAAMAAAALAAQAAQAAAAMAAAALAAMAAQACAAMAAAALAAIAAQAAAAMAAAALAAEAAQAAAAMAAAALAAAAAQAAAAMAAAALAP//AQAAAAMAAAALAP7/AQAAAAMAAAALAP3/AQAAAAMAAAALAPz/AQADAAMAAAALAPv/AQAAAAMAAAALAPr/AQAAAAMAAAALAPn/AQACAAMAAAALAPj/AQABAAMAAAALAPf/AQAAAAMAAAALAPb/AQABAAMAAAALAPX/AQABAAMAAAALAPT/AQAAAAMAAAAKAAYAAQAAAAMAAAAKAAUAAQACAAMAAAAKAAQAAQABAAMAAAAKAAMAAQAAAAMAAAAKAAIAAQAAAAMAAAAKAAEAAQABAAMAAAAKAAAAAQAAAAMAAAAKAP//AQAAAAMAAAAKAP7/AQACAAMAAAAKAP3/AQAAAAMAAAAKAPz/AQABAAMAAAAKAPv/AQAAAAMAAAAKAPr/AQAAAAMAAAAKAPn/AQADAAMAAAAKAPj/AQAAAAMAAAAKAPf/AQAAAAMAAAAKAPb/AQABAAMAAAAKAPX/AQAAAAMAAAAKAPT/AQACAAIAAAAJAAYAAQAAAAMAAAAJAAUAAQAAAAMAAAAJAAQAAQABAAMAAAAJAAMAAQAAAAMAAAAJAAIAAQAAAAMAAAAJAAEAAQAAAAMAAAAJAAAAAQAAAAMAAAAJAP//AQABAAMAAAAJAP7/AQAAAAMAAAAJAP3/AQAAAAMAAAAJAPz/AQABAAMAAAAJAPv/AQAAAAMAAAAJAPr/AQAAAAMAAAAJAPn/AQACAAMAAAAJAPj/AQAAAAMAAAAJAPf/AQAAAAMAAAAJAPb/AQAAAAMAAAAJAPX/AQAAAAMAAAAJAPT/AQABAAEAAAAIAAYAAQADAAMAAAAIAAUAAQAAAAMAAAAIAAQAAQAAAAMAAAAIAAMAAQAAAAMAAAAIAAIAAQAAAAMAAAAIAAEAAQADAAMAAAAIAAAAAQAAAAMAAAAIAP//AQAAAAMAAAAIAP7/AQAAAAMAAAAIAP3/AQAAAAMAAAAIAPz/AQAAAAMAAAAIAPv/AQAAAAMAAAAIAPr/AQAAAAMAAAAIAPn/AQAAAAMAAAAIAPj/AQAAAAMAAAAIAPf/AQAAAAMAAAAIAPb/AQAAAAMAAAAIAPX/AQAAAAMAAAAIAPT/AQABAAEAAAAHAAYAAQAAAAMAAAAHAAUAAQADAAMAAAAHAAQAAQACAAMAAAAHAAMAAQAAAAMAAAAHAAIAAQAAAAMAAAAHAAEAAQACAAMAAAAHAAAAAQAAAAMAAAAHAP//AQAAAAMAAAAHAP7/AQAAAAMAAAAHAP3/AQAAAAMAAAAHAPz/AQAAAAMAAAAHAPv/AQAAAAMAAAAHAPr/AQAAAAMAAAAHAPn/AQAAAAMAAAAHAPj/AQAAAAMAAAAHAPf/AQAAAAMAAAAHAPb/AQAAAAMAAAAHAPX/AQADAAMAAAAHAPT/AQABAAEAAAAGAAYAAQAAAAMAAAAGAAUAAQAAAAMAAAAGAAQAAQABAAMAAAAGAAMAAQAAAAMAAAAGAAIAAQABAAMAAAAGAAEAAQAAAAMAAAAGAAAAAQAAAAMAAAAGAP//AQAAAAMAAAAGAP7/AQAAAAMAAAAGAP3/AQAAAAMAAAAGAPz/AQAAAAMAAAAGAPv/AQAAAAMAAAAGAPr/AQAAAAMAAAAGAPn/AQAAAAMAAAAGAPj/AQAAAAMAAAAGAPf/AQAAAAMAAAAGAPb/AQAAAAMAAAAGAPX/AQADAAMAAAAGAPT/AQABAAEAAAAFAAYAAQAAAAMAAAAFAAUAAQACAAMAAAAFAAQAAQAAAAMAAAAFAAMAAQAAAAMAAAAFAAIAAQAAAAMAAAAFAAEAAQAAAAMAAAAFAAAAAQACAAMAAAAFAP//AQAAAAMAAAAFAP7/AQAAAAMAAAAFAP3/AQAAAAMAAAAFAPz/AQAAAAMAAAAFAPv/AQAAAAMAAAAFAPr/AQAAAAMAAAAFAPn/AQAAAAMAAAAFAPj/AQAAAAMAAAAFAPf/AQAAAAMAAAAFAPb/AQAAAAMAAAAFAPX/AQACAAIAAAAFAPT/AQAAAAAAAAAWAAgAAQABAAAAAAAWAAcAAQAAAAIAAAAVAAgAAQABAAIAAAAVAAcAAQAAAAMAAAAUAAgAAQABAAIAAAAUAAcAAQAAAAMAAAATAAgAAQABAAIAAAATAAcAAQAAAAMAAAASAAgAAQABAAIAAAASAAcAAQAAAAMAAAARAAgAAQABAAIAAAARAAcAAQAAAAMAAAAQAAgAAQABAAIAAAAQAAcAAQAAAAMAAAAPAAgAAQABAAIAAAAPAAcAAQAAAAMAAAAOAAgAAQADAAIAAAAOAAcAAQAAAAMAAAANAAgAAQAAAAMAAAANAAcAAQAAAAMAAAAMAAgAAQACAAEAAAAMAAcAAQAAAAMAAAALAAgAAQABAAIAAAALAAcAAQACAAMAAAAKAAgAAQABAAIAAAAKAAcAAQAAAAMAAAAJAAgAAQABAAIAAAAJAAcAAQAAAAMAAAAIAAgAAQABAAIAAAAIAAcAAQAAAAMAAAAHAAgAAQABAAIAAAAHAAcAAQAAAAMAAAAGAAgAAQABAAIAAAAGAAcAAQAAAAMAAAAFAAgAAQABAAIAAAAFAAcAAQAAAAMAAAAEAAgAAQADAAAAAAAEAAcAAQAAAAEAAAAEAAYAAQAAAAEAAAAEAAUAAQAAAAEAAAAEAAQAAQAAAAEAAAAEAAMAAQAAAAEAAAAEAAIAAQAAAAEAAAAEAAEAAQAAAAEAAAAEAAAAAQAAAAEAAAAEAP//AQAAAAEAAAAEAP7/AQAAAAEAAAAEAP3/AQACAAEAAAAEAPz/AQAAAAMAAAAEAPv/AQACAAIAAAAEAPr/AQAAAAEAAAAEAPn/AQAAAAEAAAAEAPj/AQAAAAEAAAAEAPf/AQAAAAEAAAAEAPb/AQAAAAEAAAAEAPX/AQAAAAAAAAADAP3/AQABAAIAAAADAPz/AQAAAAMAAAADAPv/AQABAAEAAAACAP3/AQABAAIAAAACAPz/AQAAAAMAAAACAPv/AQABAAEAAAABAP3/AQADAAAAAAABAPz/AQAAAAEAAAABAPv/AQAAAAAAAAAOAAsAAQABAAAAAAAOAAoAAQAAAAIAAAAOAAkAAQAAAAIAAAANAAsAAQABAAIAAAANAAoAAQACAAMAAAANAAkAAQAAAAMAAAAMAAsAAQADAAAAAAAMAAoAAQAAAAEAAAAMAAkAAQAAAAEAAAAZAP//AQABAAAAAAAZAP7/AQAAAAIAAAAZAP3/AQACAAAAAAAYAP//AQABAAIAAAAYAP7/AQAAAAMAAAAYAP3/AQABAAEAAAAXAP//AQABAAIAAAAXAP7/AQAAAAMAAAAXAP3/AQABAAEAAAAMAPP/AQAAAAIAAAAMAPL/AQAAAAIAAAAMAPH/AQACAAAAAAALAPP/AQAAAAMAAAALAPL/AQAAAAMAAAALAPH/AQABAAEAAAAKAPP/AQAAAAEAAAAKAPL/AQAAAAEAAAAKAPH/AQAAAAAAAAA=") +tile_map_data = PackedByteArray("AAAWAAYAAQAAAAIAAAAWAAUAAQAAAAIAAAAWAAQAAQAAAAIAAAAWAAMAAQAAAAIAAAAWAAIAAQAAAAIAAAAWAAEAAQAAAAIAAAAWAAAAAQAAAAIAAAAWAP//AQADAAIAAAAWAP7/AQAAAAMAAAAWAP3/AQADAAEAAAAWAPz/AQAAAAIAAAAWAPv/AQAAAAIAAAAWAPr/AQAAAAIAAAAWAPn/AQAAAAIAAAAWAPj/AQAAAAIAAAAWAPf/AQAAAAIAAAAWAPb/AQAAAAIAAAAWAPX/AQAAAAIAAAAWAPT/AQACAAAAAAAVAAYAAQABAAMAAAAVAAUAAQAAAAMAAAAVAAQAAQAAAAMAAAAVAAMAAQAAAAMAAAAVAAIAAQAAAAMAAAAVAAEAAQAAAAMAAAAVAAAAAQAAAAMAAAAVAP//AQAAAAMAAAAVAP7/AQAAAAMAAAAVAP3/AQAAAAMAAAAVAPz/AQAAAAMAAAAVAPv/AQAAAAMAAAAVAPr/AQAAAAMAAAAVAPn/AQACAAMAAAAVAPj/AQACAAMAAAAVAPf/AQAAAAMAAAAVAPb/AQAAAAMAAAAVAPX/AQAAAAMAAAAVAPT/AQABAAEAAAAUAAYAAQADAAMAAAAUAAUAAQAAAAMAAAAUAAQAAQAAAAMAAAAUAAMAAQADAAMAAAAUAAIAAQAAAAMAAAAUAAEAAQABAAMAAAAUAAAAAQAAAAMAAAAUAP//AQAAAAMAAAAUAP7/AQAAAAMAAAAUAP3/AQAAAAMAAAAUAPz/AQAAAAMAAAAUAPv/AQAAAAMAAAAUAPr/AQAAAAMAAAAUAPn/AQAAAAMAAAAUAPj/AQAAAAMAAAAUAPf/AQAAAAMAAAAUAPb/AQACAAMAAAAUAPX/AQACAAMAAAAUAPT/AQABAAEAAAATAAYAAQAAAAMAAAATAAUAAQAAAAMAAAATAAQAAQAAAAMAAAATAAMAAQAAAAMAAAATAAIAAQAAAAMAAAATAAEAAQAAAAMAAAATAAAAAQAAAAMAAAATAP//AQAAAAMAAAATAP7/AQAAAAMAAAATAP3/AQADAAMAAAATAPz/AQAAAAMAAAATAPv/AQAAAAMAAAATAPr/AQAAAAMAAAATAPn/AQAAAAMAAAATAPj/AQABAAMAAAATAPf/AQAAAAMAAAATAPb/AQAAAAMAAAATAPX/AQAAAAMAAAATAPT/AQABAAEAAAASAAYAAQAAAAMAAAASAAUAAQABAAMAAAASAAQAAQAAAAMAAAASAAMAAQAAAAMAAAASAAIAAQAAAAMAAAASAAEAAQAAAAMAAAASAAAAAQAAAAMAAAASAP//AQAAAAMAAAASAP7/AQAAAAMAAAASAP3/AQAAAAMAAAASAPz/AQADAAMAAAASAPv/AQAAAAMAAAASAPr/AQAAAAMAAAASAPn/AQAAAAMAAAASAPj/AQAAAAMAAAASAPf/AQAAAAMAAAASAPb/AQAAAAMAAAASAPX/AQACAAMAAAASAPT/AQABAAEAAAARAAYAAQAAAAMAAAARAAUAAQAAAAMAAAARAAQAAQAAAAMAAAARAAMAAQAAAAMAAAARAAIAAQAAAAMAAAARAAEAAQAAAAMAAAARAAAAAQAAAAMAAAARAP//AQAAAAMAAAARAP7/AQABAAMAAAARAP3/AQADAAMAAAARAPz/AQAAAAMAAAARAPv/AQAAAAMAAAARAPr/AQAAAAMAAAARAPn/AQAAAAMAAAARAPj/AQAAAAMAAAARAPf/AQAAAAMAAAARAPb/AQABAAMAAAARAPX/AQACAAMAAAARAPT/AQABAAEAAAAQAAYAAQADAAMAAAAQAAUAAQAAAAMAAAAQAAQAAQAAAAMAAAAQAAMAAQAAAAMAAAAQAAIAAQAAAAMAAAAQAAEAAQAAAAMAAAAQAAAAAQAAAAMAAAAQAP//AQAAAAMAAAAQAP7/AQAAAAMAAAAQAP3/AQAAAAMAAAAQAPz/AQAAAAMAAAAQAPv/AQAAAAMAAAAQAPr/AQAAAAMAAAAQAPn/AQAAAAMAAAAQAPj/AQAAAAMAAAAQAPf/AQAAAAMAAAAQAPb/AQAAAAMAAAAQAPX/AQAAAAMAAAAQAPT/AQABAAEAAAAPAAYAAQAAAAMAAAAPAAUAAQAAAAMAAAAPAAQAAQABAAMAAAAPAAMAAQAAAAMAAAAPAAIAAQADAAMAAAAPAAEAAQAAAAMAAAAPAAAAAQAAAAMAAAAPAP//AQAAAAMAAAAPAP7/AQAAAAMAAAAPAP3/AQAAAAMAAAAPAPz/AQAAAAMAAAAPAPv/AQAAAAMAAAAPAPr/AQAAAAMAAAAPAPn/AQAAAAMAAAAPAPj/AQAAAAMAAAAPAPf/AQAAAAMAAAAPAPb/AQAAAAMAAAAPAPX/AQAAAAMAAAAPAPT/AQABAAEAAAAOAAYAAQACAAMAAAAOAAUAAQAAAAMAAAAOAAQAAQAAAAMAAAAOAAMAAQAAAAMAAAAOAAIAAQAAAAMAAAAOAAEAAQAAAAMAAAAOAAAAAQAAAAMAAAAOAP//AQAAAAMAAAAOAP7/AQADAAMAAAAOAP3/AQAAAAMAAAAOAPz/AQACAAMAAAAOAPv/AQAAAAMAAAAOAPr/AQAAAAMAAAAOAPn/AQAAAAMAAAAOAPj/AQAAAAMAAAAOAPf/AQAAAAMAAAAOAPb/AQAAAAMAAAAOAPX/AQAAAAMAAAAOAPT/AQABAAEAAAANAAYAAQAAAAMAAAANAAUAAQAAAAMAAAANAAQAAQAAAAMAAAANAAMAAQAAAAMAAAANAAIAAQAAAAMAAAANAAEAAQAAAAMAAAANAAAAAQAAAAMAAAANAP//AQADAAMAAAANAP7/AQACAAMAAAANAP3/AQACAAMAAAANAPz/AQAAAAMAAAANAPv/AQAAAAMAAAANAPr/AQAAAAMAAAANAPn/AQAAAAMAAAANAPj/AQABAAMAAAANAPf/AQAAAAMAAAANAPb/AQAAAAMAAAANAPX/AQAAAAMAAAANAPT/AQABAAEAAAAMAAYAAQAAAAMAAAAMAAUAAQAAAAMAAAAMAAQAAQAAAAMAAAAMAAMAAQAAAAMAAAAMAAIAAQAAAAMAAAAMAAEAAQADAAMAAAAMAAAAAQAAAAMAAAAMAP//AQAAAAMAAAAMAP7/AQADAAMAAAAMAP3/AQAAAAMAAAAMAPz/AQAAAAMAAAAMAPv/AQAAAAMAAAAMAPr/AQAAAAMAAAAMAPn/AQADAAMAAAAMAPj/AQAAAAMAAAAMAPf/AQAAAAMAAAAMAPb/AQAAAAMAAAAMAPX/AQAAAAMAAAAMAPT/AQADAAEAAAALAAYAAQAAAAMAAAALAAUAAQAAAAMAAAALAAQAAQAAAAMAAAALAAMAAQACAAMAAAALAAIAAQAAAAMAAAALAAEAAQAAAAMAAAALAAAAAQAAAAMAAAALAP//AQAAAAMAAAALAP7/AQAAAAMAAAALAP3/AQAAAAMAAAALAPz/AQADAAMAAAALAPv/AQAAAAMAAAALAPr/AQAAAAMAAAALAPn/AQACAAMAAAALAPj/AQABAAMAAAALAPf/AQAAAAMAAAALAPb/AQABAAMAAAALAPX/AQABAAMAAAALAPT/AQAAAAMAAAAKAAYAAQAAAAMAAAAKAAUAAQACAAMAAAAKAAQAAQABAAMAAAAKAAMAAQAAAAMAAAAKAAIAAQAAAAMAAAAKAAEAAQABAAMAAAAKAAAAAQAAAAMAAAAKAP//AQAAAAMAAAAKAP7/AQACAAMAAAAKAP3/AQAAAAMAAAAKAPz/AQABAAMAAAAKAPv/AQAAAAMAAAAKAPr/AQAAAAMAAAAKAPn/AQADAAMAAAAKAPj/AQAAAAMAAAAKAPf/AQAAAAMAAAAKAPb/AQABAAMAAAAKAPX/AQAAAAMAAAAKAPT/AQACAAIAAAAJAAYAAQAAAAMAAAAJAAUAAQAAAAMAAAAJAAQAAQABAAMAAAAJAAMAAQAAAAMAAAAJAAIAAQAAAAMAAAAJAAEAAQAAAAMAAAAJAAAAAQAAAAMAAAAJAP//AQABAAMAAAAJAP7/AQAAAAMAAAAJAP3/AQAAAAMAAAAJAPz/AQABAAMAAAAJAPv/AQAAAAMAAAAJAPr/AQAAAAMAAAAJAPn/AQACAAMAAAAJAPj/AQAAAAMAAAAJAPf/AQAAAAMAAAAJAPb/AQAAAAMAAAAJAPX/AQAAAAMAAAAJAPT/AQABAAEAAAAIAAYAAQADAAMAAAAIAAUAAQAAAAMAAAAIAAQAAQAAAAMAAAAIAAMAAQAAAAMAAAAIAAIAAQAAAAMAAAAIAAEAAQADAAMAAAAIAAAAAQAAAAMAAAAIAP//AQAAAAMAAAAIAP7/AQAAAAMAAAAIAP3/AQAAAAMAAAAIAPz/AQAAAAMAAAAIAPv/AQAAAAMAAAAIAPr/AQAAAAMAAAAIAPn/AQAAAAMAAAAIAPj/AQAAAAMAAAAIAPf/AQAAAAMAAAAIAPb/AQAAAAMAAAAIAPX/AQAAAAMAAAAIAPT/AQABAAEAAAAHAAYAAQAAAAMAAAAHAAUAAQADAAMAAAAHAAQAAQACAAMAAAAHAAMAAQAAAAMAAAAHAAIAAQAAAAMAAAAHAAEAAQACAAMAAAAHAAAAAQAAAAMAAAAHAP//AQAAAAMAAAAHAP7/AQAAAAMAAAAHAP3/AQAAAAMAAAAHAPz/AQAAAAMAAAAHAPv/AQAAAAMAAAAHAPr/AQAAAAMAAAAHAPn/AQAAAAMAAAAHAPj/AQAAAAMAAAAHAPf/AQAAAAMAAAAHAPb/AQAAAAMAAAAHAPX/AQADAAMAAAAHAPT/AQABAAEAAAAGAAYAAQAAAAMAAAAGAAUAAQAAAAMAAAAGAAQAAQABAAMAAAAGAAMAAQAAAAMAAAAGAAIAAQABAAMAAAAGAAEAAQAAAAMAAAAGAAAAAQAAAAMAAAAGAP//AQAAAAMAAAAGAP7/AQAAAAMAAAAGAP3/AQAAAAMAAAAGAPz/AQAAAAMAAAAGAPv/AQAAAAMAAAAGAPr/AQAAAAMAAAAGAPn/AQAAAAMAAAAGAPj/AQAAAAMAAAAGAPf/AQAAAAMAAAAGAPb/AQAAAAMAAAAGAPX/AQADAAMAAAAGAPT/AQABAAEAAAAFAAYAAQAAAAMAAAAFAAUAAQACAAMAAAAFAAQAAQAAAAMAAAAFAAMAAQAAAAMAAAAFAAIAAQAAAAMAAAAFAAEAAQAAAAMAAAAFAAAAAQACAAMAAAAFAP//AQAAAAMAAAAFAP7/AQAAAAMAAAAFAP3/AQAAAAMAAAAFAPz/AQAAAAMAAAAFAPv/AQAAAAMAAAAFAPr/AQAAAAMAAAAFAPn/AQAAAAMAAAAFAPj/AQAAAAMAAAAFAPf/AQAAAAMAAAAFAPb/AQAAAAMAAAAFAPX/AQAAAAMAAAAFAPT/AQABAAEAAAAWAAgAAQABAAAAAAAWAAcAAQAAAAIAAAAVAAgAAQABAAIAAAAVAAcAAQAAAAMAAAAUAAgAAQABAAIAAAAUAAcAAQAAAAMAAAATAAgAAQABAAIAAAATAAcAAQAAAAMAAAASAAgAAQABAAIAAAASAAcAAQAAAAMAAAARAAgAAQABAAIAAAARAAcAAQAAAAMAAAAQAAgAAQABAAIAAAAQAAcAAQAAAAMAAAAPAAgAAQABAAIAAAAPAAcAAQAAAAMAAAAOAAgAAQADAAIAAAAOAAcAAQAAAAMAAAANAAgAAQAAAAMAAAANAAcAAQAAAAMAAAAMAAgAAQACAAEAAAAMAAcAAQAAAAMAAAALAAgAAQABAAIAAAALAAcAAQACAAMAAAAKAAgAAQABAAIAAAAKAAcAAQAAAAMAAAAJAAgAAQABAAIAAAAJAAcAAQAAAAMAAAAIAAgAAQABAAIAAAAIAAcAAQAAAAMAAAAHAAgAAQABAAIAAAAHAAcAAQAAAAMAAAAGAAgAAQABAAIAAAAGAAcAAQAAAAMAAAAFAAgAAQABAAIAAAAFAAcAAQAAAAMAAAAEAAgAAQADAAAAAAAEAAcAAQAAAAEAAAAEAAYAAQAAAAEAAAAEAAUAAQAAAAEAAAAEAAQAAQAAAAEAAAAEAAMAAQAAAAEAAAAEAAIAAQAAAAEAAAAEAAEAAQAAAAEAAAAEAAAAAQAAAAEAAAAEAP//AQAAAAEAAAAEAP7/AQAAAAEAAAAEAP3/AQACAAEAAAAEAPz/AQAAAAMAAAAEAPv/AQACAAIAAAAEAPr/AQAAAAEAAAAEAPn/AQAAAAEAAAAEAPj/AQAAAAEAAAAEAPf/AQAAAAEAAAAEAPb/AQAAAAEAAAAEAPX/AQAAAAEAAAADAP3/AQABAAIAAAADAPz/AQAAAAMAAAADAPv/AQABAAEAAAACAP3/AQABAAIAAAACAPz/AQAAAAMAAAACAPv/AQABAAEAAAABAP3/AQADAAAAAAABAPz/AQAAAAEAAAABAPv/AQAAAAAAAAAOAAsAAQABAAAAAAAOAAoAAQAAAAIAAAAOAAkAAQAAAAIAAAANAAsAAQABAAIAAAANAAoAAQACAAMAAAANAAkAAQAAAAMAAAAMAAsAAQADAAAAAAAMAAoAAQAAAAEAAAAMAAkAAQAAAAEAAAAZAP//AQABAAAAAAAZAP7/AQAAAAIAAAAZAP3/AQACAAAAAAAYAP//AQABAAIAAAAYAP7/AQAAAAMAAAAYAP3/AQABAAEAAAAXAP//AQABAAIAAAAXAP7/AQAAAAMAAAAXAP3/AQABAAEAAAAMAPP/AQAAAAIAAAAMAPL/AQAAAAIAAAAMAPH/AQACAAAAAAALAPP/AQAAAAMAAAALAPL/AQAAAAMAAAALAPH/AQABAAEAAAAKAPP/AQAAAAEAAAAKAPL/AQAAAAEAAAAKAPH/AQAAAAAAAAAEAPT/AQAAAAAAAAA=") [node name="ObstacleLayer" parent="Background" instance=ExtResource("4_3tx5o")] tile_map_data = PackedByteArray("AAARAP//AAACAAAAAAARAP7/AAACAAAAAAARAP3/AAACAAAAAAARAPz/AAACAAAAAAARAPv/AAACAAAAAAARAPr/AAACAAAAAAARAPn/AAAFAAAAAAARAPj/AAADAAAAAAAQAPj/AAADAAAAAAAPAPj/AAADAAAAAAAOAPj/AAADAAAAAAANAPj/AAADAAAAAAAMAPj/AAADAAAAAAALAPj/AAADAAAAAAAKAPj/AAADAAAAAAAJAPj/AAADAAAAAAAIAPj/AAAAAAAAAAAIAPn/AAACAAAAAAAIAPr/AAACAAAAAAAIAPv/AAACAAAAAAAIAPz/AAACAAAAAAAIAP3/AAACAAAAAAAIAP7/AAACAAAAAAAIAP//AAACAAAAAAAIAAAAAAACAAAAAAAIAAEAAAACAAAAAAAIAAIAAAACAAAAAAAIAAMAAAACAAAAAAAJAAMAAAAEAAAAAAAKAAMAAAADAAAAAAALAAMAAAADAAAAAAAMAAMAAAADAAAAAAANAAMAAAADAAAAAAAOAAMAAAADAAAAAAAPAAMAAAADAAAAAAAQAAMAAAADAAAAAAA=") @@ -52,31 +53,36 @@ position = Vector2(401, -6) target_layer = 2 scene_path = "res://addons/top_down/scenes/levels/level_1.tscn" -[node name="YSorted" type="Node2D" parent="."] +[node name="SpawnPoints" type="Node2D" parent="Behind"] + +[node name="Spawn_0" type="Marker2D" parent="Behind/SpawnPoints"] +position = Vector2(57, 187) + +[node name="Spawn_1" type="Marker2D" parent="Behind/SpawnPoints"] +position = Vector2(127, -7) + +[node name="Spawn_2" type="Marker2D" parent="Behind/SpawnPoints"] +position = Vector2(430, 176) + +[node name="Spawn_3" type="Marker2D" parent="Behind/SpawnPoints"] +position = Vector2(400, -17) + +[node name="YSortedLayer" parent="." instance=ExtResource("4_3tx5o")] y_sort_enabled = true +tile_map_data = PackedByteArray("AAADAPP/AAAAAAAAAAAAAPr/AAAAAAAAAAAJAPD/AAAAAAAAAAAZAP//AAABAAAAAAAWAAgAAAABAAAAAAAOAAsAAAABAAAAAAADAAgAAAADAAAAAAAAAP3/AAADAAAAAAALAAsAAAADAAAAAAAZAPz/AAACAAAAAAAWAPP/AAACAAAAAAAMAPD/AAACAAAAAAADAP3/AAACAAEAAAAWAPz/AAADAAEAAAAMAPP/AAADAAEAAAADAPr/AAACAAIAAAAJAPP/AAACAAIAAAAOAAgAAAADAAIAAAAWAP//AAADAAIAAAADAPT/AAAAAAEAAAADAPX/AAAAAAEAAAADAPb/AAAAAAEAAAADAPf/AAAAAAEAAAADAPj/AAAAAAEAAAADAPn/AAAAAAEAAAAAAPv/AAAAAAEAAAAAAPz/AAAAAAEAAAADAP7/AAAAAAEAAAADAP//AAAAAAEAAAADAAAAAAAAAAEAAAADAAEAAAAAAAEAAAADAAIAAAAAAAEAAAADAAMAAAAAAAEAAAADAAQAAAAAAAEAAAADAAUAAAAAAAEAAAADAAYAAAAAAAEAAAADAAcAAAAAAAEAAAAJAPH/AAAAAAEAAAAJAPL/AAAAAAEAAAALAAkAAAAAAAEAAAALAAoAAAAAAAEAAAABAPr/AAABAAEAAAACAPr/AAABAAEAAAAEAPP/AAABAAEAAAAFAPP/AAABAAEAAAAGAPP/AAABAAEAAAAHAPP/AAABAAEAAAAIAPP/AAABAAEAAAAKAPD/AAABAAEAAAALAPD/AAABAAEAAAAXAPz/AAABAAEAAAAYAPz/AAABAAEAAAANAPP/AAABAAEAAAAOAPP/AAABAAEAAAAPAPP/AAABAAEAAAAQAPP/AAABAAEAAAARAPP/AAABAAEAAAASAPP/AAABAAEAAAATAPP/AAABAAEAAAAUAPP/AAABAAEAAAAVAPP/AAABAAEAAAAWAPT/AAAAAAIAAAAWAPX/AAAAAAIAAAAWAPb/AAAAAAIAAAAWAPf/AAAAAAIAAAAWAPj/AAAAAAIAAAAWAPn/AAAAAAIAAAAWAPr/AAAAAAIAAAAWAPv/AAAAAAIAAAAWAAAAAAAAAAIAAAAWAAEAAAAAAAIAAAAWAAIAAAAAAAIAAAAWAAMAAAAAAAIAAAAWAAQAAAAAAAIAAAAWAAUAAAAAAAIAAAAWAAYAAAAAAAIAAAAWAAcAAAAAAAIAAAAPAAgAAAABAAIAAAAQAAgAAAABAAIAAAARAAgAAAABAAIAAAASAAgAAAABAAIAAAATAAgAAAABAAIAAAAUAAgAAAABAAIAAAAVAAgAAAABAAIAAAAEAAgAAAABAAIAAAAFAAgAAAABAAIAAAAGAAgAAAABAAIAAAAHAAgAAAABAAIAAAAIAAgAAAABAAIAAAAJAAgAAAABAAIAAAAKAAgAAAABAAIAAAALAAgAAAACAAEAAAAXAP//AAABAAIAAAAYAP//AAABAAIAAAAMAAsAAAABAAIAAAANAAsAAAABAAIAAAAOAAkAAAAAAAIAAAAOAAoAAAAAAAIAAAAZAP3/AAAAAAIAAAAZAP7/AAAAAAIAAAAMAPH/AAAAAAIAAAAMAPL/AAAAAAIAAAACAP3/AAABAAIAAAABAP3/AAABAAIAAAA=") +tile_set = ExtResource("6_aayvs") +collision_layer = 9 -[node name="ReferenceYsort" type="Node" parent="YSorted" node_paths=PackedStringArray("reference_node")] +[node name="ReferenceYsort" type="Node" parent="YSortedLayer" node_paths=PackedStringArray("reference_node")] script = ExtResource("10_26fnk") reference_node = NodePath("..") reference_resource = ExtResource("11_u6wfl") -[node name="Player" parent="YSorted" instance=ExtResource("1_nn7va")] +[node name="Player" parent="YSortedLayer" instance=ExtResource("1_nn7va")] position = Vector2(252, 140) motion_mode = 0 platform_on_leave = 0 -[node name="Spawn_0" type="Marker2D" parent="YSorted"] -position = Vector2(57, 187) - -[node name="Spawn_1" type="Marker2D" parent="YSorted"] -position = Vector2(127, -7) - -[node name="Spawn_2" type="Marker2D" parent="YSorted"] -position = Vector2(430, 176) - -[node name="Spawn_3" type="Marker2D" parent="YSorted"] -position = Vector2(400, -17) - [node name="Front" type="Node2D" parent="."] [node name="ReferenceFront" type="Node" parent="Front" node_paths=PackedStringArray("reference_node")] @@ -85,7 +91,7 @@ reference_node = NodePath("..") reference_resource = ExtResource("6_uxajn") [node name="MainCamera" parent="." node_paths=PackedStringArray("target") instance=ExtResource("1_4dff6")] -target = NodePath("../YSorted/Player") +target = NodePath("../YSortedLayer/Player") [node name="ReferenceNodeSetter" type="Node" parent="MainCamera" node_paths=PackedStringArray("reference_node")] script = ExtResource("10_26fnk") @@ -97,8 +103,8 @@ reference_resource = ExtResource("8_lllv4") [node name="UI" parent="." instance=ExtResource("2_xaqoc")] [node name="EnemySpawner" parent="." node_paths=PackedStringArray("spawn_positions_list", "spawn_parent") instance=ExtResource("4_16naw")] -spawn_positions_list = [NodePath("../YSorted/Spawn_0"), NodePath("../YSorted/Spawn_1"), NodePath("../YSorted/Spawn_2"), NodePath("../YSorted/Spawn_3")] -spawn_parent = NodePath("../YSorted") +spawn_positions_list = [NodePath("../Behind/SpawnPoints/Spawn_0"), NodePath("../Behind/SpawnPoints/Spawn_1"), NodePath("../Behind/SpawnPoints/Spawn_2"), NodePath("../Behind/SpawnPoints/Spawn_3")] +spawn_parent = NodePath("../YSortedLayer") radius_min = 0.0 radius_max = 16.0 @@ -110,7 +116,7 @@ paused_nodes = [NodePath("..")] [node name="RestartScene" type="Node" parent="." node_paths=PackedStringArray("player")] script = ExtResource("7_it1dq") -player = NodePath("../YSorted/Player") +player = NodePath("../YSortedLayer/Player") [node name="MusicSetter" type="Node" parent="."] script = ExtResource("8_u3y66") diff --git a/addons/top_down/scenes/levels/level_1.tscn b/addons/top_down/scenes/levels/level_1.tscn index 048d7ed9..63799355 100644 --- a/addons/top_down/scenes/levels/level_1.tscn +++ b/addons/top_down/scenes/levels/level_1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=4 uid="uid://cxhahq085lt2q"] +[gd_scene load_steps=23 format=4 uid="uid://nnl0srmjic3o"] [ext_resource type="PackedScene" uid="uid://b7epulhnnr8d3" path="res://addons/top_down/scenes/tile_layers/floor_layer.tscn" id="1_em5gx"] [ext_resource type="Script" path="res://addons/nezvers_library/resources/ReferenceNodeResource/ReferenceNodeSetter.gd" id="2_u833f"] @@ -7,6 +7,7 @@ [ext_resource type="PackedScene" uid="uid://cix6awgt8l8r5" path="res://addons/top_down/scenes/triggers/scene_door.tscn" id="5_e8dey"] [ext_resource type="Resource" uid="uid://d1ck1axrd4kd4" path="res://addons/top_down/resources/ReferenceNodeResources/ysort_reference.tres" id="5_i00n6"] [ext_resource type="PackedScene" uid="uid://bmp0g88dtijqw" path="res://addons/top_down/scenes/actors/player.tscn" id="6_vhrna"] +[ext_resource type="TileSet" uid="uid://dah24bbc4526" path="res://addons/top_down/resources/tilesets/tileset_isometric_walls.tres" id="6_y1m26"] [ext_resource type="Resource" uid="uid://d16p36img8x6j" path="res://addons/top_down/resources/ReferenceNodeResources/front_reference.tres" id="7_k5or1"] [ext_resource type="PackedScene" uid="uid://7ixxtkmuui6p" path="res://addons/top_down/scenes/main_camera.tscn" id="8_n2c08"] [ext_resource type="Resource" uid="uid://c5igju2sl4cdg" path="res://addons/top_down/resources/ReferenceNodeResources/camera_reference.tres" id="9_yemjt"] @@ -35,10 +36,10 @@ unicode = 91 [node name="Background" type="Node2D" parent="."] [node name="FloorLayer" parent="Background" instance=ExtResource("1_em5gx")] -tile_map_data = PackedByteArray("AAAWAAEAAQAAAAEAAAAVAAEAAQABAAAAAAAUAAEAAQABAAIAAAATAAEAAQABAAIAAAAfAAYAAQAAAAMAAAAfAAUAAQAAAAMAAAAfAAQAAQAAAAMAAAAfAAMAAQAAAAMAAAAfAAIAAQAAAAMAAAAfAAEAAQAAAAMAAAAfAAAAAQAAAAMAAAAfAP//AQABAAMAAAAfAP7/AQAAAAMAAAAfAP3/AQAAAAMAAAAfAPz/AQAAAAMAAAAfAPv/AQADAAMAAAAeAAYAAQACAAMAAAAeAAUAAQAAAAMAAAAeAAQAAQAAAAMAAAAeAAMAAQAAAAMAAAAeAAIAAQAAAAMAAAAeAAEAAQAAAAMAAAAeAAAAAQAAAAMAAAAeAP//AQADAAMAAAAeAP7/AQACAAMAAAAeAP3/AQABAAMAAAAeAPz/AQAAAAMAAAAeAPv/AQAAAAMAAAAdAAYAAQAAAAMAAAAdAAUAAQAAAAMAAAAdAAQAAQAAAAMAAAAdAAMAAQAAAAMAAAAdAAIAAQABAAMAAAAdAAEAAQAAAAMAAAAdAAAAAQADAAMAAAAdAP//AQAAAAMAAAAdAP7/AQAAAAMAAAAdAP3/AQAAAAMAAAAdAPz/AQAAAAMAAAAdAPv/AQAAAAMAAAAcAAYAAQAAAAMAAAAcAAUAAQABAAMAAAAcAAQAAQAAAAMAAAAcAAMAAQACAAMAAAAcAAIAAQAAAAMAAAAcAAEAAQAAAAMAAAAcAAAAAQAAAAMAAAAcAP//AQAAAAMAAAAcAP7/AQADAAMAAAAcAP3/AQABAAMAAAAcAPz/AQADAAMAAAAcAPv/AQADAAMAAAAbAAYAAQAAAAMAAAAbAAUAAQAAAAMAAAAbAAQAAQADAAMAAAAbAAMAAQAAAAMAAAAbAAIAAQAAAAMAAAAbAAEAAQAAAAMAAAAbAAAAAQAAAAMAAAAbAP//AQABAAMAAAAbAP7/AQAAAAMAAAAbAP3/AQAAAAMAAAAbAPz/AQACAAMAAAAbAPv/AQAAAAMAAAAaAAYAAQAAAAMAAAAaAAUAAQAAAAMAAAAaAAQAAQAAAAMAAAAaAAMAAQAAAAMAAAAaAAIAAQAAAAMAAAAaAAEAAQAAAAMAAAAaAAAAAQAAAAMAAAAaAP//AQACAAMAAAAaAP7/AQABAAMAAAAaAP3/AQABAAMAAAAaAPz/AQAAAAMAAAAaAPv/AQAAAAMAAAAZAAYAAQAAAAMAAAAZAAUAAQABAAMAAAAZAAQAAQAAAAMAAAAZAAMAAQADAAMAAAAZAAIAAQAAAAMAAAAZAAEAAQAAAAMAAAAZAAAAAQAAAAMAAAAZAP//AQACAAMAAAAZAP7/AQACAAMAAAAZAP3/AQAAAAMAAAAZAPz/AQAAAAMAAAAZAPv/AQAAAAMAAAAYAAYAAQAAAAMAAAAYAAUAAQADAAMAAAAYAAQAAQAAAAMAAAAYAAMAAQACAAMAAAAYAAIAAQACAAMAAAAYAAEAAQAAAAMAAAAYAAAAAQAAAAMAAAAYAP//AQAAAAMAAAAYAP7/AQAAAAMAAAAYAP3/AQAAAAMAAAAYAPz/AQAAAAMAAAAYAPv/AQACAAMAAAAXAAYAAQAAAAMAAAAXAAUAAQAAAAMAAAAXAAQAAQAAAAMAAAAXAAMAAQABAAMAAAAXAAIAAQAAAAMAAAAXAAEAAQAAAAMAAAAXAAAAAQAAAAMAAAAXAP//AQAAAAMAAAAXAP7/AQAAAAMAAAAXAP3/AQAAAAMAAAAXAPz/AQAAAAMAAAAXAPv/AQAAAAMAAAAWAAYAAQAAAAEAAAAWAAUAAQAAAAEAAAAWAAQAAQAAAAEAAAAWAAMAAQAAAAEAAAAWAAIAAQAAAAEAAAAWAAAAAQACAAEAAAAWAP//AQAAAAMAAAAWAP7/AQAAAAMAAAAWAP3/AQAAAAMAAAAWAPz/AQAAAAMAAAAWAPv/AQAAAAMAAAAgABAAAQABAAAAAAAgAA8AAQAAAAIAAAAgAA4AAQAAAAIAAAAgAA0AAQAAAAIAAAAgAAwAAQAAAAIAAAAgAAsAAQAAAAIAAAAgAAoAAQAAAAIAAAAgAAkAAQAAAAIAAAAgAAgAAQAAAAIAAAAgAAcAAQAAAAIAAAAgAAYAAQAAAAIAAAAgAAUAAQAAAAIAAAAgAAQAAQAAAAIAAAAgAAMAAQAAAAIAAAAgAAIAAQAAAAIAAAAgAAEAAQAAAAIAAAAgAAAAAQAAAAIAAAAgAP//AQAAAAIAAAAgAP7/AQAAAAIAAAAgAP3/AQAAAAIAAAAgAPz/AQAAAAIAAAAgAPv/AQAAAAIAAAAfABAAAQABAAIAAAAfAA8AAQAAAAMAAAAfAA4AAQAAAAMAAAAfAA0AAQABAAMAAAAfAAwAAQAAAAMAAAAfAAsAAQAAAAMAAAAfAAoAAQAAAAMAAAAfAAkAAQAAAAMAAAAfAAgAAQAAAAMAAAAfAAcAAQABAAMAAAAeABAAAQABAAIAAAAeAA8AAQAAAAMAAAAeAA4AAQABAAMAAAAeAA0AAQAAAAMAAAAeAAwAAQAAAAMAAAAeAAsAAQAAAAMAAAAeAAoAAQAAAAMAAAAeAAkAAQAAAAMAAAAeAAgAAQAAAAMAAAAeAAcAAQADAAMAAAAdABAAAQABAAIAAAAdAA8AAQAAAAMAAAAdAA4AAQAAAAMAAAAdAA0AAQADAAMAAAAdAAwAAQACAAMAAAAdAAsAAQAAAAMAAAAdAAoAAQAAAAMAAAAdAAkAAQAAAAMAAAAdAAgAAQAAAAMAAAAdAAcAAQAAAAMAAAAcABAAAQABAAIAAAAcAA8AAQAAAAMAAAAcAA4AAQAAAAMAAAAcAA0AAQAAAAMAAAAcAAwAAQAAAAMAAAAcAAsAAQAAAAMAAAAcAAoAAQADAAMAAAAcAAkAAQAAAAMAAAAcAAgAAQAAAAMAAAAcAAcAAQAAAAMAAAAbABAAAQABAAIAAAAbAA8AAQAAAAMAAAAbAA4AAQAAAAMAAAAbAA0AAQAAAAMAAAAbAAwAAQAAAAMAAAAbAAsAAQADAAMAAAAbAAoAAQADAAMAAAAbAAkAAQAAAAMAAAAbAAgAAQACAAMAAAAbAAcAAQAAAAMAAAAaABAAAQABAAIAAAAaAA8AAQAAAAMAAAAaAA4AAQAAAAMAAAAaAA0AAQAAAAMAAAAaAAwAAQAAAAMAAAAaAAsAAQADAAMAAAAaAAoAAQAAAAMAAAAaAAkAAQAAAAMAAAAaAAgAAQAAAAMAAAAaAAcAAQAAAAMAAAAZABAAAQABAAIAAAAZAA8AAQAAAAMAAAAZAA4AAQAAAAMAAAAZAA0AAQAAAAMAAAAZAAwAAQADAAMAAAAZAAsAAQACAAMAAAAZAAoAAQACAAMAAAAZAAkAAQAAAAMAAAAZAAgAAQABAAMAAAAZAAcAAQAAAAMAAAAYABAAAQABAAIAAAAYAA8AAQAAAAMAAAAYAA4AAQAAAAMAAAAYAA0AAQAAAAMAAAAYAAwAAQAAAAMAAAAYAAsAAQAAAAMAAAAYAAoAAQAAAAMAAAAYAAkAAQAAAAMAAAAYAAgAAQAAAAMAAAAYAAcAAQAAAAMAAAAXABAAAQABAAIAAAAXAA8AAQAAAAMAAAAXAA4AAQAAAAMAAAAXAA0AAQABAAMAAAAXAAwAAQAAAAMAAAAXAAsAAQAAAAMAAAAXAAoAAQABAAMAAAAXAAkAAQAAAAMAAAAXAAgAAQAAAAMAAAAXAAcAAQAAAAMAAAAWABAAAQADAAAAAAAWAA8AAQAAAAEAAAAWAA4AAQAAAAEAAAAWAA0AAQAAAAEAAAAWAAwAAQAAAAEAAAAWAAsAAQAAAAEAAAAWAAoAAQAAAAEAAAAWAAkAAQAAAAEAAAAWAAgAAQAAAAEAAAAWAAcAAQAAAAEAAAAVAAAAAQABAAMAAAAVAP//AQAAAAMAAAAVAP7/AQAAAAMAAAAVAP3/AQAAAAMAAAAVAPz/AQAAAAMAAAAVAPv/AQAAAAMAAAAVAPr/AQAAAAMAAAAVAPn/AQAAAAMAAAAVAPj/AQAAAAMAAAAVAPf/AQAAAAMAAAAVAPb/AQABAAEAAAAUAAAAAQAAAAMAAAAUAP//AQACAAMAAAAUAP7/AQACAAMAAAAUAP3/AQAAAAMAAAAUAPz/AQACAAMAAAAUAPv/AQAAAAMAAAAUAPr/AQADAAMAAAAUAPn/AQAAAAMAAAAUAPj/AQAAAAMAAAAUAPf/AQAAAAMAAAAUAPb/AQABAAEAAAATAAAAAQACAAMAAAATAP//AQAAAAMAAAATAP7/AQAAAAMAAAATAP3/AQAAAAMAAAATAPz/AQAAAAMAAAATAPv/AQAAAAMAAAATAPr/AQADAAMAAAATAPn/AQAAAAMAAAATAPj/AQAAAAMAAAATAPf/AQADAAMAAAATAPb/AQABAAEAAAASAAAAAQAAAAMAAAASAP//AQABAAMAAAASAP7/AQAAAAMAAAASAP3/AQAAAAMAAAASAPz/AQAAAAMAAAASAPv/AQABAAMAAAASAPr/AQAAAAMAAAASAPn/AQAAAAMAAAASAPj/AQAAAAMAAAASAPf/AQAAAAMAAAASAPb/AQABAAEAAAARAAAAAQAAAAMAAAARAP//AQAAAAMAAAARAP7/AQABAAMAAAARAP3/AQAAAAMAAAARAPz/AQACAAMAAAARAPv/AQAAAAMAAAARAPr/AQABAAMAAAARAPn/AQAAAAMAAAARAPj/AQAAAAMAAAARAPf/AQAAAAMAAAARAPb/AQABAAEAAAAQAAAAAQACAAMAAAAQAP//AQAAAAMAAAAQAP7/AQAAAAMAAAAQAP3/AQAAAAMAAAAQAPz/AQAAAAMAAAAQAPv/AQABAAMAAAAQAPr/AQAAAAMAAAAQAPn/AQAAAAMAAAAQAPj/AQABAAMAAAAQAPf/AQAAAAMAAAAQAPb/AQABAAEAAAAPAAAAAQAAAAMAAAAPAP//AQAAAAMAAAAPAP7/AQAAAAMAAAAPAP3/AQADAAMAAAAPAPz/AQAAAAMAAAAPAPv/AQAAAAMAAAAPAPr/AQACAAMAAAAPAPn/AQAAAAMAAAAPAPj/AQAAAAMAAAAPAPf/AQAAAAMAAAAPAPb/AQABAAEAAAAOAAAAAQAAAAMAAAAOAP//AQAAAAMAAAAOAP7/AQAAAAMAAAAOAP3/AQAAAAMAAAAOAPz/AQAAAAMAAAAOAPv/AQADAAMAAAAOAPr/AQACAAMAAAAOAPn/AQAAAAMAAAAOAPj/AQAAAAMAAAAOAPf/AQAAAAMAAAAOAPb/AQABAAEAAAANAAAAAQAAAAMAAAANAP//AQAAAAMAAAANAP7/AQADAAMAAAANAP3/AQAAAAMAAAANAPz/AQAAAAMAAAANAPv/AQACAAMAAAANAPr/AQAAAAMAAAANAPn/AQAAAAMAAAANAPj/AQABAAMAAAANAPf/AQAAAAMAAAANAPb/AQABAAEAAAAMAAAAAQAAAAMAAAAMAP//AQABAAMAAAAMAP7/AQAAAAMAAAAMAP3/AQAAAAMAAAAMAPz/AQAAAAMAAAAMAPv/AQACAAMAAAAMAPr/AQAAAAMAAAAMAPn/AQAAAAMAAAAMAPj/AQAAAAMAAAAMAPf/AQACAAMAAAAMAPb/AQABAAEAAAALAAAAAQAAAAMAAAALAP//AQAAAAMAAAALAP7/AQAAAAMAAAALAP3/AQABAAMAAAALAPz/AQAAAAMAAAALAPv/AQAAAAMAAAALAPr/AQAAAAMAAAALAPn/AQAAAAMAAAALAPj/AQAAAAMAAAALAPf/AQAAAAMAAAALAPb/AQABAAEAAAAKAAAAAQADAAMAAAAKAP//AQAAAAMAAAAKAP7/AQAAAAMAAAAKAP3/AQAAAAMAAAAKAPz/AQAAAAMAAAAKAPv/AQAAAAMAAAAKAPr/AQACAAMAAAAKAPn/AQAAAAMAAAAKAPj/AQADAAMAAAAKAPf/AQABAAMAAAAKAPb/AQABAAEAAAAJAAAAAQAAAAMAAAAJAP//AQACAAMAAAAJAP7/AQAAAAMAAAAJAP3/AQAAAAMAAAAJAPz/AQADAAMAAAAJAPv/AQAAAAMAAAAJAPr/AQAAAAMAAAAJAPn/AQAAAAMAAAAJAPj/AQAAAAMAAAAJAPf/AQAAAAMAAAAJAPb/AQABAAEAAAAIAAAAAQAAAAMAAAAIAP//AQAAAAMAAAAIAP7/AQAAAAMAAAAIAP3/AQAAAAMAAAAIAPz/AQABAAMAAAAIAPv/AQAAAAMAAAAIAPr/AQAAAAMAAAAIAPn/AQAAAAMAAAAIAPj/AQADAAMAAAAIAPf/AQAAAAMAAAAIAPb/AQABAAEAAAAHAAAAAQACAAMAAAAHAP//AQAAAAMAAAAHAP7/AQAAAAMAAAAHAP3/AQADAAMAAAAHAPz/AQAAAAMAAAAHAPv/AQADAAMAAAAHAPr/AQAAAAMAAAAHAPn/AQAAAAMAAAAHAPj/AQAAAAMAAAAHAPf/AQAAAAMAAAAHAPb/AQABAAEAAAAGAAAAAQAAAAMAAAAGAP//AQAAAAMAAAAGAP7/AQAAAAMAAAAGAP3/AQAAAAMAAAAGAPz/AQABAAMAAAAGAPv/AQAAAAMAAAAGAPr/AQAAAAMAAAAGAPn/AQAAAAMAAAAGAPj/AQAAAAMAAAAGAPf/AQAAAAMAAAAGAPb/AQABAAEAAAAFAAAAAQAAAAEAAAAFAP//AQAAAAEAAAAFAP7/AQAAAAEAAAAFAP3/AQAAAAEAAAAFAPz/AQAAAAEAAAAFAPv/AQAAAAEAAAAFAPr/AQAAAAEAAAAFAPn/AQAAAAEAAAAFAPj/AQAAAAEAAAAFAPf/AQAAAAEAAAAFAPb/AQAAAAAAAAAgAPr/AQAAAAIAAAAgAPn/AQAAAAIAAAAgAPj/AQAAAAIAAAAgAPf/AQAAAAIAAAAgAPb/AQACAAAAAAAfAPr/AQAAAAMAAAAfAPn/AQAAAAMAAAAfAPj/AQAAAAMAAAAfAPf/AQAAAAMAAAAfAPb/AQABAAEAAAAeAPr/AQAAAAMAAAAeAPn/AQAAAAMAAAAeAPj/AQAAAAMAAAAeAPf/AQADAAMAAAAeAPb/AQABAAEAAAAdAPr/AQAAAAMAAAAdAPn/AQAAAAMAAAAdAPj/AQAAAAMAAAAdAPf/AQAAAAMAAAAdAPb/AQABAAEAAAAcAPr/AQACAAMAAAAcAPn/AQACAAMAAAAcAPj/AQACAAMAAAAcAPf/AQADAAMAAAAcAPb/AQABAAEAAAAbAPr/AQACAAMAAAAbAPn/AQAAAAMAAAAbAPj/AQAAAAMAAAAbAPf/AQAAAAMAAAAbAPb/AQABAAEAAAAaAPr/AQAAAAMAAAAaAPn/AQAAAAMAAAAaAPj/AQAAAAMAAAAaAPf/AQAAAAMAAAAaAPb/AQABAAEAAAAZAPr/AQAAAAMAAAAZAPn/AQAAAAMAAAAZAPj/AQAAAAMAAAAZAPf/AQADAAMAAAAZAPb/AQABAAEAAAAYAPr/AQAAAAMAAAAYAPn/AQAAAAMAAAAYAPj/AQAAAAMAAAAYAPf/AQABAAMAAAAYAPb/AQABAAEAAAAXAPr/AQADAAMAAAAXAPn/AQAAAAMAAAAXAPj/AQAAAAMAAAAXAPf/AQAAAAMAAAAXAPb/AQABAAEAAAAWAPr/AQAAAAMAAAAWAPn/AQAAAAMAAAAWAPj/AQAAAAMAAAAWAPf/AQAAAAMAAAAWAPb/AQABAAEAAAASAAEAAQABAAIAAAARAAEAAQABAAIAAAAQAAEAAQABAAIAAAAPAAEAAQABAAIAAAAOAAEAAQABAAIAAAANAAEAAQABAAIAAAAMAAEAAQABAAIAAAALAAEAAQABAAIAAAAKAAEAAQABAAIAAAAJAAEAAQABAAIAAAAIAAEAAQABAAIAAAAHAAEAAQABAAIAAAAGAAEAAQABAAIAAAAFAAEAAQADAAAAAAA=") +tile_map_data = PackedByteArray("AAAWAAIAAQADAAIAAAAWAAEAAQAAAAMAAAAWAAAAAQAAAAMAAAAWAP//AQAAAAMAAAAWAP7/AQAAAAMAAAAWAP3/AQAAAAMAAAAWAPz/AQAAAAMAAAAWAPv/AQAAAAMAAAAWAPr/AQAAAAMAAAAWAPn/AQAAAAMAAAAWAPj/AQAAAAMAAAAWAPf/AQACAAMAAAAWAPb/AQABAAMAAAAVAAIAAQAAAAMAAAAVAAEAAQAAAAMAAAAVAAAAAQAAAAMAAAAVAP//AQAAAAMAAAAVAP7/AQAAAAMAAAAVAP3/AQAAAAMAAAAVAPz/AQAAAAMAAAAVAPv/AQAAAAMAAAAVAPr/AQAAAAMAAAAVAPn/AQACAAMAAAAVAPj/AQACAAMAAAAVAPf/AQAAAAMAAAAVAPb/AQAAAAMAAAAUAAIAAQAAAAMAAAAUAAEAAQABAAMAAAAUAAAAAQAAAAMAAAAUAP//AQAAAAMAAAAUAP7/AQAAAAMAAAAUAP3/AQAAAAMAAAAUAPz/AQAAAAMAAAAUAPv/AQAAAAMAAAAUAPr/AQAAAAMAAAAUAPn/AQAAAAMAAAAUAPj/AQAAAAMAAAAUAPf/AQAAAAMAAAAUAPb/AQACAAMAAAATAAIAAQAAAAMAAAATAAEAAQAAAAMAAAATAAAAAQAAAAMAAAATAP//AQAAAAMAAAATAP7/AQAAAAMAAAATAP3/AQADAAMAAAATAPz/AQAAAAMAAAATAPv/AQAAAAMAAAATAPr/AQAAAAMAAAATAPn/AQAAAAMAAAATAPj/AQABAAMAAAATAPf/AQAAAAMAAAATAPb/AQAAAAMAAAASAAIAAQAAAAMAAAASAAEAAQAAAAMAAAASAAAAAQAAAAMAAAASAP//AQAAAAMAAAASAP7/AQAAAAMAAAASAP3/AQAAAAMAAAASAPz/AQADAAMAAAASAPv/AQAAAAMAAAASAPr/AQAAAAMAAAASAPn/AQAAAAMAAAASAPj/AQAAAAMAAAASAPf/AQAAAAMAAAASAPb/AQAAAAMAAAARAAIAAQAAAAMAAAARAAEAAQAAAAMAAAARAAAAAQAAAAMAAAARAP//AQAAAAMAAAARAP7/AQABAAMAAAARAP3/AQADAAMAAAARAPz/AQAAAAMAAAARAPv/AQAAAAMAAAARAPr/AQAAAAMAAAARAPn/AQAAAAMAAAARAPj/AQAAAAMAAAARAPf/AQAAAAMAAAARAPb/AQABAAMAAAAQAAIAAQAAAAMAAAAQAAEAAQAAAAMAAAAQAAAAAQAAAAMAAAAQAP//AQAAAAMAAAAQAP7/AQAAAAMAAAAQAP3/AQAAAAMAAAAQAPz/AQAAAAMAAAAQAPv/AQAAAAMAAAAQAPr/AQAAAAMAAAAQAPn/AQAAAAMAAAAQAPj/AQAAAAMAAAAQAPf/AQAAAAMAAAAQAPb/AQAAAAMAAAAPAAIAAQADAAMAAAAPAAEAAQAAAAMAAAAPAAAAAQAAAAMAAAAPAP//AQAAAAMAAAAPAP7/AQAAAAMAAAAPAP3/AQAAAAMAAAAPAPz/AQAAAAMAAAAPAPv/AQAAAAMAAAAPAPr/AQAAAAMAAAAPAPn/AQAAAAMAAAAPAPj/AQAAAAMAAAAPAPf/AQAAAAMAAAAPAPb/AQAAAAMAAAAOAAIAAQACAAEAAAAOAAEAAQAAAAMAAAAOAAAAAQAAAAMAAAAOAP//AQAAAAMAAAAOAP7/AQADAAMAAAAOAP3/AQAAAAMAAAAOAPz/AQACAAMAAAAOAPv/AQAAAAMAAAAOAPr/AQAAAAMAAAAOAPn/AQAAAAMAAAAOAPj/AQAAAAMAAAAOAPf/AQAAAAMAAAAOAPb/AQAAAAMAAAANAAIAAQADAAIAAAANAAEAAQAAAAMAAAANAAAAAQAAAAMAAAANAP//AQADAAMAAAANAP7/AQACAAMAAAANAP3/AQACAAMAAAANAPz/AQAAAAMAAAANAPv/AQAAAAMAAAANAPr/AQAAAAMAAAANAPn/AQAAAAMAAAANAPj/AQABAAMAAAANAPf/AQAAAAMAAAANAPb/AQAAAAMAAAAMAAIAAQAAAAMAAAAMAAEAAQADAAMAAAAMAAAAAQAAAAMAAAAMAP//AQAAAAMAAAAMAP7/AQADAAMAAAAMAP3/AQAAAAMAAAAMAPz/AQAAAAMAAAAMAPv/AQAAAAMAAAAMAPr/AQAAAAMAAAAMAPn/AQADAAMAAAAMAPj/AQAAAAMAAAAMAPf/AQAAAAMAAAAMAPb/AQAAAAMAAAALAAIAAQACAAEAAAALAAEAAQAAAAMAAAALAAAAAQAAAAMAAAALAP//AQAAAAMAAAALAP7/AQAAAAMAAAALAP3/AQAAAAMAAAALAPz/AQADAAMAAAALAPv/AQAAAAMAAAALAPr/AQAAAAMAAAALAPn/AQACAAMAAAALAPj/AQABAAMAAAALAPf/AQAAAAMAAAALAPb/AQABAAMAAAAKAAIAAQABAAIAAAAKAAEAAQABAAMAAAAKAAAAAQAAAAMAAAAKAP//AQAAAAMAAAAKAP7/AQACAAMAAAAKAP3/AQAAAAMAAAAKAPz/AQABAAMAAAAKAPv/AQAAAAMAAAAKAPr/AQAAAAMAAAAKAPn/AQADAAMAAAAKAPj/AQAAAAMAAAAKAPf/AQAAAAMAAAAKAPb/AQABAAMAAAAJAAIAAQAAAAMAAAAJAAEAAQAAAAMAAAAJAAAAAQAAAAMAAAAJAP//AQABAAMAAAAJAP7/AQAAAAMAAAAJAP3/AQAAAAMAAAAJAPz/AQABAAMAAAAJAPv/AQAAAAMAAAAJAPr/AQAAAAMAAAAJAPn/AQACAAMAAAAJAPj/AQAAAAMAAAAJAPf/AQAAAAMAAAAJAPb/AQAAAAMAAAAIAAIAAQAAAAMAAAAIAAEAAQADAAMAAAAIAAAAAQAAAAMAAAAIAP//AQAAAAMAAAAIAP7/AQAAAAMAAAAIAP3/AQAAAAMAAAAIAPz/AQAAAAMAAAAIAPv/AQAAAAMAAAAIAPr/AQAAAAMAAAAIAPn/AQAAAAMAAAAIAPj/AQAAAAMAAAAIAPf/AQAAAAMAAAAIAPb/AQAAAAMAAAAHAAIAAQAAAAMAAAAHAAEAAQACAAMAAAAHAAAAAQAAAAMAAAAHAP//AQAAAAMAAAAHAP7/AQAAAAMAAAAHAP3/AQAAAAMAAAAHAPz/AQAAAAMAAAAHAPv/AQAAAAMAAAAHAPr/AQAAAAMAAAAHAPn/AQAAAAMAAAAHAPj/AQAAAAMAAAAHAPf/AQAAAAMAAAAHAPb/AQAAAAMAAAAGAAIAAQABAAMAAAAGAAEAAQAAAAMAAAAGAAAAAQAAAAMAAAAGAP//AQAAAAMAAAAGAP7/AQAAAAMAAAAGAP3/AQAAAAMAAAAGAPz/AQAAAAMAAAAGAPv/AQAAAAMAAAAGAPr/AQAAAAMAAAAGAPn/AQAAAAMAAAAGAPj/AQAAAAMAAAAGAPf/AQAAAAMAAAAGAPb/AQAAAAMAAAAFAAIAAQAAAAMAAAAFAAEAAQAAAAMAAAAFAAAAAQACAAMAAAAFAP//AQAAAAMAAAAFAP7/AQAAAAMAAAAFAP3/AQAAAAMAAAAFAPz/AQAAAAMAAAAFAPv/AQAAAAMAAAAFAPr/AQAAAAMAAAAFAPn/AQAAAAMAAAAFAPj/AQAAAAMAAAAFAPf/AQAAAAMAAAAFAPb/AQAAAAMAAAAEAAIAAQAAAAEAAAAEAAEAAQAAAAEAAAAEAAAAAQAAAAEAAAAEAP//AQAAAAEAAAAEAP7/AQAAAAEAAAAEAP3/AQACAAEAAAAEAPz/AQAAAAMAAAAEAPv/AQACAAIAAAAEAPr/AQAAAAEAAAAEAPn/AQAAAAEAAAAEAPj/AQAAAAEAAAAEAPf/AQAAAAEAAAAEAPb/AQAAAAEAAAAXAPb/AQAAAAMAAAAYAPf/AQAAAAMAAAAZAPf/AQAAAAMAAAAZAPj/AQABAAMAAAAaAPj/AQAAAAMAAAAaAPn/AQAAAAMAAAAbAPr/AQAAAAMAAAAbAPv/AQAAAAMAAAAbAPz/AQACAAMAAAAcAP3/AQAAAAMAAAAcAP//AQAAAAMAAAAcAP7/AQAAAAMAAAAdAAAAAQAAAAMAAAAdAAIAAQAAAAMAAAAdAAEAAQAAAAMAAAAdAAMAAQAAAAMAAAAeAAQAAQAAAAMAAAAeAAUAAQAAAAMAAAAeAAYAAQAAAAMAAAAeAAcAAQADAAMAAAAeAAgAAQAAAAMAAAAeAAkAAQAAAAMAAAAdAAkAAQAAAAMAAAAdAAoAAQAAAAMAAAAdAAsAAQAAAAMAAAAcAAsAAQAAAAMAAAAcAAwAAQAAAAMAAAAlABIAAQABAAAAAAAlABEAAQAAAAIAAAAlABAAAQAAAAIAAAAlAA8AAQAAAAIAAAAlAA4AAQAAAAIAAAAlAA0AAQAAAAIAAAAlAAwAAQADAAIAAAAlAAsAAQAAAAMAAAAlAAoAAQADAAEAAAAlAAkAAQAAAAIAAAAlAAgAAQAAAAIAAAAlAAcAAQAAAAIAAAAlAAYAAQAAAAIAAAAlAAUAAQAAAAIAAAAlAAQAAQAAAAIAAAAlAAMAAQAAAAIAAAAlAAIAAQAAAAIAAAAlAAEAAQAAAAIAAAAlAAAAAQAAAAIAAAAlAP//AQAAAAIAAAAlAP7/AQAAAAIAAAAlAP3/AQAAAAIAAAAlAPz/AQAAAAIAAAAlAPv/AQAAAAIAAAAlAPr/AQAAAAIAAAAlAPn/AQAAAAIAAAAlAPj/AQAAAAIAAAAlAPf/AQAAAAIAAAAlAPb/AQAAAAIAAAAkABIAAQABAAIAAAAkABEAAQABAAMAAAAkABAAAQAAAAMAAAAkAA8AAQAAAAMAAAAkAA4AAQABAAMAAAAkAA0AAQADAAMAAAAkAAwAAQAAAAMAAAAkAAsAAQAAAAMAAAAkAAoAAQAAAAMAAAAkAAkAAQAAAAMAAAAkAAgAAQAAAAMAAAAkAAcAAQAAAAMAAAAkAAYAAQADAAMAAAAkAAUAAQAAAAMAAAAkAAQAAQAAAAMAAAAkAAMAAQAAAAMAAAAkAAIAAQAAAAMAAAAkAAEAAQAAAAMAAAAkAAAAAQAAAAMAAAAkAP//AQACAAMAAAAkAP7/AQAAAAMAAAAkAP3/AQACAAMAAAAkAPz/AQAAAAMAAAAkAPv/AQABAAMAAAAkAPr/AQAAAAMAAAAkAPn/AQAAAAMAAAAkAPj/AQADAAMAAAAkAPf/AQAAAAMAAAAkAPb/AQABAAMAAAAjABIAAQABAAIAAAAjABEAAQAAAAMAAAAjABAAAQAAAAMAAAAjAA8AAQABAAMAAAAjAA4AAQAAAAMAAAAjAA0AAQACAAMAAAAjAAwAAQACAAMAAAAjAAsAAQAAAAMAAAAjAAoAAQAAAAMAAAAjAAkAAQAAAAMAAAAjAAgAAQACAAMAAAAjAAcAAQADAAMAAAAjAAYAAQABAAMAAAAjAAUAAQAAAAMAAAAjAAQAAQACAAMAAAAjAAMAAQADAAMAAAAjAAIAAQABAAMAAAAjAAEAAQAAAAMAAAAjAAAAAQACAAMAAAAjAP//AQAAAAMAAAAjAP7/AQAAAAMAAAAjAP3/AQAAAAMAAAAjAPz/AQAAAAMAAAAjAPv/AQAAAAMAAAAjAPr/AQAAAAMAAAAjAPn/AQAAAAMAAAAjAPj/AQABAAMAAAAjAPf/AQAAAAMAAAAjAPb/AQAAAAMAAAAiABIAAQABAAIAAAAiABEAAQAAAAMAAAAiABAAAQAAAAMAAAAiAA8AAQAAAAMAAAAiAA4AAQABAAMAAAAiAA0AAQAAAAMAAAAiAAwAAQAAAAMAAAAiAAsAAQAAAAMAAAAiAAoAAQAAAAMAAAAiAAkAAQADAAMAAAAiAAgAAQAAAAMAAAAiAAcAAQABAAMAAAAiAAYAAQAAAAMAAAAiAAUAAQAAAAMAAAAiAAQAAQAAAAMAAAAiAAMAAQAAAAMAAAAiAAIAAQAAAAMAAAAiAAEAAQAAAAMAAAAiAAAAAQAAAAMAAAAiAP//AQAAAAMAAAAiAP7/AQABAAMAAAAiAP3/AQAAAAMAAAAiAPz/AQAAAAMAAAAiAPv/AQAAAAMAAAAiAPr/AQAAAAMAAAAiAPn/AQAAAAMAAAAiAPj/AQAAAAMAAAAiAPf/AQAAAAMAAAAiAPb/AQAAAAMAAAAhABIAAQABAAIAAAAhABEAAQACAAMAAAAhABAAAQADAAMAAAAhAA8AAQAAAAMAAAAhAA4AAQAAAAMAAAAhAA0AAQAAAAMAAAAhAAwAAQAAAAMAAAAhAAsAAQAAAAMAAAAhAAoAAQADAAMAAAAhAAkAAQAAAAMAAAAhAAgAAQACAAMAAAAhAAcAAQAAAAMAAAAhAAYAAQAAAAMAAAAhAAUAAQAAAAMAAAAhAAQAAQAAAAMAAAAhAAMAAQAAAAMAAAAhAAIAAQAAAAMAAAAhAAEAAQAAAAMAAAAhAAAAAQAAAAMAAAAhAP//AQAAAAMAAAAhAP7/AQABAAMAAAAhAP3/AQAAAAMAAAAhAPz/AQAAAAMAAAAhAPv/AQAAAAMAAAAhAPr/AQAAAAMAAAAhAPn/AQACAAMAAAAhAPj/AQAAAAMAAAAhAPf/AQAAAAMAAAAhAPb/AQAAAAMAAAAgABIAAQABAAIAAAAgABEAAQAAAAMAAAAgABAAAQAAAAMAAAAgAA8AAQABAAMAAAAgAA4AAQAAAAMAAAAgAA0AAQAAAAMAAAAgAAwAAQAAAAMAAAAgAAsAAQAAAAMAAAAgAAoAAQACAAMAAAAgAAkAAQADAAMAAAAgAAgAAQAAAAMAAAAgAAcAAQADAAMAAAAgAAYAAQAAAAMAAAAgAAUAAQAAAAMAAAAgAAQAAQAAAAMAAAAgAAMAAQAAAAMAAAAgAAIAAQABAAMAAAAgAAEAAQAAAAMAAAAgAAAAAQABAAMAAAAgAP//AQADAAMAAAAgAP7/AQADAAMAAAAgAP3/AQAAAAMAAAAgAPz/AQAAAAMAAAAgAPv/AQAAAAMAAAAgAPr/AQAAAAMAAAAgAPn/AQAAAAMAAAAgAPj/AQAAAAMAAAAgAPf/AQAAAAMAAAAgAPb/AQAAAAMAAAAfABIAAQADAAIAAAAfABEAAQAAAAMAAAAfABAAAQAAAAMAAAAfAA8AAQABAAMAAAAfAA4AAQAAAAMAAAAfAA0AAQACAAMAAAAfAAwAAQAAAAMAAAAfAAsAAQACAAMAAAAfAAoAAQAAAAMAAAAfAAkAAQADAAMAAAAfAAgAAQACAAMAAAAfAAcAAQACAAMAAAAfAAYAAQAAAAMAAAAfAAUAAQACAAMAAAAfAAQAAQAAAAMAAAAfAAMAAQAAAAMAAAAfAAIAAQAAAAMAAAAfAAEAAQABAAMAAAAfAAAAAQACAAMAAAAfAP//AQAAAAMAAAAfAP7/AQACAAMAAAAfAP3/AQAAAAMAAAAfAPz/AQABAAMAAAAfAPv/AQACAAMAAAAfAPr/AQACAAMAAAAfAPn/AQABAAMAAAAfAPj/AQAAAAMAAAAfAPf/AQAAAAMAAAAfAPb/AQAAAAMAAAAeABIAAQAAAAMAAAAeABEAAQADAAMAAAAeABAAAQAAAAMAAAAeAA8AAQAAAAMAAAAeAA4AAQAAAAMAAAAeAA0AAQAAAAMAAAAeAAwAAQAAAAMAAAAeAAsAAQACAAMAAAAeAAoAAQAAAAMAAAAeAAMAAQACAAMAAAAeAAIAAQADAAMAAAAeAAEAAQAAAAMAAAAeAAAAAQACAAMAAAAeAP//AQAAAAMAAAAeAP7/AQAAAAMAAAAeAP3/AQAAAAMAAAAeAPz/AQAAAAMAAAAeAPv/AQAAAAMAAAAeAPr/AQAAAAMAAAAeAPn/AQAAAAMAAAAeAPj/AQAAAAMAAAAeAPf/AQAAAAMAAAAeAPb/AQAAAAMAAAAdABIAAQACAAEAAAAdABEAAQAAAAMAAAAdABAAAQAAAAMAAAAdAA8AAQAAAAMAAAAdAA4AAQAAAAMAAAAdAA0AAQAAAAMAAAAdAAwAAQABAAMAAAAdAAgAAQAAAAMAAAAdAAcAAQAAAAMAAAAdAAYAAQAAAAMAAAAdAAUAAQACAAMAAAAdAAQAAQAAAAMAAAAdAP//AQAAAAMAAAAdAP7/AQAAAAMAAAAdAP3/AQAAAAMAAAAdAPz/AQAAAAMAAAAdAPv/AQAAAAMAAAAdAPr/AQACAAMAAAAdAPn/AQAAAAMAAAAdAPj/AQAAAAMAAAAdAPf/AQAAAAMAAAAdAPb/AQAAAAMAAAAcABIAAQABAAIAAAAcABEAAQAAAAMAAAAcABAAAQADAAMAAAAcAA8AAQAAAAMAAAAcAA4AAQAAAAMAAAAcAA0AAQABAAMAAAAcAAoAAQAAAAMAAAAcAAkAAQADAAMAAAAcAAgAAQADAAMAAAAcAAcAAQAAAAMAAAAcAAYAAQAAAAMAAAAcAAUAAQAAAAMAAAAcAAQAAQABAAMAAAAcAAMAAQADAAMAAAAcAAIAAQABAAMAAAAcAAEAAQAAAAMAAAAcAAAAAQABAAMAAAAcAPz/AQACAAMAAAAcAPv/AQACAAMAAAAcAPr/AQAAAAMAAAAcAPn/AQAAAAMAAAAcAPj/AQAAAAMAAAAcAPf/AQADAAMAAAAcAPb/AQAAAAMAAAAbABIAAQABAAIAAAAbABEAAQAAAAMAAAAbABAAAQACAAMAAAAbAA8AAQAAAAMAAAAbAA4AAQAAAAMAAAAbAA0AAQAAAAMAAAAbAAwAAQAAAAMAAAAbAAsAAQADAAMAAAAbAAoAAQAAAAMAAAAbAAkAAQABAAMAAAAbAAgAAQABAAMAAAAbAAcAAQAAAAMAAAAbAAYAAQAAAAMAAAAbAAUAAQADAAMAAAAbAAQAAQAAAAMAAAAbAAMAAQAAAAMAAAAbAAIAAQACAAMAAAAbAAEAAQAAAAMAAAAbAAAAAQAAAAMAAAAbAP//AQAAAAMAAAAbAP7/AQAAAAMAAAAbAP3/AQAAAAMAAAAbAPn/AQAAAAMAAAAbAPj/AQAAAAMAAAAbAPf/AQAAAAMAAAAbAPb/AQAAAAMAAAAaABIAAQABAAIAAAAaABEAAQAAAAMAAAAaABAAAQAAAAMAAAAaAA8AAQABAAMAAAAaAA4AAQAAAAMAAAAaAA0AAQAAAAMAAAAaAAwAAQACAAMAAAAaAAsAAQAAAAMAAAAaAAoAAQACAAMAAAAaAAkAAQACAAMAAAAaAAgAAQAAAAMAAAAaAAcAAQADAAMAAAAaAAYAAQAAAAMAAAAaAAUAAQADAAMAAAAaAAQAAQAAAAMAAAAaAAMAAQAAAAMAAAAaAAIAAQAAAAMAAAAaAAEAAQAAAAMAAAAaAAAAAQAAAAMAAAAaAP//AQAAAAMAAAAaAP7/AQAAAAMAAAAaAP3/AQAAAAMAAAAaAPz/AQAAAAMAAAAaAPv/AQADAAMAAAAaAPr/AQAAAAMAAAAaAPf/AQAAAAMAAAAaAPb/AQADAAMAAAAZABIAAQABAAIAAAAZABEAAQAAAAMAAAAZABAAAQAAAAMAAAAZAA8AAQAAAAMAAAAZAA4AAQAAAAMAAAAZAA0AAQAAAAMAAAAZAAwAAQACAAMAAAAZAAsAAQAAAAMAAAAZAAoAAQAAAAMAAAAZAAkAAQACAAMAAAAZAAgAAQAAAAMAAAAZAAcAAQAAAAMAAAAZAAYAAQAAAAMAAAAZAAUAAQAAAAMAAAAZAAQAAQAAAAMAAAAZAAMAAQAAAAMAAAAZAAIAAQAAAAMAAAAZAAEAAQAAAAMAAAAZAAAAAQAAAAMAAAAZAP//AQAAAAMAAAAZAP7/AQAAAAMAAAAZAP3/AQACAAMAAAAZAPz/AQABAAMAAAAZAPv/AQACAAMAAAAZAPr/AQAAAAMAAAAZAPn/AQAAAAMAAAAZAPb/AQAAAAMAAAAYABIAAQABAAIAAAAYABEAAQACAAMAAAAYABAAAQAAAAMAAAAYAA8AAQAAAAMAAAAYAA4AAQAAAAMAAAAYAA0AAQAAAAMAAAAYAAwAAQAAAAMAAAAYAAsAAQAAAAMAAAAYAAoAAQAAAAMAAAAYAAkAAQAAAAMAAAAYAAgAAQACAAMAAAAYAAcAAQAAAAMAAAAYAAYAAQAAAAMAAAAYAAUAAQAAAAMAAAAYAAQAAQABAAMAAAAYAAMAAQAAAAMAAAAYAAIAAQAAAAMAAAAYAAEAAQAAAAMAAAAYAAAAAQAAAAMAAAAYAP//AQAAAAMAAAAYAP7/AQAAAAMAAAAYAP3/AQABAAMAAAAYAPz/AQAAAAMAAAAYAPv/AQAAAAMAAAAYAPr/AQAAAAMAAAAYAPn/AQAAAAMAAAAYAPj/AQAAAAMAAAAYAPb/AQAAAAMAAAAXABIAAQADAAAAAAAXABEAAQAAAAEAAAAXABAAAQAAAAEAAAAXAA8AAQAAAAEAAAAXAA4AAQAAAAEAAAAXAA0AAQAAAAEAAAAXAAwAAQACAAEAAAAXAAsAAQAAAAMAAAAXAAoAAQACAAIAAAAXAAkAAQAAAAEAAAAXAAgAAQAAAAEAAAAXAAcAAQAAAAEAAAAXAAYAAQAAAAEAAAAXAAUAAQAAAAEAAAAXAAQAAQAAAAEAAAAXAAMAAQAAAAEAAAAXAAIAAQACAAEAAAAXAAEAAQAAAAMAAAAXAAAAAQAAAAMAAAAXAP//AQADAAMAAAAXAP7/AQAAAAMAAAAXAP3/AQADAAMAAAAXAPz/AQADAAMAAAAXAPv/AQAAAAMAAAAXAPr/AQAAAAMAAAAXAPn/AQAAAAMAAAAXAPj/AQAAAAMAAAAXAPf/AQAAAAMAAAAfABUAAQABAAAAAAAfABQAAQAAAAIAAAAfABMAAQAAAAIAAAAeABUAAQABAAIAAAAeABQAAQAAAAMAAAAeABMAAQAAAAMAAAAdABUAAQADAAAAAAAdABQAAQAAAAEAAAAdABMAAQAAAAEAAAAoAAwAAQABAAAAAAAoAAsAAQAAAAIAAAAoAAoAAQACAAAAAAAnAAwAAQABAAIAAAAnAAsAAQAAAAMAAAAnAAoAAQABAAEAAAAmAAwAAQABAAIAAAAmAAsAAQAAAAMAAAAmAAoAAQABAAEAAAANAAUAAQABAAAAAAANAAQAAQAAAAIAAAANAAMAAQAAAAIAAAAMAAUAAQABAAIAAAAMAAQAAQAAAAMAAAAMAAMAAQAAAAMAAAALAAUAAQADAAAAAAALAAQAAQAAAAEAAAALAAMAAQAAAAEAAAADAP3/AQABAAIAAAADAPz/AQAAAAMAAAADAPv/AQABAAEAAAACAP3/AQABAAIAAAACAPz/AQAAAAMAAAACAPv/AQABAAEAAAABAP3/AQADAAAAAAABAPz/AQAAAAEAAAABAPv/AQAAAAAAAAAlAPX/AQACAAAAAAAkAPX/AQABAAEAAAAjAPX/AQABAAEAAAAiAPX/AQABAAEAAAAhAPX/AQABAAEAAAAgAPX/AQABAAEAAAAfAPX/AQABAAEAAAAeAPX/AQABAAEAAAAdAPX/AQABAAEAAAAcAPX/AQABAAEAAAAbAPX/AQABAAEAAAAaAPX/AQABAAEAAAAZAPX/AQABAAEAAAAYAPX/AQABAAEAAAAXAPX/AQABAAEAAAAWAPX/AQABAAEAAAAVAPX/AQABAAEAAAAUAPX/AQABAAEAAAATAPX/AQABAAEAAAASAPX/AQABAAEAAAARAPX/AQABAAEAAAAQAPX/AQABAAEAAAAPAPX/AQABAAEAAAAOAPX/AQABAAEAAAANAPX/AQABAAEAAAAMAPX/AQADAAEAAAALAPX/AQADAAMAAAAKAPX/AQACAAIAAAAJAPX/AQABAAEAAAAIAPX/AQABAAEAAAAHAPX/AQABAAEAAAAGAPX/AQABAAEAAAAFAPX/AQABAAEAAAAEAPX/AQAAAAAAAAAMAPT/AQAAAAIAAAAMAPP/AQAAAAIAAAAMAPL/AQACAAAAAAALAPT/AQAAAAMAAAALAPP/AQADAAMAAAALAPL/AQABAAEAAAAKAPT/AQAAAAEAAAAKAPP/AQAAAAEAAAAKAPL/AQAAAAAAAAAWAAwAAQABAAIAAAAWAAsAAQAAAAMAAAAWAAoAAQABAAEAAAAVAAwAAQABAAIAAAAVAAsAAQACAAMAAAAVAAoAAQABAAEAAAAUAAwAAQADAAAAAAAUAAsAAQAAAAEAAAAUAAoAAQAAAAAAAAA=") [node name="ObstacleLayer" parent="Background" instance=ExtResource("4_ovrti")] -tile_map_data = PackedByteArray("AAATAAAAAAACAAAAAAATAP//AAACAAAAAAATAP7/AAACAAAAAAATAP3/AAAAAAAAAAAUAP3/AAADAAAAAAAVAP3/AAADAAAAAAAWAP3/AAADAAAAAAAXAP3/AAADAAAAAAAYAP3/AAADAAAAAAAZAP3/AAADAAAAAAAZAP7/AAAFAAAAAAAZAP//AAACAAAAAAAZAAAAAAACAAAAAAAZAAEAAAACAAAAAAAZAAIAAAACAAAAAAAZAAMAAAACAAAAAAAZAAQAAAACAAAAAAAZAAUAAAACAAAAAAAZAAYAAAABAAAAAAAYAAYAAAADAAAAAAAXAAYAAAADAAAAAAAWAAYAAAAAAAAAAAATAAEAAAACAAAAAAA=") +tile_map_data = PackedByteArray("AAAMAPr/AAAAAAAAAAAMAPv/AAACAAAAAAAMAPz/AAACAAAAAAAMAP3/AAACAAAAAAANAPr/AAADAAAAAAANAPv/AAAGAAAAAAANAPz/AAAGAAAAAAANAP3/AAAGAAAAAAAWAPr/AAAAAAAAAAAWAPv/AAACAAAAAAAXAPr/AAADAAAAAAAXAPv/AAAGAAAAAAAYAPr/AAADAAAAAAAYAPv/AAAGAAAAAAAZAPr/AAADAAAAAAAZAPv/AAAGAAAAAAAaAPr/AAADAAAAAAAaAPv/AAAGAAAAAAAbAPr/AAADAAAAAAAbAPv/AAAGAAAAAAAcAAEAAAAAAAAAAAAcAAIAAAACAAAAAAAcAAMAAAACAAAAAAAcAAQAAAACAAAAAAAcAAUAAAACAAAAAAAcAAYAAAACAAAAAAAcAAcAAAACAAAAAAAdAAEAAAADAAAAAAAdAAIAAAAGAAAAAAAdAAMAAAAGAAAAAAAdAAQAAAAGAAAAAAAdAAUAAAAGAAAAAAAdAAYAAAAGAAAAAAAdAAcAAAAGAAAAAAAeAAEAAAADAAAAAAAeAAIAAAAGAAAAAAAeAAMAAAAGAAAAAAAeAAQAAAAGAAAAAAAeAAUAAAAGAAAAAAAeAAYAAAAGAAAAAAAeAAcAAAAGAAAAAAA=") [node name="Behind" type="Node2D" parent="."] @@ -48,35 +49,40 @@ reference_node = NodePath("..") reference_resource = ExtResource("4_v3gx0") [node name="SceneDoor" parent="Behind" instance=ExtResource("5_e8dey")] -position = Vector2(161, 367) +position = Vector2(401, -6) target_layer = 2 scene_path = "res://addons/top_down/scenes/levels/level_0.tscn" -[node name="YSorted" type="Node2D" parent="."] +[node name="SpawnPoints" type="Node2D" parent="Behind"] + +[node name="Spawn_0" type="Marker2D" parent="Behind/SpawnPoints"] +position = Vector2(179, 263) + +[node name="Spawn_1" type="Marker2D" parent="Behind/SpawnPoints"] +position = Vector2(142, 138) + +[node name="Spawn_2" type="Marker2D" parent="Behind/SpawnPoints"] +position = Vector2(465, 408) + +[node name="Spawn_3" type="Marker2D" parent="Behind/SpawnPoints"] +position = Vector2(111, -11) + +[node name="YSortedLayer" parent="." instance=ExtResource("4_ovrti")] y_sort_enabled = true +tile_map_data = PackedByteArray("AAABAP3/AAABAAIAAAACAP3/AAABAAIAAAAEAAIAAAABAAIAAAAFAAIAAAABAAIAAAAGAAIAAAABAAIAAAAHAAIAAAABAAIAAAAIAAIAAAABAAIAAAAJAAIAAAABAAIAAAALAAUAAAABAAIAAAAMAAUAAAABAAIAAAAOAAIAAAABAAIAAAAPAAIAAAABAAIAAAAQAAIAAAABAAIAAAARAAIAAAABAAIAAAASAAIAAAABAAIAAAATAAIAAAABAAIAAAAUAAIAAAABAAIAAAAVAAIAAAABAAIAAAAUAAwAAAABAAIAAAAVAAwAAAABAAIAAAAXABIAAAABAAIAAAAYABIAAAABAAIAAAAZABIAAAABAAIAAAAaABIAAAABAAIAAAAbABIAAAABAAIAAAAdABUAAAABAAIAAAAeABUAAAABAAIAAAAfABUAAAABAAAAAAAgABIAAAABAAIAAAAhABIAAAABAAIAAAAiABIAAAABAAIAAAAjABIAAAABAAIAAAAkABIAAAABAAIAAAAlABIAAAABAAAAAAAmAAwAAAABAAIAAAAnAAwAAAABAAIAAAAoAAwAAAABAAAAAAANAAMAAAAAAAIAAAANAAQAAAAAAAIAAAAMAPL/AAAAAAIAAAAMAPP/AAAAAAIAAAAMAPT/AAAAAAIAAAAlAPX/AAAAAAIAAAAlAPb/AAAAAAIAAAAlAPf/AAAAAAIAAAAlAPj/AAAAAAIAAAAlAPn/AAAAAAIAAAAlAPr/AAAAAAIAAAAlAPv/AAAAAAIAAAAlAPz/AAAAAAIAAAAlAP3/AAAAAAIAAAAlAP7/AAAAAAIAAAAlAP//AAAAAAIAAAAlAAAAAAAAAAIAAAAlAAEAAAAAAAIAAAAlAAIAAAAAAAIAAAAlAAMAAAAAAAIAAAAlAAQAAAAAAAIAAAAlAAUAAAAAAAIAAAAlAAYAAAAAAAIAAAAlAAcAAAAAAAIAAAAlAAgAAAAAAAIAAAAlAAkAAAADAAEAAAAoAAoAAAAAAAIAAAAoAAsAAAAAAAIAAAAlAA0AAAAAAAIAAAAlAA4AAAAAAAIAAAAlAA8AAAAAAAIAAAAlABAAAAAAAAIAAAAlABEAAAAAAAIAAAAfABMAAAAAAAIAAAAfABQAAAAAAAIAAAAlAAwAAAADAAIAAAAfABIAAAADAAIAAAANAAIAAAADAAIAAAAcABUAAAADAAAAAAAWABIAAAADAAAAAAATAAwAAAADAAAAAAAKAAUAAAADAAAAAAADAAIAAAADAAAAAAAAAP3/AAADAAAAAAAoAAkAAAACAAAAAAAMAPH/AAACAAAAAAAlAPT/AAACAAAAAAANAAUAAAABAAAAAAAcABQAAAAAAAEAAAAcABMAAAAAAAEAAAAWABEAAAAAAAEAAAAWABAAAAAAAAEAAAAWAA8AAAAAAAEAAAAWAA4AAAAAAAEAAAAWAA0AAAAAAAEAAAAKAAQAAAAAAAEAAAAKAAMAAAAAAAEAAAADAAEAAAAAAAEAAAADAAAAAAAAAAEAAAADAP//AAAAAAEAAAADAP7/AAAAAAEAAAADAPn/AAAAAAEAAAADAPj/AAAAAAEAAAADAPf/AAAAAAEAAAADAPb/AAAAAAEAAAADAPX/AAAAAAEAAAAAAPz/AAAAAAEAAAAAAPv/AAAAAAEAAAAJAPP/AAAAAAEAAAAJAPL/AAAAAAEAAAAWAAgAAAAAAAEAAAAWAAcAAAAAAAEAAAAWAAYAAAAAAAEAAAAWAAUAAAAAAAEAAAAWAAQAAAAAAAEAAAAWAAMAAAAAAAEAAAATAAsAAAAAAAEAAAATAAoAAAAAAAEAAAAWAAwAAAACAAEAAAAWAAIAAAACAAEAAAAKAAIAAAACAAEAAAADAP3/AAACAAEAAAAmAAkAAAABAAEAAAAnAAkAAAABAAEAAAAkAPT/AAABAAEAAAAjAPT/AAABAAEAAAAiAPT/AAABAAEAAAAhAPT/AAABAAEAAAAgAPT/AAABAAEAAAAfAPT/AAABAAEAAAAeAPT/AAABAAEAAAAdAPT/AAABAAEAAAAcAPT/AAABAAEAAAAbAPT/AAABAAEAAAAaAPT/AAABAAEAAAAZAPT/AAABAAEAAAAYAPT/AAABAAEAAAAXAPT/AAABAAEAAAAWAPT/AAABAAEAAAAVAPT/AAABAAEAAAAUAPT/AAABAAEAAAATAPT/AAABAAEAAAASAPT/AAABAAEAAAARAPT/AAABAAEAAAAQAPT/AAABAAEAAAAPAPT/AAABAAEAAAAOAPT/AAABAAEAAAANAPT/AAABAAEAAAALAPH/AAABAAEAAAAKAPH/AAABAAEAAAAHAPT/AAABAAEAAAAIAPT/AAABAAEAAAAGAPT/AAABAAEAAAAFAPT/AAABAAEAAAAEAPT/AAABAAEAAAACAPr/AAABAAEAAAABAPr/AAABAAEAAAAVAAkAAAABAAEAAAAUAAkAAAABAAEAAAATAAkAAAAAAAAAAAAAAPr/AAAAAAAAAAADAPT/AAAAAAAAAAAJAPH/AAAAAAAAAAAJAPT/AAACAAIAAAADAPr/AAACAAIAAAAWAAkAAAACAAIAAAA=") +tile_set = ExtResource("6_y1m26") +collision_layer = 9 -[node name="ReferenceYsort" type="Node" parent="YSorted" node_paths=PackedStringArray("reference_node")] +[node name="ReferenceYsort" type="Node" parent="YSortedLayer" node_paths=PackedStringArray("reference_node")] script = ExtResource("2_u833f") reference_node = NodePath("..") reference_resource = ExtResource("5_i00n6") -[node name="Player" parent="YSorted" instance=ExtResource("6_vhrna")] -position = Vector2(336, 210) +[node name="Player" parent="YSortedLayer" instance=ExtResource("6_vhrna")] +position = Vector2(447, 190) motion_mode = 0 platform_on_leave = 0 -[node name="Spawn_0" type="Marker2D" parent="YSorted"] -position = Vector2(193, 234) - -[node name="Spawn_1" type="Marker2D" parent="YSorted"] -position = Vector2(128, -7) - -[node name="Spawn_2" type="Marker2D" parent="YSorted"] -position = Vector2(414, 343) - -[node name="Spawn_3" type="Marker2D" parent="YSorted"] -position = Vector2(335, -32) - [node name="Front" type="Node2D" parent="."] [node name="ReferenceFront" type="Node" parent="Front" node_paths=PackedStringArray("reference_node")] @@ -85,7 +91,7 @@ reference_node = NodePath("..") reference_resource = ExtResource("7_k5or1") [node name="MainCamera" parent="." node_paths=PackedStringArray("target") instance=ExtResource("8_n2c08")] -target = NodePath("../YSorted/Player") +target = NodePath("../YSortedLayer/Player") [node name="ReferenceNodeSetter" type="Node" parent="MainCamera" node_paths=PackedStringArray("reference_node")] script = ExtResource("2_u833f") @@ -97,8 +103,8 @@ reference_resource = ExtResource("9_yemjt") [node name="UI" parent="." instance=ExtResource("11_158uc")] [node name="EnemySpawner" parent="." node_paths=PackedStringArray("spawn_positions_list", "spawn_parent") instance=ExtResource("12_cmw5m")] -spawn_positions_list = [NodePath("../YSorted/Spawn_0"), NodePath("../YSorted/Spawn_1"), NodePath("../YSorted/Spawn_2"), NodePath("../YSorted/Spawn_3")] -spawn_parent = NodePath("../YSorted") +spawn_positions_list = [NodePath("../Behind/SpawnPoints/Spawn_0"), NodePath("../Behind/SpawnPoints/Spawn_1"), NodePath("../Behind/SpawnPoints/Spawn_2"), NodePath("../Behind/SpawnPoints/Spawn_3")] +spawn_parent = NodePath("../YSortedLayer") radius_min = 0.0 radius_max = 16.0 @@ -110,7 +116,7 @@ paused_nodes = [NodePath("..")] [node name="RestartScene" type="Node" parent="." node_paths=PackedStringArray("player")] script = ExtResource("15_040fu") -player = NodePath("../YSorted/Player") +player = NodePath("../YSortedLayer/Player") [node name="MusicSetter" type="Node" parent="."] script = ExtResource("16_qa8j7") diff --git a/addons/top_down/scripts/actor/bots/TargetDirection.gd b/addons/top_down/scripts/actor/bots/TargetDirection.gd index 62a5cc93..16855dd4 100644 --- a/addons/top_down/scripts/actor/bots/TargetDirection.gd +++ b/addons/top_down/scripts/actor/bots/TargetDirection.gd @@ -34,11 +34,7 @@ func on_target_update()->void: var local_dir_len:float = local_direction.length_squared() var attack_dist_squared:float = bot_input.attack_distance * bot_input.attack_distance - if (local_dir_len < attack_dist_squared): - set_direction(Vector2.ZERO) - return - # TODO: block with obstacles if line_of_sight(): set_direction(local_direction) return