summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-11-20 18:35:01 +0100
committernsensfel <SpamShield0@noot-noot.org>2019-11-20 18:35:01 +0100
commitf6f7a84e71cc0affd7bfd2ea51a7e67202586836 (patch)
tree10276cc32eca2e100a11e493909bd5b98eac96b7 /src/shared/battle-map/BattleMap/Struct
parent6375ecebd314a070b0514e70fd31dc9e3002dfe5 (diff)
...
Diffstat (limited to 'src/shared/battle-map/BattleMap/Struct')
-rw-r--r--src/shared/battle-map/BattleMap/Struct/DataSet.elm67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/shared/battle-map/BattleMap/Struct/DataSet.elm b/src/shared/battle-map/BattleMap/Struct/DataSet.elm
new file mode 100644
index 0000000..f292443
--- /dev/null
+++ b/src/shared/battle-map/BattleMap/Struct/DataSet.elm
@@ -0,0 +1,67 @@
+module BattleMap.Struct.DataSet exposing
+ (
+ Type,
+ new,
+ is_ready,
+ get_tile,
+ add_tile
+ )
+
+-- Elm -------------------------------------------------------------------------
+import Dict
+
+-- Battle ----------------------------------------------------------------------
+import BattleMap.Struct.Tile
+
+--------------------------------------------------------------------------------
+-- TYPES -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+type alias Type =
+ {
+ tiles : (Dict.Dict BattleMap.Struct.Tile.Ref BattleMap.Struct.Tile.Type)
+ }
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+new : Type
+new =
+ {
+ tiles = (Dict.new)
+ }
+
+is_ready : Type -> Bool
+is_ready data_set =
+ (
+ (data_set.tiles /= (Dict.empty))
+ )
+
+---- Accessors -----------------------------------------------------------------
+
+--------------
+---- Tile ----
+--------------
+get_tile : (
+ BattleMap.Struct.Tile.Ref ->
+ Type ->
+ BattleMap.Struct.Tile.Type
+ )
+get_tile tl_id data_set =
+ case (Dict.get tl_id data_set.tiles) of
+ (Just tl) -> tl
+ Nothing -> BattleMap.Struct.Tile.none
+
+add_tile : BattleMap.Struct.Tile.Type -> Type -> Type
+add_tile tl data_set =
+ {data_set |
+ tiles =
+ (Dict.insert
+ (BattleMap.Struct.Tile.get_id tl)
+ tl
+ data_set.tiles
+ )
+ }