diff --git a/art/+Y6tTX.png.import b/art/+Y6tTX.png.import
new file mode 100644
index 0000000..1a3cf48
--- /dev/null
+++ b/art/+Y6tTX.png.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dbjb5a353bq5p"
+path="res://.godot/imported/+Y6tTX.png-727916852968e76cc993d8b7d6d6d93a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/+Y6tTX.png"
+dest_files=["res://.godot/imported/+Y6tTX.png-727916852968e76cc993d8b7d6d6d93a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/high_quality_mode=0
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+mipmaps/preserve_alpha_test_coverage=false
+mipmaps/alpha_test_threshold=0.5
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/CwIZf+.png.import b/art/CwIZf+.png.import
new file mode 100644
index 0000000..6123ed5
--- /dev/null
+++ b/art/CwIZf+.png.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cgyp2d3phoeqd"
+path="res://.godot/imported/CwIZf+.png-d1acec1f682e0950ce7b5cc0bfb297db.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/CwIZf+.png"
+dest_files=["res://.godot/imported/CwIZf+.png-d1acec1f682e0950ce7b5cc0bfb297db.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/high_quality_mode=0
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+mipmaps/preserve_alpha_test_coverage=false
+mipmaps/alpha_test_threshold=0.5
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/crystal_green.pdn b/art/crystal_green.pdn
new file mode 100644
index 0000000..9a4aed6
Binary files /dev/null and b/art/crystal_green.pdn differ
diff --git a/art/crystal_green.png b/art/crystal_green.png
new file mode 100644
index 0000000..ba771cf
Binary files /dev/null and b/art/crystal_green.png differ
diff --git a/art/crystal_green.png.import b/art/crystal_green.png.import
new file mode 100644
index 0000000..4818beb
--- /dev/null
+++ b/art/crystal_green.png.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://0m5unjs5g54d"
+path="res://.godot/imported/crystal_green.png-655a5b642e5889c347c47cc4bdb81efc.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/crystal_green.png"
+dest_files=["res://.godot/imported/crystal_green.png-655a5b642e5889c347c47cc4bdb81efc.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/high_quality_mode=0
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+mipmaps/preserve_alpha_test_coverage=false
+mipmaps/alpha_test_threshold=0.5
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/ie382o.png.import b/art/ie382o.png.import
new file mode 100644
index 0000000..ffdae75
--- /dev/null
+++ b/art/ie382o.png.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://wfsj2b8bpr56"
+path="res://.godot/imported/ie382o.png-08c93a780308d3a3514a4445a6140b23.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/ie382o.png"
+dest_files=["res://.godot/imported/ie382o.png-08c93a780308d3a3514a4445a6140b23.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/high_quality_mode=0
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+mipmaps/preserve_alpha_test_coverage=false
+mipmaps/alpha_test_threshold=0.5
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/art/sand_dunes.pdn b/art/sand_dunes.pdn
new file mode 100644
index 0000000..a259e7a
Binary files /dev/null and b/art/sand_dunes.pdn differ
diff --git a/art/webAWfF.png b/art/webAWfF.png
new file mode 100644
index 0000000..d565d5d
Binary files /dev/null and b/art/webAWfF.png differ
diff --git a/art/webAWfF.png.import b/art/webAWfF.png.import
new file mode 100644
index 0000000..21b6bb7
--- /dev/null
+++ b/art/webAWfF.png.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://csh1o4w45h1i4"
+path="res://.godot/imported/webAWfF.png-d26cdd1a41f44c0dc7f3e340c73643fe.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/webAWfF.png"
+dest_files=["res://.godot/imported/webAWfF.png-d26cdd1a41f44c0dc7f3e340c73643fe.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/high_quality_mode=0
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+mipmaps/preserve_alpha_test_coverage=false
+mipmaps/alpha_test_threshold=0.5
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/block.tscn b/block.tscn
deleted file mode 100644
index 105bc16..0000000
--- a/block.tscn
+++ /dev/null
@@ -1,17 +0,0 @@
-[gd_scene format=3 uid="uid://ckqable762x8v"]
-
-[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="1_im0tn"]
-
-[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
-size = Vector2(16, 14)
-
-[node name="Block" type="RigidBody2D" unique_id=1409784601]
-gravity_scale = 0.0
-freeze = true
-
-[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1866755047]
-shape = SubResource("RectangleShape2D_f3sb7")
-
-[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1680278216]
-texture_filter = 1
-texture = ExtResource("1_im0tn")
diff --git a/hidden_horizontal_long_block.tscn b/hidden_horizontal_long_block.tscn
index 453b3dd..07d6c4f 100644
--- a/hidden_horizontal_long_block.tscn
+++ b/hidden_horizontal_long_block.tscn
@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://ch0417iiviaxb"]
[ext_resource type="Script" uid="uid://dcesonmhay5vo" path="res://hidden_vertical_long_block.gd" id="1_llak8"]
-[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://block.tscn" id="2_se82m"]
+[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://level_editor/blocks/block_simple.tscn" id="2_se82m"]
[node name="HiddenHorizontalLongBlock" type="RigidBody2D" unique_id=925152188 groups=["Hidden"]]
modulate = Color(0, 0.54509807, 0.54509807, 1)
diff --git a/hidden_vertical_long_block.tscn b/hidden_vertical_long_block.tscn
index d661311..e2eab1e 100644
--- a/hidden_vertical_long_block.tscn
+++ b/hidden_vertical_long_block.tscn
@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://b5ssjxl1l3fx0"]
[ext_resource type="Script" uid="uid://dcesonmhay5vo" path="res://hidden_vertical_long_block.gd" id="1_tmhet"]
-[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://block.tscn" id="2_667v4"]
+[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://level_editor/blocks/block_simple.tscn" id="2_667v4"]
[node name="HiddenVerticalLongBlock" type="RigidBody2D" unique_id=925152188 groups=["Hidden"]]
modulate = Color(0, 0.54509807, 0.54509807, 1)
diff --git a/level_editor/blocks/block_simple.gd b/level_editor/blocks/block_simple.gd
new file mode 100644
index 0000000..18c04fc
--- /dev/null
+++ b/level_editor/blocks/block_simple.gd
@@ -0,0 +1,49 @@
+class_name Block_Simple
+
+extends RigidBody2D
+
+# Last known sprite. In edge cases involving states.
+
+# Block type refers to our specific block script.
+# They should always extend eventually from block_simple.
+@export var block_type:Script
+
+# Set the animation (sprite sheet) to the specfied block types.
+func SetSpriteSheet(animation):
+ $Sprite.animation = animation
+
+# If this is false (default) then the block is horizontally facing.
+@export var is_vertical:bool
+
+# Tags the block has. These dictate interactions.
+# These must be strings.
+@export var tags:Array = [str]
+
+# Rotate the block in a way that we can control.
+# Default to 90 because that's a common use case.
+func rotate_block(degrees:int = 90):
+ rotate(degrees)
+
+# This runs BEFORE the instance is loaded.
+# There's a lot you can't do here, as it doesn't exist yet.
+func _init():
+ pass
+ #SetSpriteSheet(str(block_type))
+ #set_script(block_type)
+
+# This runs AFTER the instance is loaded.
+# This runs BEFORE the instance is added to the scene tree.
+func _ready() -> void:
+ if is_vertical:
+ rotate_block(90)
+ set_script(block_type)
+
+# This runs every frame. Expensive.
+func _process(delta: float) -> void:
+ var _last_known_delta = delta
+
+func on_player_near(body: Node2D) -> void:
+ print("Player is touching block with tags: " + str(tags))
+
+func on_player_leave(body: Node2D) -> void:
+ print("Player is leaving block with tags: " + str(tags))
diff --git a/level_editor/blocks/block_simple.gd.uid b/level_editor/blocks/block_simple.gd.uid
new file mode 100644
index 0000000..6003dd5
--- /dev/null
+++ b/level_editor/blocks/block_simple.gd.uid
@@ -0,0 +1 @@
+uid://b65ci82qp1pa0
diff --git a/level_editor/blocks/block_simple.tscn b/level_editor/blocks/block_simple.tscn
new file mode 100644
index 0000000..18e5bbf
--- /dev/null
+++ b/level_editor/blocks/block_simple.tscn
@@ -0,0 +1,54 @@
+[gd_scene format=3 uid="uid://ckqable762x8v"]
+
+[ext_resource type="Script" uid="uid://b65ci82qp1pa0" path="res://level_editor/blocks/block_simple.gd" id="1_64qyq"]
+[ext_resource type="Script" uid="uid://2nvcig3fqetr" path="res://level_editor/blocks/block_spike.gd" id="2_rhp63"]
+[ext_resource type="Texture2D" uid="uid://blbaaqyrt8dtk" path="res://art/block/block.png" id="2_xmhd5"]
+[ext_resource type="Texture2D" uid="uid://bu5wgerfu7cbc" path="res://art/spike.png" id="3_rhp63"]
+
+[sub_resource type="RectangleShape2D" id="RectangleShape2D_f3sb7"]
+size = Vector2(16, 14)
+
+[sub_resource type="SpriteFrames" id="SpriteFrames_q6akc"]
+animations = [{
+"frames": [{
+"duration": 1.0,
+"texture": ExtResource("2_xmhd5")
+}],
+"loop": 1,
+"name": &"block_simple",
+"speed": 5.0
+}, {
+"frames": [{
+"duration": 1.0,
+"texture": ExtResource("3_rhp63")
+}],
+"loop": 1,
+"name": &"block_spike",
+"speed": 5.0
+}]
+
+[sub_resource type="RectangleShape2D" id="RectangleShape2D_lxo14"]
+
+[node name="Block_Simple" type="RigidBody2D" unique_id=1409784601]
+gravity_scale = 0.0
+freeze = true
+script = ExtResource("1_64qyq")
+block_type = ExtResource("2_rhp63")
+tags = [null]
+
+[node name="BlockShape" type="CollisionShape2D" parent="." unique_id=1866755047]
+shape = SubResource("RectangleShape2D_f3sb7")
+
+[node name="Sprite" type="AnimatedSprite2D" parent="." unique_id=321127444]
+texture_filter = 1
+sprite_frames = SubResource("SpriteFrames_q6akc")
+animation = &"block_simple"
+autoplay = "block_simple"
+
+[node name="EffectCollision" type="Area2D" parent="." unique_id=1756054567]
+
+[node name="EffectShape" type="CollisionShape2D" parent="EffectCollision" unique_id=392861580]
+shape = SubResource("RectangleShape2D_lxo14")
+
+[connection signal="body_entered" from="EffectCollision" to="." method="on_player_near"]
+[connection signal="body_exited" from="EffectCollision" to="." method="on_player_leave"]
diff --git a/level_editor/blocks/block_spike.gd b/level_editor/blocks/block_spike.gd
new file mode 100644
index 0000000..4452f16
--- /dev/null
+++ b/level_editor/blocks/block_spike.gd
@@ -0,0 +1,25 @@
+class_name Block_Spike
+
+extends Block_Simple
+
+# This runs BEFORE the instance is loaded.
+# There's a lot you can't do here, as it doesn't exist yet.
+func _init():
+ is_vertical = false
+ tags = ["Spike","Hazard"]
+
+# This runs AFTER the instance is loaded.
+# This runs BEFORE the instance is added to the scene tree.
+func _ready() -> void:
+ if is_vertical:
+ rotate_block(90)
+
+# This runs every frame. Expensive.
+func _process(delta: float) -> void:
+ var _last_known_delta = delta
+
+func on_player_near(body: Node2D) -> void:
+ print("Player is touching block with tags: " + str(tags))
+
+func on_player_leave(body: Node2D) -> void:
+ print("Player is leaving block with tags: " + str(tags))
diff --git a/level_editor/blocks/block_spike.gd.uid b/level_editor/blocks/block_spike.gd.uid
new file mode 100644
index 0000000..d59845d
--- /dev/null
+++ b/level_editor/blocks/block_spike.gd.uid
@@ -0,0 +1 @@
+uid://2nvcig3fqetr
diff --git a/long_block.tscn b/long_block.tscn
index 63ed810..d4de5f0 100644
--- a/long_block.tscn
+++ b/long_block.tscn
@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://dx4pfup3sbk0f"]
-[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://block.tscn" id="1_r8bmj"]
+[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://level_editor/blocks/block_simple.tscn" id="1_r8bmj"]
[node name="LongBlock" type="Node2D" unique_id=426800863]
diff --git a/longer_block.tscn b/longer_block.tscn
index 14bc848..302dce6 100644
--- a/longer_block.tscn
+++ b/longer_block.tscn
@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://biot4cuwgohvo"]
-[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://block.tscn" id="1_plc11"]
+[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://level_editor/blocks/block_simple.tscn" id="1_plc11"]
[node name="LongerBlock" type="Node2D" unique_id=426800863]
diff --git a/player_2d.gd b/playerclass.gd
similarity index 92%
rename from player_2d.gd
rename to playerclass.gd
index b7b99cf..200b76b 100644
--- a/player_2d.gd
+++ b/playerclass.gd
@@ -1,3 +1,4 @@
+class_name PlayerClassextends
extends CharacterBody2D
var controller_ui = false
@@ -161,24 +162,29 @@ func _process(delta: float) -> void:
if Input.is_action_just_pressed("jump"):
%OldComputer.close()
+ # Single jump from floor.
if is_on_floor():
velocity.y = JUMP_VELOCITY
+ # Air jump, if we have any left.
elif !is_on_floor() and jumps >= 1:
- #Air/double jump
jumps -= 1
velocity.y = JUMP_VELOCITY
$Jetpack/DoubleJumpSound.play()
if jumps == 0:
$Jetpack/JumpIndicator.hide()
+ # Pull the player down more quickly when they let go of the jump key.
+ # This improves responsiveness.
if Input.is_action_just_released("jump"):
velocity.y = -(0.001 * JUMP_VELOCITY)
+ # Eventual wall grabs
if Input.is_action_pressed("jump") and is_on_wall_only():
- pass
- #print("WALL HANGING")
- #velocity.y = 0
- #velocity.x = 0
+ print("Spider Rhombini, Spider Rhombini...")
+
+ # Eventual ceiling grabs
+ if Input.is_action_pressed("jump") and is_on_ceiling_only():
+ print("Does whatever, a Spider Rhombini does...")
var direction = Input.get_axis("move_left","move_right")
@@ -211,8 +217,12 @@ func _process(delta: float) -> void:
if dashes == 0:
$Jetpack/DashIndicator.hide()
+ # Slow the player down if they're on keyboard.
elif direction and !dashing:
- velocity.x = direction * SPEED
+ if controller_ui:
+ velocity.x = direction * SPEED
+ else:
+ velocity.x = direction * SPEED * 0.75
$Sprite2D.play("running")
#$Sprite2D/HatSprite.play("running")
@@ -234,6 +244,8 @@ func _process(delta: float) -> void:
print("SLASH KILL")
on_death(true)
+ #func get_floor_tags():
+
fall_timer += 1*delta
if is_on_floor():
fall_timer = 0
diff --git a/player_2d.gd.uid b/playerclass.gd.uid
similarity index 100%
rename from player_2d.gd.uid
rename to playerclass.gd.uid
diff --git a/player_2d.tscn b/playerclass.tscn
similarity index 71%
rename from player_2d.tscn
rename to playerclass.tscn
index b894246..812b47d 100644
--- a/player_2d.tscn
+++ b/playerclass.tscn
@@ -1,35 +1,35 @@
[gd_scene format=3 uid="uid://pmnwck5v0ntm"]
-[ext_resource type="Script" uid="uid://cojhnj15psd2x" path="res://player_2d.gd" id="1_sy00s"]
-[ext_resource type="Shader" uid="uid://mmf86jusrkrr" path="res://shaders/warp_shader.gdshader" id="3_gt2ls"]
-[ext_resource type="Texture2D" uid="uid://dpdxs6gjmexgh" path="res://art/background.png" id="3_p3026"]
-[ext_resource type="Script" uid="uid://544kxhmunfcp" path="res://background_music.gd" id="3_sxtm6"]
-[ext_resource type="AudioStream" uid="uid://8iiafankqo4i" path="res://sound/stepping.wav" id="4_ix7pg"]
-[ext_resource type="Texture2D" uid="uid://biv3f67rqumak" path="res://art/level_start.png" id="4_nj6as"]
-[ext_resource type="Script" uid="uid://3bqq3mfbby2c" path="res://warp_shader.gd" id="4_pmt5n"]
-[ext_resource type="Texture2D" uid="uid://ddhhtwgtowokp" path="res://art/player/crouch/frame1.png" id="6_3prq1"]
-[ext_resource type="Texture2D" uid="uid://do1kisv06nhnk" path="res://art/player/crouch/frame0.png" id="6_lu0ka"]
-[ext_resource type="Texture2D" uid="uid://dyxbitw8hbd3s" path="res://art/player/crouch/frame2.png" id="7_lu0ka"]
-[ext_resource type="Texture2D" uid="uid://bfyd1tro3s0gl" path="res://art/player/crystal2.png" id="7_oy4pt"]
-[ext_resource type="Texture2D" uid="uid://dh7a1knyqn5nd" path="res://art/player/running/frame3.png" id="7_pmt5n"]
-[ext_resource type="Texture2D" uid="uid://lk0f1qyswyxv" path="res://art/player/running/frame1.png" id="8_3prq1"]
-[ext_resource type="Texture2D" uid="uid://yf13nw31k8ua" path="res://art/player/running/frame4.png" id="8_nj6as"]
-[ext_resource type="Texture2D" uid="uid://du5i0tg6u1lal" path="res://art/player/crystal3.png" id="8_ukfft"]
-[ext_resource type="Texture2D" uid="uid://lmje8plw76e1" path="res://art/player/running/frame2.png" id="9_lu0ka"]
-[ext_resource type="Texture2D" uid="uid://bko8dvawpul3c" path="res://art/player/crystal4.png" id="9_ur4nw"]
-[ext_resource type="Texture2D" uid="uid://m5djssna67e1" path="res://art/player/crouch/frame3.png" id="9_w0gjo"]
-[ext_resource type="Texture2D" uid="uid://cn31x2l44je2t" path="res://art/dash_glow.png" id="10_ur4nw"]
-[ext_resource type="Texture2D" uid="uid://biscdhn8jh8ha" path="res://art/jump_glow.png" id="11_3lee2"]
-[ext_resource type="Texture2D" uid="uid://dgq8el2qldlui" path="res://art/player/crystal.png" id="12_4apft"]
-[ext_resource type="AudioStream" uid="uid://bkiipooikacjj" path="res://sound/patience.wav" id="12_5s8kx"]
-[ext_resource type="Texture2D" uid="uid://d1tj8sw2hiwgw" path="res://art/dash_particle.png" id="16_ur4nw"]
-[ext_resource type="Texture2D" uid="uid://deacp021ytuew" path="res://art/jump_particle.png" id="18_fat58"]
-[ext_resource type="AudioStream" uid="uid://b4dkj4gmvk7bg" path="res://sound/double_jump.wav" id="20_1741q"]
-[ext_resource type="AudioStream" uid="uid://dc7bd22vwkf34" path="res://sound/death.wav" id="20_l50qk"]
-[ext_resource type="AudioStream" uid="uid://q7eau835xuja" path="res://sound/secret.wav" id="27_sxtm6"]
+[ext_resource type="Script" uid="uid://cojhnj15psd2x" path="res://playerclass.gd" id="1_5duxp"]
+[ext_resource type="AudioStream" uid="uid://bkiipooikacjj" path="res://sound/patience.wav" id="2_stm81"]
+[ext_resource type="Script" uid="uid://544kxhmunfcp" path="res://background_music.gd" id="3_ttanp"]
+[ext_resource type="AudioStream" uid="uid://8iiafankqo4i" path="res://sound/stepping.wav" id="4_yip33"]
+[ext_resource type="Shader" uid="uid://mmf86jusrkrr" path="res://shaders/warp_shader.gdshader" id="5_neyal"]
+[ext_resource type="Script" uid="uid://3bqq3mfbby2c" path="res://warp_shader.gd" id="6_6fvs5"]
+[ext_resource type="Texture2D" uid="uid://biv3f67rqumak" path="res://art/level_start.png" id="7_edptc"]
+[ext_resource type="Texture2D" uid="uid://dpdxs6gjmexgh" path="res://art/background.png" id="8_mjiju"]
+[ext_resource type="Texture2D" uid="uid://do1kisv06nhnk" path="res://art/player/crouch/frame0.png" id="9_2cwu2"]
+[ext_resource type="Texture2D" uid="uid://ddhhtwgtowokp" path="res://art/player/crouch/frame1.png" id="10_1fojg"]
+[ext_resource type="Texture2D" uid="uid://dyxbitw8hbd3s" path="res://art/player/crouch/frame2.png" id="11_q60t1"]
+[ext_resource type="Texture2D" uid="uid://m5djssna67e1" path="res://art/player/crouch/frame3.png" id="12_shx8o"]
+[ext_resource type="Texture2D" uid="uid://lk0f1qyswyxv" path="res://art/player/running/frame1.png" id="13_86mff"]
+[ext_resource type="Texture2D" uid="uid://lmje8plw76e1" path="res://art/player/running/frame2.png" id="14_x1dp2"]
+[ext_resource type="Texture2D" uid="uid://dh7a1knyqn5nd" path="res://art/player/running/frame3.png" id="15_ih5k4"]
+[ext_resource type="Texture2D" uid="uid://yf13nw31k8ua" path="res://art/player/running/frame4.png" id="16_uko10"]
+[ext_resource type="Texture2D" uid="uid://dgq8el2qldlui" path="res://art/player/crystal.png" id="17_qiwkp"]
+[ext_resource type="Texture2D" uid="uid://bfyd1tro3s0gl" path="res://art/player/crystal2.png" id="18_0xmip"]
+[ext_resource type="Texture2D" uid="uid://du5i0tg6u1lal" path="res://art/player/crystal3.png" id="19_kbmrq"]
+[ext_resource type="Texture2D" uid="uid://bko8dvawpul3c" path="res://art/player/crystal4.png" id="20_eo5qq"]
+[ext_resource type="Texture2D" uid="uid://d1tj8sw2hiwgw" path="res://art/dash_particle.png" id="21_esbp8"]
+[ext_resource type="Texture2D" uid="uid://cn31x2l44je2t" path="res://art/dash_glow.png" id="22_ek43q"]
+[ext_resource type="Texture2D" uid="uid://deacp021ytuew" path="res://art/jump_particle.png" id="23_lbx0d"]
+[ext_resource type="Texture2D" uid="uid://biscdhn8jh8ha" path="res://art/jump_glow.png" id="24_k0rqh"]
+[ext_resource type="AudioStream" uid="uid://dc7bd22vwkf34" path="res://sound/death.wav" id="25_g8wc1"]
+[ext_resource type="AudioStream" uid="uid://b4dkj4gmvk7bg" path="res://sound/double_jump.wav" id="26_mlgy2"]
+[ext_resource type="AudioStream" uid="uid://q7eau835xuja" path="res://sound/secret.wav" id="27_ng6ly"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pmt5n"]
-shader = ExtResource("3_gt2ls")
+shader = ExtResource("5_neyal")
[sub_resource type="QuadMesh" id="QuadMesh_nj6as"]
size = Vector2(1280, 720)
@@ -38,16 +38,16 @@ size = Vector2(1280, 720)
animations = [{
"frames": [{
"duration": 1.0,
-"texture": ExtResource("6_lu0ka")
+"texture": ExtResource("9_2cwu2")
}, {
"duration": 1.0,
-"texture": ExtResource("6_3prq1")
+"texture": ExtResource("10_1fojg")
}, {
"duration": 1.0,
-"texture": ExtResource("7_lu0ka")
+"texture": ExtResource("11_q60t1")
}, {
"duration": 1.0,
-"texture": ExtResource("9_w0gjo")
+"texture": ExtResource("12_shx8o")
}],
"loop": 1,
"name": &"crouch",
@@ -55,10 +55,10 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
-"texture": ExtResource("8_3prq1")
+"texture": ExtResource("13_86mff")
}, {
"duration": 1.0,
-"texture": ExtResource("9_lu0ka")
+"texture": ExtResource("14_x1dp2")
}],
"loop": 1,
"name": &"idle",
@@ -66,16 +66,16 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
-"texture": ExtResource("7_pmt5n")
+"texture": ExtResource("15_ih5k4")
}, {
"duration": 1.0,
-"texture": ExtResource("8_nj6as")
+"texture": ExtResource("16_uko10")
}, {
"duration": 1.0,
-"texture": ExtResource("8_3prq1")
+"texture": ExtResource("13_86mff")
}, {
"duration": 1.0,
-"texture": ExtResource("9_lu0ka")
+"texture": ExtResource("14_x1dp2")
}],
"loop": 1,
"name": &"running",
@@ -86,16 +86,16 @@ animations = [{
animations = [{
"frames": [{
"duration": 1.0,
-"texture": ExtResource("12_4apft")
+"texture": ExtResource("17_qiwkp")
}, {
"duration": 1.0,
-"texture": ExtResource("7_oy4pt")
+"texture": ExtResource("18_0xmip")
}, {
"duration": 1.0,
-"texture": ExtResource("8_ukfft")
+"texture": ExtResource("19_kbmrq")
}, {
"duration": 1.0,
-"texture": ExtResource("9_ur4nw")
+"texture": ExtResource("20_eo5qq")
}],
"loop": 1,
"name": &"idle",
@@ -106,22 +106,22 @@ animations = [{
radius = 6.0
height = 12.0
-[node name="Player2D" type="CharacterBody2D" unique_id=889851478]
+[node name="PlayerClass" type="CharacterBody2D" unique_id=889851478]
safe_margin = 0.06
-script = ExtResource("1_sy00s")
+script = ExtResource("1_5duxp")
[node name="BackgroundMusic" type="AudioStreamPlayer2D" parent="." unique_id=299359239]
-stream = ExtResource("12_5s8kx")
+stream = ExtResource("2_stm81")
autoplay = true
playback_type = 1
-script = ExtResource("3_sxtm6")
+script = ExtResource("3_ttanp")
[node name="MeditateMusic" type="AudioStreamPlayer2D" parent="." unique_id=1027402564]
-stream = ExtResource("4_ix7pg")
+stream = ExtResource("4_yip33")
volume_db = -80.0
autoplay = true
playback_type = 1
-script = ExtResource("3_sxtm6")
+script = ExtResource("3_ttanp")
[node name="CanvasLayer2" type="CanvasLayer" parent="." unique_id=1854423107]
@@ -129,11 +129,11 @@ script = ExtResource("3_sxtm6")
material = SubResource("ShaderMaterial_pmt5n")
position = Vector2(0, -1)
mesh = SubResource("QuadMesh_nj6as")
-script = ExtResource("4_pmt5n")
+script = ExtResource("6_6fvs5")
[node name="Sprite2D" type="Sprite2D" parent="CanvasLayer2/WarpShader" unique_id=1651549733]
visible = false
-texture = ExtResource("4_nj6as")
+texture = ExtResource("7_edptc")
[node name="Parallax2D" type="Parallax2D" parent="." unique_id=270393374]
repeat_size = Vector2(1280, 720)
@@ -143,7 +143,7 @@ ignore_camera_scroll = true
[node name="Sprite2D" type="Sprite2D" parent="Parallax2D" unique_id=1267606565]
scale = Vector2(3, 3)
-texture = ExtResource("3_p3026")
+texture = ExtResource("8_mjiju")
[node name="Camera2D" type="Camera2D" parent="." unique_id=962368438]
zoom = Vector2(2.2, 2.2)
@@ -174,39 +174,39 @@ autoplay = "idle"
[node name="DashIndicator" type="CPUParticles2D" parent="Jetpack" unique_id=1424397604]
position = Vector2(-11, -2)
-texture = ExtResource("16_ur4nw")
+texture = ExtResource("21_esbp8")
lifetime = 0.1
gravity = Vector2(0, 0)
[node name="DashIndicatorGlow" type="PointLight2D" parent="Jetpack/DashIndicator" unique_id=1334369973]
position = Vector2(-1, 0)
energy = 10.0
-texture = ExtResource("10_ur4nw")
+texture = ExtResource("22_ek43q")
[node name="JumpIndicator" type="CPUParticles2D" parent="Jetpack" unique_id=1519478958]
position = Vector2(13, -2)
-texture = ExtResource("18_fat58")
+texture = ExtResource("23_lbx0d")
lifetime = 0.1
gravity = Vector2(0, 0)
[node name="JumpIndicatorGlow" type="PointLight2D" parent="Jetpack/JumpIndicator" unique_id=920409859]
position = Vector2(-1, 0)
energy = 10.0
-texture = ExtResource("11_3lee2")
+texture = ExtResource("24_k0rqh")
[node name="JumpSound" type="AudioStreamPlayer2D" parent="Jetpack" unique_id=2009313321]
[node name="DashSound" type="AudioStreamPlayer2D" parent="Jetpack" unique_id=403353396]
[node name="DeathSound" type="AudioStreamPlayer2D" parent="Jetpack" unique_id=1365918564]
-stream = ExtResource("20_l50qk")
+stream = ExtResource("25_g8wc1")
[node name="DoubleJumpSound" type="AudioStreamPlayer2D" parent="Jetpack" unique_id=1131911389]
-stream = ExtResource("20_1741q")
+stream = ExtResource("26_mlgy2")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1294571021]
position = Vector2(0, 3)
shape = SubResource("CapsuleShape2D_ix7pg")
[node name="HatSound" type="AudioStreamPlayer2D" parent="." unique_id=508539941]
-stream = ExtResource("27_sxtm6")
+stream = ExtResource("27_ng6ly")
diff --git a/vertical_long_block.tscn b/vertical_long_block.tscn
index 037c36b..946b6c4 100644
--- a/vertical_long_block.tscn
+++ b/vertical_long_block.tscn
@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://bos6oh7nwyeca"]
[ext_resource type="Script" uid="uid://0o8303qahgvi" path="res://vertical_long_block.gd" id="1_23eij"]
-[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://block.tscn" id="1_noju1"]
+[ext_resource type="PackedScene" uid="uid://ckqable762x8v" path="res://level_editor/blocks/block_simple.tscn" id="1_noju1"]
[node name="VerticalLongBlock" type="RigidBody2D" unique_id=925152188]
rotation = 1.5707964
diff --git a/web_released/index.html b/web_released/index.html
index e535f90..495d32c 100644
--- a/web_released/index.html
+++ b/web_released/index.html
@@ -111,7 +111,7 @@ body {