packages feed

htiled 0.1.2.0 → 0.1.3.0

raw patch · 2 files changed

+18/−9 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.Tiled.Types: iHeight :: Image -> Int
- Data.Tiled.Types: iSource :: Image -> FilePath
- Data.Tiled.Types: iTrans :: Image -> Maybe (Word8, Word8, Word8)
- Data.Tiled.Types: iWidth :: Image -> Int
- Data.Tiled.Types: instance Eq Image
- Data.Tiled.Types: instance Eq Layer
- Data.Tiled.Types: instance Eq MapOrientation
- Data.Tiled.Types: instance Eq Object
- Data.Tiled.Types: instance Eq Polygon
- Data.Tiled.Types: instance Eq Polyline
- Data.Tiled.Types: instance Eq Tile
- Data.Tiled.Types: instance Eq TiledMap
- Data.Tiled.Types: instance Eq Tileset
- Data.Tiled.Types: instance Ord Tile
- Data.Tiled.Types: instance Show Image
- Data.Tiled.Types: instance Show Layer
- Data.Tiled.Types: instance Show MapOrientation
- Data.Tiled.Types: instance Show Object
- Data.Tiled.Types: instance Show Polygon
- Data.Tiled.Types: instance Show Polyline
- Data.Tiled.Types: instance Show Tile
- Data.Tiled.Types: instance Show TiledMap
- Data.Tiled.Types: instance Show Tileset
- Data.Tiled.Types: layerData :: Layer -> Map (Int, Int) Tile
- Data.Tiled.Types: layerImage :: Layer -> Image
- Data.Tiled.Types: layerIsVisible :: Layer -> Bool
- Data.Tiled.Types: layerName :: Layer -> String
- Data.Tiled.Types: layerObjects :: Layer -> [Object]
- Data.Tiled.Types: layerOpacity :: Layer -> Float
- Data.Tiled.Types: layerProperties :: Layer -> Properties
- Data.Tiled.Types: mapHeight :: TiledMap -> Int
- Data.Tiled.Types: mapLayers :: TiledMap -> [Layer]
- Data.Tiled.Types: mapOrientation :: TiledMap -> MapOrientation
- Data.Tiled.Types: mapPath :: TiledMap -> FilePath
- Data.Tiled.Types: mapProperties :: TiledMap -> Properties
- Data.Tiled.Types: mapTileHeight :: TiledMap -> Int
- Data.Tiled.Types: mapTileWidth :: TiledMap -> Int
- Data.Tiled.Types: mapTilesets :: TiledMap -> [Tileset]
- Data.Tiled.Types: mapWidth :: TiledMap -> Int
- Data.Tiled.Types: objectGid :: Object -> Maybe Word32
- Data.Tiled.Types: objectHeight :: Object -> Maybe Int
- Data.Tiled.Types: objectName :: Object -> Maybe String
- Data.Tiled.Types: objectPolygon :: Object -> Maybe Polygon
- Data.Tiled.Types: objectPolyline :: Object -> Maybe Polyline
- Data.Tiled.Types: objectProperties :: Object -> Properties
- Data.Tiled.Types: objectType :: Object -> Maybe String
- Data.Tiled.Types: objectWidth :: Object -> Maybe Int
- Data.Tiled.Types: objectX :: Object -> Int
- Data.Tiled.Types: objectY :: Object -> Int
- Data.Tiled.Types: tileGid :: Tile -> Word32
- Data.Tiled.Types: tileIsDiagFlipped :: Tile -> Bool
- Data.Tiled.Types: tileIsHFlipped :: Tile -> Bool
- Data.Tiled.Types: tileIsVFlipped :: Tile -> Bool
- Data.Tiled.Types: tsImages :: Tileset -> [Image]
- Data.Tiled.Types: tsInitialGid :: Tileset -> Word32
- Data.Tiled.Types: tsMargin :: Tileset -> Int
- Data.Tiled.Types: tsName :: Tileset -> String
- Data.Tiled.Types: tsSpacing :: Tileset -> Int
- Data.Tiled.Types: tsTileHeight :: Tileset -> Int
- Data.Tiled.Types: tsTileProperties :: Tileset -> [(Word32, Properties)]
- Data.Tiled.Types: tsTileWidth :: Tileset -> Int
+ Data.Tiled.Load: instance GHC.Read.Read Data.Tiled.Load.ImageType
+ Data.Tiled.Types: [iSource] :: Image -> FilePath
+ Data.Tiled.Types: [iTrans] :: Image -> Maybe (Word8, Word8, Word8)
+ Data.Tiled.Types: [iWidth, iHeight] :: Image -> Int
+ Data.Tiled.Types: [layerData] :: Layer -> Map (Int, Int) Tile
+ Data.Tiled.Types: [layerImage] :: Layer -> Image
+ Data.Tiled.Types: [layerIsVisible] :: Layer -> Bool
+ Data.Tiled.Types: [layerName] :: Layer -> String
+ Data.Tiled.Types: [layerObjects] :: Layer -> [Object]
+ Data.Tiled.Types: [layerOpacity] :: Layer -> Float
+ Data.Tiled.Types: [layerProperties] :: Layer -> Properties
+ Data.Tiled.Types: [mapLayers] :: TiledMap -> [Layer]
+ Data.Tiled.Types: [mapOrientation] :: TiledMap -> MapOrientation
+ Data.Tiled.Types: [mapPath] :: TiledMap -> FilePath
+ Data.Tiled.Types: [mapProperties] :: TiledMap -> Properties
+ Data.Tiled.Types: [mapTileHeight] :: TiledMap -> Int
+ Data.Tiled.Types: [mapTileWidth] :: TiledMap -> Int
+ Data.Tiled.Types: [mapTilesets] :: TiledMap -> [Tileset]
+ Data.Tiled.Types: [mapWidth, mapHeight] :: TiledMap -> Int
+ Data.Tiled.Types: [objectGid] :: Object -> Maybe Word32
+ Data.Tiled.Types: [objectName] :: Object -> Maybe String
+ Data.Tiled.Types: [objectPolygon] :: Object -> Maybe Polygon
+ Data.Tiled.Types: [objectPolyline] :: Object -> Maybe Polyline
+ Data.Tiled.Types: [objectProperties] :: Object -> Properties
+ Data.Tiled.Types: [objectType] :: Object -> Maybe String
+ Data.Tiled.Types: [objectWidth, objectHeight] :: Object -> Maybe Int
+ Data.Tiled.Types: [objectX, objectY] :: Object -> Int
+ Data.Tiled.Types: [tileGid] :: Tile -> Word32
+ Data.Tiled.Types: [tileIsVFlipped, tileIsHFlipped, tileIsDiagFlipped] :: Tile -> Bool
+ Data.Tiled.Types: [tsImages] :: Tileset -> [Image]
+ Data.Tiled.Types: [tsInitialGid] :: Tileset -> Word32
+ Data.Tiled.Types: [tsName] :: Tileset -> String
+ Data.Tiled.Types: [tsSpacing, tsMargin] :: Tileset -> Int
+ Data.Tiled.Types: [tsTileProperties] :: Tileset -> [(Word32, Properties)]
+ Data.Tiled.Types: [tsTileWidth, tsTileHeight] :: Tileset -> Int
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.Image
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.Layer
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.MapOrientation
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.Object
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.Polygon
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.Polyline
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.Tile
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.TiledMap
+ Data.Tiled.Types: instance GHC.Classes.Eq Data.Tiled.Types.Tileset
+ Data.Tiled.Types: instance GHC.Classes.Ord Data.Tiled.Types.Tile
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.Image
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.Layer
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.MapOrientation
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.Object
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.Polygon
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.Polyline
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.Tile
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.TiledMap
+ Data.Tiled.Types: instance GHC.Show.Show Data.Tiled.Types.Tileset
- Data.Tiled.Types: Image :: FilePath -> Maybe (Word8, Word8, Word8) -> Int -> Int -> Image
+ Data.Tiled.Types: Image :: FilePath -> Maybe (Word8, Word8, Word8) -> Int -> Image
- Data.Tiled.Types: Object :: Maybe String -> Maybe String -> Properties -> Int -> Int -> Maybe Int -> Maybe Int -> Maybe Word32 -> Maybe Polygon -> Maybe Polyline -> Object
+ Data.Tiled.Types: Object :: Maybe String -> Maybe String -> Properties -> Int -> Maybe Int -> Maybe Word32 -> Maybe Polygon -> Maybe Polyline -> Object
- Data.Tiled.Types: Tile :: Word32 -> Bool -> Bool -> Bool -> Tile
+ Data.Tiled.Types: Tile :: Word32 -> Bool -> Tile
- Data.Tiled.Types: TiledMap :: FilePath -> MapOrientation -> Int -> Int -> Int -> Int -> Properties -> [Tileset] -> [Layer] -> TiledMap
+ Data.Tiled.Types: TiledMap :: FilePath -> MapOrientation -> Int -> Int -> Int -> Properties -> [Tileset] -> [Layer] -> TiledMap
- Data.Tiled.Types: Tileset :: String -> Word32 -> Int -> Int -> Int -> Int -> [Image] -> [(Word32, Properties)] -> Tileset
+ Data.Tiled.Types: Tileset :: String -> Word32 -> Int -> Int -> [Image] -> [(Word32, Properties)] -> Tileset

