|
|
- -ifndef(behavior3_h).
- -define(behavior3_h, true).
-
- -export_type([bt_uid/0, bt_status/0, bt_node_id/0, bt_state/0, properties/0, uninit_bt_node/0, tree_nodes/0, btree/0, bt_node/0]).
-
- -type bt_uid() :: reference().
-
- -define(BT_SUCCESS, 1).
- -define(BT_FAILURE, 2).
- -define(BT_RUNNING, 3).
- -define(BT_ERROR, 4).
-
- -type bt_status() :: ?BT_SUCCESS|?BT_FAILURE|?BT_RUNNING|?BT_ERROR.
-
- -type bt_node_id() :: string().
-
- -type bt_state() :: #{
- '$global_maps' => map(),
- '$local_maps' => map(),
- term() => term()
- }.
-
- -type properties() :: #{atom() => term()}.
-
- %% 未初始化的树节点
- -type uninit_bt_node() :: #{
- id => bt_node_id(),
- name => atom() | bt_node_id(),
- category => atom(),
- properties => properties(),
- children => [bt_node_id()]
- }.
-
- -type tree_nodes() :: #{bt_node_id() => uninit_bt_node()}.
-
- %% 行为树
- -type btree() :: #{
- id => bt_node_id(),
- root => bt_node_id(),
- properties => properties(),
- tree_nodes => tree_nodes()
- }.
-
- %% 行为树节点
- -type bt_node() :: #{
- id := bt_uid(),
- bt_node_id := bt_node_id(),
- parent_id := bt_uid(),
- name := atom(),
- category := atom(),
- properties := properties(),
- children := [bt_uid()]
- }.
-
- -define(BI_MOD_LIST, [
- error, failer, runner, succeeder, wait,
- mem_priority, mem_sequence, priority, sequence,
- inverter, limiter, max_time, repeat_until_failure, repeat_until_success, repeater
- ]).
-
- -define(BT_LOG(Format), io:format("~w:~w:~w [debug] ~p: " ++ Format ++ "~n", tuple_to_list(time()) ++ [?MODULE])).
- -define(BT_LOG(Format, Args), io:format("~w:~w:~w [debug] ~p: " ++ Format ++ "~n", tuple_to_list(time()) ++ [?MODULE | Args])).
-
- -endif.
|