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
+2
View File
@@ -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
View File
@@ -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
+2
View File
@@ -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
+2
View File
@@ -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
+6
View File
@@ -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
+2
View File
@@ -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
View File
@@ -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
+7
View File
@@ -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
+2
View File
@@ -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
+4
View File
@@ -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
+4
View File
@@ -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
+5
View File
@@ -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
+4
View File
@@ -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
+3
View File
@@ -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