tracer/src/Types/Animation.hs

40 lines
799 B
Haskell

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)