summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-08-24 13:02:16 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-08-24 13:02:16 +0200 |
commit | 67345d58c55e513f9b11a5b3e1af33164a4103ef (patch) | |
tree | f8352892fdc002d43bf4b4d381264262351cabd1 /src/shared/struct/shr_inventory.erl | |
parent | 6b1f8c043b61d27be473b90cf79a09a49297ce0f (diff) |
Working on the character editor...
Diffstat (limited to 'src/shared/struct/shr_inventory.erl')
-rw-r--r-- | src/shared/struct/shr_inventory.erl | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/src/shared/struct/shr_inventory.erl b/src/shared/struct/shr_inventory.erl new file mode 100644 index 0000000..5d70720 --- /dev/null +++ b/src/shared/struct/shr_inventory.erl @@ -0,0 +1,152 @@ +-module(shr_inventory). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-record +( + inventory, + { + owner_id :: shr_player:id(), + portrait_ids :: sets:set(binary()), + glyph_ids :: sets:set(binary()), + glyph_board_ids :: sets:set(binary()), + weapon_ids :: sets:set(binary()), + armor_ids :: sets:set(binary()) + } +). + +-opaque type() :: #inventory{}. + +-export_type([type/0]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% Accessors +-export +( + [ + get_owner_id/1, + + get_portrait_ids/1, + get_glyph_ids/1, + get_glyph_board_ids/1, + get_weapon_ids/1, + get_armor_ids/1, + + set_portrait_ids/2, + set_glyph_ids/2, + set_glyph_board_ids/2, + set_weapon_ids/2, + set_armor_ids/2 + ] +). + +-export +( + [ + get_portrait_ids_field/0, + get_glyph_ids_field/0, + get_glyph_board_ids_field/0, + get_weapon_ids_field/0, + get_armor_ids_field/0 + ] +). + +-export +( + [ + new/1 + ] +). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% Accessors +-spec get_owner_id (type()) -> shr_player:id(). +get_owner_id (Inv) -> Inv#inventory.owner_id. + +-spec get_portrait_ids (type()) -> sets:set(binary()). +get_portrait_ids (Inv) -> Inv#inventory.portrait_ids. + +-spec get_glyph_ids (type()) -> sets:set(binary()). +get_glyph_ids (Inv) -> Inv#inventory.glyph_ids. + +-spec get_glyph_board_ids (type()) -> sets:set(binary()). +get_glyph_board_ids (Inv) -> Inv#inventory.glyph_board_ids. + +-spec get_weapon_ids (type()) -> sets:set(binary()). +get_weapon_ids (Inv) -> Inv#inventory.weapon_ids. + +-spec get_armor_ids (type()) -> sets:set(binary()). +get_armor_ids (Inv) -> Inv#inventory.armor_ids. + +-spec set_portrait_ids (sets:set(binary()), type()) -> type(). +set_portrait_ids (Value, Inv) -> + Inv#inventory + { + portrait_ids = Value + }. + +-spec set_glyph_ids (sets:set(binary()), type()) -> type(). +set_glyph_ids (Value, Inv) -> + Inv#inventory + { + glyph_ids = Value + }. + +-spec set_glyph_board_ids (sets:set(binary()), type()) -> type(). +set_glyph_board_ids (Value, Inv) -> + Inv#inventory + { + glyph_board_ids = Value + }. + +-spec set_weapon_ids (sets:set(binary()), type()) -> type(). +set_weapon_ids (Value, Inv) -> + Inv#inventory + { + weapon_ids = Value + }. + +-spec set_armor_ids (sets:set(binary()), type()) -> type(). +set_armor_ids (Value, Inv) -> + Inv#inventory + { + armor_ids = Value + }. + +-spec get_portrait_ids_field () -> non_neg_integer(). +get_portrait_ids_field () -> #inventory.portrait_ids. + +-spec get_glyph_ids_field () -> non_neg_integer(). +get_glyph_ids_field () -> #inventory.glyph_ids. + +-spec get_glyph_board_ids_field () -> non_neg_integer(). +get_glyph_board_ids_field () -> #inventory.glyph_board_ids. + +-spec get_weapon_ids_field () -> non_neg_integer(). +get_weapon_ids_field () -> #inventory.weapon_ids. + +-spec get_armor_ids_field () -> non_neg_integer(). +get_armor_ids_field () -> #inventory.armor_ids. + +-spec new (shr_player:id()) -> type(). +new (OwnerID) -> + EmptySet = sets:new(), + + #inventory + { + owner_id = OwnerID, + portrait_ids = EmptySet, + glyph_ids = EmptySet, + glyph_board_ids = EmptySet, + weapon_ids = EmptySet, + armor_ids = EmptySet + }. |