-module(run_function_task). -include("../bt_engine/bt_node_behaviours/bt_nodes.hrl"). -behaviour(bt_task). -export([ get_params/0, run/3 ]). get_params() -> ["module", "function", "args"]. run(#{"module" := Module_key, "function" := Function_key, "args" := Args_key}, BB, _Event) -> Module = list_to_atom(bt_blackboard:eval(Module_key, BB)), Function = list_to_atom(bt_blackboard:eval(Function_key, BB)), Args = bt_blackboard:eval(Args_key, BB), {erlang:apply(Module, Function, Args), BB}.