summaryrefslogtreecommitdiff
path: root/lib/TiledAbstract.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/TiledAbstract.hs')
-rw-r--r--lib/TiledAbstract.hs17
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