mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 07:28:14 +00:00
44 lines
830 B
GDScript
44 lines
830 B
GDScript
extends StaticBody2D
|
|
|
|
@export var active := false
|
|
|
|
@onready var start_active = not active
|
|
|
|
var player_in_area := false
|
|
|
|
var player_stuck := false
|
|
|
|
var awaiting_exit := false
|
|
|
|
@export var hurtbox: CollisionShape2D = null
|
|
|
|
func on_switch_hit() -> void:
|
|
player_stuck = false
|
|
active = not active
|
|
if player_in_area:
|
|
player_stuck = true
|
|
return
|
|
update()
|
|
|
|
func update() -> void:
|
|
if active:
|
|
$Sprite.play("On")
|
|
else:
|
|
$Sprite.play("Off")
|
|
$Collision.set_deferred("disabled", not active)
|
|
if hurtbox != null:
|
|
hurtbox.set_deferred("disabled", not active)
|
|
|
|
func damage_player(player: Player) -> void:
|
|
player.damage()
|
|
|
|
func on_player_entered(_player: Player) -> void:
|
|
player_in_area = true
|
|
|
|
|
|
func on_player_exited(_player: Player) -> void:
|
|
player_in_area = false
|
|
if player_stuck and active:
|
|
player_stuck = false
|
|
update()
|