htiled 0.1.1.2 → 0.1.2.0
raw patch · 2 files changed
+27/−16 lines, 2 filesnew-uploaderPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- htiled.cabal +1/−1
- src/Data/Tiled/Load.hs +26/−15
htiled.cabal view
@@ -1,5 +1,5 @@ Name: htiled-Version: 0.1.1.2+Version: 0.1.2.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
@@ -18,6 +18,7 @@ import qualified Codec.Compression.GZip as GZip import qualified Codec.Compression.Zlib as Zlib+import System.FilePath (dropFileName, (</>)) import Text.XML.HXT.Core import Data.Tiled.Types@@ -62,7 +63,7 @@ mapTileWidth ← getAttrR "tilewidth" ⤙ m mapTileHeight ← getAttrR "tileheight" ⤙ m mapProperties ← properties ⤙ m- mapTilesets ← tilesets ⤙ m+ mapTilesets ← tilesets mapPath ⤙ m mapLayers ← layers ⤙ (m, (mapWidth, mapHeight)) returnA ⤙ TiledMap {..} @@ -156,22 +157,32 @@ returnA ⤙ case x of Left layerData → Layer {..} Right layerObjects → ObjectLayer {..} -tilesets ∷ IOSArrow XmlTree [Tileset]-tilesets = listA $ getChildren >>> isElem >>> hasName "tileset"- >>> proc ts → do- tsName ← getAttrValue "name" ⤙ ts- tsInitialGid ← getAttrR "firstgid" ⤙ ts- tsTileWidth ← getAttrR "tilewidth" ⤙ ts- tsTileHeight ← getAttrR "tileheight" ⤙ ts- tsMargin ← (arr $ fromMaybe 0) . getAttrMaybe "margin" ⤙ ts- tsSpacing ← (arr $ fromMaybe 0) . getAttrMaybe "spacing" ⤙ ts- tsImages ← images ⤙ ts- tsTileProperties ← listA tileProperties ⤙ ts- returnA ⤙ Tileset {..}+tilesets ∷ FilePath → IOSArrow XmlTree [Tileset]+tilesets fp =+ listA $ getChildren >>> isElem >>> hasName "tileset"+ >>> getAttrR "firstgid" &&& ifA (hasAttr "source") (externalTileset fp) id+ >>> tileset++externalTileset ∷ FilePath → IOSArrow XmlTree XmlTree+externalTileset mapPath =+ arr (const (dropFileName mapPath)) &&& getAttrValue "source"+ >>> arr (uncurry (</>))+ >>> readFromDocument [ withValidate no, withWarnings yes ]+ >>> getChildren >>> isElem >>> hasName "tileset"++tileset ∷ IOSArrow (Word32, XmlTree) Tileset+tileset = proc (tsInitialGid, ts) → do+ 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+ tsImages ← images ⤙ ts+ tsTileProperties ← listA tileProperties ⤙ ts+ returnA ⤙ Tileset {..} where tileProperties ∷ IOSArrow XmlTree (Word32, Properties) tileProperties = getChildren >>> isElem >>> hasName "tile"- >>> getAttrR "id" &&& properties-+ >>> getAttrR "id" &&& properties images = listA (getChildren >>> image) image ∷ IOSArrow XmlTree Image