|
|
- -module(wait).
-
- -include("eBhv3.hrl").
-
- -export([open/2, tick/2, close/2]).
-
- %%--------------------------------------------------------------------
- %% API functions
- %%--------------------------------------------------------------------
- -spec open(bt_node(), bt_state()) -> bt_state().
- open(#{id := ID}, BTState) ->
- blackboard:set(start_time, erlang:system_time(millisecond), ID, BTState).
-
- -spec tick(bt_node(), bt_state()) -> {bt_status(), bt_state()}.
- tick(#{id := ID, properties := #{milliseconds := EndTime}} = _BTNode, BTState) ->
- StartTime = blackboard:get(start_time, ID, BTState),
- case erlang:system_time(millisecond) - StartTime > EndTime of
- true ->
- {?BT_SUCCESS, BTState};
- false ->
- {?BT_RUNNING, BTState}
- end.
-
- -spec close(bt_node(), bt_state()) -> bt_state().
- close(#{id := ID} = _BTNode, BTState) ->
- blackboard:remove(start_time, ID, BTState).
|