summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-02-15 18:18:54 +0100
committernsensfel <SpamShield0@noot-noot.org>2019-02-15 18:18:54 +0100
commit85b1e04a22e7564b702aa27c5f6467ad4d5f4416 (patch)
treed0a408eb97412feccdbcfe20b951669b6f6e6588 /src/shared/struct/shr_map.erl
parent9b91ff37a1e39f48631b5bee338c31318d1e2336 (diff)
Re-organizing shr_ structs.
Diffstat (limited to 'src/shared/struct/shr_map.erl')
-rw-r--r--src/shared/struct/shr_map.erl154
1 files changed, 0 insertions, 154 deletions
diff --git a/src/shared/struct/shr_map.erl b/src/shared/struct/shr_map.erl
deleted file mode 100644
index a57ed32..0000000
--- a/src/shared/struct/shr_map.erl
+++ /dev/null
@@ -1,154 +0,0 @@
--module(shr_map).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--type id() :: ataxia_id:type().
-
--record
-(
- map,
- {
- owner :: shr_player:id(),
- width :: non_neg_integer(),
- height :: non_neg_integer(),
- tile_instances :: shr_tile:instances_tuple()
- }
-).
-
--opaque type() :: #map{}.
-
--export_type([type/0, id/0]).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%% Accessors
--export
-(
- [
- get_owner/1,
- get_width/1,
- get_height/1,
- get_tile_instances/1,
- get_tile_instance/2,
-
- get_used_tile_ids/1
- ]
-).
-
-%%%% Fields
--export
-(
- [
- get_width_field/0,
- get_height_field/0,
- get_tile_instances_field/0
- ]
-).
-
-%%%% Utility
--export
-(
- [
- update_from_list/4,
- default/1
- ]
-).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec location_to_index
- (
- non_neg_integer(),
- shr_location:type()
- )
- -> ('error' | non_neg_integer()).
-location_to_index (ArrayWidth, {X, Y}) ->
- if
- (X < 0) -> error;
- (Y < 0) -> error;
- (X >= ArrayWidth) -> error;
- true -> ((Y * ArrayWidth) + X)
- end.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%% Accessors
--spec get_owner (type()) -> shr_player:id().
-get_owner (Map) -> Map#map.owner.
-
--spec get_width (type()) -> non_neg_integer().
-get_width (Map) -> Map#map.width.
-
--spec get_height (type()) -> non_neg_integer().
-get_height (Map) -> Map#map.height.
-
--spec get_tile_instances (type()) -> shr_tile:instances_tuple().
-get_tile_instances (Map) -> Map#map.tile_instances.
-
--spec get_tile_instance (shr_location:type(), type()) -> shr_tile:instance().
-get_tile_instance (Location, Map) ->
- TileIX = location_to_index(Map#map.width, Location),
- element((TileIX + 1), Map#map.tile_instances).
-
-%%%% Fields
--spec get_width_field () -> non_neg_integer().
-get_width_field () -> #map.width.
-
--spec get_height_field () -> non_neg_integer().
-get_height_field () -> #map.height.
-
--spec get_tile_instances_field () -> non_neg_integer().
-get_tile_instances_field () -> #map.tile_instances.
-
-%%%% Utility
--spec get_used_tile_ids (type()) -> ordsets:ordset(shr_tile:class_id()).
-get_used_tile_ids (Map) ->
- UsedTileIDs =
- lists:foldl
- (
- fun (TileInstance, CurrentTileIDs) ->
- ordsets:add_element
- (
- shr_tile:extract_main_class_id(TileInstance),
- CurrentTileIDs
- )
- end,
- ordsets:new(),
- tuple_to_list(Map#map.tile_instances)
- ),
-
- UsedTileIDs.
-
--spec update_from_list
- (
- type(),
- non_neg_integer(),
- non_neg_integer(),
- list(list(binary()))
- )
- -> type().
-update_from_list (Map, Width, Height, List) ->
- TileInstances = lists:map(fun shr_tile:instance_from_binary_list/1, List),
-
- Map#map
- {
- width = Width,
- height = Height,
- tile_instances = list_to_tuple(TileInstances)
- }.
-
--spec default (binary()) -> type().
-default (Owner) ->
- DefaultTileInstance = shr_tile:default_tile_instance(),
-
- #map
- {
- owner = Owner,
- width = 32,
- height = 32,
- tile_instances = list_to_tuple(lists:duplicate(1024, DefaultTileInstance))
- }.