32 lines
711 B
Haskell
32 lines
711 B
Haskell
{-# 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
|