This repository has been archived on 2024-09-30. You can view files and clone it, but cannot push or open issues/pull-requests.
2024-09-20 22:50:26 +03:00
|
|
|
class_name GroundButton
|
2024-09-16 23:25:08 +03:00
|
|
|
extends Area2D
|
|
|
|
|
|
|
|
@onready var sprite = $Sprite2D
|
|
|
|
|
|
|
|
@export var nodes: Array[Node2D]
|
2024-09-21 18:25:26 +03:00
|
|
|
@export var is_active = false
|
|
|
|
var default_state = false
|
2024-09-16 23:25:08 +03:00
|
|
|
|
2024-09-21 18:25:26 +03:00
|
|
|
func _ready():
|
|
|
|
default_state = is_active
|
|
|
|
_flip()
|
2024-09-17 21:37:22 +03:00
|
|
|
|
2024-09-16 23:25:08 +03:00
|
|
|
func _on_body_entered(body):
|
|
|
|
if body is Player:
|
2024-09-20 22:50:26 +03:00
|
|
|
is_active = not is_active
|
2024-09-21 18:25:26 +03:00
|
|
|
_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()
|