packages feed

aeson-tiled-0.0.2.0: src/Codec/Tiled/Tileset/Transformations.hs

module Codec.Tiled.Tileset.Transformations where

import GHC.Generics (Generic)

import Codec.Tiled.Aeson (FromJSON(..), ToJSON(..), genericParseJSON, genericToJSON)

data Transformations = Transformations
  { hFlip               :: Maybe Bool -- ^ Tiles can be flipped horizontally
  , vFlip               :: Maybe Bool -- ^ Tiles can be flipped vertically
  , rotate              :: Maybe Bool -- ^ Tiles can be rotated in 90-degree increments
  , preferUntransformed :: Maybe Bool -- ^ Whether untransformed tiles remain preferred, otherwise transformed tiles are used to produce more variations
  }
  deriving (Eq, Show, Generic)

instance FromJSON Transformations where
  parseJSON = genericParseJSON

instance ToJSON Transformations where
  toJSON = genericToJSON