summaryrefslogtreecommitdiff
path: root/lib/TiledAbstract.hs
diff options
context:
space:
mode:
authorstuebinm2021-12-16 15:10:30 +0100
committerstuebinm2021-12-16 15:10:30 +0100
commit9e5ecf2bd3be27be6e8d1dd9f0bf8d80cf1eaa30 (patch)
tree3b517ddd86b761a433641b3532caa18d5c487e47 /lib/TiledAbstract.hs
parent1144f4b4aa4dbe9522a64aaec0f8488c5f2c62e3 (diff)
fixed & removed a bunch of old TODOs
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