tracer/src/Types/StateData.hs
2018-10-13 20:12:10 +02:00

36 lines
712 B
Haskell

module Types.StateData where
import Data.Matrix
import Data.Map
import NanoVG hiding (V2)
import Linear (V2)
import Types.ReachPoint
import Types.Map
import Types.ImgId
import Types.Animation
import Types.Direction
data StateData
= None
| LoadData
{ loadAssetImages :: Map ImgId Image
, loadAssetAnims :: Map AnimId Animation
, loadAssetIcons :: Map IconId Image
}
| MainData
{ mapMat :: Matrix TileState
, imgMat :: Matrix (Maybe ImgId)
, reachPoints :: [ReachPoint]
, mmImgMat :: Matrix (Maybe ImgId)
}
| MenuData
{ velocity :: V2 Double
, rotation :: Direction
, activate :: Double
, switchMap :: Double
}
deriving (Eq)