| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/shared/battle-map')
| -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 +         ) +   } | 


