Files
loop/src/Dodge/Data/ComposedItem.hs
T

55 lines
1.1 KiB
Haskell

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.ComposedItem where
import Control.Lens
import Dodge.Data.AmmoType
import Dodge.Data.Item
import Linear
import qualified Linear.Quaternion as Q
data ItemSF -- Structural Function
= UnloadedWeaponSF
| HeldPlatformSF
| UnderBarrelSlotSF
| UnderBarrelPlatformSF
| EquipmentPlatformSF
| GadgetPlatformSF
| WeaponScopeSF
| WeaponTargetingSF
| IntroScanSF
| TriggerSF
| ARHUDSF
| AmmoMagSF {_amsfLink :: Int , _amsfType :: AmmoType}
| RemoteScreenSF
| JoystickSF
| RemoteDetonatorSF
| SmokeReducerSF
| NoSF
| AmmoModifierSF AmmoType
| AmmoTargetingSF AmmoType
| AmmoPayloadSF AmmoType
| AmmoEffectSF AmmoType
| FunctionChangeSF
| MakeAutoSF
| ProjectileStabiliserSF
| GrenadeHitEffectSF
| ToggleSF
| MapperSF
| LaserWeaponSF
| PulseLaserSF
| CapacitorSF
| TransformerSF
| PulseBallSF
| PlasmaSF
| TorchSF
| PumpSF
deriving (Eq, Ord, Show, Read)
type CItem = (Item, ItemSF)
type OItem = (Item, ItemSF, (V3 Float,Q.Quaternion Float))
makeLenses ''ItemSF