Add Binary instances

This commit is contained in:
2022-08-21 10:58:19 +01:00
parent 386a2b4732
commit 1ce7d4a72d
95 changed files with 345 additions and 3 deletions
+12
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Combine where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -19,9 +20,11 @@ data ItemType = ItemType
, _iyStack :: Stack
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItemType
data Stack = NoStack | Stack ItAmount
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Stack
data CraftType
= PIPE
@@ -71,6 +74,7 @@ data CraftType
| SIZEMODULE
| GRAVITYMODULE
deriving (Eq, Ord, Show, Enum, Read, Generic, Flat)
instance Binary CraftType
data ItemBaseType
= NoItemType
@@ -80,11 +84,13 @@ data ItemBaseType
| Consumable {_ibtConsumable :: ConsumableItemType}
| CRAFT CraftType
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItemBaseType
data ConsumableItemType
= MEDKIT Int
| EXPLOSIVES
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ConsumableItemType
data EquipItemType
= MAGSHIELD
@@ -101,6 +107,7 @@ data EquipItemType
| JETPACK
| AUTODETECTOR Detector
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary EquipItemType
data LeftItemType
= BOOSTER
@@ -110,6 +117,7 @@ data LeftItemType
| SHRINKER
| SPAWNER
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LeftItemType
data HeldItemType
= BANGSTICK {_xNum :: Int}
@@ -158,6 +166,7 @@ data HeldItemType
| FLATSHIELD
| KEYCARD Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HeldItemType
data ItemModuleType
= EMPTYMODULE
@@ -183,12 +192,14 @@ data ItemModuleType
| EXTRABATTERY
| ATTACHTORCH
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItemModuleType
data Detector
= ITEMDETECTOR
| CREATUREDETECTOR
| WALLDETECTOR
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Detector
data ModuleSlot
= ModBullet
@@ -203,6 +214,7 @@ data ModuleSlot
| ModDualBeam
| ModHeldAttach
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ModuleSlot
instance ToJSONKey ModuleSlot