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
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
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. 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 = forall a. (Generic a, GFromJSON Zero (Rep a)) => Value -> Parser a
genericParseJSON
instance ToJSON Layer where
toJSON :: Layer -> Value
toJSON = forall a. (Generic a, GToJSON' Value Zero (Rep a)) => a -> Value
genericToJSON
empty :: Layer
empty :: Layer
empty = Layer
{ chunks :: Maybe (Vector Chunk)
chunks = forall a. Maybe a
Nothing
, compression :: Maybe Text
compression = forall a. Maybe a
Nothing
, data_ :: Maybe LayerData
data_ = forall a. Maybe a
Nothing
, draworder :: Maybe Text
draworder = forall a. Maybe a
Nothing
, encoding :: Maybe Text
encoding = forall a. Maybe a
Nothing
, height :: Maybe Int
height = forall a. Maybe a
Nothing
, id :: Maybe Int
id = forall a. Maybe a
Nothing
, image :: Maybe FilePath
image = forall a. Maybe a
Nothing
, layers :: Maybe (Vector Layer)
layers = forall a. Maybe a
Nothing
, locked :: Maybe Bool
locked = forall a. Maybe a
Nothing
, name :: Text
name = Text
""
, objects :: Maybe (Vector Object)
objects = forall a. Maybe a
Nothing
, offsetX :: Maybe Double
offsetX = forall a. Maybe a
Nothing
, offsetY :: Maybe Double
offsetY = forall a. Maybe a
Nothing
, opacity :: Double
opacity = Double
1.0
, parallaxX :: Maybe Double
parallaxX = forall a. Maybe a
Nothing
, parallaxY :: Maybe Double
parallaxY = forall a. Maybe a
Nothing
, properties :: Maybe (Vector Property)
properties = forall a. Maybe a
Nothing
, repeatX :: Maybe Bool
repeatX = forall a. Maybe a
Nothing
, repeatY :: Maybe Bool
repeatY = forall a. Maybe a
Nothing
, startX :: Maybe Int
startX = forall a. Maybe a
Nothing
, startY :: Maybe Int
startY = forall a. Maybe a
Nothing
, tintColor :: Maybe Text
tintColor = forall a. Maybe a
Nothing
, transparentColor :: Maybe Text
transparentColor = forall a. Maybe a
Nothing
, type_ :: Text
type_ = Text
""
, visible :: Bool
visible = Bool
True
, width :: Maybe Int
width = forall a. Maybe a
Nothing
, x :: Maybe Int
x = forall a. Maybe a
Nothing
, y :: Maybe Int
y = forall a. Maybe a
Nothing
}
pattern TILELAYER :: Text
pattern $bTILELAYER :: Text
$mTILELAYER :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
TILELAYER = "tilelayer"
pattern OBJECTGROUP :: Text
pattern $bOBJECTGROUP :: Text
$mOBJECTGROUP :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
OBJECTGROUP = "objectgroup"
pattern IMAGELAYER :: Text
pattern $bIMAGELAYER :: Text
$mIMAGELAYER :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
IMAGELAYER = "imagelayer"
pattern GROUP :: Text
pattern $bGROUP :: Text
$mGROUP :: forall {r}. Text -> ((# #) -> r) -> ((# #) -> r) -> r
GROUP = "group"