{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.PressPlate where import Control.Lens import Data.Aeson import Data.Aeson.TH import Geometry.Data import Picture data PressPlateEvent = PressPlateId | PPLevelReset deriving (Eq, Ord, Show, Read) --Generic, Flat) data PressPlate = PressPlate { _ppPict :: Picture , _ppPos :: Point2 , _ppRot :: Float , _ppEvent :: PressPlateEvent , _ppID :: Int , _ppText :: String } deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''PressPlate deriveJSON defaultOptions ''PressPlateEvent deriveJSON defaultOptions ''PressPlate