diff options
Diffstat (limited to '')
-rw-r--r-- | lib/TiledAbstract.hs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/TiledAbstract.hs b/lib/TiledAbstract.hs index f7bbbb9..88dd2ee 100644 --- a/lib/TiledAbstract.hs +++ b/lib/TiledAbstract.hs @@ -2,11 +2,12 @@ module TiledAbstract where -import Data.Maybe (fromMaybe) -import Data.Proxy (Proxy) -import Data.Text (Text) -import Tiled (Layer (..), Property (..), PropertyValue (..), - Tiledmap (..), Tileset (..)) +import Data.Maybe (fromMaybe) +import Data.Proxy (Proxy) +import Data.Text (Text) +import qualified Data.Vector as V +import Tiled (Layer (..), Property (..), PropertyValue (..), + Tile (..), Tiledmap (..), Tileset (..)) class HasProperties a where getProperties :: a -> [Property] @@ -22,6 +23,12 @@ instance HasProperties Tileset where adjustProperties f tileset = tileset { tilesetProperties = f (getProperties tileset) } +instance HasProperties Tile where + getProperties = V.toList . fromMaybe mempty . tileProperties + adjustProperties f tile = tile + { tileProperties = (fmap V.fromList . f) (getProperties tile) } + + instance HasProperties Tiledmap where getProperties = fromMaybe mempty . tiledmapProperties adjustProperties f tiledmap = tiledmap |