mirror of
				https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
				synced 2025-11-04 08:35:41 +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()
 |