refactor: separate action system responsibilities
This commit is contained in:
@@ -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}
|
||||
Reference in New Issue
Block a user