summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2019-11-20 18:35:01 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2019-11-20 18:35:01 +0100 |
commit | f6f7a84e71cc0affd7bfd2ea51a7e67202586836 (patch) | |
tree | 10276cc32eca2e100a11e493909bd5b98eac96b7 /src/shared/battle-map/BattleMap/Struct | |
parent | 6375ecebd314a070b0514e70fd31dc9e3002dfe5 (diff) |
...
Diffstat (limited to 'src/shared/battle-map/BattleMap/Struct')
-rw-r--r-- | src/shared/battle-map/BattleMap/Struct/DataSet.elm | 67 |
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 + ) + } |