{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.LinearShockwave where import Control.Lens import Data.Aeson import Data.Aeson.TH import Geometry.Data data LinearShockwave = LinearShockwave { _lwPos :: Point2 , _lwID :: Int , _lwPoints :: [(Point2, Point2)] , _lwTimer :: Int } deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''LinearShockwave deriveJSON defaultOptions ''LinearShockwave