expand on types

This commit is contained in:
nek0 2020-10-09 05:51:00 +02:00
parent bb364d6b1a
commit a1144db6d9
2 changed files with 31 additions and 10 deletions

9
src/Map.hs Normal file
View File

@ -0,0 +1,9 @@
module Map where
import Linear
-- internal imports
import Types

View File

@ -5,21 +5,22 @@ import Data.Vector
import Linear
data LevelMap = LevelMap
{ mapLayers :: Vector MapLayer
, mapWalkLayer :: Word
, mapDimensions :: V2 Word
, mapTileMap :: TileMap
{ mapLayers :: Vector MapLayer -- | Layer stack
, mapWalkLayer :: Word -- | Collision layer index in stack
, mapDimensions :: V2 Word -- | Dimension of map in tiles
, mapTileMap :: TileMap -- | The tile map
, mapStartPos :: V2 Word -- | Player start position
}
deriving (Eq, Show)
newtype MapLayer = MapLayer
{ layerTiles :: Vector Tile
{ layerTiles :: Vector Tile -- | Tiles of this layer
}
deriving (Eq, Show)
data Tile = Tile
{ tileOffset :: V2 Float
, tileType :: TileType
{ tileOffset :: V2 Float -- | Offset of this tile on the tile map
, tileType :: TileType -- | Type of tile
}
deriving (Eq, Show)
@ -30,7 +31,18 @@ data TileType
deriving (Enum, Ord, Eq, Show)
data TileMap = TileMap
{ tileMapDimensions :: V2 Word
, tileMapPath :: FilePath
, tileMapIndex :: Word
{ tileMapDimensions :: V2 Word -- | Dimensions of tile map image in pixels
, tileMapPath :: FilePath -- | Filepath to image
, tileMapIndex :: Word -- | Index on GPU
}
data LevelDescriptor = LevelDescriptor
{ levelLayerPath :: [(Word, FilePath)] -- | Indexed paths aths to the layers
, levelWalkLayer :: Word -- | Index of walk layer
, levelTileMap :: FilePath -- | Filepath to tile map
, levelStartPos .. (Word, Word) -- | Player start position
-- , levelCollectibles :: [(V2 Word, ())] -- | TODO; Collectibles and their tile coords
-- , levelEnemies :: [(V2 Word, ())] -- | TODO: Enemies and their tile coords
-- , levelInteractables :: [(V2 Word, ())] -- | TODO: Interactables and their coords
}
deriving (Eq, Show)