{-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.Spark where import Control.Lens import Data.Aeson import Data.Aeson.TH import Geometry.Data data Spark = Spark { _skVel :: Point2 , _skPos :: Point2 , _skOldPos :: Point2 , _skType :: SparkType } deriving (Eq, Ord, Show, Read) --Generic, Flat) data SparkType = ElectricSpark | FireSpark | NormalSpark deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''Spark deriveJSON defaultOptions ''SparkType deriveJSON defaultOptions ''Spark