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
@@ -23,6 +23,8 @@ module Dodge.Data.Creature.Perception (
auDist,
) where
import TH.Derive
import Data.Store
import Data.Binary
import Flat
import Control.Lens
@@ -39,20 +41,17 @@ data Perception = Perception
, _cpAudition :: Audition
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Perception
data Vision = Eyes
{ _viFOV :: FloatFloat
, _viDist :: FloatFloat
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Vision
newtype Audition = Ears
{ _auDist :: FloatFloat
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Audition
data Vigilance
= Comatose
@@ -61,19 +60,17 @@ data Vigilance
| Vigilant
| Overstrung
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Vigilance
data Attention
= AttentiveTo {_getAttentiveTo :: IM.IntMap Awareness}
| Fixated {_getFixated :: Int}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Attention
data Awareness
= Suspicious Float
| Cognizant Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Awareness
$($(derive [d| instance Deriving (Store Awareness) |]))
makeLenses ''Perception
makeLenses ''Vision
@@ -85,3 +82,8 @@ deriveJSON defaultOptions ''Audition
deriveJSON defaultOptions ''Vigilance
deriveJSON defaultOptions ''Attention
deriveJSON defaultOptions ''Awareness
$($(derive [d| instance Deriving (Store Perception ) |]))
$($(derive [d| instance Deriving (Store Vision ) |]))
$($(derive [d| instance Deriving (Store Audition ) |]))
$($(derive [d| instance Deriving (Store Vigilance) |]))
$($(derive [d| instance Deriving (Store Attention) |]))