a game about throwing hammers made for the github game off
87 files changed, 2520 insertions, 52 deletions
diff --git a/.github/workflows/export.yml b/.github/workflows/export.yml deleted file mode 100644 index c07af32..0000000 --- a/.github/workflows/export.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: "export" # name of the workflow -on: # when it is triggered - workflow_dispatch: # manually or - push: # on a push - branches: - - main # to this branch - paths: # with modifications to these files - - "**.gd" # all gdscript files - - "**.tscn" # scene files - - "**.import" # this means a png changed - - "**.tres" # godot resources - - "**.ttf" # fonts in godot3 dont have their own .import - - ".github/workflows/export.yml" # this workflow - - "export_presets.cfg" # the export template - -jobs: # the things to do - export: # a thing to do - uses: bend-n/godot-actions/.github/workflows/callable-export.yml@main - with: # variables - godot-version: 3.5 # the godot version - image: ghcr.io/bend-n/godot-2d:3.5 # the container to use - export-name: ${{ github.event.repository.name }} # the name of the exec. ($export-name.exe) - platforms: "windows linux web android mac" # space seperated list of platforms to build - project-root-path: "." # the directory that project.godot is in - github-pages: "true" # to deploy to github pages or not (anything besides 'true' == false) - itch-path: "${{ github.repository_owner }}/${{ github.event.repository.name }}" # required for itch.io deployment. - secrets: # secrets - butler-api-key: ${{ secrets.BUTLER_CREDENTIALS }} # required for itch.io deployment - android-keystore-base64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} # for signing the apk, not required - android-keystore-password: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} # ditto @@ -7,3 +7,5 @@ logs/ exports/ *.x86_64 addons/ +.godot/ +maze.png* @@ -0,0 +1,7 @@ +extends Node2D + +var maze: Maze + + +func _on_level_manager_world_generated(p_maze: Maze) -> void: + maze = p_maze @@ -1,3 +1,48 @@ -[gd_scene format=2] +[gd_scene load_steps=23 format=3 uid="uid://b4g41v2qctg7f"] + +[ext_resource type="Script" path="res://Main.gd" id="1_l4fqe"] +[ext_resource type="PackedScene" uid="uid://c1fgxkkh72npw" path="res://player/player.tscn" id="1_ug1uc"] +[ext_resource type="PackedScene" uid="uid://c8hhhk21dtpe0" path="res://levels/Start.tscn" id="2_vg2cv"] +[ext_resource type="Script" path="res://levels/LevelManager.gd" id="3_yuvn4"] +[ext_resource type="PackedScene" uid="uid://txq8h42d4oqi" path="res://levels/rand/01.tscn" id="4_e4ceh"] +[ext_resource type="PackedScene" uid="uid://gev80rx2b8vn" path="res://levels/rand/02.tscn" id="5_vqiwr"] +[ext_resource type="PackedScene" uid="uid://esupr5vkktt" path="res://levels/rand/03.tscn" id="6_v5xvb"] +[ext_resource type="PackedScene" uid="uid://wgp3b5vk3qbs" path="res://levels/rand/04.tscn" id="7_rihcm"] +[ext_resource type="PackedScene" uid="uid://lb0i4wxlcdo3" path="res://levels/rand/05.tscn" id="8_5a36k"] +[ext_resource type="PackedScene" uid="uid://cmex8m63vfpoj" path="res://levels/rand/06.tscn" id="9_3vmkv"] +[ext_resource type="PackedScene" uid="uid://bh0o48w2ir4l2" path="res://levels/rand/07.tscn" id="10_7n0bw"] +[ext_resource type="PackedScene" uid="uid://x3fddi5udbur" path="res://levels/rand/08.tscn" id="11_skonw"] +[ext_resource type="PackedScene" uid="uid://b7w7ns27n53rh" path="res://levels/rand/09.tscn" id="12_5n213"] +[ext_resource type="PackedScene" uid="uid://gyxkjwsih0s2" path="res://levels/rand/10.tscn" id="13_ni5ug"] +[ext_resource type="PackedScene" uid="uid://bkywu3kc1xfep" path="res://levels/rand/11.tscn" id="14_uubx2"] +[ext_resource type="PackedScene" uid="uid://dnn448k214c42" path="res://levels/rand/12.tscn" id="15_x5iyq"] +[ext_resource type="PackedScene" uid="uid://dkci2hmtjgrvj" path="res://levels/rand/13.tscn" id="16_xq64q"] +[ext_resource type="PackedScene" uid="uid://bxokgsjhvo0ad" path="res://levels/rand/14.tscn" id="17_c4kk1"] +[ext_resource type="PackedScene" uid="uid://cnwifdbe2eqv8" path="res://levels/rand/15.tscn" id="18_mpe1f"] +[ext_resource type="PackedScene" uid="uid://d4dwvcp6764bx" path="res://levels/rand/16.tscn" id="19_ko67h"] +[ext_resource type="PackedScene" uid="uid://duo0cbnh5u3qt" path="res://levels/rand/17.tscn" id="20_f85eu"] +[ext_resource type="PackedScene" uid="uid://cy3kc27btbipt" path="res://levels/rand/18.tscn" id="21_rvdjm"] [node name="Main" type="Node2D"] +texture_filter = 1 +script = ExtResource("1_l4fqe") + +[node name="player" parent="." instance=ExtResource("1_ug1uc")] +position = Vector2(128, 96) + +[node name="Start" parent="." instance=ExtResource("2_vg2cv")] +layer_0/tile_data = PackedInt32Array(131072, 0, 1, 196608, 0, 1, 262144, 262144, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 262144, 2, 786432, 0, 1, 851968, 0, 1, 917504, 0, 1, 983040, 0, 2, 983041, 65536, 2, 2, 65536, 0, 983042, 327680, 3, 3, 65536, 0, 983043, 65536, 3, 4, 65536, 0, 983044, 65536, 3, 5, 327680, 0, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 0, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 0, 3, 10, 327680, 0, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 393216, 0, 983052, 65536, 3, 13, 65536, 0, 983053, 65536, 3, 14, 65536, 0, 983054, 65536, 3, 15, 131072, 0, 65551, 458752, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 0, 1, 0, 0, 0, 1, 65536, 0, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 917516, 196609, 0, 917517, 262145, 0, 851982, 196609, 0, 917518, 327681, 0, 917505, 65536, 1, 917506, 131072, 1, 851970, 131072, 0, 851969, 327680, 2, 786433, 131072, 1, 720897, 131072, 0, 786439, 0, 0, 786440, 327680, 0, 851976, 131072, 2, 851975, 0, 2, 786441, 131072, 3, 393220, 196608, 2, 327684, 196608, 1, 262148, 458752, 1, 393228, 196608, 0, 458764, 196608, 1, 524300, 196608, 1, 589836, 196608, 2, 262147, 65536, 2, 262146, 65536, 2, 262145, 65536, 2, 196609, 65536, 1, 131073, 65536, 1, 65537, 65536, 1, 65538, 65536, 1, 131074, 65536, 1, 196610, 65536, 1, 65539, 65536, 1, 131075, 65536, 1, 196611, 65536, 1, 196612, 131072, 1, 131076, 327680, 1, 131077, 131072, 2, 65540, 65536, 1, 65548, 0, 1, 65549, 327680, 1, 131085, 458752, 1, 131084, 0, 2, 196621, 196608, 2, 65550, 65536, 2, 65546, 131072, 1, 131082, 131072, 2, 65545, 0, 1, 131081, 262144, 1, 196617, 196608, 2, 65541, 131072, 1) + +[node name="LevelManager" type="Node" parent="." node_paths=PackedStringArray("current_level", "player")] +unique_name_in_owner = true +script = ExtResource("3_yuvn4") +levels = [ExtResource("4_e4ceh"), ExtResource("5_vqiwr"), ExtResource("6_v5xvb"), ExtResource("7_rihcm"), ExtResource("8_5a36k"), ExtResource("9_3vmkv"), ExtResource("10_7n0bw"), ExtResource("11_skonw"), ExtResource("12_5n213"), ExtResource("13_ni5ug"), ExtResource("14_uubx2"), ExtResource("15_x5iyq"), ExtResource("16_xq64q"), ExtResource("17_c4kk1"), ExtResource("18_mpe1f"), ExtResource("19_ko67h"), ExtResource("20_f85eu"), ExtResource("21_rvdjm")] +current_level = NodePath("../Start") +player = NodePath("../player") + +[node name="Camera" type="Camera2D" parent="."] +offset = Vector2(128, 128) +current = true +zoom = Vector2(1.25, 1.25) + +[connection signal="world_generated" from="LevelManager" to="." method="_on_level_manager_world_generated"] diff --git a/assets/fx/boom.png b/assets/fx/boom.png Binary files differnew file mode 100644 index 0000000..8036576 --- /dev/null +++ b/assets/fx/boom.png diff --git a/assets/fx/boom.png.import b/assets/fx/boom.png.import new file mode 100644 index 0000000..832808e --- /dev/null +++ b/assets/fx/boom.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dq6y1g5im510r" +path="res://.godot/imported/boom.png-d5d6e37dae13f6bc5fd50590655695e2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/fx/boom.png" +dest_files=["res://.godot/imported/boom.png-d5d6e37dae13f6bc5fd50590655695e2.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/fx/double_jump.png b/assets/fx/double_jump.png Binary files differnew file mode 100644 index 0000000..d0a2e39 --- /dev/null +++ b/assets/fx/double_jump.png diff --git a/assets/fx/double_jump.png.import b/assets/fx/double_jump.png.import new file mode 100644 index 0000000..cfe5452 --- /dev/null +++ b/assets/fx/double_jump.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byl1w287mywe" +path="res://.godot/imported/double_jump.png-e0b90ffef70080db2857799ef778c72f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/fx/double_jump.png" +dest_files=["res://.godot/imported/double_jump.png-e0b90ffef70080db2857799ef778c72f.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/fx/dust.png b/assets/fx/dust.png Binary files differnew file mode 100644 index 0000000..80af075 --- /dev/null +++ b/assets/fx/dust.png diff --git a/assets/fx/dust.png.import b/assets/fx/dust.png.import new file mode 100644 index 0000000..2e91aa4 --- /dev/null +++ b/assets/fx/dust.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuhf1q2aeyoau" +path="res://.godot/imported/dust.png-d9e394ecfe07993d4ca5469c8c0f1216.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/fx/dust.png" +dest_files=["res://.godot/imported/dust.png-d9e394ecfe07993d4ca5469c8c0f1216.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/fx/glow.png b/assets/fx/glow.png Binary files differnew file mode 100644 index 0000000..39c9096 --- /dev/null +++ b/assets/fx/glow.png diff --git a/assets/fx/glow.png.import b/assets/fx/glow.png.import new file mode 100644 index 0000000..5e85263 --- /dev/null +++ b/assets/fx/glow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://co4vsks50x12o" +path="res://.godot/imported/glow.png-cbd09004ec76a979572dca6d1ed54e96.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/fx/glow.png" +dest_files=["res://.godot/imported/glow.png-cbd09004ec76a979572dca6d1ed54e96.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/fx/jump.png b/assets/fx/jump.png Binary files differnew file mode 100644 index 0000000..f4eb811 --- /dev/null +++ b/assets/fx/jump.png diff --git a/assets/fx/jump.png.import b/assets/fx/jump.png.import new file mode 100644 index 0000000..4f4a71f --- /dev/null +++ b/assets/fx/jump.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7cnh7u3nstnh" +path="res://.godot/imported/jump.png-970682fea27aa33d1e9642383ca24125.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/fx/jump.png" +dest_files=["res://.godot/imported/jump.png-970682fea27aa33d1e9642383ca24125.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/fx/particle.png b/assets/fx/particle.png Binary files differnew file mode 100644 index 0000000..7389c0b --- /dev/null +++ b/assets/fx/particle.png diff --git a/assets/fx/particle.png.import b/assets/fx/particle.png.import new file mode 100644 index 0000000..e6e5d20 --- /dev/null +++ b/assets/fx/particle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpudx484ylr0b" +path="res://.godot/imported/particle.png-d63c5cd27c93cd866464ac699a21f513.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/fx/particle.png" +dest_files=["res://.godot/imported/particle.png-d63c5cd27c93cd866464ac699a21f513.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/fx/wall_dust.png b/assets/fx/wall_dust.png Binary files differnew file mode 100644 index 0000000..68155d9 --- /dev/null +++ b/assets/fx/wall_dust.png diff --git a/assets/fx/wall_dust.png.import b/assets/fx/wall_dust.png.import new file mode 100644 index 0000000..b149842 --- /dev/null +++ b/assets/fx/wall_dust.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cky7hbmx1auqh" +path="res://.godot/imported/wall_dust.png-18e3f36ace4a3e2e1d5ba6b37b866951.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/fx/wall_dust.png" +dest_files=["res://.godot/imported/wall_dust.png-18e3f36ace4a3e2e1d5ba6b37b866951.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/player/animations.png b/assets/player/animations.png Binary files differnew file mode 100644 index 0000000..67db143 --- /dev/null +++ b/assets/player/animations.png diff --git a/assets/player/animations.png.import b/assets/player/animations.png.import new file mode 100644 index 0000000..a284862 --- /dev/null +++ b/assets/player/animations.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b36hv0jwfmb1u" +path="res://.godot/imported/animations.png-b89a395399ded18171b361fdbeedba3d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/player/animations.png" +dest_files=["res://.godot/imported/animations.png-b89a395399ded18171b361fdbeedba3d.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/brick.png b/assets/world/brick.png Binary files differnew file mode 100644 index 0000000..544dd1f --- /dev/null +++ b/assets/world/brick.png diff --git a/assets/world/brick.png.import b/assets/world/brick.png.import new file mode 100644 index 0000000..963fad4 --- /dev/null +++ b/assets/world/brick.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpg4ehst7ctf5" +path="res://.godot/imported/brick.png-3ac7fb1e792bc87a523b2637ad809cf3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/brick.png" +dest_files=["res://.godot/imported/brick.png-3ac7fb1e792bc87a523b2637ad809cf3.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/computer.png b/assets/world/computer.png Binary files differnew file mode 100644 index 0000000..95b31e7 --- /dev/null +++ b/assets/world/computer.png diff --git a/assets/world/computer.png.import b/assets/world/computer.png.import new file mode 100644 index 0000000..23edeae --- /dev/null +++ b/assets/world/computer.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://rdqqqq6dce0t" +path="res://.godot/imported/computer.png-23acc443667b6152ee25598eeac373fc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/computer.png" +dest_files=["res://.godot/imported/computer.png-23acc443667b6152ee25598eeac373fc.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/door.png b/assets/world/door.png Binary files differnew file mode 100644 index 0000000..bc16098 --- /dev/null +++ b/assets/world/door.png diff --git a/assets/world/door.png.import b/assets/world/door.png.import new file mode 100644 index 0000000..50723c6 --- /dev/null +++ b/assets/world/door.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ca243eorhvtp2" +path="res://.godot/imported/door.png-a2df4577680945bd177bbd8cef62f846.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/door.png" +dest_files=["res://.godot/imported/door.png-a2df4577680945bd177bbd8cef62f846.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/door_wall.png b/assets/world/door_wall.png Binary files differnew file mode 100644 index 0000000..6c8a385 --- /dev/null +++ b/assets/world/door_wall.png diff --git a/assets/world/door_wall.png.import b/assets/world/door_wall.png.import new file mode 100644 index 0000000..b9fb862 --- /dev/null +++ b/assets/world/door_wall.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtec6qxbrg3ym" +path="res://.godot/imported/door_wall.png-6c092803a253a9b82d0df6d6bd467fdc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/door_wall.png" +dest_files=["res://.godot/imported/door_wall.png-6c092803a253a9b82d0df6d6bd467fdc.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/ladder.png b/assets/world/ladder.png Binary files differnew file mode 100644 index 0000000..febee73 --- /dev/null +++ b/assets/world/ladder.png diff --git a/assets/world/ladder.png.import b/assets/world/ladder.png.import new file mode 100644 index 0000000..7e4d1b1 --- /dev/null +++ b/assets/world/ladder.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://beg8cclmeknvm" +path="res://.godot/imported/ladder.png-319444723779bba8ef63c700fef8313f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/ladder.png" +dest_files=["res://.godot/imported/ladder.png-319444723779bba8ef63c700fef8313f.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/moving_platform.png b/assets/world/moving_platform.png Binary files differnew file mode 100644 index 0000000..a1f493c --- /dev/null +++ b/assets/world/moving_platform.png diff --git a/assets/world/moving_platform.png.import b/assets/world/moving_platform.png.import new file mode 100644 index 0000000..1faa31c --- /dev/null +++ b/assets/world/moving_platform.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdg0t1suvcfmt" +path="res://.godot/imported/moving_platform.png-59913c01ac72567a5daf9a179d272e14.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/moving_platform.png" +dest_files=["res://.godot/imported/moving_platform.png-59913c01ac72567a5daf9a179d272e14.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/one_way_platform.png b/assets/world/one_way_platform.png Binary files differnew file mode 100644 index 0000000..4809ecb --- /dev/null +++ b/assets/world/one_way_platform.png diff --git a/assets/world/one_way_platform.png.import b/assets/world/one_way_platform.png.import new file mode 100644 index 0000000..df05d0c --- /dev/null +++ b/assets/world/one_way_platform.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0iehyccoav1r" +path="res://.godot/imported/one_way_platform.png-b81b1bf0424b2e722c681bc7cf9045a6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/one_way_platform.png" +dest_files=["res://.godot/imported/one_way_platform.png-b81b1bf0424b2e722c681bc7cf9045a6.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/save.png b/assets/world/save.png Binary files differnew file mode 100644 index 0000000..3bc7275 --- /dev/null +++ b/assets/world/save.png diff --git a/assets/world/save.png.import b/assets/world/save.png.import new file mode 100644 index 0000000..afe3cbb --- /dev/null +++ b/assets/world/save.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cipwi1dppfmi3" +path="res://.godot/imported/save.png-901d5a1782619906c9452c3e3fd93d77.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/save.png" +dest_files=["res://.godot/imported/save.png-901d5a1782619906c9452c3e3fd93d77.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/slope.png b/assets/world/slope.png Binary files differnew file mode 100644 index 0000000..b09603a --- /dev/null +++ b/assets/world/slope.png diff --git a/assets/world/slope.png.import b/assets/world/slope.png.import new file mode 100644 index 0000000..871ed69 --- /dev/null +++ b/assets/world/slope.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0urvindbx57t" +path="res://.godot/imported/slope.png-29b8994b19d893b89f41c3a9e9f169d4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/slope.png" +dest_files=["res://.godot/imported/slope.png-29b8994b19d893b89f41c3a9e9f169d4.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/world/tiles.png b/assets/world/tiles.png Binary files differnew file mode 100644 index 0000000..6e65a78 --- /dev/null +++ b/assets/world/tiles.png diff --git a/assets/world/tiles.png.import b/assets/world/tiles.png.import new file mode 100644 index 0000000..7382d2e --- /dev/null +++ b/assets/world/tiles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs3dt308ypttr" +path="res://.godot/imported/tiles.png-f8cc7b96b0fed1a4a6ae62e78a717e22.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/world/tiles.png" +dest_files=["res://.godot/imported/tiles.png-f8cc7b96b0fed1a4a6ae62e78a717e22.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/autoloads/Events.gd b/autoloads/Events.gd new file mode 100644 index 0000000..ac5910f --- /dev/null +++ b/autoloads/Events.gd @@ -0,0 +1,3 @@ +extends Node + +signal change_level(to: Vector2i)
\ No newline at end of file diff --git a/autoloads/Utils.gd b/autoloads/Utils.gd new file mode 100644 index 0000000..b794b72 --- /dev/null +++ b/autoloads/Utils.gd @@ -0,0 +1,19 @@ +extends Node +class_name Util + + +func instance_scene_on_main(scene: PackedScene, position: Vector2) -> Node: + var main = get_tree().current_scene + var instance = scene.instantiate() + main.add_child(instance) + instance.global_position = position + return instance + + +static func str_vec(vec: Vector2) -> String: + var map := {Vector2.UP: "up", Vector2.DOWN: "down", Vector2.LEFT: "left", Vector2.RIGHT: "right"} + return map.get(vec, str(vec)) + + +static func sub(a: Array, b: Array) -> Array: + return a.filter(func(item) -> bool: return not item in b) diff --git a/classes/Maze.gd b/classes/Maze.gd new file mode 100644 index 0000000..ad295c8 --- /dev/null +++ b/classes/Maze.gd @@ -0,0 +1,111 @@ +extends Resource +class_name Maze + +const N := 1 +const E := 2 +const S := 4 +const W := 8 + +# dict mapping direction to vectors. +const _cell_walls := {Vector2i(0, -1): N, Vector2i(1, 0): E, Vector2i(0, 1): S, Vector2i(-1, 0): W} + +var _size: Vector2i = Vector2i(6, 6) + +var maze := [] + + +func _init(p_size: Vector2i) -> void: + _size = p_size + randomize() + _make_maze() + + +func _check_neighbours(cell: Vector2i, unvisited: Array[Vector2i]) -> Array[Vector2i]: + # checks if neighbour is visited. + # returns array of unvisited neighbours. + var list: Array[Vector2i] = [] + for n in _cell_walls.keys(): + if cell + n in unvisited: + list.append(cell + n) + return list + + +func get_cellv(cell: Vector2i) -> int: + return maze[cell.y][cell.x] + + +func set_cellv(cell: Vector2i, v: int) -> void: + maze[cell.y][cell.x] = v + + +func _make_maze() -> void: + var unvisited: Array[Vector2i] = [] + var stack: Array[Vector2i] = [] + + # fill maze + maze.clear() + for x in range(_size.x): + var row: PackedInt32Array = [] + for y in range(_size.y): + row.append(N | E | S | W) #N|E|S|W = 15 + unvisited.append(Vector2i(x,y)) + maze.append(row) + + var current := Vector2i(0, 0) + unvisited.erase(current) + + #recurive backtracking algorithm + while unvisited.size() > 0: + # check neighbours of current cell. + var neighbours := _check_neighbours(current, unvisited) + + # if neighbours exist, pick one at random and move in that direction. + # remove wall between current cell and neighbour cell. + if neighbours.size() > 0: + var next := neighbours[randi() % neighbours.size()] + stack.append(current) + + # remove wall from both cells. + var dir := next - current + var current_walls: int = get_cellv(current) - _cell_walls[dir] + var next_walls: int = get_cellv(next) - _cell_walls[-dir] + set_cellv(current, current_walls) + set_cellv(next, next_walls) + current = next + unvisited.erase(current) + elif stack: + # if neighbours don't exist, retrieve new current from stack. + current = stack.pop_back() + + +static func tile_4b_to_wall_array(tile_4b: int) -> Array[Vector2i]: + var array: Array[Vector2i] = [] + if tile_4b & N: + array.append(Vector2i.UP) + if tile_4b & E: + array.append(Vector2i.RIGHT) + if tile_4b & S: + array.append(Vector2i.DOWN) + if tile_4b & W: + array.append(Vector2i.LEFT) + return array + +func image() -> Image: + var img := Image.create(_size.x*3, _size.y*3, false, Image.FORMAT_L8) + + const ALL_DOORS := [Vector2i.UP, Vector2i.DOWN, Vector2i.LEFT, Vector2i.RIGHT] + var position := Vector2i.ZERO + for i in len(maze): + for j in len(maze[i]): + var walls := Maze.tile_4b_to_wall_array(maze[i][j]) + if len(walls) != 4: + var paths := Util.sub(ALL_DOORS, walls) + var middle := position + Vector2i.ONE + # if len(paths) > 2: + img.set_pixelv(middle, Color.WHITE) + for path in paths: + img.set_pixelv(middle + path, Color.WHITE) + position.x += 3 + position.y += 3 + position.x = 0 + return img
\ No newline at end of file diff --git a/fx/double_jump.tscn b/fx/double_jump.tscn new file mode 100644 index 0000000..45841ac --- /dev/null +++ b/fx/double_jump.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=6 format=3 uid="uid://clsdwiyvr2dmc"] + +[ext_resource type="PackedScene" uid="uid://6o1bfy3xhjbm" path="res://fx/fx.tscn" id="1"] +[ext_resource type="Texture2D" uid="uid://byl1w287mywe" path="res://assets/fx/double_jump.png" id="2"] + +[sub_resource type="Animation" id="1"] +resource_name = "Animate" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4] +} +tracks/1/type = "method" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.5), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"queue_free" +}] +} + +[sub_resource type="Animation" id="2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_8xbme"] +_data = { +"Animate": SubResource("1"), +"RESET": SubResource("2") +} + +[node name="DoubleJumpEffect" instance=ExtResource("1")] + +[node name="Sprite" parent="." index="0"] +texture = ExtResource("2") +hframes = 5 +frame = 1 + +[node name="AnimationPlayer" parent="." index="1"] +autoplay = "Animate" +libraries = { +"": SubResource("AnimationLibrary_8xbme") +} diff --git a/fx/dust.gd b/fx/dust.gd new file mode 100644 index 0000000..6bc9386 --- /dev/null +++ b/fx/dust.gd @@ -0,0 +1,7 @@ +extends Node2D + +var motion := Vector2(randf_range(-20, 20), randf_range(-10, 10)) + + +func _process(delta: float) -> void: + position += motion * delta diff --git a/fx/dust.tscn b/fx/dust.tscn new file mode 100644 index 0000000..8d98c20 --- /dev/null +++ b/fx/dust.tscn @@ -0,0 +1,70 @@ +[gd_scene load_steps=7 format=3 uid="uid://dn3jh3u6xksvj"] + +[ext_resource type="PackedScene" uid="uid://6o1bfy3xhjbm" path="res://fx/fx.tscn" id="1"] +[ext_resource type="Texture2D" uid="uid://cuhf1q2aeyoau" path="res://assets/fx/dust.png" id="2"] +[ext_resource type="Script" path="res://fx/dust.gd" id="3"] + +[sub_resource type="Animation" id="1"] +resource_name = "Animate" +length = 0.3 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [0, 1, 2] +} +tracks/1/type = "method" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.3), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"queue_free" +}] +} + +[sub_resource type="Animation" id="2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [2] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_60u2x"] +_data = { +"Animate": SubResource("1"), +"RESET": SubResource("2") +} + +[node name="DustEffect" instance=ExtResource("1")] +script = ExtResource("3") + +[node name="Sprite" parent="." index="0"] +texture = ExtResource("2") +hframes = 3 +frame = 2 + +[node name="AnimationPlayer" parent="." index="1"] +autoplay = "Animate" +libraries = { +"": SubResource("AnimationLibrary_60u2x") +} diff --git a/fx/fx.tscn b/fx/fx.tscn new file mode 100644 index 0000000..e5fa217 --- /dev/null +++ b/fx/fx.tscn @@ -0,0 +1,8 @@ +[gd_scene format=3 uid="uid://6o1bfy3xhjbm"] + +[node name="Effect" type="Node2D"] +texture_filter = 1 + +[node name="Sprite" type="Sprite2D" parent="."] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] diff --git a/fx/jump.tscn b/fx/jump.tscn new file mode 100644 index 0000000..3010854 --- /dev/null +++ b/fx/jump.tscn @@ -0,0 +1,69 @@ +[gd_scene load_steps=6 format=3 uid="uid://cyihdut47gar"] + +[ext_resource type="PackedScene" uid="uid://6o1bfy3xhjbm" path="res://fx/fx.tscn" id="1"] +[ext_resource type="Texture2D" uid="uid://c7cnh7u3nstnh" path="res://assets/fx/jump.png" id="2"] + +[sub_resource type="Animation" id="1"] +resource_name = "Animate" +length = 0.4 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3] +} +tracks/1/type = "method" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.4), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"queue_free" +}] +} + +[sub_resource type="Animation" id="2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ity0p"] +_data = { +"Animate": SubResource("1"), +"RESET": SubResource("2") +} + +[node name="JumpEffect" instance=ExtResource("1")] + +[node name="Sprite" parent="." index="0"] +position = Vector2(0, -8) +texture = ExtResource("2") +hframes = 4 +frame = 1 + +[node name="AnimationPlayer" parent="." index="1"] +autoplay = "Animate" +libraries = { +"": SubResource("AnimationLibrary_ity0p") +} diff --git a/fx/wall_dust.tscn b/fx/wall_dust.tscn new file mode 100644 index 0000000..a062964 --- /dev/null +++ b/fx/wall_dust.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=6 format=3 uid="uid://batisas75bpt0"] + +[ext_resource type="PackedScene" uid="uid://6o1bfy3xhjbm" path="res://fx/fx.tscn" id="1_4c41e"] +[ext_resource type="Texture2D" uid="uid://cky7hbmx1auqh" path="res://assets/fx/wall_dust.png" id="2_inful"] + +[sub_resource type="Animation" id="1"] +resource_name = "Animate" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4] +} +tracks/1/type = "method" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.5), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"queue_free" +}] +} + +[sub_resource type="Animation" id="2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [1] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ct4ki"] +_data = { +"Animate": SubResource("1"), +"RESET": SubResource("2") +} + +[node name="WallDustEffect" instance=ExtResource("1_4c41e")] + +[node name="Sprite" parent="." index="0"] +texture = ExtResource("2_inful") +hframes = 5 +frame = 1 + +[node name="AnimationPlayer" parent="." index="1"] +autoplay = "Animate" +libraries = { +"": SubResource("AnimationLibrary_ct4ki") +} diff --git a/levels/BaseTemplate.gd b/levels/BaseTemplate.gd new file mode 100644 index 0000000..6679cde --- /dev/null +++ b/levels/BaseTemplate.gd @@ -0,0 +1,79 @@ +extends TileMap +class_name Level + +const BlockDoor_scn := preload("res://world/door/block_door.tscn") +const Door_scn := preload("res://world/door/door.tscn") +const OneWayPlatform_scn := preload("res://world/one_way_platform.tscn") + +const ALL_DOORS := [Vector2i.UP, Vector2i.DOWN, Vector2i.LEFT, Vector2i.RIGHT] + +@export_range(0, 15) var enabled_walls := 0 # https://kidscancode.org/blog/img/cells_4bit.png + +const rot_map := {Vector2i.LEFT: PI, Vector2i.RIGHT: 0, Vector2i.DOWN: PI / 2, Vector2i.UP: -PI / 2} # 180 # 90 # -90 + +@onready var enemys := $Enemys.get_children() +@onready var enemyqty := $Enemys.get_child_count() +@onready var has_enemys := enemyqty != 0 + +@onready var blockdoors: Node2D +@onready var doors: Node2D = create_node(&"doors") + + +func create_node(p_name: StringName) -> Node2D: + var n := Node2D.new() + n.position = Vector2.ZERO + n.name = p_name + add_child(n) + return n + + +func _ready(): + var wall_array := Maze.tile_4b_to_wall_array(enabled_walls) + + if len(wall_array) != 4: + var door_array := Util.sub(ALL_DOORS, wall_array) + if Vector2i.DOWN in door_array: + var p: OneWayPlatform = OneWayPlatform_scn.instantiate() + p.position = Vector2(128, 243) + call_deferred(&"add_child", p) + + if has_enemys: + blockdoors = create_node(&"block_doors") + + for door_p in door_array: + var door := add_door(door_p) + if has_enemys: + add_block_door(door) + + for enemy in enemys: + enemy.connect(&"died", _on_enemy_died) + + +func add_door(dir: Vector2i) -> Door: + var d := Door_scn.instantiate() + var v := Vector2i(128, 128) # center + d.rotation = rot_map[dir] + d.position = Vector2(v + (v * dir)).move_toward(v, 16) + d.dir = dir + doors.add_child(d) + return d + + +func add_block_door(door: Door) -> BlockDoor: + var d := BlockDoor_scn.instantiate() + d.rotation = door.rotation + d.position = door.position.move_toward(Vector2(128, 128), -8) + blockdoors.add_child(d) + return d + + +func _on_enemy_died() -> void: + enemyqty -= 1 + if enemyqty == 0: + open_doors() + + +func open_doors() -> void: + var block_doors := blockdoors.get_children() + for bloc_door in block_doors: + bloc_door.open() diff --git a/levels/BaseTemplate.tscn b/levels/BaseTemplate.tscn new file mode 100644 index 0000000..4674c6d --- /dev/null +++ b/levels/BaseTemplate.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=3 format=3 uid="uid://h2yl2s2kudv8"] + +[ext_resource type="Script" path="res://levels/BaseTemplate.gd" id="1_cubc7"] +[ext_resource type="TileSet" uid="uid://dsw8frlrcnbi8" path="res://world/tiles.tres" id="1_r867i"] + +[node name="BaseTemplate" type="TileMap"] +texture_filter = 1 +tile_set = ExtResource("1_r867i") +format = 2 +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1) +script = ExtResource("1_cubc7") +metadata/_edit_lock_ = true + +[node name="Blocks" type="TileMap" parent="."] +visible = false +tile_set = ExtResource("1_r867i") +format = 2 +layer_0/tile_data = PackedInt32Array(458750, 0, 3, 458751, 131072, 3, 655359, 131072, 3, -131066, 196608, 0, -65530, 196608, 2, 1048582, 196608, 0, 1114118, 196608, 2, -65527, 196608, 2, 1048585, 196608, 0, 1114121, 196608, 2, 393232, 0, 3, 589840, 0, 3, 393233, 131072, 3, 589841, 131072, 3, -131063, 196608, 0, 655358, 0, 3) +metadata/_edit_lock_ = true + +[node name="Enemys" type="Node2D" parent="."] diff --git a/levels/LevelManager.gd b/levels/LevelManager.gd new file mode 100644 index 0000000..3c85b80 --- /dev/null +++ b/levels/LevelManager.gd @@ -0,0 +1,71 @@ +extends Node +class_name LevelManager + +signal world_generated(maze: Maze) + +var map := [] + +const lvl_path_fmt := "res://levels/rand/%s.tscn" +@export var levels: Array[PackedScene] +@export var size := Vector2i(6, 6) +@export var current_level: TileMap # ASSIGN TO START +@export var player: Player +@onready var main := get_parent() +var lvl_position := Vector2i(-1, -1) +var t: SceneTreeTimer + +var sorted := [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]] # Array[Array[PackedScene]] [[0..][1..]...[15..]] + + +func go(to: Vector2i) -> void: + if t and t.time_left > 0: + print("skipping door enter") + return + t = get_tree().create_timer(0.1) + lvl_position += to + current_level.queue_free() + current_level = map[lvl_position.y][lvl_position.x].instantiate() + var v := Vector2i(128, 128) # center + player.position = Vector2(v - (v * to)).move_toward(v, 24) + player.velocity = Vector2.ZERO + prints("welcome to", current_level.name) + main.call_deferred(&"add_child", current_level) + + +func print_map_pretty() -> void: + var string := "" + for row in map: + for item in row: + string += str(item.get_state().get_node_name(0)).substr(0, 2) + " " + string += "\n" + print(string) + + +# split levels into https://kidscancode.org/blog/img/cells_4bit.png +func sort_levels(): + for level in levels: + var n: int = 0 if level.get_state().get_node_property_count(0) == 1 else level.get_state().get_node_property_value(0,1) + sorted[n].append(level) + prints(level.get_state().get_node_name(0),"=>", n) + + +func _ready() -> void: + gen_map() + lvl_position = size / 2 + Events.connect(&"change_level", go) + print_map_pretty() + + +func gen_map() -> void: + sort_levels() + var maze := Maze.new(size) + maze.image().save_png("res://maze.png") + lvl_position = size / 2 + map.clear() + for row in maze.maze: + var map_row: Array[PackedScene] = [] + for i in row: + map_row.append(sorted[i][randi() % len(sorted[i])]) + map.append(map_row) + map[lvl_position.x][lvl_position.y] = preload("res://levels/Start.tscn") + emit_signal(&"world_generated", maze) diff --git a/levels/Start.gd b/levels/Start.gd new file mode 100644 index 0000000..4f48edc --- /dev/null +++ b/levels/Start.gd @@ -0,0 +1,21 @@ +extends Level + +@onready var lvl_manager = $"../LevelManager" + +func _ready() -> void: + var maze: Maze = get_parent().maze + if !maze: + maze = await lvl_manager.world_generated + enabled_walls = (maze.get_cellv(lvl_manager.size / 2)) + const wm := { + Vector2i.UP: [Vector2i(7, 0), Vector2i(8, 0)], + Vector2i.DOWN: [Vector2i(7, 15), Vector2i(8, 15)], + Vector2i.LEFT: [Vector2i(0, 7), Vector2i(0, 8)], + Vector2i.RIGHT: [Vector2i(15, 7), Vector2i(15, 8)] + } + var terrain: Array[Vector2i] = [] + for wall in Maze.tile_4b_to_wall_array(enabled_walls): + terrain.append_array(wm[wall]) + set_cells_terrain_connect(0, terrain, 0, 0, true) + super() + diff --git a/levels/Start.tscn b/levels/Start.tscn new file mode 100644 index 0000000..406a257 --- /dev/null +++ b/levels/Start.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=3 format=3 uid="uid://c8hhhk21dtpe0"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_qw36g"] +[ext_resource type="Script" path="res://levels/Start.gd" id="2_dhcq0"] + +[node name="Start" instance=ExtResource("1_qw36g")] +layer_0/tile_data = PackedInt32Array(131072, 0, 1, 196608, 0, 1, 262144, 262144, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 262144, 2, 786432, 0, 1, 851968, 0, 1, 917504, 0, 1, 983040, 0, 2, 983041, 65536, 2, 2, 65536, 0, 983042, 327680, 3, 3, 65536, 0, 983043, 65536, 3, 4, 65536, 0, 983044, 65536, 3, 5, 327680, 0, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 0, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 0, 3, 10, 327680, 0, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 393216, 0, 983052, 65536, 3, 13, 65536, 0, 983053, 65536, 3, 14, 65536, 0, 983054, 65536, 3, 15, 131072, 0, 65551, 458752, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 0, 1, 0, 0, 0, 1, 65536, 0, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 917516, 196609, 0, 917517, 262145, 0, 851982, 196609, 0, 917518, 327681, 0, 917505, 65536, 1, 917506, 131072, 1, 851970, 131072, 0, 851969, 327680, 2, 786433, 131072, 1, 720897, 131072, 0, 786439, 0, 0, 786440, 327680, 0, 851976, 131072, 2, 851975, 0, 2, 786441, 131072, 3, 393220, 196608, 2, 327684, 196608, 1, 262148, 458752, 1, 393228, 196608, 0, 458764, 196608, 1, 524300, 196608, 1, 589836, 196608, 2, 262147, 65536, 2, 262146, 65536, 2, 262145, 65536, 2, 196609, 65536, 1, 131073, 65536, 1, 65537, 65536, 1, 65538, 65536, 1, 131074, 65536, 1, 196610, 65536, 1, 65539, 65536, 1, 131075, 65536, 1, 196611, 65536, 1, 196612, 131072, 1, 131076, 327680, 1, 131077, 131072, 2, 65541, 131072, 1, 65540, 65536, 1, 65548, 0, 1, 65549, 327680, 1, 131085, 458752, 1, 131084, 0, 2, 196621, 196608, 2, 65550, 65536, 2, 65546, 131072, 1, 131082, 131072, 2, 65545, 0, 1, 131081, 262144, 1, 196617, 196608, 2) +script = ExtResource("2_dhcq0") diff --git a/levels/rand/01.tscn b/levels/rand/01.tscn new file mode 100644 index 0000000..1aa70e2 --- /dev/null +++ b/levels/rand/01.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://txq8h42d4oqi"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_gxkva"] + +[node name="01" instance=ExtResource("1_gxkva")] +layer_0/tile_data = PackedInt32Array(131072, 0, 1, 196608, 0, 1, 262144, 262144, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 0, 983042, 65536, 3, 3, 65536, 0, 983043, 65536, 3, 4, 327680, 0, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 983046, 131072, 3, 9, 0, 3, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 393216, 0, 983052, 65536, 3, 13, 65536, 0, 983053, 65536, 3, 14, 65536, 0, 983054, 65536, 3, 15, 131072, 0, 65551, 131072, 1, 131087, 131072, 1, 196623, 131072, 1, 262159, 458752, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 0, 1, 0, 0, 0, 1, 65536, 0, 65537, 65536, 1, 131073, 65536, 1, 196609, 65536, 1, 262145, 65536, 2, 262146, 131072, 2, 196610, 131072, 1, 131074, 327680, 1, 65538, 65536, 1, 65539, 65536, 1, 131075, 65536, 2, 65540, 131072, 1, 131076, 458752, 1, 196612, 196608, 2, 65548, 0, 1, 131084, 0, 1, 196620, 262144, 1, 262156, 196608, 2, 131085, 65536, 1, 65549, 65536, 1, 65550, 65536, 1, 196621, 65536, 2, 196622, 393216, 1, 131086, 65536, 1, 262158, 0, 2, 524294, 65536, 1, 524295, 65536, 1, 524296, 65536, 1, 458760, 65536, 1, 458761, 65536, 1, 458762, 327680, 2, 458763, 131072, 0, 524298, 327680, 1, 589834, 131072, 2, 524297, 65536, 1, 458759, 65536, 1, 458758, 65536, 1, 589831, 65536, 2, 393223, 65536, 0, 393222, 65536, 0, 393221, 0, 0, 458757, 393216, 2, 524293, 393216, 1, 524292, 0, 2, 458756, 0, 0, 393226, 131072, 0, 393225, 65536, 0, 393224, 65536, 0, 589829, 0, 2, 589830, 65536, 2, 589832, 65536, 2, 589833, 65536, 2, 524299, 131072, 2, 917518, 327681, 0, 393220, 1, 0, 917516, 196609, 0, 917517, 262145, 0, 851982, 196609, 0) diff --git a/levels/rand/02.tscn b/levels/rand/02.tscn new file mode 100644 index 0000000..f60876b --- /dev/null +++ b/levels/rand/02.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://gev80rx2b8vn"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_br7j7"] + +[node name="02" instance=ExtResource("1_br7j7")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 65536, 1, 524294, 65536, 1, 589830, 65536, 1, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 1, 393224, 65536, 1, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 1, 9, 0, 3, 393225, 65536, 1, 458761, 65536, 1, 524297, 65536, 1, 589833, 65536, 1, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 65536, 1, 393223, 65536, 1, 458759, 65536, 1, 786444, 131072, 2, 720908, 131072, 1, 655372, 131072, 1, 589836, 131072, 1, 524300, 131072, 1, 458764, 131072, 1, 393228, 131072, 1, 327692, 131072, 1, 262156, 131072, 1, 786443, 65536, 2, 720907, 65536, 1, 655371, 65536, 1, 589835, 65536, 1, 524299, 65536, 1, 458763, 65536, 1, 393227, 65536, 1, 327691, 65536, 1, 262155, 65536, 1, 786442, 65536, 2, 720906, 65536, 1, 655370, 65536, 1, 589834, 65536, 1, 524298, 65536, 1, 458762, 65536, 1, 393226, 65536, 1, 327690, 65536, 1, 262154, 65536, 1, 786441, 65536, 2, 720905, 65536, 1, 655369, 65536, 1, 327689, 65536, 1, 262153, 65536, 1, 786440, 65536, 2, 720904, 65536, 1, 655368, 65536, 1, 327688, 65536, 1, 262152, 65536, 1, 786439, 65536, 2, 720903, 65536, 1, 655367, 65536, 1, 327687, 65536, 1, 262151, 65536, 1, 786438, 65536, 2, 720902, 65536, 1, 655366, 65536, 1, 327686, 65536, 1, 262150, 65536, 1, 786437, 65536, 2, 720901, 65536, 1, 655365, 65536, 1, 589829, 65536, 1, 524293, 65536, 1, 458757, 65536, 1, 393221, 65536, 1, 327685, 65536, 1, 262149, 65536, 1, 786436, 65536, 2, 720900, 65536, 1, 655364, 65536, 1, 589828, 65536, 1, 524292, 65536, 1, 458756, 65536, 1, 393220, 65536, 1, 327684, 65536, 1, 262148, 65536, 1, 196620, 131072, 0, 196619, 65536, 0, 196618, 65536, 0, 196617, 65536, 0, 196616, 65536, 0, 196615, 65536, 0, 196614, 65536, 0, 196613, 65536, 0, 196612, 65536, 0, 786435, 0, 2, 720899, 0, 1, 655363, 0, 1, 589827, 0, 1, 524291, 0, 1, 458755, 0, 1, 393219, 0, 1, 327683, 0, 1, 262147, 0, 1, 196611, 0, 0) diff --git a/levels/rand/03.tscn b/levels/rand/03.tscn new file mode 100644 index 0000000..e18805b --- /dev/null +++ b/levels/rand/03.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://esupr5vkktt"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_tj6sj"] + +[node name="03" instance=ExtResource("1_tj6sj")] +layer_0/tile_data = PackedInt32Array(131072, 0, 1, 196608, 0, 1, 262144, 0, 1, 327680, 262144, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 262144, 2, 720896, 0, 1, 786432, 0, 1, 851968, 0, 1, 917504, 0, 1, 983040, 0, 2, 983041, 65536, 2, 2, 65536, 0, 983042, 65536, 2, 3, 65536, 0, 983043, 65536, 2, 4, 65536, 0, 983044, 65536, 2, 5, 327680, 0, 983045, 65536, 2, 6, 131072, 3, 983046, 131072, 2, 9, 0, 0, 983049, 0, 2, 10, 65536, 0, 983050, 65536, 2, 11, 65536, 0, 983051, 65536, 2, 12, 65536, 0, 983052, 65536, 2, 13, 65536, 0, 983053, 65536, 2, 14, 65536, 0, 983054, 65536, 2, 15, 131072, 0, 65551, 131072, 1, 131087, 131072, 1, 196623, 131072, 1, 262159, 131072, 1, 327695, 458752, 1, 393231, 196608, 2, 589839, 131072, 0, 655375, 131072, 1, 720911, 131072, 1, 786447, 131072, 1, 851983, 131072, 1, 917519, 131072, 1, 983055, 131072, 2, 65536, 0, 1, 0, 0, 0, 1, 65536, 0, 917505, 65536, 1, 917506, 65536, 1, 917507, 65536, 1, 917508, 65536, 1, 917509, 65536, 1, 917510, 131072, 1, 851974, 131072, 0, 851973, 327680, 2, 851972, 65536, 1, 851971, 65536, 1, 851970, 65536, 1, 851969, 65536, 1, 786433, 65536, 1, 720897, 65536, 1, 655361, 65536, 0, 786434, 65536, 1, 720898, 65536, 1, 655362, 65536, 0, 786435, 65536, 1, 720899, 65536, 1, 655363, 65536, 0, 655364, 65536, 0, 655365, 131072, 0, 720901, 131072, 1, 720900, 65536, 1, 786436, 65536, 1, 786437, 131072, 1, 917513, 0, 0, 917514, 65536, 0, 917515, 65536, 0, 917516, 393216, 2, 851980, 0, 0, 917517, 65536, 1, 851981, 393216, 2, 851982, 65536, 1, 917518, 65536, 1, 786445, 0, 0, 786446, 393216, 2, 720910, 0, 1, 655374, 0, 1, 589838, 0, 0, 65546, 393216, 1, 131082, 0, 1, 131083, 65536, 1, 196619, 393216, 1, 196620, 65536, 1, 262156, 65536, 1, 327692, 393216, 1, 327693, 327680, 1, 327694, 65536, 2, 262158, 65536, 1, 196622, 65536, 1, 131086, 65536, 1, 65549, 65536, 1, 131085, 65536, 1, 131084, 65536, 1, 65548, 65536, 1, 196621, 65536, 1, 65547, 65536, 1, 262157, 65536, 1, 65550, 65536, 1, 393229, 131072, 2, 393228, 0, 2, 327691, 0, 2, 262155, 0, 1, 196618, 0, 2, 65545, 0, 2, 65538, 65536, 1, 131075, 65536, 1, 196611, 327680, 1, 196612, 131072, 2, 131076, 327680, 1, 65541, 131072, 1, 131077, 131072, 2, 196610, 65536, 1, 65537, 65536, 1, 131074, 65536, 1, 131073, 65536, 1, 196609, 65536, 1, 262145, 65536, 1, 65539, 65536, 1, 65540, 65536, 1, 262147, 131072, 2, 262146, 327680, 1, 327682, 131072, 2, 327681, 65536, 2, 393222, 393216, 4, 458758, 0, 2, 458759, 65536, 2, 458760, 458752, 1, 524296, 196608, 2, 393224, 131072, 0, 393223, 327680, 2, 393221, 0, 3, 327686, 0, 0, 327687, 131072, 0, 655370, 131072, 0, 720906, 131072, 2, 720905, 0, 2, 655369, 0, 0, 524299, 131072, 3, 524298, 0, 3, 196616, 131072, 3, 196615, 0, 3) diff --git a/levels/rand/04.tscn b/levels/rand/04.tscn new file mode 100644 index 0000000..6749d8c --- /dev/null +++ b/levels/rand/04.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://wgp3b5vk3qbs"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_twiom"] + +[node name="04" instance=ExtResource("1_twiom")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 262144, 2, 917504, 0, 1, 983040, 0, 2, 983041, 65536, 2, 2, 65536, 3, 983042, 65536, 2, 3, 393216, 0, 983043, 65536, 2, 4, 65536, 0, 983044, 327680, 3, 5, 65536, 0, 983045, 65536, 3, 6, 65536, 0, 393222, 0, 1, 524294, 393216, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 393216, 1, 393224, 65536, 1, 458760, 65536, 1, 524296, 65536, 1, 589832, 327680, 1, 9, 327680, 0, 393225, 65536, 1, 458761, 65536, 1, 524297, 65536, 1, 589833, 65536, 2, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 393216, 0, 983051, 65536, 3, 12, 65536, 0, 983052, 65536, 3, 13, 65536, 0, 983053, 65536, 3, 14, 65536, 0, 983054, 65536, 3, 15, 131072, 0, 65551, 131072, 1, 131087, 131072, 1, 196623, 131072, 1, 262159, 458752, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 393216, 2, 393223, 65536, 1, 458759, 65536, 1, 8, 65536, 0, 7, 65536, 0, 65542, 65536, 1, 131078, 65536, 1, 196614, 393216, 1, 262150, 0, 1, 327686, 0, 1, 327687, 65536, 1, 327688, 65536, 1, 327689, 65536, 1, 262153, 327680, 2, 196617, 131072, 1, 131081, 131072, 1, 65545, 131072, 1, 65544, 65536, 1, 65543, 65536, 1, 131079, 65536, 1, 196615, 65536, 1, 262151, 65536, 1, 196616, 65536, 1, 131080, 65536, 1, 262152, 65536, 1, 65539, 0, 2, 65540, 393216, 1, 131076, 0, 2, 131077, 393216, 1, 196613, 0, 2, 65541, 65536, 1, 262158, 0, 2, 196622, 393216, 1, 196621, 0, 2, 131085, 393216, 1, 131084, 0, 2, 65548, 393216, 1, 65547, 0, 2, 65549, 65536, 1, 65550, 65536, 1, 131086, 65536, 1, 327690, 327680, 2, 327691, 131072, 0, 393227, 327680, 2, 458763, 65536, 1, 458764, 327680, 4, 393228, 131072, 0, 524300, 131072, 2, 524299, 327680, 1, 524298, 65536, 1, 589834, 65536, 2, 589835, 131072, 2, 458762, 65536, 1, 393226, 65536, 1, 458765, 131072, 3, 262154, 131072, 0, 458757, 0, 0, 524293, 0, 2, 655367, 0, 2, 655368, 131072, 2, 917516, 196609, 0, 917517, 262145, 0, 851982, 196609, 0, 917518, 327681, 0, 917505, 65536, 1, 917506, 327680, 2, 851969, 65536, 0, 851970, 131072, 0, 917507, 65536, 0, 917508, 131072, 0) +enabled_walls = 1.0 diff --git a/levels/rand/05.tscn b/levels/rand/05.tscn new file mode 100644 index 0000000..cd2c676 --- /dev/null +++ b/levels/rand/05.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://lb0i4wxlcdo3"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_6wqlc"] + +[node name="05" instance=ExtResource("1_6wqlc")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 589824, 0, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 327680, 2, 589833, 393216, 1, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 393216, 3, 12, 65536, 3, 983052, 65536, 2, 13, 65536, 3, 983053, 65536, 2, 14, 65536, 3, 983054, 65536, 2, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 1, 589839, 196608, 1, 655375, 196608, 1, 720911, 196608, 1, 786447, 458752, 2, 851983, 131072, 1, 917519, 131072, 1, 983055, 131072, 2, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 458767, 196608, 1, 524303, 196608, 1, 917518, 65536, 1, 917517, 65536, 1, 851981, 393216, 2, 851982, 65536, 1, 786446, 65536, 0, 786445, 0, 0, 851980, 0, 0, 917516, 393216, 2, 917515, 0, 0, 131074, 0, 0, 196610, 0, 1, 262146, 0, 2, 262147, 393216, 1, 262148, 327680, 2, 196612, 131072, 1, 196611, 65536, 1, 131075, 65536, 0, 131076, 131072, 0, 262149, 65536, 0, 327685, 393216, 1, 327686, 131072, 1, 262150, 131072, 0, 393221, 0, 2, 327684, 65536, 2, 327683, 0, 2, 655369, 0, 1, 720905, 0, 2, 720906, 131072, 2, 655370, 131072, 1, 589834, 131072, 1, 524298, 131072, 0, 720900, 131072, 0, 720899, 0, 0, 786435, 0, 2, 786436, 131072, 2) +enabled_walls = 2.0 diff --git a/levels/rand/06.tscn b/levels/rand/06.tscn new file mode 100644 index 0000000..a1efe51 --- /dev/null +++ b/levels/rand/06.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://cmex8m63vfpoj"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_m26rk"] + +[node name="06" instance=ExtResource("1_m26rk")] +layer_0/tile_data = PackedInt32Array(131072, 262144, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 0, 983042, 65536, 3, 3, 65536, 0, 983043, 65536, 3, 4, 65536, 0, 983044, 65536, 3, 5, 65536, 0, 983045, 65536, 3, 6, 65536, 0, 393222, 393216, 1, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 1, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 65536, 0, 393225, 65536, 1, 458761, 65536, 1, 524297, 65536, 1, 589833, 65536, 2, 983049, 0, 3, 10, 65536, 0, 983050, 65536, 3, 11, 65536, 0, 983051, 65536, 3, 12, 65536, 0, 983052, 65536, 3, 13, 65536, 0, 983053, 65536, 3, 14, 65536, 0, 983054, 393216, 3, 15, 131072, 0, 65551, 131072, 1, 131087, 131072, 1, 196623, 131072, 1, 262159, 131072, 1, 327695, 131072, 1, 393231, 131072, 1, 589839, 131072, 1, 655375, 131072, 1, 720911, 131072, 1, 786447, 131072, 1, 851983, 131072, 1, 917519, 131072, 1, 983055, 131072, 2, 65536, 0, 1, 0, 0, 0, 1, 65536, 0, 458758, 0, 1, 393223, 65536, 1, 458759, 65536, 1, 327686, 65536, 1, 262149, 65536, 1, 196612, 65536, 1, 131075, 65536, 1, 65538, 65536, 1, 786446, 65536, 1, 720909, 65536, 1, 655372, 65536, 1, 589835, 65536, 1, 524298, 65536, 1, 196611, 393216, 1, 262148, 393216, 1, 327685, 393216, 1, 589834, 393216, 1, 655371, 393216, 1, 720908, 393216, 1, 786445, 393216, 1, 851982, 393216, 1, 131074, 393216, 1, 65537, 65536, 1, 196610, 0, 2, 262147, 0, 2, 327684, 0, 2, 393221, 0, 2, 655370, 0, 2, 720907, 0, 2, 786444, 0, 2, 851981, 0, 2, 917518, 0, 1, 131073, 65536, 2, 7, 65536, 0, 8, 65536, 0, 458767, 131072, 1, 524303, 131072, 1, 720910, 65536, 1, 655374, 65536, 1, 589838, 65536, 1, 524302, 65536, 1, 458766, 65536, 1, 393230, 65536, 1, 327694, 65536, 1, 262158, 65536, 1, 196622, 65536, 1, 131086, 65536, 1, 65550, 65536, 1, 655373, 65536, 1, 589837, 65536, 1, 524301, 65536, 1, 458765, 65536, 1, 393229, 65536, 1, 327693, 65536, 1, 262157, 65536, 1, 196621, 65536, 1, 131085, 65536, 1, 65549, 65536, 1, 589836, 65536, 1, 524300, 65536, 1, 458764, 65536, 1, 393228, 65536, 1, 327692, 65536, 1, 262156, 65536, 1, 196620, 65536, 1, 131084, 65536, 1, 65548, 65536, 1, 524299, 65536, 1, 458763, 65536, 1, 393227, 65536, 1, 327691, 65536, 1, 262155, 65536, 1, 196619, 65536, 1, 131083, 65536, 1, 65547, 65536, 1, 458762, 65536, 1, 393226, 65536, 1, 327690, 65536, 1, 262154, 65536, 1, 196618, 65536, 1, 131082, 65536, 1, 65546, 65536, 1, 327689, 65536, 1, 262153, 65536, 1, 196617, 65536, 1, 131081, 65536, 1, 65545, 65536, 1, 327688, 65536, 1, 262152, 65536, 1, 196616, 65536, 1, 131080, 65536, 1, 65544, 65536, 1, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 65536, 1, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 65536, 1, 196613, 65536, 1, 131077, 65536, 1, 65541, 65536, 1, 131076, 65536, 1, 65540, 65536, 1, 65539, 65536, 1) +enabled_walls = 3.0 diff --git a/levels/rand/07.tscn b/levels/rand/07.tscn new file mode 100644 index 0000000..e4e6ba9 --- /dev/null +++ b/levels/rand/07.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://bh0o48w2ir4l2"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_3bnrf"] + +[node name="07" instance=ExtResource("1_3bnrf")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 65536, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 65536, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 983047, 65536, 3, 983048, 65536, 3) +enabled_walls = 4.0 diff --git a/levels/rand/08.tscn b/levels/rand/08.tscn new file mode 100644 index 0000000..9a85d13 --- /dev/null +++ b/levels/rand/08.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://x3fddi5udbur"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_4ldoi"] + +[node name="08" instance=ExtResource("1_4ldoi")] +layer_0/tile_data = PackedInt32Array(131072, 0, 1, 196608, 0, 1, 262144, 0, 1, 327680, 0, 1, 393216, 0, 2, 589824, 0, 0, 655360, 0, 1, 720896, 0, 1, 786432, 0, 1, 851968, 0, 1, 917504, 0, 1, 983040, 0, 2, 983041, 65536, 2, 2, 65536, 0, 983042, 65536, 2, 3, 65536, 0, 983043, 65536, 2, 4, 65536, 0, 983044, 65536, 2, 5, 65536, 0, 983045, 65536, 2, 6, 65536, 0, 524294, 0, 2, 983046, 65536, 2, 524295, 65536, 2, 458760, 65536, 0, 524296, 65536, 2, 9, 65536, 0, 458761, 131072, 0, 524297, 131072, 2, 983049, 65536, 2, 10, 65536, 0, 983050, 65536, 2, 11, 65536, 0, 983051, 65536, 2, 12, 65536, 0, 983052, 65536, 2, 13, 65536, 0, 983053, 65536, 2, 14, 65536, 0, 983054, 65536, 2, 15, 131072, 0, 65551, 131072, 1, 131087, 131072, 1, 196623, 131072, 1, 262159, 131072, 1, 327695, 131072, 1, 393231, 131072, 2, 589839, 131072, 0, 655375, 131072, 1, 720911, 131072, 1, 786447, 131072, 1, 851983, 131072, 1, 917519, 131072, 1, 983055, 131072, 2, 65536, 0, 1, 0, 0, 0, 1, 65536, 0, 458758, 0, 0, 458759, 65536, 0, 7, 65536, 0, 8, 65536, 0, 983047, 65536, 2, 983048, 65536, 2, 917518, 65536, 1, 851982, 65536, 1, 786446, 65536, 1, 720910, 65536, 1, 655374, 65536, 1, 589838, 65536, 0, 917517, 65536, 1, 851981, 65536, 1, 786445, 65536, 1, 720909, 65536, 1, 655373, 65536, 1, 589837, 65536, 0, 917516, 65536, 1, 851980, 65536, 1, 786444, 65536, 1, 720908, 65536, 1, 655372, 65536, 1, 589836, 65536, 0, 917515, 65536, 1, 851979, 65536, 1, 786443, 65536, 1, 720907, 393216, 2, 655371, 0, 1, 589835, 0, 0, 917514, 65536, 1, 851978, 65536, 1, 786442, 65536, 1, 720906, 65536, 0, 917513, 65536, 1, 851977, 65536, 1, 786441, 65536, 1, 720905, 65536, 0, 917512, 65536, 1, 851976, 65536, 1, 786440, 65536, 1, 720904, 65536, 0, 917511, 65536, 1, 851975, 65536, 1, 786439, 65536, 1, 720903, 65536, 0, 917510, 65536, 1, 851974, 65536, 1, 786438, 65536, 1, 720902, 65536, 0, 917509, 65536, 1, 851973, 65536, 1, 786437, 65536, 1, 720901, 65536, 0, 917508, 65536, 1, 851972, 65536, 1, 786436, 65536, 1, 720900, 327680, 2, 655364, 131072, 1, 589828, 131072, 0, 917507, 65536, 1, 851971, 65536, 1, 786435, 65536, 1, 720899, 65536, 1, 655363, 65536, 1, 589827, 65536, 0, 917506, 65536, 1, 851970, 65536, 1, 786434, 65536, 1, 720898, 65536, 1, 655362, 65536, 1, 589826, 65536, 0, 917505, 65536, 1, 851969, 65536, 1, 786433, 65536, 1, 720897, 65536, 1, 655361, 65536, 1, 589825, 65536, 0, 393230, 65536, 2, 327694, 65536, 1, 262158, 65536, 1, 196622, 65536, 1, 131086, 65536, 1, 65550, 65536, 1, 393229, 65536, 2, 327693, 65536, 1, 262157, 65536, 1, 196621, 65536, 1, 131085, 65536, 1, 65549, 65536, 1, 393228, 65536, 2, 327692, 65536, 1, 262156, 65536, 1, 196620, 65536, 1, 131084, 65536, 1, 65548, 65536, 1, 393227, 0, 2, 327691, 393216, 1, 262155, 65536, 1, 196619, 65536, 1, 131083, 65536, 1, 65547, 65536, 1, 327690, 65536, 2, 262154, 65536, 1, 196618, 65536, 1, 131082, 65536, 1, 65546, 65536, 1, 327689, 65536, 2, 262153, 65536, 1, 196617, 65536, 1, 131081, 65536, 1, 65545, 65536, 1, 327688, 65536, 2, 262152, 65536, 1, 196616, 65536, 1, 131080, 65536, 1, 65544, 65536, 1, 327687, 65536, 2, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 65536, 1, 327686, 65536, 2, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 65536, 1, 262149, 65536, 1, 196613, 65536, 1, 131077, 65536, 1, 65541, 65536, 1, 393220, 131072, 2, 327684, 327680, 1, 262148, 65536, 1, 196612, 65536, 1, 131076, 65536, 1, 65540, 65536, 1, 393219, 65536, 2, 327683, 65536, 1, 262147, 65536, 1, 196611, 65536, 1, 131075, 65536, 1, 65539, 65536, 1, 393218, 65536, 2, 327682, 65536, 1, 262146, 65536, 1, 196610, 65536, 1, 131074, 65536, 1, 65538, 65536, 1, 393217, 65536, 2, 327681, 65536, 1, 262145, 65536, 1, 196609, 65536, 1, 131073, 65536, 1, 65537, 65536, 1, 327685, 65536, 2) +enabled_walls = 5.0 diff --git a/levels/rand/09.tscn b/levels/rand/09.tscn new file mode 100644 index 0000000..c5d9f87 --- /dev/null +++ b/levels/rand/09.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://b7w7ns27n53rh"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_ix63m"] + +[node name="09" instance=ExtResource("1_ix63m")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 65536, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 65536, 3, 10, 65536, 3, 983050, 393216, 3, 11, 65536, 3, 983051, 65536, 2, 12, 65536, 3, 983052, 65536, 2, 13, 65536, 3, 983053, 65536, 2, 14, 65536, 3, 983054, 65536, 2, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 1, 589839, 131072, 1, 655375, 131072, 1, 720911, 131072, 1, 786447, 131072, 1, 851983, 131072, 1, 917519, 131072, 1, 983055, 131072, 2, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 983047, 65536, 3, 983048, 65536, 3, 917514, 0, 0, 917515, 65536, 0, 917516, 393216, 2, 851981, 65536, 1, 851982, 65536, 1, 786446, 65536, 1, 720910, 393216, 2, 524303, 458752, 2, 458767, 196608, 1, 524302, 0, 0, 589838, 0, 1, 655374, 0, 1, 917517, 65536, 1, 917518, 65536, 1, 786445, 393216, 2, 720909, 0, 0, 786444, 0, 0, 851980, 0, 1) +enabled_walls = 6.0 diff --git a/levels/rand/10.tscn b/levels/rand/10.tscn new file mode 100644 index 0000000..867f536 --- /dev/null +++ b/levels/rand/10.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://gyxkjwsih0s2"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_c2n3v"] + +[node name="10" instance=ExtResource("1_c2n3v")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 2, 589824, 196608, 0, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 65536, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 65536, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 65536, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 65536, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 1, 589839, 196608, 1, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 983047, 65536, 3, 983048, 65536, 3, 524303, 196608, 1, 458767, 196608, 1, 8, 65536, 3, 7, 65536, 3) +enabled_walls = 7.0 diff --git a/levels/rand/11.tscn b/levels/rand/11.tscn new file mode 100644 index 0000000..5a7156b --- /dev/null +++ b/levels/rand/11.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://bkywu3kc1xfep"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_pa3ds"] + +[node name="11" instance=ExtResource("1_pa3ds")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 1, 589824, 196608, 1, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 524288, 196608, 1, 458752, 196608, 1) +enabled_walls = 8.0 diff --git a/levels/rand/12.tscn b/levels/rand/12.tscn new file mode 100644 index 0000000..7e3b2de --- /dev/null +++ b/levels/rand/12.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://dnn448k214c42"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_x55go"] + +[node name="12" instance=ExtResource("1_x55go")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 1, 589824, 196608, 1, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 65536, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 65536, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 7, 65536, 3, 8, 65536, 3, 458752, 196608, 1, 524288, 196608, 1) +enabled_walls = 9.0 diff --git a/levels/rand/13.tscn b/levels/rand/13.tscn new file mode 100644 index 0000000..8012be2 --- /dev/null +++ b/levels/rand/13.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://dkci2hmtjgrvj"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_13npg"] + +[node name="13" instance=ExtResource("1_13npg")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 1, 589824, 196608, 1, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 1, 589839, 196608, 1, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 458767, 196608, 1, 524303, 196608, 1, 458752, 196608, 1, 524288, 196608, 1) +enabled_walls = 10.0 diff --git a/levels/rand/14.tscn b/levels/rand/14.tscn new file mode 100644 index 0000000..913caaf --- /dev/null +++ b/levels/rand/14.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://bxokgsjhvo0ad"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_d7058"] + +[node name="14" instance=ExtResource("1_d7058")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 1, 589824, 196608, 1, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 65536, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 131072, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 65536, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 0, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 1, 589839, 196608, 1, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 458752, 196608, 1, 524288, 196608, 1, 8, 65536, 3, 7, 65536, 3, 524303, 196608, 1, 458767, 196608, 1) +enabled_walls = 11.0 diff --git a/levels/rand/15.tscn b/levels/rand/15.tscn new file mode 100644 index 0000000..22d87cd --- /dev/null +++ b/levels/rand/15.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://cnwifdbe2eqv8"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_40br1"] + +[node name="15" instance=ExtResource("1_40br1")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 1, 589824, 196608, 1, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 65536, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 65536, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 458752, 196608, 1, 524288, 196608, 1, 983047, 65536, 3, 983048, 65536, 3) +enabled_walls = 12.0 diff --git a/levels/rand/16.tscn b/levels/rand/16.tscn new file mode 100644 index 0000000..e33cf47 --- /dev/null +++ b/levels/rand/16.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://d4dwvcp6764bx"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_yds8y"] + +[node name="16" instance=ExtResource("1_yds8y")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 1, 589824, 196608, 1, 655360, 196608, 1, 720896, 196608, 1, 786432, 196608, 1, 851968, 196608, 1, 917504, 196608, 1, 983040, 262144, 3, 983041, 65536, 3, 2, 65536, 3, 983042, 65536, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 65536, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 65536, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 65536, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 65536, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 2, 589839, 196608, 0, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 983048, 65536, 3, 983047, 65536, 3, 524288, 196608, 1, 458752, 196608, 1, 7, 65536, 3, 8, 65536, 3) +enabled_walls = 13.0 diff --git a/levels/rand/17.tscn b/levels/rand/17.tscn new file mode 100644 index 0000000..ce200e3 --- /dev/null +++ b/levels/rand/17.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://duo0cbnh5u3qt"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_otvl3"] + +[node name="17" instance=ExtResource("1_otvl3")] +layer_0/tile_data = PackedInt32Array(131072, 196608, 1, 196608, 196608, 1, 262144, 196608, 1, 327680, 196608, 1, 393216, 196608, 1, 589824, 196608, 1, 655360, 196608, 1, 720896, 196608, 1, 786432, 262144, 2, 851968, 0, 1, 917504, 0, 1, 983040, 0, 2, 983041, 65536, 2, 2, 65536, 3, 983042, 327680, 3, 3, 65536, 3, 983043, 65536, 3, 4, 65536, 3, 983044, 65536, 3, 5, 65536, 3, 983045, 65536, 3, 6, 131072, 3, 393222, 0, 0, 524294, 0, 1, 589830, 0, 2, 983046, 65536, 3, 524295, 65536, 1, 589831, 65536, 2, 393224, 65536, 0, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 2, 9, 0, 3, 393225, 131072, 0, 458761, 131072, 1, 524297, 131072, 1, 589833, 131072, 2, 983049, 65536, 3, 10, 65536, 3, 983050, 65536, 3, 11, 65536, 3, 983051, 65536, 3, 12, 65536, 3, 983052, 65536, 3, 13, 65536, 3, 983053, 65536, 3, 14, 65536, 3, 983054, 65536, 3, 15, 458752, 0, 65551, 196608, 1, 131087, 196608, 1, 196623, 196608, 1, 262159, 196608, 1, 327695, 196608, 1, 393231, 196608, 1, 589839, 196608, 1, 655375, 196608, 1, 720911, 196608, 1, 786447, 196608, 1, 851983, 196608, 1, 917519, 196608, 1, 983055, 458752, 3, 65536, 196608, 1, 0, 262144, 0, 1, 65536, 3, 458758, 0, 1, 393223, 65536, 0, 458759, 65536, 1, 458752, 196608, 1, 524288, 196608, 1, 786433, 131072, 0, 917505, 327680, 2, 851969, 131072, 1, 917506, 131072, 0, 983047, 65536, 3, 983048, 65536, 3, 524303, 196608, 1, 458767, 196608, 1) +enabled_walls = 14.0 diff --git a/levels/rand/18.tscn b/levels/rand/18.tscn new file mode 100644 index 0000000..3f22f31 --- /dev/null +++ b/levels/rand/18.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://cy3kc27btbipt"] + +[ext_resource type="PackedScene" uid="uid://h2yl2s2kudv8" path="res://levels/BaseTemplate.tscn" id="1_ucpni"] + +[node name="18" instance=ExtResource("1_ucpni")] +layer_0/tile_data = PackedInt32Array(131072, 0, 1, 196608, 0, 1, 262144, 0, 1, 327680, 0, 1, 393216, 0, 1, 589824, 0, 1, 655360, 0, 1, 720896, 0, 1, 786432, 0, 1, 851968, 0, 1, 917504, 0, 1, 983040, 0, 2, 983041, 65536, 2, 2, 65536, 0, 983042, 65536, 2, 3, 65536, 0, 983043, 65536, 2, 4, 65536, 0, 983044, 65536, 2, 5, 65536, 0, 983045, 65536, 2, 6, 65536, 0, 393222, 65536, 1, 524294, 65536, 1, 589830, 65536, 1, 983046, 65536, 2, 524295, 65536, 1, 589831, 65536, 1, 393224, 65536, 1, 458760, 65536, 1, 524296, 65536, 1, 589832, 65536, 1, 9, 65536, 0, 393225, 65536, 1, 458761, 65536, 1, 524297, 65536, 1, 589833, 65536, 1, 983049, 65536, 2, 10, 65536, 0, 983050, 65536, 2, 11, 65536, 0, 983051, 65536, 2, 12, 65536, 0, 983052, 65536, 2, 13, 65536, 0, 983053, 65536, 2, 14, 65536, 0, 983054, 65536, 2, 15, 131072, 0, 65551, 131072, 1, 131087, 131072, 1, 196623, 131072, 1, 262159, 131072, 1, 327695, 131072, 1, 393231, 131072, 1, 589839, 131072, 1, 655375, 131072, 1, 720911, 131072, 1, 786447, 131072, 1, 851983, 131072, 1, 917519, 131072, 1, 983055, 131072, 2, 65536, 0, 1, 0, 0, 0, 1, 65536, 0, 458758, 65536, 1, 393223, 65536, 1, 458759, 65536, 1, 524303, 131072, 1, 458767, 131072, 1, 917518, 65536, 1, 851982, 65536, 1, 786446, 65536, 1, 720910, 65536, 1, 655374, 65536, 1, 589838, 65536, 1, 524302, 65536, 1, 458766, 65536, 1, 393230, 65536, 1, 327694, 65536, 1, 262158, 65536, 1, 196622, 65536, 1, 131086, 65536, 1, 65550, 65536, 1, 917517, 65536, 1, 851981, 65536, 1, 786445, 65536, 1, 720909, 65536, 1, 655373, 65536, 1, 589837, 65536, 1, 524301, 65536, 1, 458765, 65536, 1, 393229, 65536, 1, 327693, 65536, 1, 262157, 65536, 1, 196621, 65536, 1, 131085, 65536, 1, 65549, 65536, 1, 917516, 65536, 1, 851980, 65536, 1, 786444, 65536, 1, 720908, 65536, 1, 655372, 65536, 1, 589836, 65536, 1, 524300, 65536, 1, 458764, 65536, 1, 393228, 65536, 1, 327692, 65536, 1, 262156, 65536, 1, 196620, 65536, 1, 131084, 65536, 1, 65548, 65536, 1, 917515, 65536, 1, 851979, 65536, 1, 786443, 65536, 1, 720907, 65536, 1, 655371, 65536, 1, 589835, 65536, 1, 524299, 65536, 1, 458763, 65536, 1, 393227, 65536, 1, 327691, 65536, 1, 262155, 65536, 1, 196619, 65536, 1, 131083, 65536, 1, 65547, 65536, 1, 917514, 65536, 1, 851978, 65536, 1, 786442, 65536, 1, 720906, 65536, 1, 655370, 65536, 1, 589834, 65536, 1, 524298, 65536, 1, 458762, 65536, 1, 393226, 65536, 1, 327690, 65536, 1, 262154, 65536, 1, 196618, 65536, 1, 131082, 65536, 1, 65546, 65536, 1, 917513, 65536, 1, 851977, 65536, 1, 786441, 65536, 1, 720905, 65536, 1, 655369, 65536, 1, 327689, 65536, 1, 262153, 65536, 1, 196617, 65536, 1, 131081, 65536, 1, 65545, 65536, 1, 983048, 65536, 2, 917512, 65536, 1, 851976, 65536, 1, 786440, 65536, 1, 720904, 65536, 1, 655368, 65536, 1, 327688, 65536, 1, 262152, 65536, 1, 196616, 65536, 1, 131080, 65536, 1, 65544, 65536, 1, 8, 65536, 0, 983047, 65536, 2, 917511, 65536, 1, 851975, 65536, 1, 786439, 65536, 1, 720903, 65536, 1, 655367, 65536, 1, 327687, 65536, 1, 262151, 65536, 1, 196615, 65536, 1, 131079, 65536, 1, 65543, 65536, 1, 7, 65536, 0, 917510, 65536, 1, 851974, 65536, 1, 786438, 65536, 1, 720902, 65536, 1, 655366, 65536, 1, 327686, 65536, 1, 262150, 65536, 1, 196614, 65536, 1, 131078, 65536, 1, 65542, 65536, 1, 917509, 65536, 1, 851973, 65536, 1, 786437, 65536, 1, 720901, 65536, 1, 655365, 65536, 1, 589829, 65536, 1, 524293, 65536, 1, 458757, 65536, 1, 393221, 65536, 1, 327685, 65536, 1, 262149, 65536, 1, 196613, 65536, 1, 131077, 65536, 1, 65541, 65536, 1, 917508, 65536, 1, 851972, 65536, 1, 786436, 65536, 1, 720900, 65536, 1, 655364, 65536, 1, 589828, 65536, 1, 524292, 65536, 1, 458756, 65536, 1, 393220, 65536, 1, 327684, 65536, 1, 262148, 65536, 1, 196612, 65536, 1, 131076, 65536, 1, 65540, 65536, 1, 917507, 65536, 1, 851971, 65536, 1, 786435, 65536, 1, 720899, 65536, 1, 655363, 65536, 1, 589827, 65536, 1, 524291, 65536, 1, 458755, 65536, 1, 393219, 65536, 1, 327683, 65536, 1, 262147, 65536, 1, 196611, 65536, 1, 131075, 65536, 1, 65539, 65536, 1, 917506, 65536, 1, 851970, 65536, 1, 786434, 65536, 1, 720898, 65536, 1, 655362, 65536, 1, 589826, 65536, 1, 524290, 65536, 1, 458754, 65536, 1, 393218, 65536, 1, 327682, 65536, 1, 262146, 65536, 1, 196610, 65536, 1, 131074, 65536, 1, 65538, 65536, 1, 917505, 65536, 1, 851969, 65536, 1, 786433, 65536, 1, 720897, 65536, 1, 655361, 65536, 1, 589825, 65536, 1, 524289, 65536, 1, 458753, 65536, 1, 393217, 65536, 1, 327681, 65536, 1, 262145, 65536, 1, 196609, 65536, 1, 131073, 65536, 1, 65537, 65536, 1, 524288, 0, 1, 458752, 0, 1) +enabled_walls = 15.0 @@ -0,0 +1,9 @@ +# hammer spaec + + + +the floor is hammer + + + +hammer will kill you diff --git a/player/player.gd b/player/player.gd new file mode 100644 index 0000000..9da6719 --- /dev/null +++ b/player/player.gd @@ -0,0 +1,205 @@ +extends CharacterBody2D +class_name Player + +const DustEffect := preload("res://fx/dust.tscn") +const JumpEffect := preload("res://fx/jump.tscn") +const DoubleJumpEffect := preload("res://fx/double_jump.tscn") +const WallJumpEffect := preload("res://fx/wall_dust.tscn") + +@export var ACCELERATION := 512 +@export var MAX_SPEED := 64 +@export var JUMP_FORCE := 150 +@export var MAX_WALL_SLIDE_SPEED := 110 +@export var WALL_SLIDE_SPEED := 42 + +@export var FRICTION := 0.25 +@export var AIR_MOVEMENT_MODIFIER := 0.95 + +@onready var sprite := $Sprite +@onready var anims := $Player as AnimationPlayer +@onready var coyote := $CoyoteJump as Timer + +@onready var GRAVITY: float = ProjectSettings.get_setting(&"physics/2d/default_gravity") + +const FLOOR_MAX_ANGLE := deg_to_rad(46) + + +func _init() -> void: + floor_max_angle = FLOOR_MAX_ANGLE + + +enum State { MOVE, WALL_SLIDE, STOP } + +var double_jump := true +var state := State.MOVE +var just_jumped := false + + +func _physics_process(delta: float) -> void: + just_jumped = false + match state: + State.STOP: + velocity = Vector2.ZERO + play(&"idle") + State.MOVE: + var input := Input.get_axis(&"left", &"right") + apply_force(input, delta) + apply_friction(input) + + jump_check() + + apply_gravity(delta) + + animate() + move() + wall_slide_check() + State.WALL_SLIDE: + play(&"wall_slide") + var wall_axis := get_wall_axis() + if wall_axis != 0: + sprite.scale.x = wall_axis + + wall_slide_jump_check(wall_axis) + wall_slide_drop(delta) + move() + wall_detatch(wall_axis, delta) + + +func dust() -> void: + var dust_position := global_position + dust_position.x += randf_range(-4, 4) + Utils.instance_scene_on_main(DustEffect, dust_position) + # SoundFx.play("Step", -20) + + +func apply_gravity(delta: float) -> void: + velocity.y += GRAVITY * delta + velocity.y = minf(velocity.y, JUMP_FORCE) + + +func apply_force(input: float, delta: float) -> void: + if input != 0: + velocity.x += input * ACCELERATION * delta + velocity.x = clampf(velocity.x, -MAX_SPEED, MAX_SPEED) + # if not is_on_floor(): + # velocity.x *= AIR_MOVEMENT_MODIFIER + + +func apply_friction(input: float) -> void: + if input == 0 and not is_zero_approx(velocity.x) and is_on_floor(): + velocity.x = lerpf(velocity.x, 0, FRICTION) + + +func animate() -> void: + var facing = sign(get_local_mouse_position().x) + if facing != 0: + sprite.scale.x = facing + + if not is_on_floor(): + play(&"jump") + return + + if velocity.x != 0: + play(&"run", clampi(velocity.x * sprite.scale.x, -1, 1)) + else: + play(&"idle") + + +func play(anim: StringName, speed: float = 1.0) -> void: + anims.play(anim, -1, speed) + + +func jump_check() -> void: + var want2jump := Input.is_action_just_pressed(&"jump") + if want2jump and (is_on_floor() or coyote.time_left > 0): + jump(JUMP_FORCE) + just_jumped = true + else: + if want2jump and velocity.y < -JUMP_FORCE / 2: + velocity.y = -JUMP_FORCE / 2 + + if want2jump and double_jump == true: + double_jump = false + jump(JUMP_FORCE * .75) + + +func jump(force): + # SoundFx.play("Jump", -20) + if double_jump: + Utils.instance_scene_on_main(JumpEffect, global_position) + else: + Utils.instance_scene_on_main(DoubleJumpEffect, global_position) + velocity.y = -force + + +func move() -> void: + var was_in_air := not is_on_floor() + var was_on_floor := is_on_floor() + var last_position := position + var last_velocity := velocity + move_and_slide() + + # landing + if was_in_air and is_on_floor(): + velocity.x = last_velocity.x + double_jump = true + Utils.instance_scene_on_main(JumpEffect, global_position) + + # just left ground + if was_on_floor and not is_on_floor() and not just_jumped: + position.y = last_position.y + coyote.start() + Utils.instance_scene_on_main(JumpEffect, global_position) + + +func wall_slide_check(): + if not is_on_floor() and is_on_wall_only(): + state = State.WALL_SLIDE + double_jump = true + dust() + + +func get_wall_axis() -> int: + var is_right_wall := test_move(transform, Vector2.RIGHT) + var is_left_wall := test_move(transform, Vector2.LEFT) + return int(is_left_wall) - int(is_right_wall) + + +func wall_slide_jump_check(wall_axis) -> void: + if Input.is_action_just_pressed("jump"): + velocity.x = wall_axis * MAX_SPEED + velocity.y = -JUMP_FORCE / 1.25 + state = State.MOVE + wall_dust(wall_axis) + # SoundFx.play("Jump", -20) + + +func wall_dust(wall_axis: int) -> void: + var dust_position = global_position + Vector2(wall_axis * 4, -2) + var dust_fx := Utils.instance_scene_on_main(WallJumpEffect, dust_position) + dust_fx.scale.x = wall_axis + + +func wall_slide_drop(delta: float) -> void: + var max_slide_speed = WALL_SLIDE_SPEED + if Input.is_action_pressed("down"): + max_slide_speed = MAX_WALL_SLIDE_SPEED + velocity.y = min(velocity.y + GRAVITY * delta, max_slide_speed) + + +func wall_detatch(wall_axis: int, delta: float) -> void: + var detached := false + if Input.is_action_just_pressed("right"): + velocity.x = ACCELERATION * delta + detached = true + + if Input.is_action_just_pressed("left"): + velocity.x = -ACCELERATION * delta + detached = true + + if detached: + state = State.MOVE + wall_dust(wall_axis) + + if wall_axis == 0 or is_on_floor(): + state = State.MOVE diff --git a/player/player.tscn b/player/player.tscn new file mode 100644 index 0000000..b5e9665 --- /dev/null +++ b/player/player.tscn @@ -0,0 +1,125 @@ +[gd_scene load_steps=9 format=3 uid="uid://c1fgxkkh72npw"] + +[ext_resource type="Script" path="res://player/player.gd" id="1_lnsyt"] +[ext_resource type="Texture2D" uid="uid://b36hv0jwfmb1u" path="res://assets/player/animations.png" id="2_dgplu"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_bxmud"] +radius = 3.0 +height = 12.0 + +[sub_resource type="Animation" id="Animation_sbyxw"] +resource_name = "idle" +length = 1.2 +loop_mode = 2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6, 0.9), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3] +} + +[sub_resource type="Animation" id="Animation_myglh"] +resource_name = "jump" +length = 0.1 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [29] +} + +[sub_resource type="Animation" id="Animation_5lnnm"] +resource_name = "run" +length = 0.7 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [4, 5, 6, 7, 8, 9, 7] +} +tracks/1/type = "method" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.3, 0.6), +"transitions": PackedFloat32Array(1, 1), +"values": [{ +"args": [], +"method": &"dust" +}, { +"args": [], +"method": &"dust" +}] +} + +[sub_resource type="Animation" id="Animation_ijk7a"] +resource_name = "wall_slide" +length = 0.1 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [10] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_7pk85"] +_data = { +"idle": SubResource("Animation_sbyxw"), +"jump": SubResource("Animation_myglh"), +"run": SubResource("Animation_5lnnm"), +"wall_slide": SubResource("Animation_ijk7a") +} + +[node name="player" type="CharacterBody2D"] +collision_layer = 2 +script = ExtResource("1_lnsyt") + +[node name="Sprite" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(0, -14) +texture = ExtResource("2_dgplu") +hframes = 30 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, -6) +shape = SubResource("CapsuleShape2D_bxmud") +debug_color = Color(0.811765, 0.360784, 0.529412, 0.419608) + +[node name="Player" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_7pk85") +} + +[node name="CoyoteJump" type="Timer" parent="."] +wait_time = 0.2 +one_shot = true diff --git a/project.godot b/project.godot index 663e841..c415d4a 100644 --- a/project.godot +++ b/project.godot @@ -6,55 +6,145 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 -_global_script_classes=[ { -"base": "Reference", -"class": "Arg", -"language": "GDScript", -"path": "res://addons/gdcli/Arg.gd" +_global_script_classes=[{ +"base": "Node2D", +"class": &"BlockDoor", +"language": &"GDScript", +"path": "res://world/door/block_door.gd" }, { -"base": "Reference", -"class": "Parser", -"language": "GDScript", -"path": "res://addons/gdcli/Parser.gd" -} ] +"base": "Area2D", +"class": &"Door", +"language": &"GDScript", +"path": "res://world/door/door.gd" +}, { +"base": "TileMap", +"class": &"Level", +"language": &"GDScript", +"path": "res://levels/BaseTemplate.gd" +}, { +"base": "Node", +"class": &"LevelManager", +"language": &"GDScript", +"path": "res://levels/LevelManager.gd" +}, { +"base": "Resource", +"class": &"Maze", +"language": &"GDScript", +"path": "res://classes/Maze.gd" +}, { +"base": "StaticBody2D", +"class": &"OneWayPlatform", +"language": &"GDScript", +"path": "res://world/one_way_platform.gd" +}, { +"base": "CharacterBody2D", +"class": &"Player", +"language": &"GDScript", +"path": "res://player/player.gd" +}, { +"base": "Node", +"class": &"Util", +"language": &"GDScript", +"path": "res://autoloads/Utils.gd" +}] _global_script_class_icons={ -"Arg": "", -"Parser": "" +"BlockDoor": "", +"Door": "", +"Level": "", +"LevelManager": "", +"Maze": "", +"OneWayPlatform": "", +"Player": "", +"Util": "" } [application] -config/name="Godot Template" +config/name="hammer space" run/main_scene="res://Main.tscn" config/use_custom_user_dir=true config/custom_user_dir_name="GodotTemplate" +config/features=PackedStringArray("4.0") [autoload] -CLI="*res://autoloads/CLI.gd" +Utils="*res://autoloads/Utils.gd" +Events="*res://autoloads/Events.gd" [debug] gdscript/warnings/return_value_discarded=false +gdscript/warnings/integer_division=0 [display] -window/size/width=320 -window/size/height=180 +window/size/viewport_width=320 +window/size/viewport_height=320 +window/size/window_width_override=1280 +window/size/window_height_override=1280 +window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" +window/size/width=1280 +window/size/height=1280 window/size/test_width=1280 -window/size/test_height=720 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" -window/stretch/aspect="keep" +window/size/test_height=1280 + +[input] + +left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +jump={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +dash={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194325,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +shoot={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +] +} +down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +] +} + +[layer_names] + +2d_physics/layer_1="world" +2d_physics/layer_2="player" +2d_physics/layer_3="enemy" [logging] file_logging/enable_file_logging=true +[physics] + +2d/run_on_separate_thread=true +2d/default_gravity=300.0 + [rendering] +environment/defaults/default_clear_color=Color(0, 0, 0, 1) quality/driver/driver_name="GLES2" 2d/options/use_nvidia_rect_flicker_workaround=true quality/intended_usage/framebuffer_allocation=0 diff --git a/world/camera.gd b/world/camera.gd new file mode 100644 index 0000000..1977a39 --- /dev/null +++ b/world/camera.gd @@ -0,0 +1 @@ +extends Camera2D diff --git a/world/camera.tscn b/world/camera.tscn new file mode 100644 index 0000000..5472655 --- /dev/null +++ b/world/camera.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://dteshgq6omv8k"] + +[ext_resource type="Script" path="res://world/camera.gd" id="1_jvai6"] + +[node name="Camera" type="Camera2D"] +script = ExtResource("1_jvai6") diff --git a/world/door/block_door.gd b/world/door/block_door.gd new file mode 100644 index 0000000..26427ef --- /dev/null +++ b/world/door/block_door.gd @@ -0,0 +1,22 @@ +extends Node2D +class_name BlockDoor + +const DustEffect := preload("res://fx/wall_dust.tscn") + +@onready @export var path_follower: PathFollow2D + + +func dust(mod: int) -> void: + var i: Node2D = ( + Utils . instance_scene_on_main(DustEffect, global_position + Vector2(randi_range(3, 5), (16 + 7) * mod)) + ) + i.rotation = (PI / 2) * mod + + +func open() -> void: + dust(1) + dust(-1) + var t := create_tween().set_ease(Tween.EASE_IN) + t.tween_property(path_follower, "progress_ratio", 1, 2) + await t.finished + queue_free() diff --git a/world/door/block_door.tscn b/world/door/block_door.tscn new file mode 100644 index 0000000..b657460 --- /dev/null +++ b/world/door/block_door.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=5 format=3 uid="uid://6rgblwkwaw6v"] + +[ext_resource type="Script" path="res://world/door/block_door.gd" id="1_tux7r"] +[ext_resource type="Curve2D" uid="uid://jw0yvthht4bj" path="res://world/door/block_door_path.tres" id="2_57k4a"] +[ext_resource type="Shape2D" uid="uid://cxidkq2kfr583" path="res://world/door/door_shape.tres" id="4_fq60q"] +[ext_resource type="Texture2D" uid="uid://dtec6qxbrg3ym" path="res://assets/world/door_wall.png" id="5_ut41x"] + +[node name="BlockDoor" type="Node2D" node_paths=PackedStringArray("path_follower")] +texture_filter = 1 +script = ExtResource("1_tux7r") +path_follower = NodePath("DoorOpenPath/PathFollower") + +[node name="DoorOpenPath" type="Path2D" parent="."] +curve = ExtResource("2_57k4a") + +[node name="PathFollower" type="PathFollow2D" parent="DoorOpenPath"] + +[node name="RemoteTransform2D" type="RemoteTransform2D" parent="DoorOpenPath/PathFollower"] +remote_path = NodePath("../../../DoorBody") + +[node name="DoorBody" type="AnimatableBody2D" parent="."] +collision_mask = 0 + +[node name="CollisionShape" type="CollisionShape2D" parent="DoorBody"] +visible = false +shape = ExtResource("4_fq60q") + +[node name="Sprite" type="Sprite2D" parent="DoorBody"] +rotation = 1.5708 +texture = ExtResource("5_ut41x") diff --git a/world/door/block_door_path.tres b/world/door/block_door_path.tres new file mode 100644 index 0000000..d1e0e64 --- /dev/null +++ b/world/door/block_door_path.tres @@ -0,0 +1,7 @@ +[gd_resource type="Curve2D" format=3 uid="uid://jw0yvthht4bj"] + +[resource] +_data = { +"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0) +} +point_count = 2 diff --git a/world/door/door.gd b/world/door/door.gd new file mode 100644 index 0000000..bd5869f --- /dev/null +++ b/world/door/door.gd @@ -0,0 +1,8 @@ +extends Area2D +class_name Door + +var dir: Vector2i + + +func _on_body_entered(_p: Player) -> void: + Events.emit_signal(&"change_level", dir) diff --git a/world/door/door.tscn b/world/door/door.tscn new file mode 100644 index 0000000..b33e2c1 --- /dev/null +++ b/world/door/door.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://b6frlgjdtxsnb"] + +[ext_resource type="Script" path="res://world/door/door.gd" id="1_t5c8c"] +[ext_resource type="Shape2D" uid="uid://cxidkq2kfr583" path="res://world/door/door_shape.tres" id="4_ty3l8"] +[ext_resource type="Texture2D" uid="uid://ca243eorhvtp2" path="res://assets/world/door.png" id="4_weg0g"] + +[node name="door" type="Area2D"] +texture_filter = 1 +collision_layer = 0 +collision_mask = 2 +script = ExtResource("1_t5c8c") + +[node name="CollisionShape" type="CollisionShape2D" parent="."] +position = Vector2(16, 0) +shape = ExtResource("4_ty3l8") + +[node name="Sprite" type="Sprite2D" parent="."] +position = Vector2(10, 0) +texture = ExtResource("4_weg0g") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/world/door/door_shape.tres b/world/door/door_shape.tres new file mode 100644 index 0000000..3415917 --- /dev/null +++ b/world/door/door_shape.tres @@ -0,0 +1,4 @@ +[gd_resource type="RectangleShape2D" format=3 uid="uid://cxidkq2kfr583"] + +[resource] +size = Vector2(16, 32) diff --git a/world/one_way_platform.gd b/world/one_way_platform.gd new file mode 100644 index 0000000..eb69c2f --- /dev/null +++ b/world/one_way_platform.gd @@ -0,0 +1,8 @@ +extends StaticBody2D +class_name OneWayPlatform + +@onready @export var shape: CollisionShape2D + +func _input(event: InputEvent) -> void: + if event.is_action("down") and shape.disabled == not event.is_pressed(): + shape.set_deferred("disabled", event.is_pressed()) diff --git a/world/one_way_platform.tscn b/world/one_way_platform.tscn new file mode 100644 index 0000000..6ca8267 --- /dev/null +++ b/world/one_way_platform.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://cbrnw5j2j8wax"] + +[ext_resource type="Texture2D" uid="uid://b0iehyccoav1r" path="res://assets/world/one_way_platform.png" id="1_3fm0l"] +[ext_resource type="Script" path="res://world/one_way_platform.gd" id="1_3rdiq"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_x8my0"] +size = Vector2(34, 3) + +[node name="one_way_platform" type="StaticBody2D" node_paths=PackedStringArray("shape")] +texture_filter = 1 +script = ExtResource("1_3rdiq") +shape = NodePath("CollisionShape") + +[node name="Sprite" type="Sprite2D" parent="."] +texture = ExtResource("1_3fm0l") + +[node name="CollisionShape" type="CollisionShape2D" parent="."] +position = Vector2(0, -1.5) +shape = SubResource("RectangleShape2D_x8my0") +one_way_collision = true diff --git a/world/tiles.tres b/world/tiles.tres new file mode 100644 index 0000000..65f5113 --- /dev/null +++ b/world/tiles.tres @@ -0,0 +1,530 @@ +[gd_resource type="TileSet" load_steps=6 format=3 uid="uid://dsw8frlrcnbi8"] + +[ext_resource type="Texture2D" uid="uid://bs3dt308ypttr" path="res://assets/world/tiles.png" id="1_6jxv4"] +[ext_resource type="Texture2D" uid="uid://b0urvindbx57t" path="res://assets/world/slope.png" id="2_qk6e1"] + +[sub_resource type="TileMapPattern" id="TileMapPattern_hcn1t"] +tile_data = PackedInt32Array(65536, 196609, 0, 65537, 262145, 0, 2, 196609, 0, 65538, 327681, 0) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rc3at"] +resource_name = "tiles" +texture = ExtResource("1_6jxv4") +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:0/0/terrains_peering_bit/right_side = 0 +0:0/0/terrains_peering_bit/bottom_right_corner = 0 +0:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/terrain = 0 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +1:0/0/terrains_peering_bit/right_side = 0 +1:0/0/terrains_peering_bit/bottom_right_corner = 0 +1:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0/terrains_peering_bit/bottom_left_corner = 0 +1:0/0/terrains_peering_bit/left_side = 0 +2:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/terrain = 0 +2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/0/physics_layer_0/angular_velocity = 0.0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:0/0/terrains_peering_bit/bottom_side = 0 +2:0/0/terrains_peering_bit/bottom_left_corner = 0 +2:0/0/terrains_peering_bit/left_side = 0 +3:0/0 = 0 +3:0/0/terrain_set = 0 +3:0/0/terrain = 0 +3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/0/physics_layer_0/angular_velocity = 0.0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:0/0/terrains_peering_bit/bottom_side = 0 +4:0/0 = 0 +4:0/0/terrain_set = 0 +4:0/0/terrain = 0 +4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:0/0/physics_layer_0/angular_velocity = 0.0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:0/0/terrains_peering_bit/right_side = 0 +4:0/0/terrains_peering_bit/bottom_side = 0 +5:0/0 = 0 +5:0/0/terrain_set = 0 +5:0/0/terrain = 0 +5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:0/0/physics_layer_0/angular_velocity = 0.0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:0/0/terrains_peering_bit/right_side = 0 +5:0/0/terrains_peering_bit/bottom_side = 0 +5:0/0/terrains_peering_bit/bottom_left_corner = 0 +5:0/0/terrains_peering_bit/left_side = 0 +6:0/0 = 0 +6:0/0/terrain_set = 0 +6:0/0/terrain = 0 +6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:0/0/physics_layer_0/angular_velocity = 0.0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:0/0/terrains_peering_bit/right_side = 0 +6:0/0/terrains_peering_bit/bottom_right_corner = 0 +6:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0/terrains_peering_bit/left_side = 0 +7:0/0 = 0 +7:0/0/terrain_set = 0 +7:0/0/terrain = 0 +7:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:0/0/physics_layer_0/angular_velocity = 0.0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:0/0/terrains_peering_bit/bottom_side = 0 +7:0/0/terrains_peering_bit/left_side = 0 +8:0/0 = 0 +8:0/0/terrain_set = 0 +8:0/0/terrain = 0 +8:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:0/0/physics_layer_0/angular_velocity = 0.0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:0/0/terrains_peering_bit/right_side = 0 +8:0/0/terrains_peering_bit/bottom_side = 0 +8:0/0/terrains_peering_bit/left_side = 0 +9:0/0 = 0 +9:0/0/terrain_set = 0 +9:0/0/terrain = 0 +9:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:0/0/physics_layer_0/angular_velocity = 0.0 +9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +9:0/0/terrains_peering_bit/right_side = 0 +9:0/0/terrains_peering_bit/bottom_right_corner = 0 +9:0/0/terrains_peering_bit/bottom_side = 0 +9:0/0/terrains_peering_bit/left_side = 0 +9:0/0/terrains_peering_bit/top_left_corner = 0 +9:0/0/terrains_peering_bit/top_side = 0 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 0 +0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/0/physics_layer_0/angular_velocity = 0.0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:1/0/terrains_peering_bit/right_side = 0 +0:1/0/terrains_peering_bit/bottom_right_corner = 0 +0:1/0/terrains_peering_bit/bottom_side = 0 +0:1/0/terrains_peering_bit/top_side = 0 +0:1/0/terrains_peering_bit/top_right_corner = 0 +1:1/0 = 0 +1:1/0/terrain_set = 0 +1:1/0/terrain = 0 +1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/0/physics_layer_0/angular_velocity = 0.0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +1:1/0/terrains_peering_bit/right_side = 0 +1:1/0/terrains_peering_bit/bottom_right_corner = 0 +1:1/0/terrains_peering_bit/bottom_side = 0 +1:1/0/terrains_peering_bit/bottom_left_corner = 0 +1:1/0/terrains_peering_bit/left_side = 0 +1:1/0/terrains_peering_bit/top_left_corner = 0 +1:1/0/terrains_peering_bit/top_side = 0 +1:1/0/terrains_peering_bit/top_right_corner = 0 +2:1/0 = 0 +2:1/0/terrain_set = 0 +2:1/0/terrain = 0 +2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/0/physics_layer_0/angular_velocity = 0.0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:1/0/terrains_peering_bit/bottom_side = 0 +2:1/0/terrains_peering_bit/bottom_left_corner = 0 +2:1/0/terrains_peering_bit/left_side = 0 +2:1/0/terrains_peering_bit/top_left_corner = 0 +2:1/0/terrains_peering_bit/top_side = 0 +3:1/0 = 0 +3:1/0/terrain_set = 0 +3:1/0/terrain = 0 +3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:1/0/physics_layer_0/angular_velocity = 0.0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:1/0/terrains_peering_bit/bottom_side = 0 +3:1/0/terrains_peering_bit/top_side = 0 +4:1/0 = 0 +4:1/0/terrain_set = 0 +4:1/0/terrain = 0 +4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:1/0/physics_layer_0/angular_velocity = 0.0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:1/0/terrains_peering_bit/right_side = 0 +4:1/0/terrains_peering_bit/bottom_side = 0 +4:1/0/terrains_peering_bit/top_side = 0 +4:1/0/terrains_peering_bit/top_right_corner = 0 +5:1/0 = 0 +5:1/0/terrain_set = 0 +5:1/0/terrain = 0 +5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:1/0/physics_layer_0/angular_velocity = 0.0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:1/0/terrains_peering_bit/right_side = 0 +5:1/0/terrains_peering_bit/bottom_side = 0 +5:1/0/terrains_peering_bit/bottom_left_corner = 0 +5:1/0/terrains_peering_bit/left_side = 0 +5:1/0/terrains_peering_bit/top_left_corner = 0 +5:1/0/terrains_peering_bit/top_side = 0 +5:1/0/terrains_peering_bit/top_right_corner = 0 +6:1/0 = 0 +6:1/0/terrain_set = 0 +6:1/0/terrain = 0 +6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:1/0/physics_layer_0/angular_velocity = 0.0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:1/0/terrains_peering_bit/right_side = 0 +6:1/0/terrains_peering_bit/bottom_right_corner = 0 +6:1/0/terrains_peering_bit/bottom_side = 0 +6:1/0/terrains_peering_bit/left_side = 0 +6:1/0/terrains_peering_bit/top_left_corner = 0 +6:1/0/terrains_peering_bit/top_side = 0 +6:1/0/terrains_peering_bit/top_right_corner = 0 +7:1/0 = 0 +7:1/0/terrain_set = 0 +7:1/0/terrain = 0 +7:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:1/0/physics_layer_0/angular_velocity = 0.0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:1/0/terrains_peering_bit/bottom_side = 0 +7:1/0/terrains_peering_bit/left_side = 0 +7:1/0/terrains_peering_bit/top_left_corner = 0 +7:1/0/terrains_peering_bit/top_side = 0 +8:1/0 = 0 +8:1/0/terrain_set = 0 +8:1/0/terrain = 0 +8:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:1/0/physics_layer_0/angular_velocity = 0.0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:1/0/terrains_peering_bit/right_side = 0 +8:1/0/terrains_peering_bit/bottom_side = 0 +8:1/0/terrains_peering_bit/left_side = 0 +8:1/0/terrains_peering_bit/top_left_corner = 0 +8:1/0/terrains_peering_bit/top_side = 0 +8:1/0/terrains_peering_bit/top_right_corner = 0 +9:1/0 = 0 +9:1/0/terrain_set = 0 +9:1/0/terrain = 0 +9:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:1/0/physics_layer_0/angular_velocity = 0.0 +9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +9:1/0/terrains_peering_bit/right_side = 0 +9:1/0/terrains_peering_bit/bottom_side = 0 +9:1/0/terrains_peering_bit/bottom_left_corner = 0 +9:1/0/terrains_peering_bit/left_side = 0 +9:1/0/terrains_peering_bit/top_side = 0 +9:1/0/terrains_peering_bit/top_right_corner = 0 +0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/terrain = 0 +0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/0/physics_layer_0/angular_velocity = 0.0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:2/0/terrains_peering_bit/right_side = 0 +0:2/0/terrains_peering_bit/top_side = 0 +0:2/0/terrains_peering_bit/top_right_corner = 0 +1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/terrain = 0 +1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +1:2/0/terrains_peering_bit/right_side = 0 +1:2/0/terrains_peering_bit/left_side = 0 +1:2/0/terrains_peering_bit/top_left_corner = 0 +1:2/0/terrains_peering_bit/top_side = 0 +1:2/0/terrains_peering_bit/top_right_corner = 0 +2:2/0 = 0 +2:2/0/terrain_set = 0 +2:2/0/terrain = 0 +2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:2/0/physics_layer_0/angular_velocity = 0.0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:2/0/terrains_peering_bit/left_side = 0 +2:2/0/terrains_peering_bit/top_left_corner = 0 +2:2/0/terrains_peering_bit/top_side = 0 +3:2/0 = 0 +3:2/0/terrain_set = 0 +3:2/0/terrain = 0 +3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/0/physics_layer_0/angular_velocity = 0.0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +3:2/0/terrains_peering_bit/top_side = 0 +4:2/0 = 0 +4:2/0/terrain_set = 0 +4:2/0/terrain = 0 +4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:2/0/physics_layer_0/angular_velocity = 0.0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:2/0/terrains_peering_bit/right_side = 0 +4:2/0/terrains_peering_bit/bottom_right_corner = 0 +4:2/0/terrains_peering_bit/bottom_side = 0 +4:2/0/terrains_peering_bit/top_side = 0 +5:2/0 = 0 +5:2/0/terrain_set = 0 +5:2/0/terrain = 0 +5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:2/0/physics_layer_0/angular_velocity = 0.0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:2/0/terrains_peering_bit/right_side = 0 +5:2/0/terrains_peering_bit/bottom_right_corner = 0 +5:2/0/terrains_peering_bit/bottom_side = 0 +5:2/0/terrains_peering_bit/bottom_left_corner = 0 +5:2/0/terrains_peering_bit/left_side = 0 +5:2/0/terrains_peering_bit/top_left_corner = 0 +5:2/0/terrains_peering_bit/top_side = 0 +6:2/0 = 0 +6:2/0/terrain_set = 0 +6:2/0/terrain = 0 +6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:2/0/physics_layer_0/angular_velocity = 0.0 +6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:2/0/terrains_peering_bit/right_side = 0 +6:2/0/terrains_peering_bit/bottom_right_corner = 0 +6:2/0/terrains_peering_bit/bottom_side = 0 +6:2/0/terrains_peering_bit/bottom_left_corner = 0 +6:2/0/terrains_peering_bit/left_side = 0 +6:2/0/terrains_peering_bit/top_side = 0 +6:2/0/terrains_peering_bit/top_right_corner = 0 +7:2/0 = 0 +7:2/0/terrain_set = 0 +7:2/0/terrain = 0 +7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:2/0/physics_layer_0/angular_velocity = 0.0 +7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:2/0/terrains_peering_bit/bottom_side = 0 +7:2/0/terrains_peering_bit/bottom_left_corner = 0 +7:2/0/terrains_peering_bit/left_side = 0 +7:2/0/terrains_peering_bit/top_side = 0 +8:2/0 = 0 +8:2/0/terrain_set = 0 +8:2/0/terrain = 0 +8:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:2/0/physics_layer_0/angular_velocity = 0.0 +8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:2/0/terrains_peering_bit/right_side = 0 +8:2/0/terrains_peering_bit/bottom_right_corner = 0 +8:2/0/terrains_peering_bit/bottom_side = 0 +8:2/0/terrains_peering_bit/bottom_left_corner = 0 +8:2/0/terrains_peering_bit/left_side = 0 +8:2/0/terrains_peering_bit/top_side = 0 +9:2/0 = 0 +9:2/0/terrain_set = 0 +9:2/0/terrain = 0 +9:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:2/0/physics_layer_0/angular_velocity = 0.0 +9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +9:2/0/terrains_peering_bit/right_side = 0 +9:2/0/terrains_peering_bit/bottom_right_corner = 0 +9:2/0/terrains_peering_bit/bottom_side = 0 +9:2/0/terrains_peering_bit/left_side = 0 +9:2/0/terrains_peering_bit/top_side = 0 +10:2/0 = 0 +10:2/0/terrain_set = 0 +10:2/0/terrain = 0 +10:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:2/0/physics_layer_0/angular_velocity = 0.0 +10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +10:2/0/terrains_peering_bit/right_side = 0 +10:2/0/terrains_peering_bit/bottom_side = 0 +10:2/0/terrains_peering_bit/bottom_left_corner = 0 +10:2/0/terrains_peering_bit/left_side = 0 +10:2/0/terrains_peering_bit/top_side = 0 +0:3/0 = 0 +0:3/0/terrain_set = 0 +0:3/0/terrain = 0 +0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/0/physics_layer_0/angular_velocity = 0.0 +0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +0:3/0/terrains_peering_bit/right_side = 0 +1:3/0 = 0 +1:3/0/terrain_set = 0 +1:3/0/terrain = 0 +1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/0/physics_layer_0/angular_velocity = 0.0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +1:3/0/terrains_peering_bit/right_side = 0 +1:3/0/terrains_peering_bit/left_side = 0 +2:3/0 = 0 +2:3/0/terrain_set = 0 +2:3/0/terrain = 0 +2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:3/0/physics_layer_0/angular_velocity = 0.0 +2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +2:3/0/terrains_peering_bit/left_side = 0 +3:3/0 = 0 +3:3/0/terrain_set = 0 +3:3/0/terrain = 0 +3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:3/0/physics_layer_0/angular_velocity = 0.0 +3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:3/0 = 0 +4:3/0/terrain_set = 0 +4:3/0/terrain = 0 +4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:3/0/physics_layer_0/angular_velocity = 0.0 +4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:3/0/terrains_peering_bit/right_side = 0 +4:3/0/terrains_peering_bit/top_side = 0 +5:3/0 = 0 +5:3/0/terrain_set = 0 +5:3/0/terrain = 0 +5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:3/0/physics_layer_0/angular_velocity = 0.0 +5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:3/0/terrains_peering_bit/right_side = 0 +5:3/0/terrains_peering_bit/left_side = 0 +5:3/0/terrains_peering_bit/top_left_corner = 0 +5:3/0/terrains_peering_bit/top_side = 0 +6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/terrain = 0 +6:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:3/0/physics_layer_0/angular_velocity = 0.0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:3/0/terrains_peering_bit/right_side = 0 +6:3/0/terrains_peering_bit/left_side = 0 +6:3/0/terrains_peering_bit/top_side = 0 +6:3/0/terrains_peering_bit/top_right_corner = 0 +7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/terrain = 0 +7:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:3/0/physics_layer_0/angular_velocity = 0.0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:3/0/terrains_peering_bit/left_side = 0 +7:3/0/terrains_peering_bit/top_side = 0 +8:3/0 = 0 +8:3/0/terrain_set = 0 +8:3/0/terrain = 0 +8:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:3/0/physics_layer_0/angular_velocity = 0.0 +8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:3/0/terrains_peering_bit/right_side = 0 +8:3/0/terrains_peering_bit/left_side = 0 +8:3/0/terrains_peering_bit/top_side = 0 +9:3/0 = 0 +9:3/0/terrain_set = 0 +9:3/0/terrain = 0 +9:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:3/0/physics_layer_0/angular_velocity = 0.0 +9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +9:3/0/terrains_peering_bit/right_side = 0 +9:3/0/terrains_peering_bit/bottom_side = 0 +9:3/0/terrains_peering_bit/left_side = 0 +9:3/0/terrains_peering_bit/top_side = 0 +9:3/0/terrains_peering_bit/top_right_corner = 0 +10:3/0 = 0 +10:3/0/terrain_set = 0 +10:3/0/terrain = 0 +10:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:3/0/physics_layer_0/angular_velocity = 0.0 +10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +10:3/0/terrains_peering_bit/right_side = 0 +10:3/0/terrains_peering_bit/bottom_side = 0 +10:3/0/terrains_peering_bit/left_side = 0 +10:3/0/terrains_peering_bit/top_left_corner = 0 +10:3/0/terrains_peering_bit/top_side = 0 +4:4/0 = 0 +4:4/0/terrain_set = 0 +4:4/0/terrain = 0 +4:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:4/0/physics_layer_0/angular_velocity = 0.0 +4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +4:4/0/terrains_peering_bit/right_side = 0 +4:4/0/terrains_peering_bit/bottom_side = 0 +4:4/0/terrains_peering_bit/top_side = 0 +5:4/0 = 0 +5:4/0/terrain_set = 0 +5:4/0/terrain = 0 +5:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:4/0/physics_layer_0/angular_velocity = 0.0 +5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +5:4/0/terrains_peering_bit/right_side = 0 +5:4/0/terrains_peering_bit/bottom_side = 0 +5:4/0/terrains_peering_bit/bottom_left_corner = 0 +5:4/0/terrains_peering_bit/left_side = 0 +5:4/0/terrains_peering_bit/top_left_corner = 0 +5:4/0/terrains_peering_bit/top_side = 0 +6:4/0 = 0 +6:4/0/terrain_set = 0 +6:4/0/terrain = 0 +6:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:4/0/physics_layer_0/angular_velocity = 0.0 +6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:4/0/terrains_peering_bit/right_side = 0 +6:4/0/terrains_peering_bit/bottom_right_corner = 0 +6:4/0/terrains_peering_bit/bottom_side = 0 +6:4/0/terrains_peering_bit/left_side = 0 +6:4/0/terrains_peering_bit/top_side = 0 +6:4/0/terrains_peering_bit/top_right_corner = 0 +7:4/0 = 0 +7:4/0/terrain_set = 0 +7:4/0/terrain = 0 +7:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:4/0/physics_layer_0/angular_velocity = 0.0 +7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +7:4/0/terrains_peering_bit/bottom_side = 0 +7:4/0/terrains_peering_bit/left_side = 0 +7:4/0/terrains_peering_bit/top_side = 0 +8:4/0 = 0 +8:4/0/terrain_set = 0 +8:4/0/terrain = 0 +8:4/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:4/0/physics_layer_0/angular_velocity = 0.0 +8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +8:4/0/terrains_peering_bit/right_side = 0 +8:4/0/terrains_peering_bit/bottom_side = 0 +8:4/0/terrains_peering_bit/left_side = 0 +8:4/0/terrains_peering_bit/top_side = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_teocq"] +resource_name = "slopes" +texture = ExtResource("2_qk6e1") +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8) +1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, -7, -7, -8) +2:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/0/physics_layer_0/angular_velocity = 0.0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, -7, -7, -8) +3:0/0 = 0 +3:0/0/terrain_set = 0 +3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/0/physics_layer_0/angular_velocity = 0.0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, 0, 8, 8, -8, 8) +4:0/0 = 0 +4:0/0/terrain_set = 0 +4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:0/0/physics_layer_0/angular_velocity = 0.0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 0) +5:0/0 = 0 +5:0/0/terrain_set = 0 +5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:0/0/physics_layer_0/angular_velocity = 0.0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) +6:0/0 = 0 +6:0/0/terrain_set = 0 +6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:0/0/physics_layer_0/angular_velocity = 0.0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) + +[resource] +physics_layer_0/collision_layer = 1 +physics_layer_0/collision_mask = 0 +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "ground" +terrain_set_0/terrain_0/color = Color(0.207843, 0.129412, 0.0862745, 1) +sources/0 = SubResource("TileSetAtlasSource_rc3at") +sources/1 = SubResource("TileSetAtlasSource_teocq") +pattern_0 = SubResource("TileMapPattern_hcn1t") |