This commit is contained in:
Andriy Yednarovych
2026-02-22 19:26:26 +01:00
parent fd1ff19c4c
commit e877c5f058
211 changed files with 9385 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
class_name BarredDoor extends Node2D
@onready var animation_player: AnimationPlayer = $AnimationPlayer
func _ready() -> void:
pass
func open_door() -> void:
animation_player.play("open_door")
pass
func close_door() -> void:
animation_player.play("close_door")

View File

@@ -0,0 +1 @@
uid://c7b0f1rtxh6ef

View File

@@ -0,0 +1,49 @@
class_name LockedDoor extends Node2D
var open := false
@export var key_item: ItemData
@export var locked_audio: AudioStream
@export var open_audio: AudioStream
@onready var animation_player: AnimationPlayer = $AnimationPlayer
@onready var audio: AudioStreamPlayer2D = $AudioStreamPlayer2D
@onready var open_data: PersistentDataHandler = $PersistentDataHandler
@onready var interact_area: Area2D = $InteractArea
func _ready() -> void:
interact_area.area_entered.connect(on_area_entered)
interact_area.area_exited.connect(on_area_exited)
open_data.data_loaded.connect(set_state)
set_state()
func on_open_door() -> void:
if !key_item:
return
var door_unlocked = PlayerManager.INVENTORY_DATA.use_item(key_item)
if door_unlocked:
animation_player.play("open_door")
audio.stream = open_audio
open_data.set_value()
else:
audio.stream = locked_audio
audio.play()
func on_area_entered(_area: Area2D) -> void:
PlayerManager.interact_pressed.connect(on_open_door)
func on_area_exited(_area: Area2D) -> void:
PlayerManager.interact_pressed.disconnect(on_open_door)
func close_door() -> void:
animation_player.play("close_door")
func set_state() -> void:
open = open_data.value
if open:
animation_player.play("opened")
else:
animation_player.play("closed")

View File

@@ -0,0 +1 @@
uid://oyjsrhwdd54n

View File

@@ -0,0 +1,43 @@
class_name PressurePlate extends Node2D
signal activated
signal deactivated
var bodies := 0
var is_active := false
var offset_rectangle: Rect2
@onready var area: Area2D = $Area2D
@onready var audio: AudioStreamPlayer2D = $AudioStreamPlayer2D
@onready var audio_activate: AudioStream = preload("res://interactables/dungeon/lever-01.wav")
@onready var audio_deactivate: AudioStream = preload("res://interactables/dungeon/lever-02.wav")
@onready var sprite: Sprite2D = $Sprite2D
func _ready() -> void:
area.body_entered.connect(on_body_entered)
area.body_exited.connect(on_body_exited)
offset_rectangle = sprite.region_rect
func on_body_entered(_body: Node2D) -> void:
bodies += 1
calc_state_activated()
func on_body_exited(_body: Node2D) -> void:
bodies -= 1
calc_state_activated()
func calc_state_activated() -> void:
if bodies > 0 and !is_active:
is_active = true
sprite.region_rect.position.x = offset_rectangle.position.x - 32
activated.emit()
play_audio(audio_activate)
elif bodies <= 0 and is_active:
is_active = false
sprite.region_rect.position.x = offset_rectangle.position.x
deactivated.emit()
play_audio(audio_deactivate)
func play_audio(stream: AudioStream) -> void:
audio.stream = stream
audio.play()

View File

@@ -0,0 +1 @@
uid://67xa7gwbduma

View File

@@ -0,0 +1,18 @@
class_name PushableStatute extends RigidBody2D
@onready var audio: AudioStreamPlayer2D = $AudioStreamPlayer2D
@export var push_speed := 30.0
var push_direction := Vector2.ZERO :
set = set_push
func _physics_process(_delta: float) -> void:
linear_velocity = push_direction * push_speed
func set_push(new_push_direction: Vector2) -> void:
push_direction = new_push_direction
if push_direction == Vector2.ZERO:
audio.stop()
else:
audio.play()

View File

@@ -0,0 +1 @@
uid://cg71or2vgu0u8