rattletrap-9.0.3: source/library/Rattletrap/Encode/RigidBodyStateAttribute.hs
module Rattletrap.Encode.RigidBodyStateAttribute
( putRigidBodyStateAttribute
)
where
import Rattletrap.Encode.Rotation
import Rattletrap.Encode.Vector
import Rattletrap.Type.RigidBodyStateAttribute
import qualified Data.Binary.Bits.Put as BinaryBits
putRigidBodyStateAttribute :: RigidBodyStateAttribute -> BinaryBits.BitPut ()
putRigidBodyStateAttribute rigidBodyStateAttribute = do
BinaryBits.putBool (rigidBodyStateAttributeSleeping rigidBodyStateAttribute)
putVector (rigidBodyStateAttributeLocation rigidBodyStateAttribute)
putRotation (rigidBodyStateAttributeRotation rigidBodyStateAttribute)
case rigidBodyStateAttributeLinearVelocity rigidBodyStateAttribute of
Nothing -> pure ()
Just linearVelocity -> putVector linearVelocity
case rigidBodyStateAttributeAngularVelocity rigidBodyStateAttribute of
Nothing -> pure ()
Just angularVelocity -> putVector angularVelocity