Compare commits

...

7 Commits

Author SHA1 Message Date
JHDev2006
69fb2b5005 fixed some warning spam on startup 2025-10-14 16:30:37 +01:00
JHDev2006
11e74a0171 Merge branch 'main' of https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public 2025-10-14 16:27:13 +01:00
JHDev2006
0e36cdfc60 block destruction particles now get cached, hopefully reducing stutter 2025-10-14 16:27:10 +01:00
KirbyKidJ
0be8a1d277 P-Switch BGM File and Hurry Music (#589)
Added a .bgm file for P-Switches so it gets exported for Resource Packs. Also added a Hurry Up variant.
2025-10-14 16:22:54 +01:00
John Cooper McDonald
f35740d0ca Fix physics overwriting character ceiling bump speed for brick blocks (#545)
* Fix physics overwriting character ceiling bump speed for brick blocks

* Update BrickBlock.gd

* Update BrickBlock.gd

* Update BrickBlock.gd
2025-10-14 16:22:00 +01:00
Ramona
46b4dc82b4 Flip death gravity when upside down (#586)
* Flip death gravity when upside down

* Improvements to code per Joe's request
2025-10-14 16:20:09 +01:00
guzlad
a0369cd612 [QoL] FPS Counter disabled by default, show message after screenshot, show message if noclip is enabled/disabled (#591)
* FPS counter is off by default, enable with F4

* A message or error is now shown on-screen if a screenshot is taken with F2

* Show message when noclip is enabled or disabled
2025-10-14 16:04:08 +01:00
16 changed files with 42 additions and 47 deletions

View File

@@ -0,0 +1,10 @@
{
"Normal": {
"source": "PSwitch.mp3",
"loop": 8.801
},
"Hurry": {
"source": "PSwitchHurry.mp3",
"loop": 7.55
}
}

View File

@@ -1,3 +1,3 @@
{
"variations": {"source": "PSwitch.mp3"}
"variations": {"source": "PSwitch.bgm"}
}

Binary file not shown.

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://7iqief2hn4rg"
path="res://.godot/imported/PSwitchHurry.mp3-3abe83c8eb89107e332495802cd7d785.mp3str"
[deps]
source_file="res://Assets/Audio/BGM/PSwitchHurry.mp3"
dest_files=["res://.godot/imported/PSwitchHurry.mp3-3abe83c8eb89107e332495802cd7d785.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -24,7 +24,6 @@ node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_8gw0u")
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="TR" type="Node2D" parent="."]
@@ -42,7 +41,6 @@ node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_8gw0u")
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="BL" type="Node2D" parent="."]
@@ -60,7 +58,6 @@ node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_8gw0u")
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="BR" type="Node2D" parent="."]
@@ -78,7 +75,6 @@ node_to_affect = NodePath("..")
property_name = "texture"
mode = 1
resource_json = ExtResource("4_8gw0u")
use_cache = false
metadata/_custom_type_script = "uid://cbal8ms2oe1ik"
[node name="Timer" type="Timer" parent="."]

View File

@@ -310,6 +310,7 @@ layer = 1
[node name="FPSCount" type="Label" parent="GameHUD"]
unique_name_in_owner = true
visible = false
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0

View File

@@ -99,17 +99,5 @@ metadata/_custom_type_script = "uid://co6tjg3w6qpd8"
layout_mode = 1
disabled_containers = [NodePath("PanelContainer/MarginContainer/VBoxContainer/Difficulty"), NodePath("PanelContainer/MarginContainer/VBoxContainer/Data")]
[node name="Label" parent="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/ResourcePacks" index="0"]
visible = true
[node name="LabelFontChanger" parent="SettingsMenu" index="1" node_paths=PackedStringArray("labels")]
labels = [NodePath("../PanelContainer/MarginContainer/VBoxContainer/Title"), NodePath("../PanelContainer/MarginContainer/VBoxContainer/CategorySelect/HBoxContainer/Category"), null, null, null, null, null, null, null, NodePath("../PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode/Value"), null, NodePath("../PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode2/Value"), null, NodePath("../PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode3/Value"), NodePath("../PanelContainer/MarginContainer/VBoxContainer/Difficulty/Description/AutoScrollContainer/MarginContainer/Desc")]
[connection signal="closed" from="." to="SettingsMenu" method="close"]
[connection signal="option_3_selected" from="." to="." method="open_settings"]
[editable path="SettingsMenu"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Video/Language"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode2"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode3"]

View File

@@ -38,9 +38,3 @@ script = SubResource("GDScript_3lwy2")
[connection signal="option_2_selected" from="." to="Handler" method="restart_race"]
[connection signal="option_4_selected" from="." to="." method="close"]
[connection signal="option_4_selected" from="." to="Handler" method="quit_to_menu"]
[editable path="SettingsMenu"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Video/Language"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode2"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode3"]

View File

@@ -45,9 +45,3 @@ script = SubResource("GDScript_k4rkm")
[connection signal="option_2_selected" from="." to="Handler" method="restart_run"]
[connection signal="option_4_selected" from="." to="." method="close"]
[connection signal="option_4_selected" from="." to="Handler" method="quit_to_menu"]
[editable path="SettingsMenu"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Video/Language"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode2"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode3"]

View File

@@ -47,9 +47,3 @@ script = SubResource("GDScript_k4rkm")
[connection signal="option_2_selected" from="." to="Handler" method="restart_run"]
[connection signal="option_3_selected" from="." to="Handler" method="quit_to_menu"]
[editable path="SettingsMenu"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Video/Language"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode2"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode3"]

View File

@@ -45,15 +45,6 @@ texture = SubResource("AtlasTexture_eud56")
[node name="Handler" type="Node" parent="." index="2"]
script = SubResource("GDScript_r6hlk")
[node name="LabelFontChanger" parent="SettingsMenu" index="1" node_paths=PackedStringArray("labels")]
labels = [NodePath("../PanelContainer/MarginContainer/VBoxContainer/Title"), NodePath("../PanelContainer/MarginContainer/VBoxContainer/CategorySelect/HBoxContainer/Category"), null, null, null, null, null, null, null, NodePath("../PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode/Value"), null, NodePath("../PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode2/Value"), null, NodePath("../PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode3/Value"), NodePath("../PanelContainer/MarginContainer/VBoxContainer/Difficulty/Description/AutoScrollContainer/MarginContainer/Desc")]
[connection signal="option_1_selected" from="." to="." method="close"]
[connection signal="option_2_selected" from="." to="Handler" method="restart_level"]
[connection signal="option_4_selected" from="." to="Handler" method="quit_to_menu"]
[editable path="SettingsMenu"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Video/Language"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode2"]
[editable path="SettingsMenu/PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode3"]

View File

@@ -13,6 +13,7 @@ func check_brick_empty() -> void:
func on_block_hit(player: Player) -> void:
if player.power_state.hitbox_size == "Big":
if item == null:
self.add_collision_exception_with(player) # Don't bonk with physics, will be handled after block is broken
await get_tree().physics_frame
destroy()
Global.score += 50

View File

@@ -270,6 +270,7 @@ func _physics_process(delta: float) -> void:
set_power_state_frame()
if Input.is_action_just_pressed("debug_noclip") and Global.debug_mode:
state_machine.transition_to("NoClip")
Global.log_comment("NOCLIP Enabled")
up_direction = -gravity_vector
handle_directions()
handle_block_collision_detection()

View File

@@ -263,6 +263,10 @@ func take_screenshot() -> void:
var img: Image = get_viewport().get_texture().get_image()
var filename = Global.config_path.path_join("screenshots/screenshot_" + str(int(Time.get_unix_time_from_system())) + ".png")
var err = img.save_png(filename)
if !err:
log_comment("Screenshot Saved!")
else:
log_error(error_string(err))
func handle_p_switch(delta: float) -> void:
if p_switch_active and get_tree().paused == false:

View File

@@ -13,7 +13,7 @@ func enter(msg := {}) -> void:
player.set_collision_mask_value(i + 1, false)
player.gravity = player.JUMP_GRAVITY
if msg["Pit"] == false:
player.velocity.y = -player.DEATH_JUMP_HEIGHT
player.velocity.y = -player.DEATH_JUMP_HEIGHT * player.gravity_vector.y # nabbup : Flip death gravity when upside down
func physics_update(delta: float) -> void:
if can_fall:
@@ -22,8 +22,9 @@ func physics_update(delta: float) -> void:
player.play_animation("DieFreeze")
player.sprite.speed_scale = 1
if can_fall:
player.velocity.y += (player.JUMP_GRAVITY / delta) * delta
player.velocity.y = clamp(player.velocity.y, -INF, player.MAX_FALL_SPEED)
# nabbup : Flip death gravity when upside down
player.velocity.y += (player.JUMP_GRAVITY / delta) * delta * player.gravity_vector.y
player.velocity.y = clamp(player.velocity.y, -player.MAX_FALL_SPEED, player.MAX_FALL_SPEED) # wish this could be better than just substituting -INF but you can't win em all ~ nabbup
player.move_and_slide()
if Input.is_action_just_pressed("ui_accept") or Input.is_action_just_pressed("jump_0"):
player.death_load()

View File

@@ -15,6 +15,7 @@ func physics_update(_delta: float) -> void:
player.move_and_slide()
if Input.is_action_just_pressed("jump_0"):
state_machine.transition_to("Normal")
Global.log_comment("NOCLIP Disabled")
func exit() -> void:
player.can_hurt = false