module Types.Animation where import NanoVG (Image) import Types.Direction data AnimId = AnimId { aiVariation :: Int , aiName :: String -- CHANGE ME !!! , aiDirection :: Direction } deriving (Show, Eq, Ord) data AnimState = AnimState { asId :: AnimId , asCurrentFrame :: Int , asElapsedTime :: Double } deriving (Show, Eq) data AnimPlayback = APLoop | APOnce deriving (Show, Eq) data Animation = Animation { animDuration :: Double , animSprites :: [Image] , animPlay :: AnimPlayback } deriving (Show, Eq) data AnimationConfig = AnimationConfig { animConfOffset :: (Int, Int) , animConfSize :: (Int, Int) , animConfCount :: Int , animConfDuration :: Double , animConfPlay :: AnimPlayback } deriving (Show, Eq)