behavior3行为树
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 line
1.8 KiB

  1. %%%-------------------------------------------------------------------
  2. %%% @author DY
  3. %%% @copyright (C) 2020, <COMPANY>
  4. %%% @doc
  5. %%% 数据字典
  6. %%% @end
  7. %%% Created : 18. 10月 2020 20:53
  8. %%%-------------------------------------------------------------------
  9. -module(game_dict).
  10. -include("behavior3.hrl").
  11. -include("example.hrl").
  12. %% API
  13. -export([
  14. get_map_data/1, update_map_date/3,
  15. get_initiative_btree_id/1, put_initiative_btree_id/2, erase_initiative_btree_id/1,
  16. get_passivity_btree_id/1, put_passivity_btree_id/2, erase_passivity_btree_id/1,
  17. get_role_state/1, put_role_state/2, erase_role_state/1
  18. ]).
  19. -spec get_map_data(grid()) -> [uid()].
  20. get_map_data(Grid) ->
  21. case erlang:get(Grid) of
  22. undefined ->
  23. [];
  24. L ->
  25. L
  26. end.
  27. -spec update_map_date(grid(), grid(), uid()) -> ok.
  28. update_map_date(OldGrid, NewGrid, UID) ->
  29. erlang:put(OldGrid, lists:delete(UID, get_map_data(OldGrid))),
  30. erlang:put(NewGrid, [UID | get_map_data(NewGrid)]),
  31. ok.
  32. -spec get_initiative_btree_id(uid()) -> bt_uid().
  33. get_initiative_btree_id(UID) ->
  34. erlang:get({initiative_btree_id, UID}).
  35. put_initiative_btree_id(UID, BTreeID) ->
  36. erlang:put({initiative_btree_id, UID}, BTreeID).
  37. erase_initiative_btree_id(UID) ->
  38. erlang:erase({initiative_btree_id, UID}).
  39. -spec get_passivity_btree_id(uid()) -> bt_uid().
  40. get_passivity_btree_id(UID) ->
  41. erlang:get({passivity_btree_id, UID}).
  42. put_passivity_btree_id(UID, BTreeID) ->
  43. erlang:put({passivity_btree_id, UID}, BTreeID).
  44. erase_passivity_btree_id(UID) ->
  45. erlang:erase({passivity_btree_id, UID}).
  46. -spec get_role_state(uid()) -> map().
  47. get_role_state(UID) ->
  48. erlang:get({role_state, UID}).
  49. put_role_state(UID, State) ->
  50. erlang:put({role_state, UID}, State).
  51. erase_role_state(UID) ->
  52. erlang:erase({role_state, UID}).