Add Store instances
This commit is contained in:
@@ -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) |]))
|
||||
|
||||
Reference in New Issue
Block a user