From 596096823872aaa491e1a208f70da820322a766f Mon Sep 17 00:00:00 2001 From: stuebinm <stuebinm@disroot.org> Date: Mon, 28 Feb 2022 00:39:54 +0100 Subject: [PATCH] separate tiled modules out into own package --- lib/CheckDir.hs | 2 +- lib/CheckMap.hs | 2 +- lib/LayerData.hs | 2 +- lib/LintWriter.hs | 2 +- lib/Properties.hs | 11 ++++---- lib/Util.hs | 2 +- package.yaml | 10 ++++++++ {lib => tiled/Data}/Tiled.hs | 3 ++- .../Data/Tiled/Abstract.hs | 4 +-- walint.cabal | 25 ++++++++++++++++--- 10 files changed, 46 insertions(+), 17 deletions(-) rename {lib => tiled/Data}/Tiled.hs (99%) rename lib/TiledAbstract.hs => tiled/Data/Tiled/Abstract.hs (96%) diff --git a/lib/CheckDir.hs b/lib/CheckDir.hs index a19a412..300cf00 100644 --- a/lib/CheckDir.hs +++ b/lib/CheckDir.hs @@ -41,7 +41,7 @@ import System.FilePath (splitPath, (</>)) import qualified System.FilePath as FP import System.FilePath.Posix (takeDirectory) import Text.Dot (showDot) -import Tiled (Tiledmap) +import Data.Tiled (Tiledmap) import Types (Dep (Local, LocalMap), Hint (Hint), Level (..), hintLevel) import Util (PrettyPrint (prettyprint), ellipsis) diff --git a/lib/CheckMap.hs b/lib/CheckMap.hs index 23267a8..9dc3a4c 100644 --- a/lib/CheckMap.hs +++ b/lib/CheckMap.hs @@ -32,7 +32,7 @@ import LintWriter (LintResult, invertLintResult, runLintWriter) import Properties (checkLayer, checkMap, checkTileset) import System.FilePath (takeFileName) -import Tiled (Layer (layerLayers, layerName), +import Data.Tiled (Layer (layerLayers, layerName), LoadResult (..), Tiledmap (tiledmapLayers, tiledmapTilesets), loadTiledmap) diff --git a/lib/LayerData.hs b/lib/LayerData.hs index 6956c92..46d6449 100644 --- a/lib/LayerData.hs +++ b/lib/LayerData.hs @@ -8,7 +8,7 @@ import Control.Monad.Zip (mzipWith) import Data.Set (insert) import Data.Vector (maximum, uncons) import qualified Text.Show as TS -import Tiled (GlobalId (unGlobalId), Layer (..)) +import Data.Tiled (GlobalId (unGlobalId), Layer (..)) import Util (PrettyPrint (..)) -- | A collision between two layers of the given names. diff --git a/lib/LintWriter.hs b/lib/LintWriter.hs index d0c6c4e..b55b16e 100644 --- a/lib/LintWriter.hs +++ b/lib/LintWriter.hs @@ -48,7 +48,7 @@ import Universum import Badges (Badge) import Data.Map (fromListWith) import LintConfig (LintConfig') -import TiledAbstract (HasName (getName)) +import Data.Tiled.Abstract (HasName (getName)) import Types (Dep, Hint, Level (..), Lint (..), hint, lintsToHints) diff --git a/lib/Properties.hs b/lib/Properties.hs index eb31403..846430b 100644 --- a/lib/Properties.hs +++ b/lib/Properties.hs @@ -18,14 +18,13 @@ import Universum hiding (intercalate, isPrefixOf) import Data.Text (intercalate, isInfixOf, isPrefixOf) import qualified Data.Text as T import qualified Data.Vector as V -import Tiled (Layer (..), Object (..), Property (..), +import Data.Tiled (Layer (..), Object (..), Property (..), PropertyValue (..), Tile (..), Tiledmap (..), Tileset (..)) -import TiledAbstract (HasData (..), HasName (..), - HasProperties (..), HasTypeName (..), - IsProperty (..), layerIsEmpty) -import Util (mkProxy, naiveEscapeHTML, prettyprint, - showText) +import Data.Tiled.Abstract (HasName (..), HasProperties (..), + HasTypeName (..), IsProperty (..), HasData (..)) +import Util (layerIsEmpty, mkProxy, naiveEscapeHTML, + prettyprint) import Badges (Badge (Badge), BadgeArea (BadgePoint, BadgeRect), diff --git a/lib/Util.hs b/lib/Util.hs index 1ffbbe5..d5e9e98 100644 --- a/lib/Util.hs +++ b/lib/Util.hs @@ -17,7 +17,7 @@ import Universum import Data.Aeson as Aeson import qualified Data.Set as S import qualified Data.Text as T -import Tiled (Layer (layerData), PropertyValue (..), +import Data.Tiled (Layer (layerData), PropertyValue (..), Tileset (tilesetName), layerName, mkTiledId) -- | helper function to create proxies diff --git a/package.yaml b/package.yaml index f9498d6..53ef4c2 100644 --- a/package.yaml +++ b/package.yaml @@ -15,10 +15,20 @@ dependencies: - bytestring - text +internal-libraries: + tiled: + source-dirs: 'tiled' + dependencies: + - vector + exposed-modules: + - Data.Tiled + - Data.Tiled.Abstract + library: source-dirs: 'lib' dependencies: - containers + - tiled - text - vector - transformers diff --git a/lib/Tiled.hs b/tiled/Data/Tiled.hs similarity index 99% rename from lib/Tiled.hs rename to tiled/Data/Tiled.hs index 3162dfd..046a080 100644 --- a/lib/Tiled.hs +++ b/tiled/Data/Tiled.hs @@ -15,7 +15,7 @@ -- cover some of the types and records that are available in the format. For -- those you should read the TMX documentation at -- http://doc.mapeditor.org/en/latest/reference/tmx-map-format/ -module Tiled where +module Data.Tiled where import Universum @@ -383,6 +383,7 @@ instance ToJSON Tiledmap where toJSON = genericToJSON (aesonOptions 8) data LoadResult = Loaded Tiledmap | IOErr String | DecodeErr String + deriving Show -- | Load a Tiled map from the given 'FilePath'. loadTiledmap :: FilePath -> IO LoadResult diff --git a/lib/TiledAbstract.hs b/tiled/Data/Tiled/Abstract.hs similarity index 96% rename from lib/TiledAbstract.hs rename to tiled/Data/Tiled/Abstract.hs index f55e75e..5a5b7c0 100644 --- a/lib/TiledAbstract.hs +++ b/tiled/Data/Tiled/Abstract.hs @@ -1,11 +1,11 @@ {-# LANGUAGE OverloadedStrings #-} -module TiledAbstract where +module Data.Tiled.Abstract where import Universum import qualified Data.Vector as V -import Tiled (GlobalId, Layer (..), Object (..), Property (..), +import Data.Tiled (GlobalId, Layer (..), Object (..), Property (..), PropertyValue (..), Tile (..), Tiledmap (..), Tileset (..), mkTiledId) import Util (showText) diff --git a/walint.cabal b/walint.cabal index 94d79f5..cd79a59 100644 --- a/walint.cabal +++ b/walint.cabal @@ -1,4 +1,4 @@ -cabal-version: 1.12 +cabal-version: 2.0 -- This file has been generated from package.yaml by hpack version 0.34.5. -- @@ -28,8 +28,6 @@ library LintWriter Paths Properties - Tiled - TiledAbstract Uris Paths_walint hs-source-dirs: @@ -53,12 +51,33 @@ library , regex-tdfa , text , text-metrics + , tiled , transformers , universum , uri-encode , vector default-language: Haskell2010 +library tiled + exposed-modules: + Data.Tiled + Data.Tiled.Abstract + other-modules: + Paths_walint + hs-source-dirs: + tiled + default-extensions: + NoImplicitPrelude + ghc-options: -Wall -Wno-name-shadowing -Wno-unticked-promoted-constructors + build-depends: + aeson + , base + , bytestring + , text + , universum + , vector + default-language: Haskell2010 + executable walint main-is: Main.hs other-modules: -- GitLab