Add Store instances

This commit is contained in:
2022-08-21 12:21:05 +01:00
parent 1ce7d4a72d
commit dd62e30026
92 changed files with 465 additions and 255 deletions
+8 -6
View File
@@ -8,6 +8,8 @@ module Dodge.Data.Bullet
, module Dodge.Data.Damage
)where
import TH.Derive
import Data.Store
import Data.Binary
import Flat
import LinearHelp ()
@@ -32,27 +34,22 @@ data Bullet = Bullet
, _buDamages :: [Damage]
}
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary Bullet
data EnergyBallType = IncBall | TeslaBall | ConcBall
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary EnergyBallType
data BulletUpdateMod = NoBulletUpdateMod
| ABulletUpdateMod -- hack for template splicing
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary BulletUpdateMod
data BulletEffect
= DestroyBullet
| BounceBullet
| PenetrateBullet
deriving (Eq, Ord, Show, Read, Enum, Bounded, Generic, Flat)
instance Binary BulletEffect
data BulletSpawn = BulBall EnergyBallType | BulSpark
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary BulletSpawn
data BulletTrajectory
= BasicBulletTrajectory
@@ -60,7 +57,6 @@ data BulletTrajectory
| FlechetteTrajectory Point2
| MagnetTrajectory Point2
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary BulletTrajectory
makeLenses ''Bullet
deriveJSON defaultOptions ''Bullet
@@ -69,3 +65,9 @@ deriveJSON defaultOptions ''BulletUpdateMod
deriveJSON defaultOptions ''BulletEffect
deriveJSON defaultOptions ''BulletSpawn
deriveJSON defaultOptions ''BulletTrajectory
$($(derive [d| instance Deriving (Store Bullet ) |]))
$($(derive [d| instance Deriving (Store EnergyBallType ) |]))
$($(derive [d| instance Deriving (Store BulletUpdateMod ) |]))
$($(derive [d| instance Deriving (Store BulletEffect) |]))
$($(derive [d| instance Deriving (Store BulletTrajectory) |]))
$($(derive [d| instance Deriving (Store BulletSpawn ) |]))