extends Interactable class_name Door @export var to_scene : Scene @export var present : bool = false : set = set_present @export var door_id : int func _init(): default_interact_text = "ENTER" func _ready(): if available: %AnimatedSprite2D.play("opened") else: %AnimatedSprite2D.play("closed") set_present() %Icon.texture = to_scene.get_scene_icon() func interact(p : Player) -> bool: if available and to_scene: p.region.data.entered_door = name interacted.emit(p) p.region.save() SceneManager.change_to_scene(to_scene) return available func set_available(v : bool): available = v if is_node_ready(): if available: AudioManager.play_sfx("DoorOpen") get_tree().create_timer(0.5).timeout.connect( func (): %AnimatedSprite2D.play("open") ) else: %AnimatedSprite2D.play("close") func set_present(p := present): present = p if present: process_mode = Node.PROCESS_MODE_INHERIT else: process_mode = Node.PROCESS_MODE_DISABLED visible = present