Add collectable types and implement level unlocking mechanics; enhance player state management

This commit is contained in:
2025-05-03 07:03:44 +02:00
parent 4e5427e731
commit c58cc7da88
19 changed files with 255 additions and 24 deletions

View File

@@ -0,0 +1,26 @@
class_name UnlockOnRequirementComponent
extends Node
@export var requirement_component: RequirementComponent
@export var unlock_target: Node
func _ready() -> void:
if not requirement_component:
printerr("UnlockOnRequirementComponent: requirement_component is not set.")
return
if not unlock_target:
printerr("UnlockOnRequirementComponent: unlock_target is not set.")
return
requirement_component.requirement_met.connect(on_requirement_met)
func on_requirement_met(requirement_type: CollectableResource.CollectableType) -> void:
if requirement_type == requirement_component.requirement_type:
if unlock_target.has_method("unlock"):
unlock_target.unlock()
else:
printerr("UnlockOnRequirementComponent: unlock_target does not have an unlock method.")