module Pic where import qualified Data.Map as M type Dim = (Int, Int) -- | Simple pic datatype. data Pic = Pic { picpath :: String , picdim :: (Int, Int) } deriving (Eq,Show) -- | Simple sprite datatype. data Sprite a = Sprite { spic :: Pic , offsets :: M.Map a Int -- ^ offsets of the pics in the sprite , tiledim :: Dim } -- | Simple animation datatype data Animation = Animation { an_sprite :: Sprite Int , an_description :: Int -> Int -- ^ time to index } picToAnimation :: Pic -> Animation picToAnimation pic@(Pic img dim) = Animation sprite (const 0) where sprite = Sprite pic (M.singleton 0 0) dim