40 lines
799 B
Haskell
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)
|