47 lines
904 B
GDScript
47 lines
904 B
GDScript
extends Node3D
|
|
|
|
@onready var level_control = get_tree().current_scene
|
|
|
|
@export var anim_player : Node
|
|
@export var door_open_start : bool = false
|
|
@export_enum("Silver", "Gold", "Special") var key_type_required: int
|
|
@export var special_key_name : String
|
|
|
|
var door_open : bool
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
door_open = door_open_start
|
|
|
|
if door_open:
|
|
open()
|
|
else:
|
|
close()
|
|
|
|
func open():
|
|
door_open = true
|
|
anim_player.play("open")
|
|
|
|
func close():
|
|
door_open = false
|
|
anim_player.play("close")
|
|
|
|
func interact():
|
|
if !door_open:
|
|
|
|
var exit = false
|
|
|
|
for i in level_control.keys:
|
|
if !exit:
|
|
if i[0] == key_type_required:
|
|
if key_type_required == 2:
|
|
if i[1] == special_key_name:
|
|
open()
|
|
level_control.keys.erase(i)
|
|
exit = true
|
|
else:
|
|
open()
|
|
level_control.keys.erase(i)
|
|
exit = true
|