refactor: separate action system responsibilities

This commit is contained in:
2026-07-05 14:17:45 +02:00
parent 81df7b5939
commit 4673f0698d
18 changed files with 458 additions and 383 deletions
+33
View File
@@ -0,0 +1,33 @@
class_name ActiveWorldAdapter
extends Node
@export var guard_marker: Marker3D
@export var study_marker: Marker3D
@export var rest_marker: Marker3D
@export var food_marker: Marker3D
func get_resource_candidates(action_id: StringName) -> Array[Dictionary]:
var candidates: Array[Dictionary] = []
for node in ResourceNode.get_all():
if node.action_id != action_id or node.interaction_point == null:
continue
candidates.append({
"target_id": String(node.node_id),
"position": node.interaction_point.global_position
})
return candidates
func get_activity_target(action_id: StringName) -> Dictionary:
var marker: Marker3D
match action_id:
SimulationIds.ACTION_PATROL:
marker = guard_marker
SimulationIds.ACTION_STUDY:
marker = study_marker
SimulationIds.ACTION_REST:
marker = rest_marker
SimulationIds.ACTION_EAT:
marker = food_marker
if marker == null:
return {}
return {"target_id": "", "position": marker.global_position}