Refactor, try to limit dependencies

This commit is contained in:
2022-07-28 00:59:56 +01:00
parent 8aa5c17ab9
commit 160560af5f
418 changed files with 15104 additions and 13342 deletions
+22 -23
View File
@@ -1,39 +1,38 @@
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.Laser
where
import GHC.Generics
import Data.Aeson
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Laser where
import Color
import Geometry.Data
import Control.Lens
data LaserType = DamageLaser {_laserTypeDamage :: Int}
import Data.Aeson
import Data.Aeson.TH
import Geometry.Data
data LaserType
= DamageLaser {_laserTypeDamage :: Int}
| TargetLaser
deriving (Eq,Ord,Show,Read,Generic)
instance ToJSON LaserType where
toEncoding = genericToEncoding defaultOptions
instance FromJSON LaserType
deriving (Eq, Ord, Show, Read)
data LaserStart = LaserStart
{ _lpPhaseV :: Float
, _lpPos :: Point2
, _lpDir :: Float
, _lpColor :: Color
, _lpType :: LaserType
, _lpType :: LaserType
}
deriving (Eq,Ord,Show,Read,Generic)
instance ToJSON LaserStart where
toEncoding = genericToEncoding defaultOptions
instance FromJSON LaserStart
deriving (Eq, Ord, Show, Read)
data Laser = Laser
{ _laColor :: Color
{ _laColor :: Color
, _laPoints :: [Point2]
, _laType :: LaserType
, _laType :: LaserType
}
deriving (Eq,Ord,Show,Read,Generic)
instance ToJSON Laser where
toEncoding = genericToEncoding defaultOptions
instance FromJSON Laser
deriving (Eq, Ord, Show, Read)
makeLenses ''Laser
makeLenses ''LaserStart
makeLenses ''LaserType
deriveJSON defaultOptions ''LaserType
deriveJSON defaultOptions ''LaserStart
deriveJSON defaultOptions ''Laser