Files
seeding-planets/entities/interactables/door/script/door.gd
Zacharie Guet 8062c42e7b Dev pour la béta 1
* ajout des artefacts avec la pile et l'emplacement de graine
* affichage des artefacts dans le vaisseau sur une étagère
* ajout des distributeurs d'artefacts dans les régions
* affichage des attributs de bases de plantes dans le vaisseau
* changement de l'affichage du choix des régions
* changement des icônes du détecteur
2026-04-10 16:16:54 +02:00

50 lines
1.2 KiB
GDScript

@tool
extends Interactable
class_name Door
@export var to_scene_id = ""
@export var icon : Texture : set = set_icon
@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_icon()
set_present()
func interact(p : Player) -> bool:
if available and to_scene_id:
p.region.data.entered_door = name
interacted.emit(p)
p.region.save()
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
func set_present(p := present):
present = p
if present:
process_mode = Node.PROCESS_MODE_INHERIT
else:
process_mode = Node.PROCESS_MODE_DISABLED
visible = present