33 lines
705 B
GDScript
33 lines
705 B
GDScript
class_name GroundButton
|
|
extends Area2D
|
|
|
|
@onready var sprite = $Sprite2D
|
|
|
|
@export var nodes: Array[Node2D]
|
|
@export var is_active = false
|
|
var default_state = false
|
|
|
|
func _ready():
|
|
default_state = is_active
|
|
_flip()
|
|
|
|
func _on_body_entered(body):
|
|
if body is Player:
|
|
is_active = not is_active
|
|
_flip()
|
|
|
|
func _flip():
|
|
$Sprite2D.frame = 1 if is_active else 0
|
|
for node in nodes:
|
|
if node is TileMapLayer:
|
|
var layer = node as TileMapLayer
|
|
layer.enabled = !layer.enabled
|
|
else:
|
|
node.visible = false if is_active else true
|
|
node.process_mode = PROCESS_MODE_DISABLED if is_active else PROCESS_MODE_INHERIT
|
|
node.set_physics_process(!is_active)
|
|
|
|
func reset():
|
|
is_active = default_state
|
|
_flip()
|