Current section
Files
Jump to
Current section
Files
src/bt_engine/bt_helper.erl
-module(bt_helper).
-include("bt_nodes.hrl").
-export([
make_task/3,
make_decorator/3,
decorate/2
]).
make_task(Module, Args, Name) ->
#task{
name = Name,
module = Module,
args = Args
}.
%% child will be set later using bt_helper:decorate
make_decorator(Module, Args, Name) ->
#decorator{
name = Name,
module = Module,
args = Args
}.
%% single decorator passed
decorate(Node, Decorator) when is_record(Decorator, decorator) ->
decorate(Node, [Decorator]);
decorate(Node, []) ->
Node;
decorate(Node, [Decorator | RestOfDecorators]) when is_record(Decorator, decorator) ->
DecoratedOnce = Decorator#decorator{
child = Node
},
decorate(DecoratedOnce, RestOfDecorators).