{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.Flare where import Color import Control.Lens import Data.Aeson import Data.Aeson.TH import Geometry data Flare = MuzFlare { _flarePoly :: [Point2] , _flareColor :: Color , _flareTran3 :: Point3 , _flareTime :: Int } | CircFlare { _flareColor :: Color , _flareAlpha :: Float , _flareTran3 :: Point3 , _flareTime :: Int } deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''Flare deriveJSON defaultOptions ''Flare