Add Binary instances
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.CurseStatus where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Data.Aeson
|
||||
import Data.Aeson.TH
|
||||
@@ -14,5 +15,6 @@ data CurseStatus
|
||||
| UndroppableIdentified
|
||||
| UndroppableUnidentified
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary CurseStatus
|
||||
|
||||
deriveJSON defaultOptions ''CurseStatus
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.Effect where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -18,6 +19,7 @@ data ItEffect = ItEffect
|
||||
, _ieOnStash :: ItInvEffect
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary ItEffect
|
||||
|
||||
data ItInvEffect
|
||||
= NoInvEffect
|
||||
@@ -28,12 +30,15 @@ data ItInvEffect
|
||||
| RemoveShieldWall
|
||||
| EffectWhileHeld ItInvEffect
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary ItInvEffect
|
||||
|
||||
data ItFloorEffect = NoFloorEffect
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary ItFloorEffect
|
||||
|
||||
data ItDropEffect = NoDropEffect
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary ItDropEffect
|
||||
|
||||
makeLenses ''ItEffect
|
||||
deriveJSON defaultOptions ''ItEffect
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.HeldDelay where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -27,6 +28,7 @@ data UseDelay -- should just be Delay
|
||||
, _warmMax :: Int
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary UseDelay
|
||||
|
||||
makeLenses ''UseDelay
|
||||
deriveJSON defaultOptions ''UseDelay
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.HeldScroll where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -21,6 +22,7 @@ data HeldScroll
|
||||
, _hsMaxInt :: Int
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary HeldScroll
|
||||
|
||||
makeLenses ''HeldScroll
|
||||
deriveJSON defaultOptions ''HeldScroll
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.HeldUse where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Data.Aeson
|
||||
import Data.Aeson.TH
|
||||
@@ -28,11 +29,13 @@ data HeldUse
|
||||
| HeldForceField
|
||||
| HeldShatter
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary HeldUse
|
||||
|
||||
data Cuse
|
||||
= CDoNothing
|
||||
| CHeal Int
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary Cuse
|
||||
|
||||
data Euse
|
||||
= EDoNothing
|
||||
@@ -44,6 +47,7 @@ data Euse
|
||||
| EonWristShield
|
||||
| EoffWristShield
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary Euse
|
||||
|
||||
data Luse
|
||||
= LDoNothing
|
||||
@@ -53,6 +57,7 @@ data Luse
|
||||
| LUnsafeBlink
|
||||
| LBoost
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary Luse
|
||||
|
||||
data HeldMod
|
||||
= HeldModNothing
|
||||
@@ -91,6 +96,7 @@ data HeldMod
|
||||
| RevolverXRepeatMod
|
||||
| BangConeMod
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary HeldMod
|
||||
|
||||
deriveJSON defaultOptions ''Cuse
|
||||
deriveJSON defaultOptions ''HeldMod
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Dodge.Data.Item.Location where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -15,6 +16,7 @@ data ItemLocation
|
||||
| OnFloor {_ipFlID :: Int}
|
||||
| InVoid
|
||||
deriving (Eq, Show, Read, Ord, Generic, Flat)
|
||||
instance Binary ItemLocation
|
||||
|
||||
makeLenses ''ItemLocation
|
||||
deriveJSON defaultOptions ''ItemLocation
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.Misc where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -18,6 +19,7 @@ data ItemDimension = ItemDimension
|
||||
, _dimAttachPos :: Point3
|
||||
}
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary ItemDimension
|
||||
|
||||
data ItemPortage
|
||||
= HeldItem
|
||||
@@ -27,15 +29,18 @@ data ItemPortage
|
||||
| WornItem
|
||||
| NoPortage
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary ItemPortage
|
||||
|
||||
--data ItemValue = ItemValue
|
||||
-- { _ivInt :: Int
|
||||
-- , _ivType :: ItemValueType
|
||||
-- }
|
||||
-- deriving (Eq, Show, Read, Generic, Flat)
|
||||
-- instance Binary ItemValue
|
||||
--
|
||||
--data ItemValueType = MundaneItem | ArtefactItem
|
||||
-- deriving (Eq, Show, Read, Generic, Flat)
|
||||
-- instance Binary ItemValueType
|
||||
|
||||
makeLenses ''ItemDimension
|
||||
makeLenses ''ItemPortage
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.Params where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Color
|
||||
import Control.Lens
|
||||
@@ -70,12 +71,15 @@ data ItemParams
|
||||
| ParamMID {_paramMID :: Maybe Int}
|
||||
| BoostPropIX {_boostPropIX :: Maybe Int}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary ItemParams
|
||||
|
||||
data ShrinkGunStatus = FullSize | Shrunk
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary ShrinkGunStatus
|
||||
|
||||
data PreviousArcEffect = NoPreviousArcEffect | PerturbTillBreakPreviousArc
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary PreviousArcEffect
|
||||
|
||||
data GunBarrels
|
||||
= MultiBarrel
|
||||
@@ -89,6 +93,7 @@ data GunBarrels
|
||||
}
|
||||
| SingleBarrel {_brlInaccuracy :: Float}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary GunBarrels
|
||||
|
||||
data Nozzle = Nozzle
|
||||
{ _nzPressure :: Float
|
||||
@@ -99,12 +104,14 @@ data Nozzle = Nozzle
|
||||
, _nzLength :: Float
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary Nozzle
|
||||
|
||||
data BarrelSpread
|
||||
= AlignedBarrels
|
||||
| SpreadBarrels {_spreadAngle :: Float}
|
||||
| RotatingBarrels {_rotatingBarrelInaccuracy :: Float}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary BarrelSpread
|
||||
|
||||
makeLenses ''BarrelSpread
|
||||
makeLenses ''ItemParams
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.Scope where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -31,6 +32,7 @@ data Scope
|
||||
_scopeIsCamera :: Bool
|
||||
}
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary Scope
|
||||
|
||||
makeLenses ''Scope
|
||||
deriveJSON defaultOptions ''Scope
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.Targeting where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -22,6 +23,7 @@ data Targeting
|
||||
, _tgActive :: Bool
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary Targeting
|
||||
|
||||
data TargetUpdate
|
||||
= NoTargetUpdate
|
||||
@@ -30,6 +32,7 @@ data TargetUpdate
|
||||
| TargetRBCreatureUpdate
|
||||
| TargetCursorUpdate
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary TargetUpdate
|
||||
|
||||
data TargetDraw
|
||||
= NoTargetDraw
|
||||
@@ -37,6 +40,7 @@ data TargetDraw
|
||||
| SimpleDrawTarget
|
||||
| TargetRBCreatureDraw
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary TargetDraw
|
||||
|
||||
makeLenses ''Targeting
|
||||
deriveJSON defaultOptions ''Targeting
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.Tweak where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -17,6 +18,7 @@ data ItemTweaks
|
||||
{ _tweakParams :: IM.IntMap TweakParam
|
||||
}
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary ItemTweaks
|
||||
|
||||
data TweakType
|
||||
= TweakPhaseV
|
||||
@@ -25,6 +27,7 @@ data TweakType
|
||||
| TweakSpinAmount
|
||||
| TweakThrustDelay
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary TweakType
|
||||
|
||||
data TweakParam = TweakParam
|
||||
{ _tweakType :: TweakType -- Int -> Item -> Item
|
||||
@@ -32,6 +35,7 @@ data TweakParam = TweakParam
|
||||
, _tweakMax :: Int
|
||||
}
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary TweakParam
|
||||
|
||||
makeLenses ''TweakParam
|
||||
makeLenses ''ItemTweaks
|
||||
|
||||
@@ -13,6 +13,7 @@ module Dodge.Data.Item.Use (
|
||||
module Dodge.Data.Hammer,
|
||||
) where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -51,6 +52,7 @@ data ItemUse
|
||||
| CraftUse
|
||||
{_useAmount :: ItAmount}
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary ItemUse
|
||||
|
||||
data AimParams = AimParams
|
||||
{ _aimWeight :: Int
|
||||
@@ -61,6 +63,7 @@ data AimParams = AimParams
|
||||
, _aimMuzPos :: Float
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary AimParams
|
||||
|
||||
data AimStance
|
||||
= TwoHandTwist
|
||||
@@ -68,6 +71,7 @@ data AimStance
|
||||
| OneHand
|
||||
| LeaveHolstered
|
||||
deriving (Eq, Show, Ord, Enum, Read, Generic, Flat)
|
||||
instance Binary AimStance
|
||||
|
||||
data ItZoom = ItZoom
|
||||
{ _itZoomMax :: Float
|
||||
@@ -75,6 +79,7 @@ data ItZoom = ItZoom
|
||||
, _itZoomFac :: Float
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary ItZoom
|
||||
|
||||
makeLenses ''ItemUse
|
||||
makeLenses ''AimParams
|
||||
|
||||
@@ -11,6 +11,7 @@ module Dodge.Data.Item.Use.Consumption (
|
||||
module Dodge.Data.Item.Use.Consumption.LoadAction,
|
||||
) where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -29,6 +30,7 @@ data HeldConsumption
|
||||
}
|
||||
| NoConsumption
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary HeldConsumption
|
||||
|
||||
data LeftConsumption
|
||||
= AutoRecharging
|
||||
@@ -42,12 +44,14 @@ data LeftConsumption
|
||||
, _wpCharge :: Int
|
||||
}
|
||||
deriving (Eq, Show, Read, Generic, Flat)
|
||||
instance Binary LeftConsumption
|
||||
|
||||
newtype ItAmount = ItAmount {_getItAmount :: Int}
|
||||
-- deriving (Eq, Ord, Read, Show, Num, Real, Generic, Flat)
|
||||
deriving newtype (Eq, Ord, Read, Show, Num, Real, Enum, Integral)
|
||||
deriving stock (Generic)
|
||||
deriving anyclass (Flat)
|
||||
instance Binary ItAmount
|
||||
|
||||
makeLenses ''HeldConsumption
|
||||
makeLenses ''LeftConsumption
|
||||
|
||||
@@ -9,6 +9,7 @@ module Dodge.Data.Item.Use.Consumption.Ammo (
|
||||
module Dodge.Data.Payload,
|
||||
) where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -18,9 +19,11 @@ import Dodge.Data.Payload
|
||||
|
||||
data ProjectileDraw = DrawShell | DrawRemoteShell | DrawDrone | DrawBlankProjectile
|
||||
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
|
||||
instance Binary ProjectileDraw
|
||||
|
||||
data ProjectileCreate = CreateShell | CreateTrackingShell
|
||||
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
|
||||
instance Binary ProjectileCreate
|
||||
|
||||
data ProjectileUpdate
|
||||
= PJThrust {_pjuStart :: Int, _pjuEnd :: Int}
|
||||
@@ -34,6 +37,7 @@ data ProjectileUpdate
|
||||
| PJShellCollisionCheck
|
||||
| PJRemoteShellCollisionCheck
|
||||
deriving (Show, Read, Eq, Ord, Generic, Flat)
|
||||
instance Binary ProjectileUpdate
|
||||
|
||||
data AmmoType
|
||||
= ProjectileAmmo
|
||||
@@ -57,12 +61,15 @@ data AmmoType
|
||||
}
|
||||
| GenericAmmo
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary AmmoType
|
||||
|
||||
data ForceFieldType = DefaultForceField
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary ForceFieldType
|
||||
|
||||
data GasCreate = CreatePoisonGas | CreateFlame
|
||||
deriving (Eq, Ord, Show, Enum, Bounded, Read, Generic, Flat)
|
||||
instance Binary GasCreate
|
||||
|
||||
makeLenses ''ProjectileUpdate
|
||||
makeLenses ''AmmoType
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
module Dodge.Data.Item.Use.Consumption.LoadAction where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -18,14 +19,17 @@ data LoadAction
|
||||
| LoadAdd {_actionTime :: Int, _actionSound :: SoundID, _insertMax :: Int}
|
||||
| LoadPrime {_actionTime :: Int, _actionSound :: SoundID}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary LoadAction
|
||||
|
||||
data InvSel = InvSel {_iselPos :: Int, _iselAction :: InvSelAction}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary InvSel
|
||||
|
||||
data InvSelAction
|
||||
= NoInvSelAction
|
||||
| ReloadAction {_actionProgress :: Int, _reloadAction :: LoadAction, _actionHammer :: HammerType}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary InvSelAction
|
||||
|
||||
makeLenses ''LoadAction
|
||||
makeLenses ''InvSel
|
||||
|
||||
@@ -8,6 +8,7 @@ module Dodge.Data.Item.Use.Equipment (
|
||||
module Dodge.Data.Item.Use.Equipment,
|
||||
) where
|
||||
|
||||
import Data.Binary
|
||||
import Flat
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
@@ -24,12 +25,14 @@ data EquipEffect = EquipEffect
|
||||
, _eeViewDist :: Maybe Float
|
||||
}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary EquipEffect
|
||||
|
||||
data EquipParams
|
||||
= NoEquipParams
|
||||
| EquipID {_eparamID :: Int}
|
||||
| EquipCounter {_eparamInt :: Int}
|
||||
deriving (Eq, Ord, Show, Read, Generic, Flat)
|
||||
instance Binary EquipParams
|
||||
|
||||
makeLenses ''EquipEffect
|
||||
makeLenses ''EquipParams
|
||||
|
||||
Reference in New Issue
Block a user