Files
loop/src/Dodge/Data/PressPlate.hs
T
2022-08-21 10:58:19 +01:00

37 lines
819 B
Haskell

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.PressPlate where
import Data.Binary
import Flat
import LinearHelp ()
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)
instance Binary PressPlateEvent
data PressPlate = PressPlate
{ _ppPict :: Picture
, _ppPos :: Point2
, _ppRot :: Float
, _ppEvent :: PressPlateEvent
, _ppID :: Int
, _ppText :: String
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PressPlate
makeLenses ''PressPlate
deriveJSON defaultOptions ''PressPlateEvent
deriveJSON defaultOptions ''PressPlate