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)