{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE StrictData #-} module Dodge.Data.GenParams where import GHC.Generics import Data.Aeson import Color import Dodge.Data.Damage.Type import Control.Lens import qualified Data.Map.Strict as M newtype GenParams = GenParams { _sensorCoding :: M.Map DamageType (PaletteColor,DecorationShape) } deriving (Eq,Ord,Show,Read,Generic) instance ToJSON GenParams where toEncoding = genericToEncoding defaultOptions instance FromJSON GenParams data DecorationShape = PLUS | SQUARE | CIRCLE | THREELINES deriving (Eq,Ord,Enum,Show,Read,Generic) instance ToJSON DecorationShape where toEncoding = genericToEncoding defaultOptions instance FromJSON DecorationShape makeLenses ''GenParams