module Types.StateData where

import Data.Matrix
import Data.Map
import Data.Text

import NanoVG

import Types.ReachPoint
import Types.Map
import Types.ImgId
import Types.FontId
import Types.Animation

data StateData
  = None
  | LoadData
    { loadAssetImages :: Map ImgId Image
    , loadAssetAnims  :: Map AnimId Animation
    , loadAssetFonts  :: Map FontId Text
    }
  | MenuData                                                                       
    { mapMat      :: Matrix TileState                                              
    , initCoords  :: (Int, Int)                                                    
    , imgMat      :: Matrix (Maybe ImgId)                                          
    , reachPoints :: [ReachPoint]                                                  
    }
  deriving (Eq)
