module Codec.Tiled.Layer
( Layer(..)
, empty
, pattern TILELAYER
, pattern OBJECTGROUP
, pattern IMAGELAYER
, pattern GROUP
) where
import Data.Text (Text)
import Data.Vector (Vector)
import GHC.Generics (Generic)
import Codec.Tiled.Aeson (FromJSON(..), ToJSON(..), genericParseJSON, genericToJSON)
import Codec.Tiled.Layer.Chunk (Chunk)
import Codec.Tiled.Layer.Data (LayerData)
import Codec.Tiled.Object (Object)
import Codec.Tiled.Property (Property)
data Layer = Layer
{ Layer -> Maybe (Vector Chunk)
chunks :: Maybe (Vector Chunk)
, Layer -> Maybe Text
compression :: Maybe Text
, Layer -> Maybe LayerData
data_ :: Maybe LayerData
, Layer -> Maybe Text
draworder :: Maybe Text
, Layer -> Maybe Text
encoding :: Maybe Text
, Layer -> Maybe Int
height :: Maybe Int
, Layer -> Maybe Int
id :: Maybe Int
, Layer -> Maybe FilePath
image :: Maybe FilePath
, Layer -> Maybe (Vector Layer)
layers :: Maybe (Vector Layer)
, Layer -> Maybe Bool
locked :: Maybe Bool
, Layer -> Text
name :: Text
, Layer -> Maybe (Vector Object)
objects :: Maybe (Vector Object)
, Layer -> Maybe Double
offsetX :: Maybe Double
, Layer -> Maybe Double
offsetY :: Maybe Double
, Layer -> Double
opacity :: Double
, Layer -> Maybe Double
parallaxX :: Maybe Double
, Layer -> Maybe Double
parallaxY :: Maybe Double
, Layer -> Maybe (Vector Property)
properties :: Maybe (Vector Property)
, Layer -> Maybe Bool
repeatX :: Maybe Bool
, Layer -> Maybe Bool
repeatY :: Maybe Bool
, Layer -> Maybe Int
startX :: Maybe Int
, Layer -> Maybe Int
startY :: Maybe Int
, Layer -> Maybe Text
tintColor :: Maybe Text
, Layer -> Maybe Text
transparentColor :: Maybe Text
, Layer -> Text
type_ :: Text
, Layer -> Bool
visible :: Bool
, Layer -> Maybe Int
width :: Maybe Int
, Layer -> Maybe Int
x :: Maybe Int
, Layer -> Maybe Int
y :: Maybe Int
}
deriving (Layer -> Layer -> Bool
(Layer -> Layer -> Bool) -> (Layer -> Layer -> Bool) -> Eq Layer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Layer -> Layer -> Bool
$c/= :: Layer -> Layer -> Bool
== :: Layer -> Layer -> Bool
$c== :: Layer -> Layer -> Bool
Eq, Int -> Layer -> ShowS
[Layer] -> ShowS
Layer -> FilePath
(Int -> Layer -> ShowS)
-> (Layer -> FilePath) -> ([Layer] -> ShowS) -> Show Layer
forall a.
(Int -> a -> ShowS) -> (a -> FilePath) -> ([a] -> ShowS) -> Show a
showList :: [Layer] -> ShowS
$cshowList :: [Layer] -> ShowS
show :: Layer -> FilePath
$cshow :: Layer -> FilePath
showsPrec :: Int -> Layer -> ShowS
$cshowsPrec :: Int -> Layer -> ShowS
Show, (forall x. Layer -> Rep Layer x)
-> (forall x. Rep Layer x -> Layer) -> Generic Layer
forall x. Rep Layer x -> Layer
forall x. Layer -> Rep Layer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Layer x -> Layer
$cfrom :: forall x. Layer -> Rep Layer x
Generic)
instance FromJSON Layer where
parseJSON :: Value -> Parser Layer
parseJSON = Value -> Parser Layer
forall a. (Generic a, GFromJSON Zero (Rep a)) => Value -> Parser a
genericParseJSON
instance ToJSON Layer where
toJSON :: Layer -> Value
toJSON = Layer -> Value
forall a. (Generic a, GToJSON' Value Zero (Rep a)) => a -> Value
genericToJSON
empty :: Layer
empty :: Layer
empty = Layer :: Maybe (Vector Chunk)
-> Maybe Text
-> Maybe LayerData
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe FilePath
-> Maybe (Vector Layer)
-> Maybe Bool
-> Text
-> Maybe (Vector Object)
-> Maybe Double
-> Maybe Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe (Vector Property)
-> Maybe Bool
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Text
-> Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Layer
Layer
{ chunks :: Maybe (Vector Chunk)
chunks = Maybe (Vector Chunk)
forall a. Maybe a
Nothing
, compression :: Maybe Text
compression = Maybe Text
forall a. Maybe a
Nothing
, data_ :: Maybe LayerData
data_ = Maybe LayerData
forall a. Maybe a
Nothing
, draworder :: Maybe Text
draworder = Maybe Text
forall a. Maybe a
Nothing
, encoding :: Maybe Text
encoding = Maybe Text
forall a. Maybe a
Nothing
, height :: Maybe Int
height = Maybe Int
forall a. Maybe a
Nothing
, id :: Maybe Int
id = Maybe Int
forall a. Maybe a
Nothing
, image :: Maybe FilePath
image = Maybe FilePath
forall a. Maybe a
Nothing
, layers :: Maybe (Vector Layer)
layers = Maybe (Vector Layer)
forall a. Maybe a
Nothing
, locked :: Maybe Bool
locked = Maybe Bool
forall a. Maybe a
Nothing
, name :: Text
name = Text
""
, objects :: Maybe (Vector Object)
objects = Maybe (Vector Object)
forall a. Maybe a
Nothing
, offsetX :: Maybe Double
offsetX = Maybe Double
forall a. Maybe a
Nothing
, offsetY :: Maybe Double
offsetY = Maybe Double
forall a. Maybe a
Nothing
, opacity :: Double
opacity = Double
1.0
, parallaxX :: Maybe Double
parallaxX = Maybe Double
forall a. Maybe a
Nothing
, parallaxY :: Maybe Double
parallaxY = Maybe Double
forall a. Maybe a
Nothing
, properties :: Maybe (Vector Property)
properties = Maybe (Vector Property)
forall a. Maybe a
Nothing
, repeatX :: Maybe Bool
repeatX = Maybe Bool
forall a. Maybe a
Nothing
, repeatY :: Maybe Bool
repeatY = Maybe Bool
forall a. Maybe a
Nothing
, startX :: Maybe Int
startX = Maybe Int
forall a. Maybe a
Nothing
, startY :: Maybe Int
startY = Maybe Int
forall a. Maybe a
Nothing
, tintColor :: Maybe Text
tintColor = Maybe Text
forall a. Maybe a
Nothing
, transparentColor :: Maybe Text
transparentColor = Maybe Text
forall a. Maybe a
Nothing
, type_ :: Text
type_ = Text
""
, visible :: Bool
visible = Bool
True
, width :: Maybe Int
width = Maybe Int
forall a. Maybe a
Nothing
, x :: Maybe Int
x = Maybe Int
forall a. Maybe a
Nothing
, y :: Maybe Int
y = Maybe Int
forall a. Maybe a
Nothing
}
pattern TILELAYER :: Text
pattern $bTILELAYER :: Text
$mTILELAYER :: forall r. Text -> (Void# -> r) -> (Void# -> r) -> r
TILELAYER = "tilelayer"
pattern OBJECTGROUP :: Text
pattern $bOBJECTGROUP :: Text
$mOBJECTGROUP :: forall r. Text -> (Void# -> r) -> (Void# -> r) -> r
OBJECTGROUP = "objectgroup"
pattern IMAGELAYER :: Text
pattern $bIMAGELAYER :: Text
$mIMAGELAYER :: forall r. Text -> (Void# -> r) -> (Void# -> r) -> r
IMAGELAYER = "imagelayer"
pattern GROUP :: Text
pattern $bGROUP :: Text
$mGROUP :: forall r. Text -> (Void# -> r) -> (Void# -> r) -> r
GROUP = "group"