Current section
Files
Jump to
Current section
Files
src/bt_engine/runners/runner.erl
-module(runner).
-include("../bt_node_behaviours/nodes.hrl").
-export([
run/3,
preempt/3
]).
-spec run(
Node :: task() | sequence() | selector() | decorator(),
BB :: blackboard(),
Event :: event()) -> {Status :: status(), NewNode :: task(), NewBB :: blackboard()}.
run(Node, BB, Event) when is_record(Node, sequence) ->
run_sequence:run(Node, BB, Event);
run(Node, BB, Event) when is_record(Node, decorator) ->
run_decorator:run(Node, BB, Event);
run(Node, BB, Event) when is_record(Node, task) ->
run_task:run(Node, BB, Event).
-spec preempt(
Node :: term(),
BB :: blackboard(),
ShouldCleanBB :: boolean()) -> {NewNode :: term(), NewBB :: blackboard()}.
preempt(Node, BB, ShouldCleanBB) when is_record(Node, sequence) ->
run_sequence:preempt(Node, BB, ShouldCleanBB);
preempt(Node, BB, ShouldCleanBB) when is_record(Node, decorator) ->
run_decorator:preempt(Node, BB, ShouldCleanBB);
preempt(Node, BB, ShouldCleanBB) when is_record(Node, task) ->
run_task:preempt(Node, BB, ShouldCleanBB).