Files

htiled.cabal view
@@ -1,5 +1,5 @@ Name:                htiled-Version:             0.1.2.0+Version:             0.1.3.0 Synopsis:            Import from the Tiled map editor. Description:         Import maps from the .tmx map format generated by Tiled,                      <http://www.mapeditor.org>.
src/Data/Tiled/Load.hs view
@@ -46,11 +46,14 @@ getAttrR ∷ (Read α, Num α) ⇒ String → IOSArrow XmlTree α getAttrR a = arr read . getAttrValue0 a -getAttrMaybe ∷ (Read α, Num α) ⇒ String → IOSArrow XmlTree (Maybe α)+getAttrMaybeR ∷ (Read α, Num α) ⇒ String → IOSArrow XmlTree (Maybe α)+getAttrMaybeR a = arr (fmap read) . getAttrMaybe a++getAttrMaybe ∷ String → IOSArrow XmlTree (Maybe String) getAttrMaybe a = arr tm . getAttrValue a     where         tm "" = Nothing-        tm s = Just $ read s+        tm s = Just s  doMap ∷ FilePath → IOSArrow XmlTree TiledMap doMap mapPath = proc m → do@@ -175,24 +178,30 @@   tsName           ← getAttrValue "name"                        ⤙ ts   tsTileWidth      ← getAttrR "tilewidth"                       ⤙ ts   tsTileHeight     ← getAttrR "tileheight"                      ⤙ ts-  tsMargin         ← arr (fromMaybe 0) . getAttrMaybe "margin"  ⤙ ts-  tsSpacing        ← arr (fromMaybe 0) . getAttrMaybe "spacing" ⤙ ts+  tsMargin         ← arr (fromMaybe 0) . getAttrMaybeR "margin"  ⤙ ts+  tsSpacing        ← arr (fromMaybe 0) . getAttrMaybeR "spacing" ⤙ ts   tsImages         ← images                                     ⤙ ts   tsTileProperties ← listA tileProperties                       ⤙ ts   returnA ⤙ Tileset {..}   where tileProperties ∷ IOSArrow XmlTree (Word32, Properties)         tileProperties = getChildren >>> isElem >>> hasName "tile"                          >>> getAttrR "id" &&& properties-        images = listA (getChildren >>> image)+        images = listA (getChildren >>> (image <+> tileImage)) +data ImageType = TileImage | NormalImage deriving (Read)+ image ∷ IOSArrow XmlTree Image image = isElem >>> hasName "image" >>> proc img → do-    iSource ← getAttrValue "source"   ⤙ img-    iTrans  ← arr (fmap colorToTriplet . listToMaybe) . listA (getAttrValue0 "trans") ⤙ img     iWidth  ← getAttrR "width"        ⤙ img     iHeight ← getAttrR "height"       ⤙ img+    iSource ← getAttrValue0 "source"  ⤙ img+    iTrans  ← arr (fmap colorToTriplet) . getAttrMaybe "trans" ⤙ img     returnA ⤙ Image {..}     where-        colorToTriplet x = (h x, h $ drop 2 x, h $ drop 4 x)+        colorToTriplet :: Integral i => String -> (i,i,i)+        colorToTriplet x = (h x , h (drop 2 x) , h (drop 4 x))             where h (y:z:_) = fromIntegral $ digitToInt y * 16 + digitToInt z                   h _ = error "invalid color in an <image ...> somewhere."++tileImage :: IOSArrow XmlTree Image+tileImage = isElem >>> hasName "tile" >>> getChildren >>> image