rattletrap-0.1.0: library/Rattletrap/AttributeValue/CamSettings.hs
module Rattletrap.AttributeValue.CamSettings where
import Rattletrap.Float32
import qualified Data.Binary.Bits.Get as BinaryBit
import qualified Data.Binary.Bits.Put as BinaryBit
data CamSettingsAttributeValue = CamSettingsAttributeValue
{ camSettingsAttributeValueFov :: Float32
, camSettingsAttributeValueHeight :: Float32
, camSettingsAttributeValueAngle :: Float32
, camSettingsAttributeValueDistance :: Float32
, camSettingsAttributeValueStiffness :: Float32
, camSettingsAttributeValueSwivelSpeed :: Float32
} deriving (Eq, Ord, Show)
getCamSettingsAttributeValue :: BinaryBit.BitGet CamSettingsAttributeValue
getCamSettingsAttributeValue = do
fov <- getFloat32Bits
height <- getFloat32Bits
angle <- getFloat32Bits
distance <- getFloat32Bits
stiffness <- getFloat32Bits
swivelSpeed <- getFloat32Bits
pure
(CamSettingsAttributeValue fov height angle distance stiffness swivelSpeed)
putCamSettingsAttributeValue :: CamSettingsAttributeValue -> BinaryBit.BitPut ()
putCamSettingsAttributeValue camSettingsAttributeValue = do
putFloat32Bits (camSettingsAttributeValueFov camSettingsAttributeValue)
putFloat32Bits (camSettingsAttributeValueHeight camSettingsAttributeValue)
putFloat32Bits (camSettingsAttributeValueAngle camSettingsAttributeValue)
putFloat32Bits (camSettingsAttributeValueDistance camSettingsAttributeValue)
putFloat32Bits (camSettingsAttributeValueStiffness camSettingsAttributeValue)
putFloat32Bits
(camSettingsAttributeValueSwivelSpeed camSettingsAttributeValue)