class_name BehaviorTree extends Node var game_manager: GameManager = null # var blackboard: Dictionary = {} var behavior_tree: Task = null func _ready() -> void: if get_child_count() == 0 or get_child_count() > 1: push_error("This controller needs exactly one Task child, got " + str(get_child_count())) var child: Node = get_child(0) if not (child is Task): push_error("Child is not a task: " + child.name) behavior_tree = child as Task func populate_blackboard(): blackboard["world"] = game_manager.world blackboard["player"] = game_manager.player blackboard["camera"] = game_manager.camera func game_tick() -> void: print("game_tick:") populate_blackboard() behavior_tree.internal_run(blackboard) print(" ==> [active state=", blackboard["current_task"], "] [status=", behavior_tree.status, "]")