module Codec.Tiled.Layer 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