diff --git a/assets/first_party/sounds/characters/player/FootStepsSounds/SandSound.wav b/assets/first_party/sounds/characters/player/FootStepsSounds/SandSound.wav new file mode 100644 index 000000000..8be6e3691 --- /dev/null +++ b/assets/first_party/sounds/characters/player/FootStepsSounds/SandSound.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5d125551fba19b342da87fc1305b8bfa1f02239572a0da3febd8d30f07b2ddf +size 204068 diff --git a/assets/first_party/sounds/characters/player/FootStepsSounds/SandSound.wav.import b/assets/first_party/sounds/characters/player/FootStepsSounds/SandSound.wav.import new file mode 100644 index 000000000..7cd0b71a3 --- /dev/null +++ b/assets/first_party/sounds/characters/player/FootStepsSounds/SandSound.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://ddrhppyp6mmdf" +path="res://.godot/imported/SandSound.wav-6516c359f7d7316653f6666842461144.sample" + +[deps] + +source_file="res://assets/first_party/sounds/characters/player/FootStepsSounds/SandSound.wav" +dest_files=["res://.godot/imported/SandSound.wav-6516c359f7d7316653f6666842461144.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/assets/first_party/sounds/characters/player/FootStepsSounds/StoneSound.wav b/assets/first_party/sounds/characters/player/FootStepsSounds/StoneSound.wav new file mode 100644 index 000000000..32134122e --- /dev/null +++ b/assets/first_party/sounds/characters/player/FootStepsSounds/StoneSound.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d12f864d0329dcd66bc06c02cdf628e04dc313242453a8270c78206da9c3a5e9 +size 93130 diff --git a/assets/first_party/sounds/characters/player/FootStepsSounds/StoneSound.wav.import b/assets/first_party/sounds/characters/player/FootStepsSounds/StoneSound.wav.import new file mode 100644 index 000000000..04ed8bb58 --- /dev/null +++ b/assets/first_party/sounds/characters/player/FootStepsSounds/StoneSound.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cbxuw1d1v2w2u" +path="res://.godot/imported/StoneSound.wav-578509cf6a7f7f293a06566d5006f006.sample" + +[deps] + +source_file="res://assets/first_party/sounds/characters/player/FootStepsSounds/StoneSound.wav" +dest_files=["res://.godot/imported/StoneSound.wav-578509cf6a7f7f293a06566d5006f006.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/assets/first_party/sounds/characters/player/FootStepsSounds/WoodSound.wav b/assets/first_party/sounds/characters/player/FootStepsSounds/WoodSound.wav new file mode 100644 index 000000000..cf465b958 --- /dev/null +++ b/assets/first_party/sounds/characters/player/FootStepsSounds/WoodSound.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cfbe848e7735bf9ebcb0df2e913ca2279253f06845f87588a76a0bb47859de7 +size 89858 diff --git a/assets/first_party/sounds/characters/player/FootStepsSounds/WoodSound.wav.import b/assets/first_party/sounds/characters/player/FootStepsSounds/WoodSound.wav.import new file mode 100644 index 000000000..644e92aac --- /dev/null +++ b/assets/first_party/sounds/characters/player/FootStepsSounds/WoodSound.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://s4xqcdhebvsj" +path="res://.godot/imported/WoodSound.wav-91f3d45719b6eb24d88bf2dae0c81cd8.sample" + +[deps] + +source_file="res://assets/first_party/sounds/characters/player/FootStepsSounds/WoodSound.wav" +dest_files=["res://.godot/imported/WoodSound.wav-91f3d45719b6eb24d88bf2dae0c81cd8.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/scenes/dev/footstep_sound/footstep_sound_test.tscn b/scenes/dev/footstep_sound/footstep_sound_test.tscn new file mode 100644 index 000000000..029c7f330 --- /dev/null +++ b/scenes/dev/footstep_sound/footstep_sound_test.tscn @@ -0,0 +1,383 @@ +[gd_scene format=4 uid="uid://b1cv248agci6u"] + +[ext_resource type="TileSet" uid="uid://oynx002hv8tl" path="res://tiles/water.tres" id="1_0w1we"] +[ext_resource type="Script" uid="uid://ctko5bdas16ah" path="res://scenes/game_logic/canvasitem_behaviors/modulate_as_sky_behavior.gd" id="2_rsp3k"] +[ext_resource type="TileSet" uid="uid://bjx3gvah0ycl1" path="res://tiles/foam_2.tres" id="3_gov2d"] +[ext_resource type="TileSet" uid="uid://b8qnr0owsbhhn" path="res://tiles/exterior_floors.tres" id="4_624lb"] +[ext_resource type="TileSet" uid="uid://b778cuoftt88r" path="res://tiles/elevation_2.tres" id="6_dlg2k"] +[ext_resource type="TileSet" uid="uid://do0ffypatd77h" path="res://tiles/bridges.tres" id="8_yc3gb"] +[ext_resource type="Shader" uid="uid://dui35fhf12sp5" path="res://scenes/game_elements/fx/world_rewoven/components/world_rewoven.gdshader" id="9_hmlhw"] +[ext_resource type="Texture2D" uid="uid://drlsbgxh5e6vv" path="res://scenes/game_elements/fx/world_rewoven/components/fabric_texture.png" id="10_ft4fi"] +[ext_resource type="Material" uid="uid://64aeyjitacv3" path="res://scenes/game_elements/props/void/void_chromakey_material.tres" id="11_wqq3f"] +[ext_resource type="TileSet" uid="uid://ciq5guijvlyb0" path="res://tiles/void_chromakey.tres" id="12_qle5m"] +[ext_resource type="Script" uid="uid://c5jp8y8mpge4w" path="res://scenes/game_elements/props/toggleable_tile_map_layer/toggleable_tile_map_layer.gd" id="13_p1mrv"] +[ext_resource type="Script" uid="uid://dpw8lcjx68p3o" path="res://scenes/game_elements/fx/world_rewoven/components/tile_map_mask_bounds.gd" id="14_y56e6"] +[ext_resource type="PackedScene" uid="uid://iu2q66clupc6" path="res://scenes/game_elements/characters/player/player.tscn" id="15_wvf6x"] +[ext_resource type="SpriteFrames" uid="uid://dtoylirwywk0j" path="res://scenes/game_elements/characters/components/sprite_frames/storyweaver_blue.tres" id="16_vjxnc"] +[ext_resource type="PackedScene" uid="uid://covsdqqsd6rsy" path="res://scenes/game_elements/props/sign/sign.tscn" id="17_rsp3k"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_4orbe"] +seed = 5566801 +frequency = 0.0148 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_ulm71"] +width = 32 +height = 64 +noise = SubResource("FastNoiseLite_4orbe") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_lil82"] +shader = ExtResource("9_hmlhw") +shader_parameter/mask_texture = SubResource("NoiseTexture2D_ulm71") +shader_parameter/mask_origin = Vector2(-64, 320) +shader_parameter/mask_size = Vector2(192, 640) +shader_parameter/fabric_texture = ExtResource("10_ft4fi") +shader_parameter/fabric_scale = 1.0 +shader_parameter/progress = 1.0 +shader_parameter/target_canvas_group = true +shader_parameter/smoothness = 0.4910000233225 +shader_parameter/burn_size = 0.4470000212325 +shader_parameter/burn_color = Color(1.1281133, 0.7659265, 1.353256, 1) +shader_parameter/canvas_modulate = Color(1, 1, 1, 1) +shader_parameter/gray_intensity = 0.0 + +[sub_resource type="Gradient" id="Gradient_vmuao"] +colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_f3823"] +gradient = SubResource("Gradient_vmuao") +fill_from = Vector2(0, 1) +fill_to = Vector2(0, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_pa3cy"] +shader = ExtResource("9_hmlhw") +shader_parameter/mask_texture = SubResource("GradientTexture2D_f3823") +shader_parameter/mask_origin = Vector2(2624, 1728) +shader_parameter/mask_size = Vector2(64, 384) +shader_parameter/fabric_texture = ExtResource("10_ft4fi") +shader_parameter/fabric_scale = 1.0 +shader_parameter/progress = 1.0 +shader_parameter/target_canvas_group = false +shader_parameter/smoothness = 0.3230000153425 +shader_parameter/burn_size = 0.3430000162925 +shader_parameter/burn_color = Color(1.353, 1.353, 0.777, 1) +shader_parameter/canvas_modulate = Color(1, 1, 1, 1) +shader_parameter/gray_intensity = 0.0 + +[sub_resource type="Shader" id="Shader_t7c6s"] +code = "/** + * This is intended to be applied to a CanvasGroup material. + * SPDX-FileCopyrightText: The Threadbare Authors + * SPDX-License-Identifier: MPL-2.0 + */ +shader_type canvas_item; +// Not unshaded: the engine only applies the color of a CanvasModulate, and 2D +// lights, to canvas items that are not unshaded. Without this, a node using this +// shader stays untinted while the rest of the scene is tinted. + +uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest; + +/** + * Grayscale texture with the pattern of the fade. + */ +uniform sampler2D mask_texture : hint_default_white, repeat_disable; + +/** + * Origin, in world units, of the region the fade mask is stretched across. + */ +uniform vec2 mask_origin = vec2(0.0); + +/** + * Size, in world units, of the region the fade mask is stretched across. Set + * this together with [member mask_origin] to the bounds of the affected area, + * so the mask spans it exactly once whether this material is applied to a + * [CanvasGroup] or to a single [CanvasItem] such as a [TileMapLayer]. + */ +uniform vec2 mask_size = vec2(1920.0, 1080.0); + +/** + * Grayscale texture with a fabric pattern to multiply the fade mask. + */ +uniform sampler2D fabric_texture : repeat_enable; + +/** + * Scale of the fabric pattern texture, in world units per texel. At 1.0 the + * fabric is sampled at the same resolution as the world, so one texel of the + * texture covers exactly one world pixel. + */ +uniform float fabric_scale : hint_range(0.01, 30.0) = 1.0; + +/** + * Fade progress: 0.0 is fully hidden, 1.0 is fully visible + */ +uniform float progress : hint_range(0.0, 1.0) = 0.0; + +/** + * Wether to target a CanvasGroup node or a single CanvasItem. + */ +uniform bool target_canvas_group = true; + +/** + * How smooth is the edge of the fade. + */ +uniform float smoothness : hint_range(0.0, 1.0) = 0.1; + +/** + * How long is the edge of the fade. + */ +uniform float burn_size : hint_range(0.0, 1.0) = 0.15; + +/** + * The burn color. Brighter than white, so that it reads as light. + */ +uniform vec4 burn_color : source_color = vec4(1.353, 1.353, 0.777, 1.0); + +/** + * Color of the [CanvasModulate] of the scene, if there is one. The burn is + * divided by it, so that the multiplication the engine does afterwards cancels + * out and the burn keeps its full brightness, as if it was made of light. + */ +uniform vec4 canvas_modulate : source_color = vec4(1.0, 1.0, 1.0, 1.0); + +/** + * How gray is the existing color (not the burn). + */ +uniform float gray_intensity : hint_range(0.0, 1.0) = 0.0; + +/** + * Position of the fragment in world space, so the fabric pattern is anchored to + * the world instead of to the screen. + */ +varying vec2 world_position; + +void vertex() { + world_position = (MODEL_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy; +} + +void fragment() { + // Sample the main texture color of the node + vec4 main_color; + if (target_canvas_group) { + main_color = textureLod(screen_texture, SCREEN_UV, 0.0); + if (main_color.a > 0.0001) { + main_color.rgb /= main_color.a; + } + } else { + // COLOR already holds the texture multiplied by the node's modulate, so + // sampling TEXTURE again here would apply the texture twice and darken + // the result. + main_color = COLOR; + } + + // A gray version of the main color. + float gray = dot(main_color.rgb, vec3(0.299, 0.587, 0.114)); + + // Sample the mask texture value (taking the red channel). Using world + // position instead of UV, because on a TileMapLayer UV is the coordinate + // into the tileset atlas of each individual tile, not a coordinate across + // the whole node, which would repeat the mask on every tile. + vec2 mask_uv = (world_position - mask_origin) / mask_size; + float mask_value = texture(mask_texture, mask_uv).r; + + // Sample the fabric pattern texture (taking the red channel). Sampling by + // world position gives the pattern a fixed size in world units, so it grows + // when zooming in and scrolls along with the camera. Dividing by the texture + // size turns world units into UVs, so at fabric_scale 1.0 one texel covers + // one world pixel. + vec2 fabric_uv = world_position / (vec2(textureSize(fabric_texture, 0)) * fabric_scale); + float fabric_value = 1. - texture(fabric_texture, fabric_uv).r; + + // Sweep the threshold slightly past the 0.0 to 1.0 range of the mask, by the + // width of the widest edge, so that progress 0.0 hides every pixel and + // progress 1.0 shows every pixel, whatever the mask texture contains. In + // between, the mask still drives the shape of the transition. + float edge_size = max(smoothness, burn_size); + float threshold = 1.0 - progress * (1.0 + edge_size); + + // Calculate a clean alpha cutoff based on progress using smoothness. + float alpha = smoothstep(threshold, threshold + smoothness, mask_value); + + // Calculate the burn, using burn_size. + float burn = smoothstep(threshold + burn_size, threshold, mask_value); + + vec3 final_color = main_color.rgb; + // Apply gray: + final_color = mix(final_color, vec3(gray), gray_intensity); + // Apply burn, undoing the canvas modulate so that it looks unshaded: + if (burn_size != 0.0) { + vec3 unshaded_burn = burn_color.rgb / max(canvas_modulate.rgb, vec3(0.001)); + final_color = mix(final_color, unshaded_burn, burn * burn_color.a); + } + // Apply the fabric texture. + alpha *= 2.2 * smoothstep(0., fabric_value, alpha); + + COLOR = vec4(final_color, main_color.a * alpha); +} +" + +[sub_resource type="Gradient" id="Gradient_7cqr6"] +offsets = PackedFloat32Array(0, 0.8095238, 1) +colors = PackedColorArray(0.37413925, 0.37413928, 0.37413922, 1, 0, 0, 0, 1, 0.37254903, 0.37254903, 0.37254903, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_jm52i"] +gradient = SubResource("Gradient_7cqr6") +fill_from = Vector2(0.5, 1) +fill_to = Vector2(0.5, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gs8yf"] +shader = SubResource("Shader_t7c6s") +shader_parameter/mask_texture = SubResource("GradientTexture2D_jm52i") +shader_parameter/mask_origin = Vector2(2624, 1728) +shader_parameter/mask_size = Vector2(64, 384) +shader_parameter/fabric_texture = ExtResource("10_ft4fi") +shader_parameter/fabric_scale = 1.0 +shader_parameter/progress = 1.0 +shader_parameter/target_canvas_group = false +shader_parameter/smoothness = 0.3230000153425 +shader_parameter/burn_size = 0.3430000162925 +shader_parameter/burn_color = Color(1.353, 1.353, 0.777, 1) +shader_parameter/canvas_modulate = Color(1, 1, 1, 1) +shader_parameter/gray_intensity = 0.0 + +[node name="FootstepSoundTest" type="Node2D" unique_id=457282270] + +[node name="TileMapLayers" type="Node2D" parent="." unique_id=273877501] + +[node name="Water" type="TileMapLayer" parent="TileMapLayers" unique_id=214056436] +tile_map_data = PackedByteArray("AAABABcAAAAAAAAAAAABABYAAAAAAAAAAAACABcAAAAAAAAAAAACABYAAAAAAAAAAAACABUAAAAAAAAAAAADABUAAAAAAAAAAAAEABUAAAAAAAAAAAADABYAAAAAAAAAAAAEABYAAAAAAAAAAAAFABYAAAAAAAAAAAAFABUAAAAAAAAAAAAGABYAAAAAAAAAAAAGABUAAAAAAAAAAAAHABUAAAAAAAAAAAAHABYAAAAAAAAAAAAIABUAAAAAAAAAAAAIABQAAAAAAAAAAAAJABQAAAAAAAAAAAAKABQAAAAAAAAAAAAKABUAAAAAAAAAAAAJABUAAAAAAAAAAAALABUAAAAAAAAAAAAMABUAAAAAAAAAAAANABUAAAAAAAAAAAANABQAAAAAAAAAAAAMABQAAAAAAAAAAAALABQAAAAAAAAAAAAOABQAAAAAAAAAAAAOABUAAAAAAAAAAAAQABUAAAAAAAAAAAARABUAAAAAAAAAAAARABQAAAAAAAAAAAAQABQAAAAAAAAAAAASABQAAAAAAAAAAAATABQAAAAAAAAAAAAUABQAAAAAAAAAAAAVABQAAAAAAAAAAAAWABQAAAAAAAAAAAAXABQAAAAAAAAAAAAYABQAAAAAAAAAAAAZABQAAAAAAAAAAAAaABQAAAAAAAAAAAAaABUAAAAAAAAAAAAZABUAAAAAAAAAAAAYABUAAAAAAAAAAAAXABUAAAAAAAAAAAAWABUAAAAAAAAAAAAVABUAAAAAAAAAAAAUABUAAAAAAAAAAAATABUAAAAAAAAAAAASABUAAAAAAAAAAAAZABYAAAAAAAAAAAAaABYAAAAAAAAAAAAaABcAAAAAAAAAAAAbABcAAAAAAAAAAAAcABcAAAAAAAAAAAAbABgAAAAAAAAAAAAcABgAAAAAAAAAAAAdABgAAAAAAAAAAAAcABkAAAAAAAAAAAAdABkAAAAAAAAAAAAeABkAAAAAAAAAAAAfABkAAAAAAAAAAAAdABoAAAAAAAAAAAAeABoAAAAAAAAAAAAfABoAAAAAAAAAAAADABcAAAAAAAAAAAAEABcAAAAAAAAAAAAFABcAAAAAAAAAAAAGABcAAAAAAAAAAAAHABcAAAAAAAAAAAAIABYAAAAAAAAAAAAJABYAAAAAAAAAAAAKABYAAAAAAAAAAAALABYAAAAAAAAAAAAMABYAAAAAAAAAAAANABYAAAAAAAAAAAAOABYAAAAAAAAAAAAQABYAAAAAAAAAAAARABYAAAAAAAAAAAASABYAAAAAAAAAAAATABYAAAAAAAAAAAAUABYAAAAAAAAAAAAVABYAAAAAAAAAAAAWABYAAAAAAAAAAAAXABYAAAAAAAAAAAAYABYAAAAAAAAAAAAZABcAAAAAAAAAAAAaABgAAAAAAAAAAAAaABkAAAAAAAAAAAAbABkAAAAAAAAAAAAbABoAAAAAAAAAAAAcABoAAAAAAAAAAAAcABQAAAAAAAAAAAAdABQAAAAAAAAAAAAcABUAAAAAAAAAAAAdABUAAAAAAAAAAAAeABUAAAAAAAAAAAAfABUAAAAAAAAAAAAfABYAAAAAAAAAAAAeABYAAAAAAAAAAAAdABYAAAAAAAAAAAAcABYAAAAAAAAAAAAdABcAAAAAAAAAAAAeABcAAAAAAAAAAAAfABcAAAAAAAAAAAAeABgAAAAAAAAAAAAfABgAAAAAAAAAAAAWABcAAAAAAAAAAAAWABgAAAAAAAAAAAAXABgAAAAAAAAAAAAYABgAAAAAAAAAAAAYABcAAAAAAAAAAAAXABcAAAAAAAAAAAAYABkAAAAAAAAAAAAXABkAAAAAAAAAAAAYABoAAAAAAAAAAAAZABkAAAAAAAAAAAAZABgAAAAAAAAAAAAZABoAAAAAAAAAAAAaABoAAAAAAAAAAAAXABoAAAAAAAAAAAAYABsAAAAAAAAAAAAZABsAAAAAAAAAAAAaABsAAAAAAAAAAAAbABsAAAAAAAAAAAAcABsAAAAAAAAAAAAdABsAAAAAAAAAAQAeABsAAAAAAAAAAQAfABsAAAAAAAAAAQAdABwAAAAAAAAAAQAeABwAAAAAAAAAAAAfABwAAAAAAAAAAAAAABYAAAAAAAAAAAAAABcAAAAAAAAAAAABABUAAAAAAAAAAgAAABUAAAAAAAAAAgAbABYAAAAAAAAAAgD//xcAAAAAAAAAAAD//xgAAAAAAAAAAAD//xkAAAAAAAAAAAD//xoAAAAAAAAAAAD//xsAAAAAAAAAAAD//xwAAAAAAAAAAAAPABQAAAAAAAAAAQAPABUAAAAAAAAAAQAPABYAAAAAAAAAAQAbABQAAAAAAAAAAQAbABUAAAAAAAAAAQAAABgAAAAAAAAAAQABABgAAAAAAAAAAQACABgAAAAAAAAAAQADABgAAAAAAAAAAQAEABgAAAAAAAAAAQAFABgAAAAAAAAAAQAGABgAAAAAAAAAAQAHABgAAAAAAAAAAQAIABcAAAAAAAAAAQAJABcAAAAAAAAAAQAKABcAAAAAAAAAAQALABcAAAAAAAAAAQAMABcAAAAAAAAAAQANABcAAAAAAAAAAQAOABcAAAAAAAAAAQAPABcAAAAAAAAAAQAQABcAAAAAAAAAAQARABcAAAAAAAAAAQASABcAAAAAAAAAAQATABcAAAAAAAAAAQAUABcAAAAAAAAAAQAVABcAAAAAAAAAAQAVABgAAAAAAAAAAQAWABkAAAAAAAAAAQAWABoAAAAAAAAAAQAXABsAAAAAAAAAAQAXABwAAAAAAAAAAQAYABwAAAAAAAAAAQAZABwAAAAAAAAAAQAaABwAAAAAAAAAAQAbABwAAAAAAAAAAQAcABwAAAAAAAAAAQAgABsAAAAAAAAAAAAgABwAAAAAAAAAAAAgAB0AAAAAAAAAAAAgAB4AAAAAAAAAAAAgAB8AAAAAAAAAAAAhABsAAAAAAAAAAAAhABwAAAAAAAAAAAAhAB0AAAAAAAAAAAAhAB4AAAAAAAAAAAAhAB8AAAAAAAAAAAAiABsAAAAAAAAAAAAiABwAAAAAAAAAAAAiAB0AAAAAAAAAAAAiAB4AAAAAAAAAAAAiAB8AAAAAAAAAAAAjABsAAAAAAAAAAAAjABwAAAAAAAAAAAAjAB0AAAAAAAAAAAAjAB4AAAAAAAAAAAAjAB8AAAAAAAAAAAAkABsAAAAAAAAAAAAkABwAAAAAAAAAAAAkAB0AAAAAAAAAAAAkAB4AAAAAAAAAAAAkAB8AAAAAAAAAAAAlABsAAAAAAAAAAAAlABwAAAAAAAAAAAAlAB0AAAAAAAAAAAAlAB4AAAAAAAAAAAAlAB8AAAAAAAAAAAAmABsAAAAAAAAAAAAmABwAAAAAAAAAAAAmAB0AAAAAAAAAAAAmAB4AAAAAAAAAAAAmAB8AAAAAAAAAAAAnABsAAAAAAAAAAAAnABwAAAAAAAAAAAAnAB0AAAAAAAAAAAAnAB4AAAAAAAAAAAAnAB8AAAAAAAAAAAAoABwAAAAAAAAAAAAoAB0AAAAAAAAAAAAoAB4AAAAAAAAAAAAoAB8AAAAAAAAAAAApABwAAAAAAAAAAQApAB0AAAAAAAAAAQApAB4AAAAAAAAAAQApAB8AAAAAAAAAAQAqABwAAAAAAAAAAAAqAB0AAAAAAAAAAAAqAB4AAAAAAAAAAAAqAB8AAAAAAAAAAAArABwAAAAAAAAAAAArAB0AAAAAAAAAAAArAB4AAAAAAAAAAAArAB8AAAAAAAAAAAAsABsAAAAAAAAAAAAsABwAAAAAAAAAAAAsAB0AAAAAAAAAAAAsAB4AAAAAAAAAAAAsAB8AAAAAAAAAAAAtABsAAAAAAAAAAAAtABwAAAAAAAAAAAAtAB0AAAAAAAAAAAAtAB4AAAAAAAAAAAAtAB8AAAAAAAAAAAAuABsAAAAAAAAAAAAuABwAAAAAAAAAAAAuAB0AAAAAAAAAAAAuAB4AAAAAAAAAAAAuAB8AAAAAAAAAAAAgABgAAAAAAAAAAAAgABkAAAAAAAAAAAAgABoAAAAAAAAAAAAhABgAAAAAAAAAAAAhABkAAAAAAAAAAAAhABoAAAAAAAAAAAAiABgAAAAAAAAAAAAiABkAAAAAAAAAAAAiABoAAAAAAAAAAAAjABgAAAAAAAAAAAAjABkAAAAAAAAAAAAjABoAAAAAAAAAAAAkABgAAAAAAAAAAAAkABkAAAAAAAAAAAAkABoAAAAAAAAAAAAlABgAAAAAAAAAAAAlABkAAAAAAAAAAAAlABoAAAAAAAAAAAAmABkAAAAAAAAAAAAmABoAAAAAAAAAAAAgABcAAAAAAAAAAAAhABcAAAAAAAAAAAApABkAAAAAAAAAAQD//x0AAAAAAAAAAAD//x4AAAAAAAAAAAD//x8AAAAAAAAAAAD//yAAAAAAAAAAAAAAACAAAAAAAAAAAAABACAAAAAAAAAAAAACACAAAAAAAAAAAAACACEAAAAAAAAAAAADACEAAAAAAAAAAAAEACEAAAAAAAAAAAAFACEAAAAAAAAAAAAGACEAAAAAAAAAAAAHACEAAAAAAAAAAAAIACEAAAAAAAAAAAAJACEAAAAAAAAAAAAKACEAAAAAAAAAAAAEACAAAAAAAAAAAAADACAAAAAAAAAAAAD//yEAAAAAAAAAAAAAACEAAAAAAAAAAAABACEAAAAAAAAAAAAFACAAAAAAAAAAAAAGACAAAAAAAAAAAAAHACAAAAAAAAAAAAAIACAAAAAAAAAAAAAJACAAAAAAAAAAAAAKACAAAAAAAAAAAAALACAAAAAAAAAAAAALACEAAAAAAAAAAAAMACAAAAAAAAAAAAAMACEAAAAAAAAAAAANACAAAAAAAAAAAAANACEAAAAAAAAAAAAOACAAAAAAAAAAAAAOACEAAAAAAAAAAAAPACAAAAAAAAAAAAAPACEAAAAAAAAAAAAQACAAAAAAAAAAAAAQACEAAAAAAAAAAAARACAAAAAAAAAAAAARACEAAAAAAAAAAAASACAAAAAAAAAAAAASACEAAAAAAAAAAAATACAAAAAAAAAAAAATACEAAAAAAAAAAAAUACAAAAAAAAAAAAAUACEAAAAAAAAAAAAVACAAAAAAAAAAAAAVACEAAAAAAAAAAAAWACAAAAAAAAAAAAAWACEAAAAAAAAAAAAXACAAAAAAAAAAAAAXACEAAAAAAAAAAAAYACAAAAAAAAAAAAAYACEAAAAAAAAAAAAZACAAAAAAAAAAAAAZACEAAAAAAAAAAAAaACAAAAAAAAAAAAAaACEAAAAAAAAAAAAbACAAAAAAAAAAAAAbACEAAAAAAAAAAAAcACAAAAAAAAAAAAAcACEAAAAAAAAAAAAdACAAAAAAAAAAAAAdACEAAAAAAAAAAAAeACAAAAAAAAAAAAAeACEAAAAAAAAAAAAfACAAAAAAAAAAAAAfACEAAAAAAAAAAAAgACAAAAAAAAAAAAAgACEAAAAAAAAAAAAhACAAAAAAAAAAAAAhACEAAAAAAAAAAAAiACAAAAAAAAAAAAAiACEAAAAAAAAAAAAjACAAAAAAAAAAAAAjACEAAAAAAAAAAAAkACAAAAAAAAAAAAAkACEAAAAAAAAAAAAlACAAAAAAAAAAAAAlACEAAAAAAAAAAAAmACAAAAAAAAAAAAAmACEAAAAAAAAAAAAnACAAAAAAAAAAAAAnACEAAAAAAAAAAAAoACAAAAAAAAAAAAAoACEAAAAAAAAAAAApACAAAAAAAAAAAAApACEAAAAAAAAAAAAqACAAAAAAAAAAAAAqACEAAAAAAAAAAAArACAAAAAAAAAAAAArACEAAAAAAAAAAAAsACAAAAAAAAAAAAAsACEAAAAAAAAAAAAtACAAAAAAAAAAAAAtACEAAAAAAAAAAAAuACAAAAAAAAAAAAAuACEAAAAAAAAAAAD9////AAAAAAAAAAD9/wAAAAAAAAAAAAD9/wEAAAAAAAAAAAD9/wIAAAAAAAAAAAD9/wMAAAAAAAAAAAD9/wQAAAAAAAAAAAD9/wUAAAAAAAAAAAD9/wYAAAAAAAAAAAD9/wcAAAAAAAAAAAD9/wgAAAAAAAAAAAD9/wkAAAAAAAAAAAD9/woAAAAAAAAAAAD9/wsAAAAAAAAAAAD9/wwAAAAAAAAAAAD9/w0AAAAAAAAAAAD9/w4AAAAAAAAAAAD9/w8AAAAAAAAAAAD9/xAAAAAAAAAAAAD9/xEAAAAAAAAAAAD9/xIAAAAAAAAAAAD9/xMAAAAAAAAAAAD9/xQAAAAAAAAAAAD9/xUAAAAAAAAAAAD9/xYAAAAAAAAAAAD9/xcAAAAAAAAAAAD9/xgAAAAAAAAAAAD9/xkAAAAAAAAAAAD9/xoAAAAAAAAAAAD9/xsAAAAAAAAAAAD9/xwAAAAAAAAAAAD9/x0AAAAAAAAAAAD9/x4AAAAAAAAAAAD9/x8AAAAAAAAAAAD9/yAAAAAAAAAAAAD9/yEAAAAAAAAAAAD+////AAAAAAAAAAD+/wAAAAAAAAAAAAD+/wEAAAAAAAAAAAD+/wIAAAAAAAAAAAD+/wMAAAAAAAAAAAD+/wQAAAAAAAAAAAD+/wUAAAAAAAAAAAD+/wYAAAAAAAAAAAD+/wcAAAAAAAAAAAD+/wgAAAAAAAAAAAD+/wkAAAAAAAAAAAD+/woAAAAAAAAAAAD+/wsAAAAAAAAAAAD+/wwAAAAAAAAAAAD+/w0AAAAAAAAAAAD+/w4AAAAAAAAAAAD+/w8AAAAAAAAAAAD+/xAAAAAAAAAAAAD+/xEAAAAAAAAAAAD+/xIAAAAAAAAAAAD+/xMAAAAAAAAAAAD+/xQAAAAAAAAAAAD+/xUAAAAAAAAAAAD+/xYAAAAAAAAAAAD+/xcAAAAAAAAAAAD+/xgAAAAAAAAAAAD+/xkAAAAAAAAAAAD+/xoAAAAAAAAAAAD+/xsAAAAAAAAAAAD+/xwAAAAAAAAAAAD+/x0AAAAAAAAAAAD+/x4AAAAAAAAAAAD+/x8AAAAAAAAAAAD+/yAAAAAAAAAAAAD+/yEAAAAAAAAAAAD/////AAAAAAAAAAD//wAAAAAAAAAAAAD//wEAAAAAAAAAAAD//wIAAAAAAAAAAAD//wMAAAAAAAAAAAD//wQAAAAAAAAAAAD//wUAAAAAAAAAAAD//wYAAAAAAAAAAAD//wcAAAAAAAAAAAD//wgAAAAAAAAAAAD//wkAAAAAAAAAAAD//woAAAAAAAAAAAD//wsAAAAAAAAAAAD//wwAAAAAAAAAAAD//w0AAAAAAAAAAAD//w4AAAAAAAAAAAD//w8AAAAAAAAAAAD//xAAAAAAAAAAAAD//xEAAAAAAAAAAAD//xIAAAAAAAAAAAD//xMAAAAAAAAAAAD//xQAAAAAAAAAAAD//xUAAAAAAAAAAAD//xYAAAAAAAAAAAAuAP7/AAAAAAAAAAAuAP//AAAAAAAAAAAuAAAAAAAAAAAAAAAuAAEAAAAAAAAAAAAuAAIAAAAAAAAAAAAuAAMAAAAAAAAAAAAuAAQAAAAAAAAAAAAuAAUAAAAAAAAAAAAuAAYAAAAAAAAAAAAuAAcAAAAAAAAAAAAuAAgAAAAAAAAAAAAuAAkAAAAAAAAAAAAuAAoAAAAAAAAAAAAuAAsAAAAAAAAAAAAuAAwAAAAAAAAAAAAuAA0AAAAAAAAAAAAuAA4AAAAAAAAAAAAuAA8AAAAAAAAAAAAuABAAAAAAAAAAAAAuABEAAAAAAAAAAAAuABIAAAAAAAAAAAAuABMAAAAAAAAAAAAuABQAAAAAAAAAAAAuABUAAAAAAAAAAAAuABYAAAAAAAAAAAAuABcAAAAAAAAAAAAuABgAAAAAAAAAAAAuABkAAAAAAAAAAAAuABoAAAAAAAAAAAAvAP7/AAAAAAAAAAAvAP//AAAAAAAAAAAvAAAAAAAAAAAAAAAvAAEAAAAAAAAAAAAvAAIAAAAAAAAAAAAvAAMAAAAAAAAAAAAvAAQAAAAAAAAAAAAvAAUAAAAAAAAAAAAvAAYAAAAAAAAAAAAvAAcAAAAAAAAAAAAvAAgAAAAAAAAAAAAvAAkAAAAAAAAAAAAvAAoAAAAAAAAAAAAvAAsAAAAAAAAAAAAvAAwAAAAAAAAAAAAvAA0AAAAAAAAAAAAvAA4AAAAAAAAAAAAvAA8AAAAAAAAAAAAvABAAAAAAAAAAAAAvABEAAAAAAAAAAAAvABIAAAAAAAAAAAAvABMAAAAAAAAAAAAvABQAAAAAAAAAAAAvABUAAAAAAAAAAAAvABYAAAAAAAAAAAAvABcAAAAAAAAAAAAvABgAAAAAAAAAAAAvABkAAAAAAAAAAAAvABoAAAAAAAAAAAAvABsAAAAAAAAAAAAvABwAAAAAAAAAAAAvAB0AAAAAAAAAAAAvAB4AAAAAAAAAAAAvAB8AAAAAAAAAAAAvACAAAAAAAAAAAAAvACEAAAAAAAAAAAAwAP7/AAAAAAAAAAAwAP//AAAAAAAAAAAwAAAAAAAAAAAAAAAwAAEAAAAAAAAAAAAwAAIAAAAAAAAAAAAwAAMAAAAAAAAAAAAwAAQAAAAAAAAAAAAwAAUAAAAAAAAAAAAwAAYAAAAAAAAAAAAwAAcAAAAAAAAAAAAwAAgAAAAAAAAAAAAwAAkAAAAAAAAAAAAwAAoAAAAAAAAAAAAwAAsAAAAAAAAAAAAwAAwAAAAAAAAAAAAwAA0AAAAAAAAAAAAwAA4AAAAAAAAAAAAwAA8AAAAAAAAAAAAwABAAAAAAAAAAAAAwABEAAAAAAAAAAAAwABIAAAAAAAAAAAAwABMAAAAAAAAAAAAwABQAAAAAAAAAAAAwABUAAAAAAAAAAAAwABYAAAAAAAAAAAAwABcAAAAAAAAAAAAwABgAAAAAAAAAAAAwABkAAAAAAAAAAAAwABoAAAAAAAAAAAAwABsAAAAAAAAAAAAwABwAAAAAAAAAAAAwAB0AAAAAAAAAAAAwAB4AAAAAAAAAAAAwAB8AAAAAAAAAAAAwACAAAAAAAAAAAAAwACEAAAAAAAAAAAAxAP7/AAAAAAAAAAAxAP//AAAAAAAAAAAxAAAAAAAAAAAAAAAxAAEAAAAAAAAAAAAxAAIAAAAAAAAAAAAxAAMAAAAAAAAAAAAxAAQAAAAAAAAAAAAxAAUAAAAAAAAAAAAxAAYAAAAAAAAAAAAxAAcAAAAAAAAAAAAxAAgAAAAAAAAAAAAxAAkAAAAAAAAAAAAxAAoAAAAAAAAAAAAxAAsAAAAAAAAAAAAxAAwAAAAAAAAAAAAxAA0AAAAAAAAAAAAxAA4AAAAAAAAAAAAxAA8AAAAAAAAAAAAxABAAAAAAAAAAAAAxABEAAAAAAAAAAAAxABIAAAAAAAAAAAAxABMAAAAAAAAAAAAxABQAAAAAAAAAAAAxABUAAAAAAAAAAAAxABYAAAAAAAAAAAAxABcAAAAAAAAAAAAxABgAAAAAAAAAAAAxABkAAAAAAAAAAAAxABoAAAAAAAAAAAAxABsAAAAAAAAAAAAxABwAAAAAAAAAAAAxAB0AAAAAAAAAAAAxAB4AAAAAAAAAAAAxAB8AAAAAAAAAAAAxACAAAAAAAAAAAAAxACEAAAAAAAAAAAD9//z/AAAAAAAAAAD9//3/AAAAAAAAAAD9//7/AAAAAAAAAAD+//z/AAAAAAAAAAD+//3/AAAAAAAAAAD+//7/AAAAAAAAAAD///z/AAAAAAAAAAD///3/AAAAAAAAAAD///7/AAAAAAAAAAAAAPz/AAAAAAAAAAAAAP3/AAAAAAAAAAAAAP7/AAAAAAAAAAABAPz/AAAAAAAAAAABAP3/AAAAAAAAAAABAP7/AAAAAAAAAAACAPz/AAAAAAAAAAACAP3/AAAAAAAAAAACAP7/AAAAAAAAAAADAPz/AAAAAAAAAAADAP3/AAAAAAAAAAADAP7/AAAAAAAAAAAEAPz/AAAAAAAAAAAEAP3/AAAAAAAAAAAEAP7/AAAAAAAAAAAFAPz/AAAAAAAAAAAFAP3/AAAAAAAAAAAFAP7/AAAAAAAAAAAGAPz/AAAAAAAAAAAGAP3/AAAAAAAAAAAGAP7/AAAAAAAAAAAHAPz/AAAAAAAAAAAHAP3/AAAAAAAAAAAHAP7/AAAAAAAAAAAIAPz/AAAAAAAAAAAIAP3/AAAAAAAAAAAIAP7/AAAAAAAAAAAJAPz/AAAAAAAAAAAJAP3/AAAAAAAAAAAJAP7/AAAAAAAAAAAKAPz/AAAAAAAAAAAKAP3/AAAAAAAAAAAKAP7/AAAAAAAAAAALAPz/AAAAAAAAAAALAP3/AAAAAAAAAAALAP7/AAAAAAAAAAAMAPz/AAAAAAAAAAAMAP3/AAAAAAAAAAAMAP7/AAAAAAAAAAANAPz/AAAAAAAAAAANAP3/AAAAAAAAAAANAP7/AAAAAAAAAAAOAPz/AAAAAAAAAAAOAP3/AAAAAAAAAAAOAP7/AAAAAAAAAAAPAPz/AAAAAAAAAAAPAP3/AAAAAAAAAAAPAP7/AAAAAAAAAAAQAPz/AAAAAAAAAAAQAP3/AAAAAAAAAAAQAP7/AAAAAAAAAAARAPz/AAAAAAAAAAARAP3/AAAAAAAAAAARAP7/AAAAAAAAAAASAPz/AAAAAAAAAAASAP3/AAAAAAAAAAASAP7/AAAAAAAAAAATAPz/AAAAAAAAAAATAP3/AAAAAAAAAAATAP7/AAAAAAAAAAAUAPz/AAAAAAAAAAAUAP3/AAAAAAAAAAAUAP7/AAAAAAAAAAAVAPz/AAAAAAAAAAAVAP3/AAAAAAAAAAAVAP7/AAAAAAAAAAAWAPz/AAAAAAAAAAAWAP3/AAAAAAAAAAAWAP7/AAAAAAAAAAAXAPz/AAAAAAAAAAAXAP3/AAAAAAAAAAAXAP7/AAAAAAAAAAAYAPz/AAAAAAAAAAAYAP3/AAAAAAAAAAAYAP7/AAAAAAAAAAAZAPz/AAAAAAAAAAAZAP3/AAAAAAAAAAAZAP7/AAAAAAAAAAAaAPz/AAAAAAAAAAAaAP3/AAAAAAAAAAAaAP7/AAAAAAAAAAAbAPz/AAAAAAAAAAAbAP3/AAAAAAAAAAAbAP7/AAAAAAAAAAAcAPz/AAAAAAAAAAAcAP3/AAAAAAAAAAAcAP7/AAAAAAAAAAAdAPz/AAAAAAAAAAAdAP3/AAAAAAAAAAAdAP7/AAAAAAAAAAAeAPz/AAAAAAAAAAAeAP3/AAAAAAAAAAAeAP7/AAAAAAAAAAAfAPz/AAAAAAAAAAAfAP3/AAAAAAAAAAAfAP7/AAAAAAAAAAAgAPz/AAAAAAAAAAAgAP3/AAAAAAAAAAAgAP7/AAAAAAAAAAAhAPz/AAAAAAAAAAAhAP3/AAAAAAAAAAAhAP7/AAAAAAAAAAAiAPz/AAAAAAAAAAAiAP3/AAAAAAAAAAAiAP7/AAAAAAAAAAAjAPz/AAAAAAAAAAAjAP3/AAAAAAAAAAAjAP7/AAAAAAAAAAAkAPz/AAAAAAAAAAAkAP3/AAAAAAAAAAAkAP7/AAAAAAAAAAAlAPz/AAAAAAAAAAAlAP3/AAAAAAAAAAAlAP7/AAAAAAAAAAAmAPz/AAAAAAAAAAAmAP3/AAAAAAAAAAAmAP7/AAAAAAAAAAAnAPz/AAAAAAAAAAAnAP3/AAAAAAAAAAAnAP7/AAAAAAAAAAAoAPz/AAAAAAAAAAAoAP3/AAAAAAAAAAAoAP7/AAAAAAAAAAApAPz/AAAAAAAAAAApAP3/AAAAAAAAAAApAP7/AAAAAAAAAAAqAPz/AAAAAAAAAAAqAP3/AAAAAAAAAAAqAP7/AAAAAAAAAAArAPz/AAAAAAAAAAArAP3/AAAAAAAAAAArAP7/AAAAAAAAAAAsAPz/AAAAAAAAAAAsAP3/AAAAAAAAAAAsAP7/AAAAAAAAAAAtAPz/AAAAAAAAAAAtAP3/AAAAAAAAAAAtAP7/AAAAAAAAAAAuAPz/AAAAAAAAAAAuAP3/AAAAAAAAAAAvAPz/AAAAAAAAAAAvAP3/AAAAAAAAAAAwAPz/AAAAAAAAAAAwAP3/AAAAAAAAAAAxAPz/AAAAAAAAAAAxAP3/AAAAAAAAAAA=") +tile_set = ExtResource("1_0w1we") + +[node name="ModulateAsSkyBehavior" type="Node" parent="TileMapLayers/Water" unique_id=1112840640 node_paths=PackedStringArray("canvas_item")] +script = ExtResource("2_rsp3k") +canvas_item = NodePath("..") +metadata/_custom_type_script = "uid://ctko5bdas16ah" + +[node name="Foam" type="TileMapLayer" parent="TileMapLayers" unique_id=1083853430] +tile_map_data = PackedByteArray("AAAAABUAAgAAAAAAAAABABUAAgAAAAAAAAACABUAAgAAAAAAAAADABUAAgAAAAAAAAAEABUAAgAAAAAAAAAFABUAAgAAAAAAAAAGABUAAgAAAAAAAAAHABUAAgAAAAAAAAAHABQAAgAAAAAAAAAIABQAAgAAAAAAAAAJABQAAgAAAAAAAAAKABQAAgAAAAAAAAALABQAAgAAAAAAAAAMABQAAgAAAAAAAAANABQAAgAAAAAAAAAOABQAAgAAAAAAAAAPABQAAgAAAAAAAAAQABQAAgAAAAAAAAARABQAAgAAAAAAAAASABQAAgAAAAAAAAATABQAAgAAAAAAAAAUABQAAgAAAAAAAAAVABQAAgAAAAAAAAAWABQAAgAAAAAAAAAXABQAAgAAAAAAAAAYABQAAgAAAAAAAAAZABQAAgAAAAAAAAAaABQAAgAAAAAAAAAbABQAAgAAAAAAAAAcABQAAgAAAAAAAAAdABQAAgAAAAAAAAAeABUAAgAAAAAAAAAfABUAAgAAAAAAAAAVABgAAgAAAAAAAAAAABkAAgAAAAAAAAAAABoAAgAAAAAAAAAAABsAAgAAAAAAAAAAABwAAgAAAAAAAAAAAB0AAgAAAAAAAAAAAB4AAgAAAAAAAAAAAB8AAgAAAAAAAAAVABkAAgAAAAAAAAAWABoAAgAAAAAAAAAVABoAAgAAAAAAAAAWABsAAgAAAAAAAAAfABwAAgAAAAAAAAAfAB0AAgAAAAAAAAAfAB4AAgAAAAAAAAAfAB8AAgAAAAAAAAAgABUAAgAAAAAAAAAhABUAAgAAAAAAAAAgABYAAgAAAAAAAAAhABYAAgAAAAAAAAAiABcAAgAAAAAAAAAjABcAAgAAAAAAAAAkABcAAgAAAAAAAAAlABcAAgAAAAAAAAAmABcAAgAAAAAAAAAsABoAAgAAAAAAAAAtABoAAgAAAAAAAAAuABoAAgAAAAAAAAAmABgAAgAAAAAAAAAnABkAAgAAAAAAAAAnABoAAgAAAAAAAAAoABsAAgAAAAAAAAApABsAAgAAAAAAAAAqABsAAgAAAAAAAAArABsAAgAAAAAAAAApABkAAgAAAAAAAAAoABoAAgAAAAAAAAAeABQAAgAAAAAAAAAnABgAAgAAAAAAAAAoABgAAgAAAAAAAAApABgAAgAAAAAAAAAqABgAAgAAAAAAAAArABgAAgAAAAAAAAArABkAAgAAAAAAAAArABoAAgAAAAAAAAAqABoAAgAAAAAAAAAoABkAAgAAAAAAAAApABoAAgAAAAAAAAAqABkAAgAAAAAAAAA=") +tile_set = ExtResource("3_gov2d") + +[node name="Stone_Level0" type="TileMapLayer" parent="TileMapLayers" unique_id=318705142] +tile_map_data = PackedByteArray("AAAeABQABAAAAAIAAAAfABQABAABAAIAAAAdAAsABAAAAAMAAAAdABMABAABAAIAAAAeABMABAABAAIAAAAfABMABAABAAEAAAAAABQABAABAAIAAAABABQABAABAAIAAAACABQABAABAAIAAAADABQABAABAAIAAAAEABQABAABAAIAAAAFABQABAABAAIAAAAGABQABAABAAIAAAAHABQABAACAAIAAAAcABMABAABAAIAAAAbABMABAABAAIAAQAaABMABAABAAIAAAAZABMABAABAAIAAAAYABMABAABAAIAAAAXABMABAABAAIAAAAWABMABAABAAIAAAAVABMABAABAAIAAAAUABMABAABAAIAAAATABMABAABAAIAAAASABMABAABAAIAAAARABMABAABAAIAAAAQABMABAABAAIAAAAPABMABAABAAIAAQAOABMABAABAAIAAAANABMABAABAAIAAAAMABMABAABAAIAAAALABMABAABAAIAAAAKABMABAABAAIAAAAJABMABAABAAIAAAAIABMABAABAAIAAAAuABQABAACAAEAAAAtABQABAABAAEAAAAsABQABAAAAAEAAAAhABQABAABAAEAAAAgABQABAABAAEAAAAuABMABAACAAAAAAAtABMABAABAAAAAAAsABMABAAAAAEAAAAjABUABAABAAEAAAAiABUABAABAAEAAAAhABUABAABAAIAAAAgABUABAAAAAIAAAArABYABAABAAAAAAAqABYABAABAAAAAAAmABYABAABAAAAAAAlABYABAABAAAAAAAkABYABAABAAAAAAAjABYABAABAAIAAAAiABYABAAAAAIAAAAsABUABAAAAAEAAAAsABcABAAAAAEAAAAuABgABAACAAEAAAAuABcABAACAAEAAAAuABYABAACAAEAAAAuABUABAACAAEAAAAtABgABAABAAEAAAAtABcABAABAAEAAAAtABYABAABAAEAAAAtABUABAABAAEAAAAsABYABAAAAAEAAAAsABgABAAAAAEAAAAuABkABAACAAIAAAAtABkABAABAAIAAAAsABkABAAAAAIAAAAnABcABAABAAIAAAAoABcABAABAAIAAAApABcABAABAAIAAAAgABMABAABAAEAAAAhABMABAABAAEAAAAiABMABAABAAEAAAAiABQABAABAAEAAAAnABYABAABAAAAAAAoABYABAABAAAAAAApABYABAABAAAAAAAkABcABAABAAIAAAAlABcABAABAAIAAAAmABcABAABAAIAAAAqABcABAABAAIAAAArABcABAABAAIAAAA=") +tile_set = ExtResource("6_dlg2k") +metadata/_edit_lock_ = true + +[node name="Grass_Level1" type="TileMapLayer" parent="TileMapLayers" unique_id=681424798] +tile_map_data = PackedByteArray("AAAPAAwAAQABAAEAAAAPAAsAAQABAAEAAAAPAAoAAQABAAEAAAAPAAkAAQABAAEAAAAPAAgAAQABAAEAAAAPAAcAAQABAAEAAAAPAAYAAQABAAEAAAAPAAUAAQABAAEAAAAPAAQAAQABAAEAAAAPAAMAAQABAAEAAAAPAAIAAQABAAEAAAAOAAwAAQABAAEAAAAOAAsAAQABAAEAAAAOAAoAAQABAAEAAAAOAAkAAQABAAEAAAAOAAgAAQABAAEAAAAOAAcAAQABAAEAAAAOAAYAAQABAAEAAAAOAAUAAQABAAEAAAAOAAQAAQABAAEAAAAOAAMAAQABAAEAAAAPABAAAQABAAEAAAAPAA8AAQABAAEAAAAPAA4AAQABAAEAAAAPAA0AAQABAAEAAAAOABAAAQABAAEAAAAOAA8AAQABAAEAAAAOAA4AAQABAAEAAAAOAA0AAQABAAEAAAAdAA8AAQABAAEAAAAcABAAAQABAAEAAAAcAA8AAQABAAEAAAAbABAAAQABAAEAAAAbAA8AAQABAAEAAAAaABAAAQABAAEAAAAaAA8AAQABAAEAAAAZABAAAQABAAEAAAAZAA8AAQABAAEAAAAYABAAAQABAAEAAAAYAA8AAQABAAEAAAAXABAAAQABAAEAAAAXAA8AAQABAAEAAAAWABAAAQABAAEAAAAWAA8AAQABAAEAAAAVABAAAQABAAEAAAAVAA8AAQABAAEAAAAUABAAAQABAAEAAAAUAA8AAQABAAEAAAATABAAAQABAAEAAAATAA8AAQABAAEAAAASABAAAQABAAEAAAASAA8AAQABAAEAAAARABAAAQABAAEAAAARAA8AAQABAAEAAAAQABAAAQABAAEAAAAQAA8AAQABAAEAAAANABAAAQABAAEAAAANAA8AAQABAAEAAAAMABAAAQABAAEAAAAMAA8AAQABAAEAAAALABAAAQABAAEAAAALAA8AAQABAAEAAAAKABAAAQABAAEAAAAKAA8AAQABAAEAAAAJABAAAQABAAEAAAAJAA8AAQABAAEAAAAIABAAAQABAAEAAAAIAA8AAQABAAEAAAAHABAAAQABAAEAAAAHAA8AAQABAAEAAAAGABAAAQABAAEAAAAGAA8AAQABAAEAAAAFABAAAQABAAEAAAAFAA8AAQABAAEAAAAEABAAAQABAAEAAAAEAA8AAQABAAEAAAADABAAAQABAAEAAAADAA8AAQABAAEAAAACAA8AAQABAAEAAAAPABgAAQABAAEAAAAPABcAAQABAAAAAAAPABIAAQABAAEAAAAPABEAAQABAAEAAAAOABgAAQABAAEAAAAOABcAAQABAAAAAAAOABMAAQABAAIAAAAOABIAAQABAAEAAAAOABEAAQABAAEAAAANAAkAAQABAAEAAAANAAgAAQABAAEAAAAMAAkAAQABAAEAAAAMAAgAAQABAAEAAAALAAkAAQABAAEAAAALAAgAAQABAAEAAAAKAAkAAQABAAEAAAAKAAgAAQABAAEAAAAJAAkAAQABAAEAAAAJAAgAAQABAAEAAAAIAAkAAQABAAEAAAAIAAgAAQABAAEAAAAHAAkAAQABAAEAAAAHAAgAAQABAAEAAAAGAAkAAQABAAEAAAAGAAgAAQABAAEAAAAFAAkAAQABAAEAAAAFAAgAAQABAAEAAAAEAAkAAQABAAEAAAAEAAgAAQABAAEAAAADAAkAAQABAAEAAAADAAgAAQABAAEAAAACAAkAAQABAAEAAAACAAgAAQABAAEAAAAbAAkAAQABAAEAAAAbAAgAAQABAAEAAAAaAAkAAQABAAEAAAAaAAgAAQABAAEAAAAZAAkAAQABAAEAAAAZAAgAAQABAAEAAAAYAAkAAQABAAEAAAAYAAgAAQABAAEAAAAXAAkAAQABAAEAAAAXAAgAAQABAAEAAAAWAAkAAQABAAEAAAAWAAgAAQABAAEAAAAVAAkAAQABAAEAAAAVAAgAAQABAAEAAAAUAAkAAQABAAEAAAAUAAgAAQABAAEAAAATAAkAAQABAAEAAAATAAgAAQABAAEAAAASAAkAAQABAAEAAAASAAgAAQABAAEAAAARAAkAAQABAAEAAAARAAgAAQABAAEAAAAQAAkAAQABAAEAAAAQAAgAAQABAAEAAAAPABsAAQABAAEAAAAPABoAAQABAAEAAAAPABkAAQABAAEAAAAOABsAAQABAAEAAAAOABoAAQABAAEAAAAOABkAAQABAAEAAAANABsAAQABAAEAAAANABoAAQABAAEAAAANABkAAQABAAEAAAANABgAAQABAAEAAAANABcAAQABAAAAAAANABMAAQABAAIAAAANABIAAQABAAEAAAANABEAAQABAAEAAAAMABsAAQABAAEAAAAMABoAAQABAAEAAAAMABkAAQABAAEAAAAMABgAAQABAAEAAAAMABcAAQABAAAAAAAMABMAAQABAAIAAAAMABIAAQABAAEAAAAMABEAAQABAAEAAAALABsAAQABAAEAAAALABoAAQABAAEAAAALABkAAQABAAEAAAALABgAAQABAAEAAAALABcAAQABAAAAAAALABMAAQABAAIAAAALABIAAQABAAEAAAALABEAAQABAAEAAAAKABsAAQABAAEAAAAKABoAAQABAAEAAAAKABkAAQABAAEAAAAKABgAAQABAAEAAAAKABcAAQABAAAAAAAKABMAAQABAAIAAAAKABIAAQABAAEAAAAKABEAAQABAAEAAAAJABsAAQABAAEAAAAJABoAAQABAAEAAAAJABkAAQABAAEAAAAJABgAAQABAAEAAAAJABcAAQABAAAAAAAJABMAAQABAAIAAAAJABIAAQABAAEAAAAJABEAAQABAAEAAAAIABsAAQABAAEAAAAIABoAAQABAAEAAAAIABkAAQABAAEAAAAIABgAAQABAAEAAAAIABcAAQAAAAAAAAAIABMAAQABAAIAAAAIABIAAQABAAEAAAAIABEAAQABAAEAAAAHABsAAQABAAEAAAAHABoAAQABAAEAAAAHABkAAQABAAEAAAAHABgAAQABAAAAAAAHABQAAQACAAIAAAAHABMAAQABAAEAAAAHABIAAQABAAEAAAAHABEAAQABAAEAAAAGABsAAQABAAEAAAAGABoAAQABAAEAAAAGABkAAQABAAEAAAAGABgAAQABAAAAAAAGABQAAQABAAIAAAAGABMAAQABAAEAAAAGABIAAQABAAEAAAAGABEAAQABAAEAAAAFABsAAQABAAEAAAAFABoAAQABAAEAAAAFABkAAQABAAEAAAAFABgAAQABAAAAAAAFABEAAQABAAEAAAAEABsAAQABAAEAAAAEABoAAQABAAEAAAAEABkAAQABAAEAAAAEABgAAQABAAAAAAAEABEAAQABAAEAAAADABsAAQABAAEAAAADABoAAQABAAEAAAADABkAAQABAAEAAAADABgAAQABAAAAAAADABQAAQABAAIAAAADABMAAQABAAEAAAADABIAAQABAAEAAAADABEAAQABAAEAAAACABsAAQABAAEAAAACABoAAQABAAEAAAACABQAAQABAAIAAAACAAMAAQABAAEAAAADAAQAAQABAAEAAAADAAUAAQABAAEAAAAEAAUAAQABAAEAAAAFAAYAAQABAAEAAAAFAAcAAQABAAEAAAAHAAoAAQABAAEAAAAHAAsAAQABAAEAAAAIAAwAAQABAAEAAAAJAA0AAQABAAEAAAAKAA4AAQABAAEAAAAfAB8AAQACAAIAAAAfAB4AAQACAAEAAAAfAB0AAQACAAEAAAAfABwAAQACAAAAAAAeAB8AAQABAAIAAAAeAB4AAQABAAEAAAAeAB0AAQABAAEAAAAeABwAAQABAAAAAAAdAB8AAQABAAIAAAAdAB4AAQABAAEAAAAdAB0AAQABAAEAAAAdABwAAQABAAAAAAAdAA4AAQABAAEAAAAdAA0AAQABAAEAAAAdAAwAAQABAAEAAAAdAAsAAQABAAEAAAAdAAUAAQABAAEAAAAcAB8AAQABAAIAAAAcAB4AAQABAAEAAAAcAB0AAQABAAEAAAAcABwAAQABAAAAAAAcABIAAQABAAEAAAAcABEAAQABAAEAAAAcAA4AAQABAAEAAAAcAA0AAQABAAEAAAAcAAwAAQABAAEAAAAcAAsAAQABAAEAAAAcAAoAAQABAAEAAAAcAAYAAQABAAEAAAAcAAUAAQABAAEAAAAcAAQAAQABAAEAAAAcAAMAAQABAAEAAAAbAB8AAQABAAIAAAAbAB4AAQABAAEAAAAbAB0AAQABAAEAAAAbABwAAQABAAAAAAAbABIAAQABAAEAAAAbABEAAQABAAEAAAAbAA4AAQABAAEAAAAbAA0AAQABAAEAAAAbAAwAAQABAAEAAAAbAAsAAQABAAEAAAAbAAoAAQABAAEAAAAbAAcAAQABAAEAAAAbAAYAAQABAAEAAAAbAAUAAQABAAEAAAAbAAQAAQABAAEAAAAbAAMAAQABAAEAAAAbAAIAAQABAAEAAAAbAAEAAQABAAEAAAAaAB8AAQABAAIAAAAaAB4AAQABAAEAAAAaAB0AAQABAAEAAAAaABwAAQABAAAAAAAaABMAAQABAAIAAAAaABIAAQABAAEAAAAaABEAAQABAAEAAAAaAA4AAQABAAEAAAAaAA0AAQABAAEAAAAaAAwAAQABAAEAAAAaAAsAAQABAAEAAAAaAAoAAQABAAEAAAAaAAcAAQABAAEAAAAaAAYAAQABAAEAAAAaAAUAAQABAAEAAAAaAAQAAQABAAEAAAAaAAMAAQABAAEAAAAaAAIAAQABAAEAAAAaAAEAAQABAAEAAAAZAB8AAQABAAIAAAAZAB4AAQABAAEAAAAZAB0AAQABAAEAAAAZABwAAQABAAAAAAAZABMAAQABAAIAAAAZABIAAQABAAEAAAAZABEAAQABAAEAAAAZAA4AAQABAAEAAAAZAA0AAQABAAEAAAAZAAwAAQABAAEAAAAZAAsAAQABAAEAAAAZAAoAAQABAAEAAAAZAAcAAQABAAEAAAAZAAYAAQABAAEAAAAZAAUAAQABAAEAAAAZAAQAAQABAAEAAAAZAAMAAQABAAEAAAAZAAIAAQABAAEAAAAZAAEAAQABAAEAAAAYAB8AAQABAAIAAAAYAB4AAQABAAEAAAAYAB0AAQABAAEAAAAYABwAAQABAAAAAAAYABMAAQABAAIAAAAYABIAAQABAAEAAAAYABEAAQABAAEAAAAYAA4AAQABAAEAAAAYAA0AAQABAAEAAAAYAAwAAQABAAEAAAAYAAsAAQABAAEAAAAYAAoAAQABAAEAAAAYAAcAAQABAAEAAAAYAAYAAQABAAEAAAAYAAUAAQABAAEAAAAYAAQAAQABAAEAAAAYAAMAAQABAAEAAAAYAAIAAQABAAEAAAAYAAEAAQABAAEAAAAXAB8AAQABAAIAAAAXAB4AAQABAAEAAAAXAB0AAQABAAEAAAAXABwAAQABAAEAAAAXABsAAQACAAAAAAAXABMAAQABAAIAAAAXABIAAQABAAEAAAAXABEAAQABAAEAAAAXAA4AAQABAAEAAAAXAA0AAQABAAEAAAAXAAwAAQABAAEAAAAXAAsAAQABAAEAAAAXAAoAAQABAAEAAAAXAAcAAQABAAEAAAAXAAYAAQABAAEAAAAXAAUAAQABAAEAAAAXAAQAAQABAAEAAAAXAAMAAQABAAEAAAAXAAIAAQABAAEAAAAXAAEAAQABAAEAAAAWAB8AAQABAAIAAAAWAB4AAQABAAEAAAAWAB0AAQABAAEAAAAWABwAAQABAAEAAAAWABsAAQABAAEAAAAWABoAAQACAAEAAAAWABkAAQACAAAAAAAWABMAAQABAAIAAAAWABIAAQABAAEAAAAWABEAAQABAAEAAAAWAA4AAQABAAEAAAAWAA0AAQABAAEAAAAWAAwAAQABAAEAAAAWAAsAAQABAAEAAAAWAAoAAQABAAEAAAAWAAcAAQABAAEAAAAWAAYAAQABAAEAAAAWAAUAAQABAAEAAAAWAAQAAQABAAEAAAAWAAMAAQABAAEAAAAWAAIAAQABAAEAAAAWAAEAAQABAAEAAAAVAB8AAQABAAIAAAAVAB4AAQABAAEAAAAVAB0AAQABAAEAAAAVABwAAQABAAEAAAAVABsAAQABAAEAAAAVABoAAQABAAEAAAAVABkAAQABAAEAAAAVABMAAQABAAIAAAAVABIAAQABAAEAAAAVABEAAQABAAEAAAAVAA4AAQABAAEAAAAVAA0AAQABAAEAAAAVAAwAAQABAAEAAAAVAAsAAQABAAEAAAAVAAoAAQABAAEAAAAVAAcAAQABAAEAAAAVAAYAAQABAAEAAAAVAAUAAQABAAEAAAAVAAQAAQABAAEAAAAVAAMAAQABAAEAAAAVAAIAAQABAAEAAAAVAAEAAQABAAEAAAAUAB8AAQABAAIAAAAUAB4AAQABAAEAAAAUAB0AAQABAAEAAAAUABwAAQABAAEAAAAUABsAAQABAAEAAAAUABoAAQABAAEAAAAUABkAAQABAAEAAAAUABgAAQABAAEAAAAUABcAAQABAAAAAAAUABMAAQABAAIAAAAUABIAAQABAAEAAAAUABEAAQABAAEAAAAUAA4AAQABAAEAAAAUAA0AAQABAAEAAAAUAAwAAQABAAEAAAAUAAsAAQABAAEAAAAUAAoAAQABAAEAAAAUAAcAAQABAAEAAAAUAAYAAQABAAEAAAAUAAUAAQABAAEAAAAUAAQAAQABAAEAAAAUAAMAAQABAAEAAAAUAAIAAQABAAEAAAAUAAEAAQABAAEAAAATAB8AAQABAAIAAAATAB4AAQABAAEAAAATAB0AAQABAAEAAAATABwAAQABAAEAAAATABsAAQABAAEAAAATABoAAQABAAEAAAATABkAAQABAAEAAAATABgAAQABAAEAAAATABcAAQABAAAAAAATABMAAQABAAIAAAATABIAAQABAAEAAAATABEAAQABAAEAAAATAA4AAQABAAEAAAATAA0AAQABAAEAAAATAAwAAQABAAEAAAATAAsAAQABAAEAAAATAAoAAQABAAEAAAATAAcAAQABAAEAAAATAAYAAQABAAEAAAATAAUAAQABAAEAAAATAAQAAQABAAEAAAATAAMAAQABAAEAAAATAAIAAQABAAEAAAATAAEAAQABAAEAAAASAB8AAQABAAIAAAASAB4AAQABAAEAAAASAB0AAQABAAEAAAASABwAAQABAAEAAAASABsAAQABAAEAAAASABoAAQABAAEAAAASABkAAQABAAEAAAASABgAAQABAAEAAAASABcAAQABAAAAAAASABMAAQABAAIAAAASABIAAQABAAEAAAASABEAAQABAAEAAAASAA4AAQABAAEAAAASAA0AAQABAAEAAAASAAwAAQABAAEAAAASAAsAAQABAAEAAAASAAoAAQABAAEAAAASAAcAAQABAAEAAAASAAYAAQABAAEAAAASAAUAAQABAAEAAAASAAQAAQABAAEAAAASAAMAAQABAAEAAAASAAIAAQABAAEAAAASAAEAAQABAAEAAAARAB8AAQABAAIAAAARAB4AAQABAAEAAAARAB0AAQABAAEAAAARABwAAQABAAEAAAARABsAAQABAAEAAAARABoAAQABAAEAAAARABkAAQABAAEAAAARABgAAQABAAEAAAARABcAAQABAAAAAAARABMAAQABAAIAAAARABIAAQABAAEAAAARABEAAQABAAEAAAARAA4AAQABAAEAAAARAA0AAQABAAEAAAARAAwAAQABAAEAAAARAAsAAQABAAEAAAARAAoAAQABAAEAAAARAAcAAQABAAEAAAARAAYAAQABAAEAAAARAAUAAQABAAEAAAARAAQAAQABAAEAAAARAAMAAQABAAEAAAARAAIAAQABAAEAAAAQAB8AAQABAAIAAAAQAB4AAQABAAEAAAAQAB0AAQABAAEAAAAQABwAAQABAAEAAAAQABsAAQABAAEAAAAQABoAAQABAAEAAAAQABkAAQABAAEAAAAQABgAAQABAAEAAAAQABcAAQABAAAAAAAQABMAAQABAAIAAAAQABIAAQABAAEAAAAQABEAAQABAAEAAAAQAA4AAQABAAEAAAAQAA0AAQABAAEAAAAQAAwAAQABAAEAAAAQAAsAAQABAAEAAAAQAAoAAQABAAEAAAAQAAcAAQABAAEAAAAQAAYAAQABAAEAAAAQAAUAAQABAAEAAAAQAAQAAQABAAEAAAAQAAMAAQABAAEAAAAQAAIAAQABAAEAAAAPAB8AAQABAAIAAAAPAB4AAQABAAEAAAAPAB0AAQABAAEAAAAPABwAAQABAAEAAAAOAB8AAQABAAIAAAAOAB4AAQABAAEAAAAOAB0AAQABAAEAAAAOABwAAQABAAEAAAANAB8AAQABAAIAAAANAB4AAQABAAEAAAANAB0AAQABAAEAAAANABwAAQABAAEAAAANAA4AAQABAAEAAAANAA0AAQABAAEAAAANAAwAAQABAAEAAAANAAsAAQABAAEAAAANAAoAAQABAAEAAAANAAcAAQABAAEAAAANAAYAAQABAAEAAAANAAUAAQABAAEAAAANAAQAAQABAAEAAAANAAMAAQABAAEAAAAMAB8AAQABAAIAAAAMAB4AAQABAAEAAAAMAB0AAQABAAEAAAAMABwAAQABAAEAAAAMAA4AAQABAAEAAAAMAA0AAQABAAEAAAAMAAwAAQABAAEAAAAMAAsAAQABAAEAAAAMAAoAAQABAAEAAAAMAAcAAQABAAEAAAAMAAYAAQABAAEAAAAMAAUAAQABAAEAAAAMAAQAAQABAAEAAAAMAAMAAQABAAEAAAALAB8AAQABAAIAAAALAB4AAQABAAEAAAALAB0AAQABAAEAAAALABwAAQABAAEAAAALAA4AAQABAAEAAAALAA0AAQABAAEAAAALAAwAAQABAAEAAAALAAsAAQABAAEAAAALAAoAAQABAAEAAAALAAcAAQABAAEAAAALAAYAAQABAAEAAAALAAUAAQABAAEAAAALAAQAAQABAAEAAAALAAMAAQABAAEAAAAKAB8AAQABAAIAAAAKAB4AAQABAAEAAAAKAB0AAQABAAEAAAAKABwAAQABAAEAAAAKAA0AAQABAAEAAAAKAAwAAQABAAEAAAAKAAsAAQABAAEAAAAKAAoAAQABAAEAAAAKAAcAAQABAAEAAAAKAAYAAQABAAEAAAAKAAUAAQABAAEAAAAKAAQAAQABAAEAAAAKAAMAAQABAAEAAAAKAAIAAQABAAEAAAAJAB8AAQABAAIAAAAJAB4AAQABAAEAAAAJAB0AAQABAAEAAAAJABwAAQABAAEAAAAJAA4AAQABAAEAAAAJAAwAAQABAAEAAAAJAAsAAQABAAEAAAAJAAoAAQABAAEAAAAJAAcAAQABAAEAAAAJAAYAAQABAAEAAAAJAAUAAQABAAEAAAAJAAQAAQABAAEAAAAJAAMAAQABAAEAAAAJAAIAAQABAAEAAAAIAB8AAQABAAIAAAAIAB4AAQABAAEAAAAIAB0AAQABAAEAAAAIABwAAQABAAEAAAAIAA4AAQABAAEAAAAIAA0AAQABAAEAAAAIAAsAAQABAAEAAAAIAAoAAQABAAEAAAAIAAcAAQABAAEAAAAIAAYAAQABAAEAAAAIAAUAAQABAAEAAAAIAAQAAQABAAEAAAAIAAMAAQABAAEAAAAHAB8AAQABAAIAAAAHAB4AAQABAAEAAAAHAB0AAQABAAEAAAAHABwAAQABAAEAAAAHAA4AAQABAAEAAAAHAA0AAQABAAEAAAAHAAwAAQABAAEAAAAHAAcAAQABAAEAAAAHAAYAAQABAAEAAAAHAAUAAQABAAEAAAAHAAQAAQABAAEAAAAHAAMAAQABAAEAAAAGAB8AAQABAAIAAAAGAB4AAQABAAEAAAAGAB0AAQABAAEAAAAGABwAAQABAAEAAAAGAA4AAQABAAEAAAAGAA0AAQABAAEAAAAGAAwAAQABAAEAAAAGAAsAAQABAAEAAAAGAAoAAQABAAEAAAAGAAcAAQABAAEAAAAGAAYAAQABAAEAAAAGAAUAAQABAAEAAAAGAAQAAQABAAEAAAAGAAMAAQABAAEAAAAFAB8AAQABAAIAAAAFAB4AAQABAAEAAAAFAB0AAQABAAEAAAAFABwAAQABAAEAAAAFAA4AAQABAAEAAAAFAA0AAQABAAEAAAAFAAwAAQABAAEAAAAFAAsAAQABAAEAAAAFAAoAAQABAAEAAAAFAAUAAQABAAEAAAAFAAQAAQABAAEAAAAFAAMAAQABAAEAAAAEAB8AAQABAAIAAAAEAB4AAQABAAEAAAAEAB0AAQABAAEAAAAEABwAAQABAAEAAAAEAA4AAQABAAEAAAAEAA0AAQABAAEAAAAEAAwAAQABAAEAAAAEAAsAAQABAAEAAAAEAAoAAQABAAEAAAAEAAcAAQABAAEAAAAEAAYAAQABAAEAAAAEAAQAAQABAAEAAAAEAAMAAQABAAEAAAADAB8AAQABAAIAAAADAB4AAQABAAEAAAADAB0AAQABAAEAAAADABwAAQABAAEAAAADAA4AAQABAAEAAAADAA0AAQABAAEAAAADAAwAAQABAAEAAAADAAsAAQABAAEAAAADAAoAAQABAAEAAAADAAcAAQABAAEAAAADAAYAAQABAAEAAAADAAMAAQABAAEAAAACAB8AAQABAAIAAAACAB4AAQABAAEAAAACAB0AAQABAAEAAAACABwAAQABAAEAAAACAA4AAQABAAEAAAACAA0AAQABAAEAAAACAAwAAQABAAEAAAACAAsAAQABAAEAAAACAAoAAQABAAEAAAACAAcAAQABAAEAAAACAAIAAQABAAEAAAABAB8AAQABAAIAAAABAB4AAQABAAEAAAABAB0AAQABAAEAAAABABwAAQABAAEAAAABAA0AAQABAAEAAAABAAwAAQABAAEAAAABAAsAAQABAAEAAAABAAoAAQABAAEAAAABAAkAAQABAAEAAAAAAB8AAQAAAAIAAAAAAB4AAQAAAAEAAAAAAB0AAQAAAAEAAAAAABwAAQAAAAEAAAAbABMAAQABAAIAAAAcABMAAQABAAIAAAAdABMAAQABAAIAAAAdABIAAQABAAEAAAAdABEAAQABAAEAAAAdABAAAQABAAEAAAAeABAAAQABAAEAAAAeAA8AAQABAAEAAAAeAA4AAQABAAEAAAAeAA0AAQABAAEAAAAeAAwAAQABAAEAAAAeAAsAAQABAAEAAAAeAAoAAQABAAEAAAAdAAoAAQABAAEAAAAdAAkAAQABAAEAAAAcAAkAAQABAAEAAAAcAAgAAQABAAEAAAAcAAcAAQABAAEAAAAdAAYAAQABAAEAAAAdAAcAAQABAAEAAAAeAAYAAQABAAEAAAAeAAUAAQABAAEAAAAeAAQAAQABAAEAAAAdAAQAAQABAAEAAAAdAAMAAQABAAEAAAAdAAIAAQABAAEAAAAcAAIAAQABAAEAAAAcAAEAAQABAAEAAAAdAAEAAQABAAEAAAAeAAMAAQABAAEAAAACABMAAQABAAEAAAACABIAAQABAAEAAAACABEAAQABAAEAAAACABAAAQABAAEAAAABABQAAQABAAIAAAABABMAAQABAAEAAAABABIAAQABAAEAAAABABEAAQABAAEAAAABABAAAQABAAEAAAABAA8AAQABAAEAAAAEABQAAQABAAIAAAAEABMAAQABAAEAAAAFABIAAQABAAEAAAAFABMAAQABAAEAAAAEABIAAQABAAEAAAAFABQAAQABAAIAAAABAA4AAQABAAEAAAAAAA0AAQAAAAEAAAAAAAwAAQABAAEAAAAAAAsAAQABAAEAAAAAAAoAAQABAAEAAAAAAAkAAQABAAEAAAABAAgAAQABAAEAAAAAAAgAAQABAAEAAAABAAcAAQABAAEAAAABAAYAAQABAAAAAAACAAYAAQABAAEAAAACAAUAAQAAAAEAAAACAAQAAQABAAEAAAABAAQAAQAAAAIAAAABAAMAAQAAAAEAAAABAAIAAQAAAAEAAAADAAIAAQABAAEAAAAEAAIAAQABAAEAAAAFAAIAAQABAAEAAAAGAAIAAQABAAEAAAAHAAIAAQABAAEAAAAIAAIAAQABAAEAAAAKAAEAAQABAAAAAAAJAAEAAQABAAAAAAAIAAEAAQABAAAAAAAHAAEAAQABAAAAAAAGAAEAAQABAAAAAAAFAAEAAQABAAAAAAAEAAEAAQABAAAAAAADAAEAAQABAAAAAAACAAEAAQABAAAAAAABAAEAAQAAAAAAAAALAAIAAQABAAEAAAAMAAIAAQABAAEAAAANAAIAAQABAAEAAAAOAAIAAQABAAEAAAALAAEAAQABAAAAAAAMAAEAAQABAAAAAAANAAEAAQABAAAAAAAOAAEAAQABAAAAAAAPAAEAAQABAAAAAAAQAAEAAQABAAAAAAARAAEAAQABAAEAAAARAAAAAQAAAAAAAAASAAAAAQABAAAAAAATAAAAAQABAAAAAAAUAAAAAQABAAAAAAAVAAAAAQABAAAAAAAWAAAAAQABAAAAAAAXAAAAAQABAAAAAAAYAAAAAQABAAAAAAAZAAAAAQABAAAAAAAaAAAAAQABAAAAAAAbAAAAAQABAAAAAAAcAAAAAQABAAAAAAAdAAAAAQACAAAAAAAVABcAAQACAAAAAAAVABgAAQACAAEAAAAAABsAAQAAAAEAAAABABsAAQABAAEAAAACABgAAQABAAAAAAAAABgAAQAAAAAAAAACABkAAQABAAEAAAABABkAAQABAAEAAAABABgAAQABAAAAAAAAABkAAQAAAAEAAAAAABoAAQAAAAEAAAABABoAAQABAAEAAAAPABMAAQABAAIAAAAAABQAAQAAAAIAAAAAABMAAQAAAAEAAAAAAA4AAQAAAAEAAAAAAA8AAQAAAAEAAAAAABAAAQAAAAEAAAAAABEAAQAAAAEAAAAAABIAAQAAAAEAAAAAAAYAAQABAAAAAAAAAAcAAQABAAEAAAAtABMAAQABAAEAAAAtABIAAQABAAEAAAAtABEAAQABAAEAAAAtABAAAQABAAEAAAAtAA8AAQABAAEAAAAtAA4AAQABAAEAAAAtAA0AAQABAAEAAAAtAAwAAQABAAEAAAAtAAsAAQABAAEAAAAtAAoAAQACAAEAAAAtAAkAAQACAAEAAAAtAAgAAQACAAEAAAAtAAcAAQACAAEAAAAtAAYAAQACAAEAAAAtAAUAAQACAAEAAAAtAAQAAQACAAEAAAAtAAMAAQACAAEAAAAtAAIAAQACAAEAAAAtAAEAAQACAAAAAAAsABMAAQABAAEAAAAsABIAAQABAAEAAAAsABEAAQABAAEAAAAsABAAAQABAAEAAAAsAA8AAQABAAEAAAAsAA4AAQABAAEAAAAsAA0AAQABAAEAAAAsAAwAAQABAAEAAAAsAAsAAQABAAEAAAAsAAoAAQABAAEAAAAsAAkAAQABAAEAAAAsAAgAAQABAAEAAAAsAAcAAQABAAEAAAAsAAYAAQABAAEAAAAsAAUAAQABAAEAAAAsAAQAAQABAAEAAAAsAAMAAQABAAEAAAAsAAIAAQABAAEAAAAsAAEAAQABAAAAAAArABMAAQABAAEAAAArABIAAQABAAEAAAArABEAAQABAAEAAAArABAAAQABAAEAAAArAA8AAQABAAEAAAArAA4AAQABAAEAAAArAA0AAQABAAEAAAArAAwAAQABAAEAAAArAAsAAQABAAEAAAArAAoAAQABAAEAAAArAAkAAQABAAEAAAArAAgAAQABAAEAAAArAAcAAQABAAEAAAArAAYAAQABAAEAAAArAAUAAQABAAEAAAArAAQAAQABAAEAAAArAAMAAQABAAEAAAArAAIAAQABAAEAAAArAAEAAQABAAAAAAAqABMAAQABAAEAAAAqABIAAQABAAEAAAAqABEAAQABAAEAAAAqABAAAQABAAEAAAAqAA8AAQABAAEAAAAqAA4AAQABAAEAAAAqAA0AAQABAAEAAAAqAAwAAQABAAEAAAAqAAsAAQABAAEAAAAqAAoAAQABAAEAAAAqAAkAAQABAAEAAAAqAAgAAQABAAEAAAAqAAcAAQABAAEAAAAqAAYAAQABAAEAAAAqAAUAAQABAAEAAAAqAAQAAQABAAEAAAAqAAMAAQABAAEAAAAqAAIAAQABAAEAAAAqAAEAAQABAAEAAAApABMAAQABAAEAAAApABIAAQABAAEAAAApABEAAQABAAEAAAApABAAAQABAAEAAAApAA8AAQABAAEAAAApAA4AAQABAAEAAAApAA0AAQABAAEAAAApAAwAAQABAAEAAAApAAsAAQABAAEAAAApAAoAAQABAAEAAAApAAkAAQABAAEAAAApAAgAAQABAAEAAAApAAcAAQABAAEAAAApAAYAAQABAAEAAAApAAUAAQABAAEAAAApAAQAAQABAAEAAAApAAMAAQABAAEAAAApAAIAAQABAAEAAAApAAEAAQABAAEAAAAoABMAAQABAAEAAAAoABIAAQABAAEAAAAoABEAAQABAAEAAAAoABAAAQABAAEAAAAoAA8AAQABAAEAAAAoAA4AAQABAAEAAAAoAA0AAQABAAEAAAAoAAwAAQABAAEAAAAoAAsAAQABAAEAAAAoAAoAAQABAAEAAAAoAAkAAQABAAEAAAAoAAgAAQABAAEAAAAoAAcAAQABAAEAAAAoAAYAAQABAAEAAAAoAAUAAQABAAEAAAAoAAQAAQABAAEAAAAoAAMAAQABAAEAAAAoAAIAAQABAAEAAAAoAAEAAQABAAEAAAAnABMAAQABAAEAAAAnABIAAQABAAEAAAAnABEAAQABAAEAAAAnABAAAQABAAEAAAAnAA8AAQABAAEAAAAnAA4AAQABAAEAAAAnAA0AAQABAAEAAAAnAAwAAQABAAEAAAAnAAsAAQABAAEAAAAnAAoAAQABAAEAAAAnAAkAAQABAAEAAAAnAAgAAQABAAEAAAAnAAcAAQABAAEAAAAnAAYAAQABAAEAAAAnAAUAAQABAAEAAAAnAAQAAQABAAEAAAAnAAMAAQABAAEAAAAnAAIAAQABAAEAAAAnAAEAAQABAAEAAAAmABMAAQABAAEAAAAmABIAAQABAAEAAAAmABEAAQABAAEAAAAmABAAAQABAAEAAAAmAA8AAQABAAEAAAAmAA4AAQABAAEAAAAmAA0AAQABAAEAAAAmAAwAAQABAAEAAAAmAAsAAQABAAEAAAAmAAoAAQABAAEAAAAmAAkAAQABAAEAAAAmAAgAAQABAAEAAAAmAAcAAQABAAEAAAAmAAYAAQABAAEAAAAmAAUAAQABAAEAAAAmAAQAAQABAAEAAAAmAAMAAQABAAEAAAAmAAIAAQABAAEAAAAmAAEAAQABAAEAAAAlABMAAQABAAEAAAAlABIAAQABAAEAAAAlABEAAQABAAEAAAAlABAAAQABAAEAAAAlAA8AAQABAAEAAAAlAA4AAQABAAEAAAAlAA0AAQABAAEAAAAlAAwAAQABAAEAAAAlAAsAAQABAAEAAAAlAAoAAQABAAEAAAAlAAkAAQABAAEAAAAlAAgAAQABAAEAAAAlAAcAAQABAAEAAAAlAAYAAQABAAEAAAAlAAUAAQABAAEAAAAlAAQAAQABAAEAAAAlAAMAAQABAAEAAAAlAAIAAQABAAEAAAAlAAEAAQABAAEAAAAkABMAAQABAAEAAAAkABIAAQABAAEAAAAkABEAAQABAAEAAAAkABAAAQABAAEAAAAkAA8AAQABAAEAAAAkAA4AAQABAAEAAAAkAA0AAQABAAEAAAAkAAwAAQABAAEAAAAkAAsAAQABAAEAAAAkAAoAAQABAAEAAAAkAAkAAQABAAEAAAAkAAgAAQABAAEAAAAkAAcAAQABAAEAAAAkAAYAAQABAAEAAAAkAAUAAQABAAEAAAAkAAQAAQABAAEAAAAkAAMAAQABAAEAAAAkAAIAAQABAAEAAAAkAAEAAQABAAEAAAAjABMAAQABAAEAAAAjABIAAQABAAEAAAAjABEAAQABAAEAAAAjABAAAQABAAEAAAAjAA8AAQABAAEAAAAjAA4AAQABAAEAAAAjAA0AAQABAAEAAAAjAAwAAQABAAEAAAAjAAsAAQABAAEAAAAjAAoAAQABAAEAAAAjAAkAAQABAAEAAAAjAAgAAQABAAEAAAAjAAcAAQABAAEAAAAjAAYAAQABAAEAAAAjAAUAAQABAAEAAAAjAAQAAQABAAEAAAAjAAMAAQABAAEAAAAjAAIAAQABAAEAAAAjAAEAAQABAAAAAAAiABMAAQABAAIAAAAiABIAAQABAAEAAAAiABEAAQABAAEAAAAiABAAAQABAAEAAAAiAA8AAQABAAEAAAAiAA4AAQABAAEAAAAiAA0AAQABAAEAAAAiAAwAAQABAAEAAAAiAAsAAQABAAEAAAAiAAoAAQABAAEAAAAiAAkAAQABAAEAAAAiAAgAAQABAAEAAAAiAAcAAQABAAEAAAAiAAYAAQABAAEAAAAiAAUAAQABAAEAAAAiAAQAAQABAAEAAAAiAAMAAQABAAEAAAAiAAIAAQABAAEAAAAiAAEAAQABAAAAAAAhABMAAQABAAIAAAAhABIAAQABAAEAAAAhABEAAQABAAEAAAAhABAAAQABAAEAAAAhAA8AAQABAAEAAAAhAA4AAQABAAEAAAAhAA0AAQABAAEAAAAhAAwAAQABAAEAAAAhAAsAAQABAAEAAAAhAAoAAQABAAEAAAAhAAkAAQABAAEAAAAhAAgAAQABAAEAAAAhAAcAAQABAAEAAAAhAAYAAQABAAEAAAAhAAUAAQABAAEAAAAhAAQAAQABAAEAAAAhAAMAAQABAAEAAAAhAAIAAQABAAEAAAAhAAEAAQABAAAAAAAgABMAAQABAAIAAAAgABIAAQABAAEAAAAgABEAAQABAAEAAAAgABAAAQABAAEAAAAgAA8AAQABAAEAAAAgAA4AAQABAAEAAAAgAA0AAQABAAEAAAAgAAwAAQABAAEAAAAgAAsAAQABAAEAAAAgAAoAAQABAAEAAAAgAAkAAQABAAEAAAAgAAgAAQABAAEAAAAgAAcAAQABAAEAAAAgAAYAAQABAAEAAAAgAAUAAQABAAEAAAAgAAQAAQABAAEAAAAgAAMAAQABAAEAAAAgAAIAAQABAAEAAAAgAAEAAQABAAAAAAAfABMAAQABAAIAAAAfABIAAQABAAEAAAAfABEAAQABAAEAAAAfABAAAQABAAEAAAAfAA8AAQABAAEAAAAfAA4AAQABAAEAAAAfAA0AAQABAAEAAAAfAAwAAQABAAEAAAAfAAsAAQABAAEAAAAfAAoAAQABAAEAAAAfAAkAAQABAAEAAAAfAAgAAQABAAEAAAAfAAcAAQABAAEAAAAfAAYAAQABAAEAAAAfAAUAAQABAAEAAAAfAAQAAQABAAEAAAAfAAMAAQABAAEAAAAfAAIAAQABAAEAAAAfAAEAAQABAAAAAAAeABMAAQABAAIAAAAeABIAAQABAAEAAAAeABEAAQABAAEAAAAeAAkAAQABAAEAAAAeAAgAAQABAAEAAAAeAAcAAQABAAEAAAAeAAIAAQABAAEAAAAeAAEAAQABAAAAAAAdAAgAAQABAAEAAAArABUAAQABAAIAAAArABQAAQABAAEAAAAqABUAAQABAAIAAAApABUAAQABAAEAAAApABQAAQABAAEAAAAoABQAAQABAAEAAAAnABQAAQABAAEAAAAmABUAAQABAAIAAAAmABQAAQABAAEAAAAlABUAAQABAAIAAAAlABQAAQAKAAAAAAAkABUAAQAAAAIAAAAkABQAAQABAAEAAAAjABQAAQAAAAIAAAAuABYAAQACAAEAAAAuABUAAQACAAEAAAAuABQAAQACAAEAAAAuABMAAQACAAEAAAAuABIAAQACAAEAAAAuABEAAQACAAEAAAAuABAAAQACAAEAAAAtABYAAQABAAEAAAAtABUAAQABAAEAAAAtABQAAQABAAEAAAAsABYAAQAAAAIAAAAsABUAAQALAAAAAAAsABQAAQABAAEAAAAuABgAAQACAAEAAAAuABcAAQACAAEAAAAtABcAAQAAAAEAAAAtABgAAQAAAAEAAAAuABkAAQACAAIAAAAtABkAAQAAAAIAAAAqAAAAAQACAAEAAAAqAP//AQACAAEAAAAqAP7/AQACAAEAAAAqAP3/AQACAAAAAAApAAAAAQABAAEAAAApAP//AQABAAEAAAApAP7/AQABAAEAAAApAP3/AQABAAAAAAAoAAAAAQABAAEAAAAoAP//AQABAAEAAAAoAP7/AQABAAEAAAAoAP3/AQABAAAAAAAnAAAAAQABAAEAAAAnAP//AQABAAEAAAAnAP7/AQABAAEAAAAnAP3/AQABAAAAAAAmAAAAAQABAAEAAAAmAP//AQABAAEAAAAmAP7/AQABAAEAAAAmAP3/AQABAAAAAAAlAAAAAQABAAEAAAAlAP//AQABAAEAAAAlAP7/AQABAAEAAAAlAP3/AQABAAAAAAAkAAAAAQAAAAEAAAAkAP//AQAAAAEAAAAkAP7/AQAAAAEAAAAkAP3/AQAAAAAAAAAqABQAAQABAAEAAAAvAA8AAQACAAIAAAAvAA4AAQACAAEAAAAvAA0AAQACAAEAAAAvAAwAAQACAAEAAAAvAAsAAQACAAAAAAAuAA8AAQABAAEAAAAuAA4AAQABAAEAAAAuAA0AAQABAAEAAAAuAAwAAQABAAEAAAAuAAsAAQABAAAAAAAnABUAAQABAAEAAAAnABYAAQAAAAIAAAAoABUAAQABAAEAAAAoABYAAQABAAIAAAApABYAAQACAAIAAAA=") +tile_set = ExtResource("4_624lb") +metadata/_edit_lock_ = true + +[node name="Sand" type="TileMapLayer" parent="TileMapLayers" unique_id=261541239] +tile_map_data = PackedByteArray("AAAPABkAAQAHAAIAAAAPABgAAQAIAAEAAAAOABkAAQAGAAMAAAAPABcAAQAIAAAAAAABABkAAQAGAAAAAAACABkAAQAGAAAAAAADABkAAQAGAAAAAAAEABkAAQAGAAMAAAAFABkAAQAGAAMAAAAGABkAAQAGAAMAAAAHABkAAQAGAAMAAAAIABkAAQAGAAMAAAAJABkAAQAGAAMAAAAKABkAAQAGAAMAAAALABkAAQAGAAMAAAAMABkAAQAGAAMAAAANABkAAQAGAAMAAAAAABkAAQAFAAAAAAAAABoAAQAFAAEAAAABABoAAQAGAAEAAAACABoAAQAGAAEAAAADABoAAQAHAAEAAAAAABsAAQAFAAIAAAABABsAAQAGAAIAAAACABsAAQAGAAIAAAADABsAAQAHAAIAAAAGAAoAAQAGAAAAAAAHAAoAAQAGAAAAAAAIAAoAAQAIAAAAAAAIAAsAAQAIAAEAAAAIAAwAAQAIAAIAAAAHAAsAAQAGAAEAAAAGAAsAAQAGAAEAAAAGAAwAAQAGAAIAAAAHAAwAAQAGAAIAAAAIAA0AAQAIAAMAAAAHAA0AAQAHAAMAAAAGAA0AAQAGAAMAAAAFAA0AAQAFAAMAAAAFAAwAAQAFAAIAAAAFAAoAAQAFAAAAAAAFAAsAAQAFAAEAAAAFAAkAAQAKAAEAAAAGAAkAAQALAAEAAAAHAAkAAQAMAAEAAAAeAAkAAQAFAAAAAAAfAAkAAQAGAAAAAAAgAAkAAQAHAAAAAAAgAAoAAQAHAAEAAAAgAAsAAQAHAAEAAAAfAAsAAQAGAAEAAAAeAAsAAQAFAAEAAAAeAAoAAQAFAAEAAAAfAAoAAQAGAAEAAAAeAAwAAQAFAAIAAAAfAAwAAQAGAAIAAAAgAAwAAQAHAAIAAAAeAA4AAQAFAAAAAAAfAA4AAQAGAAAAAAAgAA4AAQAGAAAAAAAhAA4AAQAGAAAAAAAiAA4AAQAGAAAAAAAjAA4AAQAGAAAAAAAkAA4AAQAGAAEAAAAlAA4AAQAGAAEAAAAmAA4AAQAGAAEAAAAeAA8AAQAFAAEAAAAeABAAAQAFAAEAAAAeABEAAQAFAAEAAAAeABIAAQAFAAIAAAAfABIAAQAGAAIAAAAgABIAAQAGAAIAAAAhABIAAQAGAAIAAAAiABIAAQAGAAIAAAAjABIAAQAGAAIAAAAkABIAAQAGAAIAAAAlABIAAQAGAAIAAAAmABIAAQAGAAIAAAAnABIAAQAGAAIAAAAoABIAAQAGAAIAAAApABIAAQAGAAIAAAAqABIAAQAHAAIAAAAqABEAAQAHAAEAAAAqABAAAQAHAAEAAAAqAA8AAQAHAAEAAAAqAA4AAQAHAAEAAAAqAA0AAQAHAAEAAAAqAAwAAQAHAAAAAAApAAwAAQAGAAAAAAAoAAwAAQAGAAAAAAAnAAwAAQAGAAAAAAAmAAwAAQAGAAAAAAAlAAwAAQAGAAAAAAAkAAwAAQAFAAAAAAAkAA0AAQAFAAEAAAAlAA0AAQAGAAEAAAAmAA0AAQAGAAEAAAAmAA8AAQAGAAEAAAAnAA0AAQAGAAEAAAAnAA4AAQAGAAEAAAAnAA8AAQAGAAEAAAAoAA4AAQAGAAEAAAAoAA0AAQAGAAEAAAAoAA8AAQAGAAEAAAApAA4AAQAGAAEAAAApAA0AAQAGAAEAAAApAA8AAQAGAAEAAAApABAAAQAGAAEAAAApABEAAQAGAAEAAAAoABEAAQAGAAEAAAAnABEAAQAGAAEAAAAmABEAAQAGAAEAAAAlABEAAQAGAAEAAAAkABEAAQAGAAEAAAAjABEAAQAGAAEAAAAiABEAAQAGAAEAAAAhABEAAQAGAAEAAAAgABEAAQAGAAEAAAAgABAAAQAGAAEAAAAfABAAAQAGAAEAAAAfAA8AAQAGAAEAAAAgAA8AAQAGAAEAAAAhAA8AAQAGAAEAAAAiAA8AAQAGAAEAAAAjAA8AAQAGAAEAAAAkAA8AAQAGAAEAAAAlAA8AAQAGAAEAAAAlABAAAQAGAAEAAAAkABAAAQAGAAEAAAAjABAAAQAGAAEAAAAiABAAAQAGAAEAAAAhABAAAQAGAAEAAAAfABEAAQAGAAEAAAAmABAAAQAGAAEAAAAnABAAAQAGAAEAAAAoABAAAQAGAAEAAAA=") +tile_set = ExtResource("4_624lb") + +[node name="Bridges" type="TileMapLayer" parent="TileMapLayers" unique_id=2080717311] +tile_map_data = PackedByteArray("AAAPABMAAwAAAAEAAAAPABUAAwAAAAIAAAAPABYAAwAAAAIAAAAPABcAAwAAAAMAAAAPABQAAwAAAAIAAAANAAoAAwAAAAAAAAAMAAoAAwAAAAEAAAAMAAsAAwAAAAIAAAAMAAwAAwAAAAMAAAAOAAoAAwABAAAAAAAPAAoAAwACAAAAAAA=") +tile_set = ExtResource("8_yc3gb") + +[node name="Farms" type="TileMapLayer" parent="TileMapLayers" unique_id=700508263] +tile_map_data = PackedByteArray("AAASAAoABgAAAAAAAAATAAoABgABAAAAAAAUAAoABgACAAAAAAAUAAsABgACAAEAAAAUAAwABgACAAIAAAATAAwABgABAAIAAAASAAwABgAAAAIAAAASAAsABgAAAAEAAAATAAsABgABAAEAAAASAAkABgAEAAAAAAATAAkABgAFAAAAAAAUAAkABgAGAAAAAAAVAAoABgADAAAAAAAVAAsABgADAAEAAAAVAAwABgADAAIAAAAUAA0ABgACAAMAAAAVAA0ABgADAAMAAAASAA0ABgAAAAMAAAATAA0ABgABAAMAAAA=") +tile_set = ExtResource("4_624lb") + +[node name="Stone_Level1" type="TileMapLayer" parent="TileMapLayers" unique_id=938466590] +tile_map_data = PackedByteArray("AAAMAAAABAABAAEAAAALAAAABAABAAEAAAAKAAAABAABAAEAAAAJAAAABAABAAEAAAAIAAAABAABAAEAAAAHAAAABAABAAEAAAAGAAAABAABAAEAAAAFAAAABAABAAEAAAAAAAAABAAAAAEAAAABAAAABAABAAEAAAACAAAABAABAAEAAAADAAAABAABAAEAAAAEAAAABAABAAEAAAAQAAAABAABAAEAAAARAAAABAABAAEAAAAcAAAABAABAAEAAAAAAAEABAAAAAEAAAAAAAIABAAAAAEAAAAAAAMABAAAAAEAAAAAAAQABAABAAEAAAAAAAUABAABAAEAAAAAAAYABAABAAEAAAAAAAcABAABAAEAAAAAAAgABAABAAIAAAAAAAwABAACAAAAAAAAAA0ABAACAAEAAAAAAA4ABAAAAAEAAAAAAA8ABAAAAAEAAAAAABAABAAAAAEAAAAAABEABAAAAAEAAAAAABIABAAAAAEAAAAAABMABAABAAQAAAAMAP//BAABAAAAAAALAP//BAABAAAAAAAKAP//BAABAAAAAAAJAP//BAABAAAAAAAIAP//BAABAAAAAAAHAP//BAABAAAAAAAGAP//BAABAAAAAAAFAP//BAABAAAAAAAEAP//BAABAAAAAAADAP//BAABAAAAAAACAP//BAABAAAAAAABAP//BAABAAAAAAAAAP//BAAAAAAAAAATAP//BAABAAAAAAASAP//BAABAAAAAAARAP//BAABAAAAAAAQAP//BAABAAAAAAAeAP//BAABAAAAAAAdAP//BAABAAAAAAAcAP//BAABAAAAAAAbAP//BAABAAAAAAAaAP//BAABAAAAAAAZAP//BAABAAAAAAAYAP//BAABAAAAAAAXAP//BAABAAAAAAAWAP//BAABAAAAAAAVAP//BAABAAAAAAAUAP//BAABAAAAAAANAAAABAABAAEAAAANAP//BAABAAAAAAAfAAAABAABAAEAAAAfAP//BAABAAAAAAAeAAAABAABAAEAAAAdAAAABAABAAEAAAAfAAMABAABAAIAAAAfAAIABAABAAEAAAAfAAEABAABAAEAAAAPAAAABAABAAEAAAAPAP//BAABAAAAAAAOAAAABAABAAEAAAAOAP//BAABAAAAAAAeAAEABAABAAEAAAAeAAIABAABAAEAAAAdAAEABAABAAEAAAAcAAEABAAAAAIAAAAdAAIABAAAAAEAAAAdAAMABAAAAAIAAAADAAEABAABAAEAAAAEAAEABAABAAEAAAAFAAEABAABAAEAAAAGAAEABAABAAEAAAAHAAEABAABAAEAAAAIAAEABAABAAEAAAALAAEABAABAAEAAAAMAAEABAABAAEAAAANAAEABAABAAEAAAAOAAEABAABAAEAAAABAAEABAABAAEAAAABAAIABAABAAEAAAABAAMABAACAAEAAAABAAQABAABAAEAAAABAAUABAABAAEAAAABAAYABAABAAEAAAABAAgABAACAAIAAAABAAcABAACAAEAAAACAAUABAACAAEAAAACAAQABAACAAAAAAACAAYABAACAAIAAAABAA4ABAACAAAAAAABAA8ABAACAAEAAAABABAABAABAAEAAAACABAABAACAAAAAAACABEABAACAAEAAAACABIABAACAAIAAAABABIABAABAAEAAAABABEABAABAAEAAAABABMABAACAAIAAAAeABsABAABAAAAAAAfABsABAACAAAAAAAdABwABAAAAAIAAAAeABwABAABAAEAAAAfABwABAACAAEAAAAeAB0ABAABAAIAAAAfAB0ABAACAAIAAAAeAB4ABAAAAAMAAAAfAB4ABAACAAMAAAAdAB0ABAABAAMAAAAEABEABAAAAAAAAAAEABIABAAAAAIAAAAFABEABAACAAAAAAAFABIABAACAAIAAAACAAEABAABAAEAAAACAAIABAABAAIAAAADAAIABAABAAIAAAAEAAIABAABAAIAAAAFAAIABAABAAIAAAAGAAIABAABAAIAAAAHAAIABAABAAIAAAAIAAIABAABAAIAAAAJAAIABAABAAIAAAAJAAEABAABAAEAAAAKAAEABAABAAEAAAAKAAIABAABAAEAAAAKAAMABAAAAAIAAAALAAMABAABAAIAAAAMAAMABAACAAIAAAAMAAIABAABAAEAAAALAAIABAABAAEAAAANAAIABAABAAIAAAAOAAIABAABAAEAAAAPAAIABAABAAEAAAAOAAMABAAAAAIAAAAPAAMABAABAAIAAAAQAAMABAABAAIAAAARAAMABAABAAIAAAARAAIABAABAAEAAAAQAAIABAABAAEAAAAQAAEABAABAAEAAAAPAAEABAABAAEAAAARAAEABAABAAEAAAASAAAABAABAAEAAAASAAEABAABAAEAAAASAAIABAABAAEAAAASAAMABAABAAIAAAATAAMABAACAAIAAAATAAIABAABAAEAAAATAAEABAABAAEAAAAUAAEABAABAAEAAAAUAAIABAABAAIAAAAVAAIABAABAAIAAAAWAAIABAABAAIAAAAXAAIABAACAAIAAAAXAAEABAACAAEAAAAWAAEABAABAAEAAAAVAAEABAABAAEAAAAUAAAABAABAAEAAAATAAAABAABAAEAAAAVAAAABAABAAEAAAAWAAAABAABAAEAAAAXAAAABAABAAEAAAAYAAAABAABAAIAAAAZAAAABAABAAIAAAAaAAAABAABAAIAAAAbAAAABAABAAIAAAAdABsABAAAAAQAAAD//wgABAAAAAIAAAD//wcABAAAAAEAAAD//wYABAAAAAEAAAD//wUABAAAAAEAAAD//wQABAAAAAAAAAD//w0ABAAAAAIAAAD//wwABAAAAAAAAAArAAcABAAAAAAAAAArAAgABAAAAAEAAAArAAkABAAAAAIAAAAsAAYABAAAAAAAAAAsAAcABAABAAEAAAAsAAgABAABAAEAAAAsAAkABAABAAEAAAAsAAoABAAAAAIAAAAsABAABAAAAAAAAAAsABEABAAAAAEAAAAsABIABAAAAAEAAAAtAAQABAAAAAEAAAAtAAUABAAAAAEAAAAtAAYABAABAAEAAAAtAAcABAABAAEAAAAtAAgABAABAAEAAAAtAAkABAABAAEAAAAtAAoABAABAAIAAAAtABAABAABAAEAAAAtABEABAABAAEAAAAtABIABAABAAEAAAAuAAQABAACAAEAAAAuAAUABAABAAEAAAAuAAYABAACAAEAAAAuAAcABAACAAEAAAAuAAgABAABAAEAAAAuAAkABAACAAEAAAAuAAoABAABAAIAAAAuABAABAABAAIAAAAuABEABAACAAAAAAAuABIABAABAAEAAAAeAAMABAABAAIAAAAuAAMABAACAAEAAAAuAAIABAACAAEAAAAtAAMABAABAAEAAAAtAAIABAABAAEAAAAsAAMABAAAAAIAAAAsAAIABAABAAEAAAArAAIABAAAAAIAAAAhAAMABAACAAIAAAAhAAIABAACAAEAAAAgAAMABAABAAIAAAAgAAIABAABAAEAAAAuAAEABAACAAEAAAAuAAAABAACAAEAAAAuAP//BAACAAAAAAAtAAEABAABAAEAAAAtAAAABAABAAEAAAAtAP//BAABAAAAAAAsAAEABAABAAEAAAAsAAAABAABAAEAAAAsAP//BAABAAAAAAArAAEABAABAAEAAAArAAAABAABAAEAAAArAP//BAABAAAAAAAqAAAABAABAAIAAAAkAAEABAACAAIAAAAkAAAABAACAAEAAAAkAP//BAABAAIAAAAjAAEABAABAAIAAAAjAAAABAABAAEAAAAjAP//BAABAAAAAAAiAAEABAABAAIAAAAiAAAABAABAAEAAAAiAP//BAABAAAAAAAhAAEABAABAAEAAAAhAAAABAABAAEAAAAhAP//BAABAAAAAAAgAAEABAABAAEAAAAgAAAABAABAAEAAAAgAP//BAABAAAAAAAqAAEABAAAAAIAAAAuABQABAACAAEAAAAuABMABAACAAEAAAAtABQABAAAAAIAAAAtABMABAABAAEAAAAsABMABAAAAAIAAAAuABUABAAAAAEAAAAuABgABAABAAIAAAAuABcABAAAAAEAAAAuABYABAAAAAEAAAAqAP//BAABAAIAAAAvABYABAACAAEAAAAvABUABAACAAAAAAAvABcABAACAAEAAAAvABgABAACAAIAAAAuAA8ABAABAAAAAAAtAA8ABAAAAAEAAAAvAA8ABAACAAAAAAAvABAABAACAAIAAAAvAAoABAACAAQAAAAtAA4ABAAAAAEAAAAtAA0ABAAAAAEAAAAtAAwABAAAAAEAAAAtAAsABAAAAAEAAAAuAAsABAAAAAEAAAAuAAwABAAAAAEAAAAuAA0ABAAAAAEAAAAuAA4ABAAAAAEAAAAvAA4ABAAAAAEAAAAvAA0ABAAAAAEAAAAvAAwABAAAAAEAAAAvAAsABAAAAAEAAAAlAAAABAABAAIAAAAmAAAABAABAAIAAAAnAAAABAABAAIAAAAoAAAABAABAAIAAAApAAAABAABAAIAAAApAP//BAABAAIAAAAoAP//BAABAAIAAAAnAP//BAABAAIAAAAmAP//BAABAAIAAAAlAP//BAABAAIAAAABAAkABAABAAIAAAABAAoABAABAAIAAAABAAsABAABAAIAAAABAAwABAABAAIAAAABAA0ABAABAAIAAAAtABgABAABAAIAAAAsABgABAAAAAIAAAAsABcABAAAAAEAAAAtABcABAABAAEAAAAtABYABAABAAEAAAAsABYABAABAAEAAAAsABUABAABAAEAAAAtABUABAABAAEAAAArABYABAABAAIAAAAqABYABAABAAIAAAApABYABAABAAIAAAAoABYABAABAAIAAAAnABYABAABAAIAAAAmABYABAABAAIAAAAlABYABAABAAIAAAAkABYABAABAAIAAAAjABYABAABAAIAAAAiABYABAABAAIAAAAjABUABAABAAIAAAAiABUABAABAAIAAAAhABUABAABAAIAAAAgABUABAABAAIAAAAgABQABAABAAIAAAAhABQABAABAAIAAAAiABQABAABAAIAAAAfABQABAABAAIAAAAeABQABAABAAIAAAA=") +tile_set = ExtResource("6_dlg2k") + +[node name="Piers" type="TileMapLayer" parent="TileMapLayers" unique_id=2135668026] +tile_map_data = PackedByteArray("AAAbABMAAwAAAAEAAAAbABQAAwAAAAIAAAAbABUAAwAAAAIAAAAbABYAAwAAAAMAAAA=") +tile_set = ExtResource("8_yc3gb") + +[node name="Grass_Level3" type="TileMapLayer" parent="TileMapLayers" unique_id=1627057229] +tile_map_data = PackedByteArray("AAAEAP//AQAAAAMAAAAFAP//AQABAAMAAAAGAP//AQABAAMAAAAHAP//AQACAAMAAAA=") +tile_set = ExtResource("4_624lb") + +[node name="Sand+dirt" type="TileMapLayer" parent="TileMapLayers" unique_id=710278688] +tile_map_data = PackedByteArray("AAAPABkAAQAHAAIAAAAPABgAAQAIAAEAAAAOABkAAQAGAAMAAAAPABcAAQAIAAAAAAABABkAAQAGAAAAAAACABkAAQAGAAAAAAADABkAAQAGAAAAAAAEABkAAQAGAAMAAAAFABkAAQAGAAMAAAAGABkAAQAGAAMAAAAHABkAAQAGAAMAAAAIABkAAQAGAAMAAAAJABkAAQAGAAMAAAAKABkAAQAGAAMAAAALABkAAQAGAAMAAAAMABkAAQAGAAMAAAANABkAAQAGAAMAAAAAABkAAQAFAAAAAAAAABoAAQAFAAEAAAABABoAAQAGAAEAAAACABoAAQAGAAEAAAADABoAAQAHAAEAAAAAABsAAQAFAAIAAAABABsAAQAGAAIAAAACABsAAQAGAAIAAAADABsAAQAHAAIAAAAGAAoAAQAGAAAAAAAHAAoAAQAGAAAAAAAIAAoAAQAIAAAAAAAIAAsAAQAIAAEAAAAIAAwAAQAIAAIAAAAHAAsAAQAGAAEAAAAGAAsAAQAGAAEAAAAGAAwAAQAGAAIAAAAHAAwAAQAGAAIAAAAIAA0AAQAIAAMAAAAHAA0AAQAHAAMAAAAGAA0AAQAGAAMAAAAFAA0AAQAFAAMAAAAFAAwAAQAFAAIAAAAFAAoAAQAFAAAAAAAFAAsAAQAFAAEAAAAFAAkAAQAKAAEAAAAGAAkAAQALAAEAAAAHAAkAAQAMAAEAAAAfAAoABgAEAAAAAAAfAAsAAQAKAAEAAAAfAA8ABgAAAAAAAAAgAA8ABgABAAAAAAAhAA8ABgABAAAAAAAiAA8ABgABAAAAAAAjAA8ABgABAAAAAAAkAA8ABgABAAAAAAAlAA8ABgABAAEAAAAlAA4ABgAAAAEAAAAlAA0ABgAAAAAAAAAmAA0ABgABAAAAAAAnAA0ABgABAAAAAAAoAA0ABgABAAAAAAApAA0ABgACAAAAAAApAA4ABgACAAEAAAApAA8ABgACAAEAAAApABAABgACAAEAAAApABEABgACAAIAAAAoABEABgABAAIAAAAnABEABgABAAIAAAAmABEABgABAAIAAAAlABEABgABAAIAAAAkABEABgABAAIAAAAjABEABgABAAIAAAAiABEABgABAAIAAAAhABEABgABAAIAAAAgABEABgABAAIAAAAfABEABgAAAAIAAAAfABAABgAAAAEAAAAgABAABgABAAEAAAAhABAABgABAAEAAAAiABAABgABAAEAAAAjABAABgABAAEAAAAkABAABgABAAEAAAAlABAABgABAAEAAAAmABAABgABAAEAAAAnABAABgABAAEAAAAoABAABgABAAEAAAAoAA8ABgABAAEAAAAoAA4ABgABAAEAAAAnAA4ABgABAAEAAAAmAA4ABgABAAEAAAAmAA8ABgABAAEAAAAnAA8ABgABAAEAAAA=") +tile_set = ExtResource("4_624lb") + +[node name="Farms2" type="TileMapLayer" parent="TileMapLayers" unique_id=851843505] +tile_map_data = PackedByteArray("AAASAAoABgAAAAAAAAATAAoABgABAAAAAAAUAAoABgACAAAAAAAUAAsABgACAAEAAAAUAAwABgACAAIAAAATAAwABgABAAIAAAASAAwABgAAAAIAAAASAAsABgAAAAEAAAATAAsABgABAAEAAAASAAkABgAEAAAAAAATAAkABgAFAAAAAAAUAAkABgAGAAAAAAAVAAoABgADAAAAAAAVAAsABgADAAEAAAAVAAwABgADAAIAAAAUAA0ABgACAAMAAAAVAA0ABgADAAMAAAASAA0ABgAAAAMAAAATAA0ABgABAAMAAAAgABAABgAAAAMAAAAhABAABgABAAMAAAAiABAABgABAAMAAAAjABAABgABAAMAAAAkABAABgABAAMAAAAlABAABgABAAMAAAAmABAABgABAAIAAAAnABAABgABAAIAAAAoABAABgACAAIAAAAoAA8ABgACAAEAAAAoAA4ABgACAAAAAAAnAA4ABgABAAAAAAAmAA4ABgAAAAAAAAAmAA8ABgAAAAEAAAAnAA8ABgABAAEAAAA=") +tile_set = ExtResource("4_624lb") + +[node name="Bridges2" type="TileMapLayer" parent="TileMapLayers" unique_id=390486759] +tile_map_data = PackedByteArray("AAAjABAAAwAAAAAAAAAkABAAAwABAAAAAAAlABAAAwACAAAAAAAnAA4AAwAAAAEAAAAnAA8AAwAAAAIAAAAnABAAAwAAAAMAAAA=") +tile_set = ExtResource("8_yc3gb") + +[node name="CanvasGroup" type="CanvasGroup" parent="TileMapLayers" unique_id=35573740] +material = SubResource("ShaderMaterial_lil82") + +[node name="WestPathBarrierVoid" type="TileMapLayer" parent="TileMapLayers/CanvasGroup" unique_id=935406684] +y_sort_enabled = true +material = ExtResource("11_wqq3f") +tile_map_data = PackedByteArray("AAAAAAsADQACAAEAAAD//wsADQAAAAEAAAD//woADQAAAAEAAAAAAAoADQACAAEAAAAAAAkADQACAAEAAAD//wkADQAAAAEAAAD//wgADQAAAAEAAAAAAAgADQACAAEAAAAAAAcADQACAAEAAAD//wcADQAAAAEAAAD//wYADQAAAAEAAAAAAAYADQACAAEAAAAAAAUADQABAAAAAAABAAUADQACAAMAAAD//wUADQAAAAAAAAAAAAwADQACAAEAAAD//wwADQAAAAEAAAAAAA0ADQACAAEAAAAAAA4ADQACAAIAAAD//w4ADQAAAAIAAAD//w0ADQAAAAEAAAA=") +tile_set = ExtResource("12_qle5m") +script = ExtResource("13_p1mrv") + +[node name="TileMapMaskBounds" type="Node" parent="TileMapLayers/CanvasGroup" unique_id=152500426 node_paths=PackedStringArray("canvas_item")] +script = ExtResource("14_y56e6") +canvas_item = NodePath("..") +metadata/_custom_type_script = "uid://dpw8lcjx68p3o" + +[node name="DevIslandBridgeFixed" type="TileMapLayer" parent="TileMapLayers" unique_id=330825630] +material = SubResource("ShaderMaterial_pa3cy") +tile_map_data = PackedByteArray("AAApACAAAwAAAAMAAAApAB8AAwAAAAIAAAApAB4AAwAAAAIAAAApAB0AAwAAAAIAAAApABwAAwAAAAIAAAApABsAAwAAAAEAAAA=") +tile_set = ExtResource("8_yc3gb") +script = ExtResource("13_p1mrv") +invert = true + +[node name="TileMapMaskBounds" type="Node" parent="TileMapLayers/DevIslandBridgeFixed" unique_id=1534069055 node_paths=PackedStringArray("canvas_item")] +script = ExtResource("14_y56e6") +canvas_item = NodePath("..") +metadata/_custom_type_script = "uid://dpw8lcjx68p3o" + +[node name="DevIslandBridgeBroken" type="TileMapLayer" parent="TileMapLayers" unique_id=1894208076] +material = SubResource("ShaderMaterial_gs8yf") +tile_map_data = PackedByteArray("AAApACAAAwAAAAMAAAApAB8AAwAAAAIAAAApAB4AAwAAAAIAAAApAB0AAwAAAAIAAAApABwAAwABAAMAAAApABsAAwAAAAEAAAA=") +tile_set = ExtResource("8_yc3gb") +script = ExtResource("13_p1mrv") + +[node name="TileMapMaskBounds" type="Node" parent="TileMapLayers/DevIslandBridgeBroken" unique_id=1576552835 node_paths=PackedStringArray("canvas_item")] +script = ExtResource("14_y56e6") +canvas_item = NodePath("..") +metadata/_custom_type_script = "uid://dpw8lcjx68p3o" + +[node name="OnTheGround" type="Node2D" parent="." unique_id=887970266] +y_sort_enabled = true + +[node name="Player" parent="OnTheGround" unique_id=296354958 instance=ExtResource("15_wvf6x")] +position = Vector2(985, 863) +player_name = "StoryWeaver" +sprite_frames = ExtResource("16_vjxnc") + +[node name="Camera2D" type="Camera2D" parent="OnTheGround/Player" unique_id=1677039576] +limit_left = 0 +limit_top = 0 +limit_right = 2976 +limit_bottom = 1950 +position_smoothing_enabled = true +editor_draw_limits = true + +[node name="Sign" parent="OnTheGround" unique_id=1579530966 instance=ExtResource("17_rsp3k")] +position = Vector2(668, 708) +text = "Sand" + +[node name="Sign2" parent="OnTheGround" unique_id=92977779 instance=ExtResource("17_rsp3k")] +position = Vector2(1047, 712) +text = "Wood" + +[node name="Sign3" parent="OnTheGround" unique_id=2028511820 instance=ExtResource("17_rsp3k")] +position = Vector2(1498, 704) +text = "Stone" + +[node name="Sign4" parent="OnTheGround" unique_id=2097150581 instance=ExtResource("17_rsp3k")] +position = Vector2(1527, 1073) +direction = 1 +text = "When materials overlap, the last detected material takes priority." + +[node name="Sign5" parent="OnTheGround" unique_id=404573271 instance=ExtResource("17_rsp3k")] +position = Vector2(1830, 711) +direction = 1 +text = "Tile map (sand) + tilemap (sand+dirt)" + +[node name="Sign6" parent="OnTheGround" unique_id=2009191960 instance=ExtResource("17_rsp3k")] +position = Vector2(1812, 1140) +direction = 1 +text = "sand + (sand+dirt) + farm +bridge" diff --git a/scenes/game_elements/characters/player/components/footstep_sound.gd b/scenes/game_elements/characters/player/components/footstep_sound.gd new file mode 100644 index 000000000..5bb137568 --- /dev/null +++ b/scenes/game_elements/characters/player/components/footstep_sound.gd @@ -0,0 +1,60 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 +extends Node2D + +@export var sound_for_material: Dictionary[String, AudioStream] + +var _footstep_layers: Array[TileMapLayer] = [] +var _default_walk_sound: AudioStream + +@onready var walk_sound: AudioStreamPlayer2D = %WalkSound + + +## Stores the default footstep sound and caches TileMapLayers whose TileSets +## define a "material" custom data layer. +func _ready() -> void: + _default_walk_sound = walk_sound.stream + + var scene_root := get_tree().current_scene + var tile_map_layers := scene_root.find_children("*", "TileMapLayer", true, false) + + for node in tile_map_layers: + var layer := node as TileMapLayer + if not layer: + continue + + if not layer.tile_set: + continue + + if not layer.tile_set.has_custom_data_layer_by_name("material"): + continue + + _footstep_layers.append(layer) + + +## Detects the terrain material beneath the player and plays its configured +## footstep sound. Falls back to the default sound when no match is configured. +## Called from the footstep frames defined in the walk animation. +func play_footstep() -> void: + if Engine.is_editor_hint(): + return + + var current_footstep_material: String = "" + + for layer in _footstep_layers: + var coord := layer.local_to_map(layer.to_local(global_position)) + var tile_data := layer.get_cell_tile_data(coord) + + if not tile_data: + continue + + var footstep_material: Variant = tile_data.get_custom_data("material") + if footstep_material is String and not footstep_material.is_empty(): + current_footstep_material = footstep_material + + var footstep_sound: AudioStream = sound_for_material.get( + current_footstep_material, _default_walk_sound + ) + + walk_sound.stream = footstep_sound + walk_sound.play() diff --git a/scenes/game_elements/characters/player/components/footstep_sound.gd.uid b/scenes/game_elements/characters/player/components/footstep_sound.gd.uid new file mode 100644 index 000000000..1910a2fc3 --- /dev/null +++ b/scenes/game_elements/characters/player/components/footstep_sound.gd.uid @@ -0,0 +1 @@ +uid://cvjpavggqssir diff --git a/scenes/game_elements/characters/player/player.tscn b/scenes/game_elements/characters/player/player.tscn index 8c507a27b..6fcb027e1 100644 --- a/scenes/game_elements/characters/player/player.tscn +++ b/scenes/game_elements/characters/player/player.tscn @@ -16,6 +16,10 @@ [ext_resource type="PackedScene" uid="uid://b3111eergq5yg" path="res://scenes/game_elements/characters/player/components/player_hook.tscn" id="13_ecbbk"] [ext_resource type="Script" uid="uid://bk52qjv58locq" path="res://scenes/game_logic/light2d_behaviors/artificial_light_behavior.gd" id="16_ecbbk"] [ext_resource type="Texture2D" uid="uid://b5ooaiyxdrp6a" path="res://scenes/game_elements/components/light_texture_256x256.tres" id="16_tnibl"] +[ext_resource type="Script" uid="uid://cvjpavggqssir" path="res://scenes/game_elements/characters/player/components/footstep_sound.gd" id="17_tnibl"] +[ext_resource type="AudioStream" uid="uid://ddrhppyp6mmdf" path="res://assets/first_party/sounds/characters/player/FootStepsSounds/SandSound.wav" id="18_cvb4d"] +[ext_resource type="AudioStream" uid="uid://s4xqcdhebvsj" path="res://assets/first_party/sounds/characters/player/FootStepsSounds/WoodSound.wav" id="19_ubfef"] +[ext_resource type="AudioStream" uid="uid://cbxuw1d1v2w2u" path="res://assets/first_party/sounds/characters/player/FootStepsSounds/StoneSound.wav" id="20_2ge3f"] [sub_resource type="Resource" id="Resource_cvb4d"] script = ExtResource("3_cvb4d") @@ -293,11 +297,28 @@ tracks/2/path = NodePath("WalkSound:playing") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0.115043, 0.4), +"times": PackedFloat32Array(0.115, 0.4), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, true] } +tracks/3/type = "method" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("FootstepSound") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.115, 0.4), +"transitions": PackedFloat32Array(1, 1), +"values": [{ +"args": [], +"method": &"play_footstep" +}, { +"args": [], +"method": &"play_footstep" +}] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_qek5x"] _data = { @@ -473,6 +494,14 @@ unique_name_in_owner = true root_node = NodePath("../../PlayerRepel") libraries/ = SubResource("AnimationLibrary_1n58k") +[node name="FootstepSound" type="Node2D" parent="." unique_id=1578687431] +script = ExtResource("17_tnibl") +sound_for_material = Dictionary[String, AudioStream]({ +"sand": ExtResource("18_cvb4d"), +"stone": ExtResource("20_2ge3f"), +"wood": ExtResource("19_ubfef") +}) + [connection signal="running_changed" from="InputWalkBehavior" to="PlayerDustParticles" method="set_emitting"] [connection signal="running_changed" from="InputWalkBehavior" to="AnimationPlayer" method="_on_input_walk_behavior_running_changed"] [connection signal="aiming_changed" from="PlayerHook" to="." method="_on_player_hook_aiming_changed"] diff --git a/tiles/bridges.tres b/tiles/bridges.tres index bfcb3c06c..ea2eaa6b7 100644 --- a/tiles/bridges.tres +++ b/tiles/bridges.tres @@ -9,19 +9,23 @@ texture_region_size = Vector2i(64, 64) 0:0/0/terrain_set = 0 0:0/0/terrain = 0 0:0/0/terrains_peering_bit/right_side = 0 +0:0/0/custom_data_0 = "wood" 1:0/0 = 0 1:0/0/terrain_set = 0 1:0/0/terrain = 0 1:0/0/terrains_peering_bit/right_side = 0 1:0/0/terrains_peering_bit/left_side = 0 +1:0/0/custom_data_0 = "wood" 2:0/0 = 0 2:0/0/terrain_set = 0 2:0/0/terrain = 0 2:0/0/terrains_peering_bit/left_side = 0 +2:0/0/custom_data_0 = "wood" 0:1/0 = 0 0:1/0/terrain_set = 0 0:1/0/terrain = 0 0:1/0/terrains_peering_bit/bottom_side = 0 +0:1/0/custom_data_0 = "wood" 1:1/0 = 0 2:1/0 = 0 0:2/0 = 0 @@ -29,11 +33,13 @@ texture_region_size = Vector2i(64, 64) 0:2/0/terrain = 0 0:2/0/terrains_peering_bit/bottom_side = 0 0:2/0/terrains_peering_bit/top_side = 0 +0:2/0/custom_data_0 = "wood" 1:2/0 = 0 0:3/0 = 0 0:3/0/terrain_set = 0 0:3/0/terrain = 0 0:3/0/terrains_peering_bit/top_side = 0 +0:3/0/custom_data_0 = "wood" 2:3/0 = 0 2:2/0 = 0 2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-19.593307, -26.124409, -18.799213, 22.622784, 23.897308, 22.941414, 23.791874, -26.124409, -20.059814, -26.124409) @@ -61,4 +67,6 @@ physics_layer_2/collision_mask = 0 terrain_set_0/mode = 2 terrain_set_0/terrain_0/name = "Bridge" terrain_set_0/terrain_0/color = Color(0.404068, 0.229965, 0.149571, 1) +custom_data_layer_0/name = "material" +custom_data_layer_0/type = 4 sources/3 = SubResource("TileSetAtlasSource_jmclm") diff --git a/tiles/exterior_floors.tres b/tiles/exterior_floors.tres index 7310521e8..675d1ddac 100644 --- a/tiles/exterior_floors.tres +++ b/tiles/exterior_floors.tres @@ -51,21 +51,25 @@ texture_region_size = Vector2i(64, 64) 5:0/0/terrain = 1 5:0/0/terrains_peering_bit/right_side = 1 5:0/0/terrains_peering_bit/bottom_side = 1 +5:0/0/custom_data_0 = "sand" 6:0/0 = 0 6:0/0/terrain_set = 0 6:0/0/terrain = 1 6:0/0/terrains_peering_bit/right_side = 1 6:0/0/terrains_peering_bit/bottom_side = 1 6:0/0/terrains_peering_bit/left_side = 1 +6:0/0/custom_data_0 = "sand" 7:0/0 = 0 7:0/0/terrain_set = 0 7:0/0/terrain = 1 7:0/0/terrains_peering_bit/bottom_side = 1 7:0/0/terrains_peering_bit/left_side = 1 +7:0/0/custom_data_0 = "sand" 8:0/0 = 0 8:0/0/terrain_set = 0 8:0/0/terrain = 1 8:0/0/terrains_peering_bit/bottom_side = 1 +8:0/0/custom_data_0 = "sand" 9:0/0 = 0 0:1/0 = 0 0:1/0/terrain_set = 0 @@ -97,6 +101,7 @@ texture_region_size = Vector2i(64, 64) 5:1/0/terrains_peering_bit/right_side = 1 5:1/0/terrains_peering_bit/bottom_side = 1 5:1/0/terrains_peering_bit/top_side = 1 +5:1/0/custom_data_0 = "sand" 6:1/0 = 0 6:1/0/terrain_set = 0 6:1/0/terrain = 1 @@ -104,17 +109,20 @@ texture_region_size = Vector2i(64, 64) 6:1/0/terrains_peering_bit/bottom_side = 1 6:1/0/terrains_peering_bit/left_side = 1 6:1/0/terrains_peering_bit/top_side = 1 +6:1/0/custom_data_0 = "sand" 7:1/0 = 0 7:1/0/terrain_set = 0 7:1/0/terrain = 1 7:1/0/terrains_peering_bit/bottom_side = 1 7:1/0/terrains_peering_bit/left_side = 1 7:1/0/terrains_peering_bit/top_side = 1 +7:1/0/custom_data_0 = "sand" 8:1/0 = 0 8:1/0/terrain_set = 0 8:1/0/terrain = 1 8:1/0/terrains_peering_bit/bottom_side = 1 8:1/0/terrains_peering_bit/top_side = 1 +8:1/0/custom_data_0 = "sand" 0:2/0 = 0 0:2/0/terrain_set = 0 0:2/0/terrain = 0 @@ -140,21 +148,25 @@ texture_region_size = Vector2i(64, 64) 5:2/0/terrain = 1 5:2/0/terrains_peering_bit/right_side = 1 5:2/0/terrains_peering_bit/top_side = 1 +5:2/0/custom_data_0 = "sand" 6:2/0 = 0 6:2/0/terrain_set = 0 6:2/0/terrain = 1 6:2/0/terrains_peering_bit/right_side = 1 6:2/0/terrains_peering_bit/left_side = 1 6:2/0/terrains_peering_bit/top_side = 1 +6:2/0/custom_data_0 = "sand" 7:2/0 = 0 7:2/0/terrain_set = 0 7:2/0/terrain = 1 7:2/0/terrains_peering_bit/left_side = 1 7:2/0/terrains_peering_bit/top_side = 1 +7:2/0/custom_data_0 = "sand" 8:2/0 = 0 8:2/0/terrain_set = 0 8:2/0/terrain = 1 8:2/0/terrains_peering_bit/top_side = 1 +8:2/0/custom_data_0 = "sand" 0:3/0 = 0 0:3/0/terrain_set = 0 0:3/0/terrain = 0 @@ -175,24 +187,31 @@ texture_region_size = Vector2i(64, 64) 5:3/0/terrain_set = 0 5:3/0/terrain = 1 5:3/0/terrains_peering_bit/right_side = 1 +5:3/0/custom_data_0 = "sand" 6:3/0 = 0 6:3/0/terrain_set = 0 6:3/0/terrain = 1 6:3/0/terrains_peering_bit/right_side = 1 6:3/0/terrains_peering_bit/left_side = 1 +6:3/0/custom_data_0 = "sand" 7:3/0 = 0 7:3/0/terrain_set = 0 7:3/0/terrain = 1 7:3/0/terrains_peering_bit/left_side = 1 +7:3/0/custom_data_0 = "sand" 8:3/0 = 0 8:3/0/terrain_set = 0 8:3/0/terrain = 1 +8:3/0/custom_data_0 = "sand" 10:0/0 = 0 11:0/0 = 0 12:0/0 = 0 12:1/0 = 0 +12:1/0/custom_data_0 = "sand" 11:1/0 = 0 +11:1/0/custom_data_0 = "sand" 10:1/0 = 0 +10:1/0/custom_data_0 = "sand" [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_1srhd"] texture = ExtResource("2_ht73d") @@ -286,27 +305,32 @@ texture_region_size = Vector2i(64, 64) 0:0/0/terrain = 3 0:0/0/terrains_peering_bit/right_side = 3 0:0/0/terrains_peering_bit/bottom_side = 3 +0:0/0/custom_data_0 = "stone" 1:0/0 = 0 1:0/0/terrain_set = 0 1:0/0/terrain = 3 1:0/0/terrains_peering_bit/right_side = 3 1:0/0/terrains_peering_bit/bottom_side = 3 1:0/0/terrains_peering_bit/left_side = 3 +1:0/0/custom_data_0 = "stone" 2:0/0 = 0 2:0/0/terrain_set = 0 2:0/0/terrain = 3 2:0/0/terrains_peering_bit/bottom_side = 3 2:0/0/terrains_peering_bit/left_side = 3 +2:0/0/custom_data_0 = "stone" 3:0/0 = 0 3:0/0/terrain_set = 0 3:0/0/terrain = 3 3:0/0/terrains_peering_bit/bottom_side = 3 +3:0/0/custom_data_0 = "stone" 0:1/0 = 0 0:1/0/terrain_set = 0 0:1/0/terrain = 3 0:1/0/terrains_peering_bit/right_side = 3 0:1/0/terrains_peering_bit/bottom_side = 3 0:1/0/terrains_peering_bit/top_side = 3 +0:1/0/custom_data_0 = "stone" 1:1/0 = 0 1:1/0/terrain_set = 0 1:1/0/terrain = 3 @@ -314,56 +338,70 @@ texture_region_size = Vector2i(64, 64) 1:1/0/terrains_peering_bit/bottom_side = 3 1:1/0/terrains_peering_bit/left_side = 3 1:1/0/terrains_peering_bit/top_side = 3 +1:1/0/custom_data_0 = "stone" 2:1/0 = 0 2:1/0/terrain_set = 0 2:1/0/terrain = 3 2:1/0/terrains_peering_bit/bottom_side = 3 2:1/0/terrains_peering_bit/left_side = 3 2:1/0/terrains_peering_bit/top_side = 3 +2:1/0/custom_data_0 = "stone" 3:1/0 = 0 3:1/0/terrain_set = 0 3:1/0/terrain = 3 3:1/0/terrains_peering_bit/bottom_side = 3 3:1/0/terrains_peering_bit/top_side = 3 +3:1/0/custom_data_0 = "stone" 0:2/0 = 0 0:2/0/terrain_set = 0 0:2/0/terrain = 3 0:2/0/terrains_peering_bit/right_side = 3 0:2/0/terrains_peering_bit/top_side = 3 +0:2/0/custom_data_0 = "stone" 1:2/0 = 0 1:2/0/terrain_set = 0 1:2/0/terrain = 3 1:2/0/terrains_peering_bit/right_side = 3 1:2/0/terrains_peering_bit/left_side = 3 1:2/0/terrains_peering_bit/top_side = 3 +1:2/0/custom_data_0 = "stone" 2:2/0 = 0 2:2/0/terrain_set = 0 2:2/0/terrain = 3 2:2/0/terrains_peering_bit/left_side = 3 2:2/0/terrains_peering_bit/top_side = 3 +2:2/0/custom_data_0 = "stone" 3:2/0 = 0 3:2/0/terrain_set = 0 3:2/0/terrain = 3 3:2/0/terrains_peering_bit/top_side = 3 +3:2/0/custom_data_0 = "stone" 0:3/0 = 0 0:3/0/terrain_set = 0 0:3/0/terrain = 3 0:3/0/terrains_peering_bit/right_side = 3 +0:3/0/custom_data_0 = "stone" 1:3/0 = 0 1:3/0/terrain_set = 0 1:3/0/terrain = 3 1:3/0/terrains_peering_bit/right_side = 3 1:3/0/terrains_peering_bit/left_side = 3 +1:3/0/custom_data_0 = "stone" 2:3/0 = 0 2:3/0/terrain_set = 0 2:3/0/terrain = 3 2:3/0/terrains_peering_bit/left_side = 3 +2:3/0/custom_data_0 = "stone" 3:3/0 = 0 3:3/0/terrain_set = 0 3:3/0/terrain = 3 +3:3/0/custom_data_0 = "stone" 4:0/0 = 0 +4:0/0/custom_data_0 = "stone" 5:0/0 = 0 +5:0/0/custom_data_0 = "stone" 6:0/0 = 0 +6:0/0/custom_data_0 = "stone" [resource] tile_size = Vector2i(64, 64) @@ -384,6 +422,8 @@ terrain_set_0/terrain_2/name = "LightGrass" terrain_set_0/terrain_2/color = Color(0.50077, 0.823591, 0.69626, 1) terrain_set_0/terrain_3/name = "Dirt" terrain_set_0/terrain_3/color = Color(0.435821, 0.294287, 0.167531, 1) +custom_data_layer_0/name = "material" +custom_data_layer_0/type = 4 sources/1 = SubResource("TileSetAtlasSource_0wfyh") sources/5 = SubResource("TileSetAtlasSource_1srhd") sources/6 = SubResource("TileSetAtlasSource_l50s2")