module Types.LevelMap where import Data.Vector import Linear data LevelMap = LevelMap { mapLayers :: Vector MapLayer , mapWalkLayer :: Word , mapDimensions :: V2 Word , mapTileMap :: TileMap } deriving (Eq, Show) newtype MapLayer = MapLayer { layerTiles :: Vector Tile } deriving (Eq, Show) data Tile = Tile { tileOffset :: V2 Float , tileType :: TileType } deriving (Eq, Show) data TileType = Wall | Platform | Decoration deriving (Enum, Ord, Eq, Show) data TileMap = TileMap { tileMapDimensions :: V2 Word , tileMapPath :: FilePath , tileMapIndex :: Word }