animate 0.5.0 → 0.6.0
raw patch · 3 files changed
+11/−11 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Animate: instance Data.Aeson.Types.FromJSON.FromJSON Animate.SpriteClip
- Animate: instance Data.Aeson.Types.FromJSON.FromJSON delay => Data.Aeson.Types.FromJSON.FromJSON (Animate.SpriteSheetInfo delay)
- Animate: instance Data.Aeson.Types.ToJSON.ToJSON Animate.SpriteClip
- Animate: instance Data.Aeson.Types.ToJSON.ToJSON delay => Data.Aeson.Types.ToJSON.ToJSON (Animate.SpriteSheetInfo delay)
- Animate: instance GHC.Classes.Eq Animate.SpriteClip
- Animate: instance GHC.Classes.Eq delay => GHC.Classes.Eq (Animate.SpriteSheetInfo delay)
- Animate: instance GHC.Generics.Generic (Animate.SpriteSheetInfo delay)
- Animate: instance GHC.Generics.Generic Animate.SpriteClip
- Animate: instance GHC.Show.Show Animate.SpriteClip
- Animate: instance GHC.Show.Show delay => GHC.Show.Show (Animate.SpriteSheetInfo delay)
+ Animate: instance Data.Aeson.Types.FromJSON.FromJSON (Animate.SpriteClip key)
+ Animate: instance Data.Aeson.Types.FromJSON.FromJSON delay => Data.Aeson.Types.FromJSON.FromJSON (Animate.SpriteSheetInfo key delay)
+ Animate: instance Data.Aeson.Types.ToJSON.ToJSON (Animate.SpriteClip key)
+ Animate: instance Data.Aeson.Types.ToJSON.ToJSON delay => Data.Aeson.Types.ToJSON.ToJSON (Animate.SpriteSheetInfo key delay)
+ Animate: instance GHC.Classes.Eq (Animate.SpriteClip key)
+ Animate: instance GHC.Classes.Eq delay => GHC.Classes.Eq (Animate.SpriteSheetInfo key delay)
+ Animate: instance GHC.Generics.Generic (Animate.SpriteClip key)
+ Animate: instance GHC.Generics.Generic (Animate.SpriteSheetInfo key delay)
+ Animate: instance GHC.Show.Show (Animate.SpriteClip key)
+ Animate: instance GHC.Show.Show delay => GHC.Show.Show (Animate.SpriteSheetInfo key delay)
- Animate: SpriteClip :: Int -> Int -> Int -> Int -> Maybe (Int, Int) -> SpriteClip
+ Animate: SpriteClip :: Int -> Int -> Int -> Int -> Maybe (Int, Int) -> SpriteClip key
- Animate: SpriteSheet :: Animations key SpriteClip delay -> img -> SpriteSheet key img delay
+ Animate: SpriteSheet :: Animations key (SpriteClip key) delay -> img -> SpriteSheet key img delay
- Animate: SpriteSheetInfo :: FilePath -> Maybe Color -> [SpriteClip] -> Map Text [(FrameIndex, delay)] -> SpriteSheetInfo delay
+ Animate: SpriteSheetInfo :: FilePath -> Maybe Color -> [SpriteClip key] -> Map Text [(FrameIndex, delay)] -> SpriteSheetInfo key delay
- Animate: [$sel:scH:SpriteClip] :: SpriteClip -> Int
+ Animate: [$sel:scH:SpriteClip] :: SpriteClip key -> Int
- Animate: [$sel:scOffset:SpriteClip] :: SpriteClip -> Maybe (Int, Int)
+ Animate: [$sel:scOffset:SpriteClip] :: SpriteClip key -> Maybe (Int, Int)
- Animate: [$sel:scW:SpriteClip] :: SpriteClip -> Int
+ Animate: [$sel:scW:SpriteClip] :: SpriteClip key -> Int
- Animate: [$sel:scX:SpriteClip] :: SpriteClip -> Int
+ Animate: [$sel:scX:SpriteClip] :: SpriteClip key -> Int
- Animate: [$sel:scY:SpriteClip] :: SpriteClip -> Int
+ Animate: [$sel:scY:SpriteClip] :: SpriteClip key -> Int
- Animate: [$sel:ssAnimations:SpriteSheet] :: SpriteSheet key img delay -> Animations key SpriteClip delay
+ Animate: [$sel:ssAnimations:SpriteSheet] :: SpriteSheet key img delay -> Animations key (SpriteClip key) delay
- Animate: [$sel:ssiAlpha:SpriteSheetInfo] :: SpriteSheetInfo delay -> Maybe Color
+ Animate: [$sel:ssiAlpha:SpriteSheetInfo] :: SpriteSheetInfo key delay -> Maybe Color
- Animate: [$sel:ssiAnimations:SpriteSheetInfo] :: SpriteSheetInfo delay -> Map Text [(FrameIndex, delay)]
+ Animate: [$sel:ssiAnimations:SpriteSheetInfo] :: SpriteSheetInfo key delay -> Map Text [(FrameIndex, delay)]
- Animate: [$sel:ssiClips:SpriteSheetInfo] :: SpriteSheetInfo delay -> [SpriteClip]
+ Animate: [$sel:ssiClips:SpriteSheetInfo] :: SpriteSheetInfo key delay -> [SpriteClip key]
- Animate: [$sel:ssiImage:SpriteSheetInfo] :: SpriteSheetInfo delay -> FilePath
+ Animate: [$sel:ssiImage:SpriteSheetInfo] :: SpriteSheetInfo key delay -> FilePath
- Animate: data SpriteClip
+ Animate: data SpriteClip key
- Animate: data SpriteSheetInfo delay
+ Animate: data SpriteSheetInfo key delay
- Animate: readSpriteSheetInfoJSON :: FromJSON delay => FilePath -> IO (SpriteSheetInfo delay)
+ Animate: readSpriteSheetInfoJSON :: FromJSON delay => FilePath -> IO (SpriteSheetInfo key delay)
Files
- animate.cabal +1/−1
- library/Animate.hs +9/−9
- package.yaml +1/−1
animate.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: animate-version: 0.5.0+version: 0.6.0 synopsis: Animation for sprites description: Prototypical sprite animation with type-safety. category: Game
library/Animate.hs view
@@ -60,7 +60,7 @@ keyName :: key -> Text -- | Describe the boxed area of the 2d sprite inside a sprite sheet-data SpriteClip = SpriteClip+data SpriteClip key = SpriteClip { scX :: Int , scY :: Int , scW :: Int@@ -68,12 +68,12 @@ , scOffset :: Maybe (Int, Int) } deriving (Show, Eq, Generic) -instance ToJSON SpriteClip where+instance ToJSON (SpriteClip key) where toJSON SpriteClip{scX,scY,scW,scH,scOffset} = case scOffset of Nothing -> toJSON (scX, scY, scW, scH) Just (ofsX, ofsY) -> toJSON (scX, scY, scW, scH, ofsX, ofsY) -instance FromJSON SpriteClip where+instance FromJSON (SpriteClip key) where parseJSON v = (do (x,y,w,h) <- parseJSON v@@ -85,20 +85,20 @@ -- | Generalized sprite sheet data structure data SpriteSheet key img delay = SpriteSheet- { ssAnimations :: Animations key SpriteClip delay+ { ssAnimations :: Animations key (SpriteClip key) delay , ssImage :: img } deriving (Generic) -- | One way to represent sprite sheet information. -- JSON loading is included.-data SpriteSheetInfo delay = SpriteSheetInfo+data SpriteSheetInfo key delay = SpriteSheetInfo { ssiImage :: FilePath , ssiAlpha :: Maybe Color- , ssiClips :: [SpriteClip]+ , ssiClips :: [SpriteClip key] , ssiAnimations :: Map Text [(FrameIndex, delay)] } deriving (Show, Eq, Generic) -instance ToJSON delay => ToJSON (SpriteSheetInfo delay) where+instance ToJSON delay => ToJSON (SpriteSheetInfo key delay) where toJSON SpriteSheetInfo{ssiImage,ssiAlpha,ssiClips,ssiAnimations} = object [ "image" .= ssiImage , "alpha" .= ssiAlpha@@ -106,7 +106,7 @@ , "animations" .= ssiAnimations ] -instance FromJSON delay => FromJSON (SpriteSheetInfo delay) where+instance FromJSON delay => FromJSON (SpriteSheetInfo key delay) where parseJSON (Object o) = do image <- o .: "image" alpha <- o .: "alpha"@@ -229,7 +229,7 @@ readSpriteSheetInfoJSON :: FromJSON delay => FilePath -- ^ Path of the sprite sheet info JSON file- -> IO (SpriteSheetInfo delay)+ -> IO (SpriteSheetInfo key delay) readSpriteSheetInfoJSON path = do metaBytes <- BL.readFile path case eitherDecode metaBytes of
package.yaml view
@@ -1,5 +1,5 @@ name: animate-version: '0.5.0'+version: '0.6.0' category: Game synopsis: Animation for sprites description: Prototypical sprite animation with type-safety.