Files
seeding-planets/entities/interactables/door/script/door.gd

35 lines
775 B
GDScript

@tool
extends Interactable
class_name Door
@export var to_scene_id = ""
@export var icon : Texture : set = set_icon
func _ready():
if available:
%AnimatedSprite2D.play("opened")
else:
%AnimatedSprite2D.play("closed")
set_icon()
func interact(_p : Player) -> bool:
if available and to_scene_id:
interacted.emit(_p)
SceneManager.change_to_scene_id(to_scene_id)
return available
func set_available(v : bool):
available = v
if is_node_ready():
if available:
AudioManager.play_sfx("DoorOpen")
%AnimatedSprite2D.play("open")
else:
%AnimatedSprite2D.play("close")
func set_icon(i: Texture = icon):
icon = i
if is_node_ready():
%Icon.texture = icon