Merge remote-tracking branch 'upstream/main' into pulls/small-crouch-hitbox-fix

This commit is contained in:
KirbyKidJ
2025-10-03 21:46:36 -07:00
259 changed files with 13464 additions and 11429 deletions

View File

@@ -8,6 +8,21 @@
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dnx1i"]
size = Vector2(10, 8)
[sub_resource type="Animation" id="Animation_5y583"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
[sub_resource type="Animation" id="Animation_dnx1i"]
resource_name = "Shake"
length = 0.2
@@ -25,21 +40,6 @@ tracks/0/keys = {
"values": [Vector2(-1, 0), Vector2(1, 0)]
}
[sub_resource type="Animation" id="Animation_5y583"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite:offset")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2sios"]
_data = {
&"RESET": SubResource("Animation_5y583"),

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=3 uid="uid://1rxw4k4wq3ni"]
[gd_scene load_steps=22 format=3 uid="uid://1rxw4k4wq3ni"]
[ext_resource type="Texture2D" uid="uid://dbq6cn2hp6ijx" path="res://Assets/Sprites/Enemies/PiranhaPlant.png" id="1_2imih"]
[ext_resource type="Script" uid="uid://d23hoj2qc2whq" path="res://Scripts/Classes/Entities/Enemies/PiranhaPlant.gd" id="1_jbk0f"]
@@ -11,6 +11,7 @@
[ext_resource type="Script" uid="uid://bbww34oiexbx2" path="res://Scripts/Classes/Components/ShellDetection.gd" id="10_uohcg"]
[ext_resource type="Script" uid="uid://d0mqkvopasu8k" path="res://Scripts/Classes/Components/SecondQuestReplaceComponent.gd" id="10_xreuf"]
[ext_resource type="Script" uid="uid://ba18grqjixded" path="res://Scripts/Classes/Components/ExplosionDetection.gd" id="11_8y1e5"]
[ext_resource type="Script" uid="uid://ctfbuoxtnnl0q" path="res://Scripts/Classes/Components/EditorPropertyExposer.gd" id="12_ofvpu"]
[sub_resource type="AtlasTexture" id="AtlasTexture_xp8sq"]
atlas = ExtResource("1_2imih")
@@ -180,6 +181,25 @@ _data = {
&"Rise": SubResource("Animation_t8k64")
}
[sub_resource type="GDScript" id="GDScript_ofvpu"]
script/source = "extends Node
var starting_position = Vector2(-1, -1)
func _ready() -> void:
if starting_position == Vector2(-1, -1):
starting_position = owner.global_position
func _process(_delta: float) -> void:
const OFFSETS = [Vector2.ZERO, Vector2(0, -16), Vector2(-16, 0), Vector2.ZERO]
if Global.level_editor != null:
owner.global_rotation_degrees = [0, 180, 90, -90][owner.plant_direction]
# guzlad: only do the offset calculations if the directions actually need them, stops wasting time for other directions
if (owner.plant_direction == 1 or owner.plant_direction == 2):
var offset = OFFSETS[owner.plant_direction]
owner.global_position = Vector2((owner.get_meta(\"tile_position\") + Vector2i(1, 1)) * 16) + offset
"
[node name="PirannhaPlant" type="CharacterBody2D" node_paths=PackedStringArray("on_screen_enabler", "score_note_adder") groups=["Enemies"]]
z_index = -5
script = ExtResource("1_jbk0f")
@@ -279,6 +299,15 @@ script = ExtResource("11_8y1e5")
hitbox = NodePath("../Sprite/Hitbox")
metadata/_custom_type_script = "uid://ba18grqjixded"
[node name="EditorPropertyExposer" type="Node" parent="."]
script = ExtResource("12_ofvpu")
properties = Array[String](["plant_direction"])
metadata/_custom_type_script = "uid://ctfbuoxtnnl0q"
[node name="Node" type="Node" parent="."]
process_mode = 3
script = SubResource("GDScript_ofvpu")
[connection signal="timeout" from="Timer" to="." method="on_timeout"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="." method="die_from_object"]
[connection signal="invincible_player_hit" from="EnemyPlayerDetection" to="ScoreNoteSpawner" method="spawn_note" binds= [200]]

View File

@@ -258,7 +258,7 @@ metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
script = ExtResource("4_dvv3e")
node_to_affect = NodePath("")
node_to_affect = NodePath("..")
property_name = "sprite_frames"
resource_json = ExtResource("5_hjivi")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -1,10 +1,12 @@
[gd_scene load_steps=4 format=3 uid="uid://dplnidrqshecd"]
[gd_scene load_steps=5 format=3 uid="uid://dplnidrqshecd"]
[ext_resource type="PackedScene" uid="uid://chjxyhlwohmi6" path="res://Scenes/Prefabs/Entities/Items/Coin.tscn" id="1_iq4uk"]
[ext_resource type="PackedScene" uid="uid://bxuxtgn5wg108" path="res://Scenes/Prefabs/Entities/Items/SpinningBlueCoin.tscn" id="2_4rq0g"]
[ext_resource type="PackedScene" uid="uid://2j5gl64gxbgy" path="res://Scenes/Prefabs/Particles/BlueCoinSparkle.tscn" id="2_mibmr"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/BlueCoin.json" id="2_r2p65"]
[node name="Coin" instance=ExtResource("1_iq4uk")]
COIN_SPARKLE = ExtResource("2_mibmr")
spinning_coin_scene = ExtResource("2_4rq0g")
[node name="Sprite" parent="." index="0"]

View File

@@ -1,8 +1,9 @@
[gd_scene load_steps=17 format=3 uid="uid://chjxyhlwohmi6"]
[gd_scene load_steps=18 format=3 uid="uid://chjxyhlwohmi6"]
[ext_resource type="Script" uid="uid://cexcll4frt0t6" path="res://Scripts/Classes/Entities/Items/Coin.gd" id="1_c6elg"]
[ext_resource type="Texture2D" uid="uid://b6o28xa83npb1" path="res://Assets/Sprites/Items/StaticCoin.png" id="2_7vxr7"]
[ext_resource type="PackedScene" uid="uid://clxssds8sj8pf" path="res://Scenes/Prefabs/Entities/Items/SpinningCoin.tscn" id="2_k3746"]
[ext_resource type="PackedScene" uid="uid://b1ytbn4cu7msu" path="res://Scenes/Prefabs/Particles/CoinSparkle.tscn" id="2_nu35s"]
[ext_resource type="Script" uid="uid://cmg61722ktg2m" path="res://Scripts/Classes/Components/BlockBouncingDetection.gd" id="3_korlu"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_uahob"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/Coin.json" id="4_thymr"]
@@ -55,6 +56,7 @@ size = Vector2(8, 8)
[node name="Coin" type="Node2D" groups=["Coins"]]
z_index = -2
script = ExtResource("1_c6elg")
COIN_SPARKLE = ExtResource("2_nu35s")
spinning_coin_scene = ExtResource("2_k3746")
[node name="Sprite" type="AnimatedSprite2D" parent="."]
@@ -62,9 +64,10 @@ sprite_frames = SubResource("SpriteFrames_nu35s")
autoplay = "default"
frame_progress = 0.487032
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect", "property_node")]
script = ExtResource("3_uahob")
node_to_affect = NodePath("..")
property_node = NodePath("../..")
property_name = "sprite_frames"
resource_json = ExtResource("4_thymr")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -93,9 +93,10 @@ script = ExtResource("3_0r8d3")
do_offset = false
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect", "property_node")]
script = ExtResource("3_0xloa")
node_to_affect = NodePath("..")
property_node = NodePath("../..")
property_name = "sprite_frames"
resource_json = ExtResource("5_0fjrw")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -1,9 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://bxuxtgn5wg108"]
[gd_scene load_steps=4 format=3 uid="uid://bxuxtgn5wg108"]
[ext_resource type="PackedScene" uid="uid://clxssds8sj8pf" path="res://Scenes/Prefabs/Entities/Items/SpinningCoin.tscn" id="1_8si4e"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/BlueCoin.json" id="2_da77p"]
[ext_resource type="PackedScene" uid="uid://2j5gl64gxbgy" path="res://Scenes/Prefabs/Particles/BlueCoinSparkle.tscn" id="2_vxiva"]
[node name="SpinningCoin" instance=ExtResource("1_8si4e")]
particle = ExtResource("2_vxiva")
[node name="Sprite" parent="." index="0"]
animation = &"Spin"

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=11 format=3 uid="uid://clxssds8sj8pf"]
[gd_scene load_steps=12 format=3 uid="uid://clxssds8sj8pf"]
[ext_resource type="Script" uid="uid://dixhffcqfnyku" path="res://Scripts/Classes/Entities/Items/SpinningCoin.gd" id="1_pvx50"]
[ext_resource type="Texture2D" uid="uid://bnomivkphlt60" path="res://Assets/Sprites/Items/SpinningCoin.png" id="2_6slgd"]
[ext_resource type="PackedScene" uid="uid://b1ytbn4cu7msu" path="res://Scenes/Prefabs/Particles/CoinSparkle.tscn" id="2_b5lmc"]
[ext_resource type="Script" uid="uid://5octqlf4ohel" path="res://Scripts/Classes/Components/ScoreNoteSpawner.gd" id="3_6slgd"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_7mdmn"]
[ext_resource type="JSON" path="res://Assets/Sprites/Items/SpinningCoin.json" id="4_b5lmc"]
@@ -44,6 +45,7 @@ animations = [{
[node name="SpinningCoin" type="Node2D"]
script = ExtResource("1_pvx50")
particle = ExtResource("2_b5lmc")
metadata/block_spawn_offset = Vector2(0, -4)
[node name="Sprite" type="AnimatedSprite2D" parent="."]
@@ -51,9 +53,10 @@ sprite_frames = SubResource("SpriteFrames_sax2u")
autoplay = "default"
frame_progress = 0.710764
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect", "property_node")]
script = ExtResource("3_7mdmn")
node_to_affect = NodePath("..")
property_node = NodePath("../..")
property_name = "sprite_frames"
resource_json = ExtResource("4_b5lmc")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -90,9 +90,10 @@ speed_scale = 2.5
script = ExtResource("3_rnpac")
metadata/_custom_type_script = "uid://caq1qiwmy0mox"
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect")]
[node name="ResourceSetterNew" type="Node" parent="Sprite" node_paths=PackedStringArray("node_to_affect", "property_node")]
script = ExtResource("3_ke76m")
node_to_affect = NodePath("..")
property_node = NodePath("../..")
property_name = "sprite_frames"
resource_json = ExtResource("4_rnpac")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"

View File

@@ -36,7 +36,7 @@ tracks/0/path = NodePath("Sprite:scale")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.033333335, 0.1, 0.16666667),
"times": PackedFloat32Array(0, 0.010294806, 0.06666667, 0.16666667),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(0.8, 0.8), Vector2(1.2, 1.2), Vector2(1, 1)]

View File

@@ -1,10 +1,12 @@
[gd_scene load_steps=8 format=3 uid="uid://4gxhnql5bjk6"]
[gd_scene load_steps=10 format=3 uid="uid://4gxhnql5bjk6"]
[ext_resource type="Texture2D" uid="uid://50hm4xgnw8ks" path="res://Assets/Sprites/Tilesets/Tracks.png" id="1_84p4k"]
[ext_resource type="Script" uid="uid://chhr6kgvstkod" path="res://Scripts/Classes/Entities/Objects/TrackPiece.gd" id="1_t2c2l"]
[ext_resource type="Texture2D" uid="uid://barofu3g8jf00" path="res://Assets/Sprites/Tilesets/InvisibleTracks.png" id="2_5cc87"]
[ext_resource type="Script" uid="uid://cbal8ms2oe1ik" path="res://Scripts/Classes/Components/ResourceSetterNew.gd" id="3_4ie33"]
[ext_resource type="JSON" path="res://Assets/Sprites/Tilesets/Track.json" id="4_5cc87"]
[ext_resource type="Script" uid="uid://cpwloakvp672a" path="res://Scripts/Parts/EditorVisibleNode.gd" id="6_yu1nf"]
[ext_resource type="Texture2D" uid="uid://dp4b0cpisp5cs" path="res://Assets/Sprites/UI/Arrow.png" id="7_br4q4"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4k6gi"]
size = Vector2(12, 12)
@@ -203,6 +205,16 @@ mode = 1
resource_json = ExtResource("4_5cc87")
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="DirectionArrow" type="Node2D" parent="."]
script = ExtResource("6_yu1nf")
metadata/_custom_type_script = "uid://cpwloakvp672a"
[node name="Arrow" type="Sprite2D" parent="DirectionArrow"]
modulate = Color(0, 1, 1, 1)
rotation = -1.5707964
texture = ExtResource("7_br4q4")
hframes = 2
[connection signal="mouse_entered" from="PlacePreview/NW/MouseArea" to="." method="on_mouse_entered"]
[connection signal="mouse_exited" from="PlacePreview/NW/MouseArea" to="." method="on_mouse_exited"]
[connection signal="mouse_entered" from="PlacePreview/N/MouseArea" to="." method="on_mouse_entered" binds= [1]]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=84 format=3 uid="uid://cuh62hlq8errh"]
[gd_scene load_steps=85 format=3 uid="uid://cuh62hlq8errh"]
[ext_resource type="Script" uid="uid://dt4rosa5o35xr" path="res://Scripts/Classes/Entities/Player.gd" id="1_f6bau"]
[ext_resource type="Script" uid="uid://uribh0f1jttq" path="res://Scripts/Classes/States/StateMachine.gd" id="2_1y62l"]
@@ -23,6 +23,7 @@
[ext_resource type="Script" uid="uid://c7kmriol0gj16" path="res://Scripts/Classes/States/Player/Climb.gd" id="10_shhao"]
[ext_resource type="JSON" path="res://Assets/Sprites/Players/Mario/ColourPalette.json" id="10_xy8gq"]
[ext_resource type="Script" uid="uid://b10ui1x45l6ly" path="res://Scripts/Classes/States/Player/WallSlide.gd" id="11_057py"]
[ext_resource type="Texture2D" uid="uid://bqra7e5xsdg5r" path="res://Assets/Sprites/Particles/SkidParticles.png" id="11_vijl6"]
[ext_resource type="Texture2D" uid="uid://dq58glgwf2l3" path="res://Assets/Sprites/UI/CheckpointIcon.png" id="13_uo1a1"]
[ext_resource type="Script" uid="uid://ugfx3sb3h6rj" path="res://Scripts/Classes/States/Player/NoClip.gd" id="16_cekpg"]
[ext_resource type="AudioStream" uid="uid://cbxnq518x3jqe" path="res://Assets/Audio/SFX/Skid.wav" id="18_hofol"]
@@ -291,11 +292,11 @@ _data = {
[sub_resource type="RectangleShape2D" id="RectangleShape2D_nbkfn"]
resource_local_to_scene = true
size = Vector2(9, 14)
size = Vector2(9.2, 14)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_d20nf"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vijl6"]
resource_local_to_scene = true
size = Vector2(9, 29.5)
size = Vector2(9.2, 29.5)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f6bau"]
resource_local_to_scene = true
@@ -486,6 +487,12 @@ script = ExtResource("24_hu5lw")
Overworld = ExtResource("40_o70e0")
metadata/_custom_type_script = "uid://cmvlgsjmsk0v5"
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_pm4ir"]
particles_animation = true
particles_anim_h_frames = 5
particles_anim_v_frames = 1
particles_anim_loop = false
[node name="Player" type="CharacterBody2D" node_paths=PackedStringArray("power_state") groups=["Players"]]
process_priority = 1
process_physics_priority = 1
@@ -495,7 +502,6 @@ collision_mask = 3
collision_priority = 10000000.0
slide_on_ceiling = false
floor_constant_speed = true
floor_max_angle = 0.872665
floor_snap_length = 4.0
platform_on_leave = 2
script = ExtResource("1_f6bau")
@@ -665,7 +671,6 @@ editor_draw_limits = true
editor_draw_drag_margin = true
[node name="Hitbox" type="Area2D" parent="."]
visible = false
position = Vector2(0, -10)
collision_mask = 5
@@ -678,7 +683,7 @@ offset = Vector2(0, -10)
[node name="BigShape" type="CollisionShape2D" parent="Hitbox" groups=["BigCollisions"]]
position = Vector2(0, -4.75)
shape = SubResource("RectangleShape2D_d20nf")
shape = SubResource("RectangleShape2D_vijl6")
disabled = true
debug_color = Color(1, 0, 0, 0.419608)
script = ExtResource("21_jl70t")
@@ -1140,6 +1145,18 @@ property_name = "stream"
themed_resource = SubResource("Resource_xy8gq")
metadata/_custom_type_script = "uid://cq6f682453q6o"
[node name="SkidParticles" type="CPUParticles2D" parent="."]
unique_name_in_owner = true
material = SubResource("CanvasItemMaterial_pm4ir")
position = Vector2(0, -2)
emitting = false
amount = 2
texture = ExtResource("11_vijl6")
lifetime = 0.25
gravity = Vector2(0, 0)
anim_speed_min = 1.0
anim_speed_max = 1.0
[connection signal="frame_changed" from="SpriteScaleJoint/Sprite" to="SpriteScaleJoint/Sprite" method="on_frame_changed"]
[connection signal="sprite_frames_changed" from="SpriteScaleJoint/Sprite" to="SpriteScaleJoint/Sprite" method="on_frame_changed"]
[connection signal="area_entered" from="SpriteScaleJoint/Sprite/HammerHitbox" to="." method="on_hammer_area_entered"]