module Rattletrap.Encode.ReplicationValue ( putReplicationValue ) where import Rattletrap.Encode.DestroyedReplication import Rattletrap.Encode.SpawnedReplication import Rattletrap.Encode.UpdatedReplication import Rattletrap.Type.ReplicationValue import qualified Data.Binary.Bits.Put as BinaryBits putReplicationValue :: ReplicationValue -> BinaryBits.BitPut () putReplicationValue :: ReplicationValue -> BitPut () putReplicationValue ReplicationValue value = case ReplicationValue value of ReplicationValueSpawned SpawnedReplication x -> do Bool -> BitPut () BinaryBits.putBool Bool True Bool -> BitPut () BinaryBits.putBool Bool True SpawnedReplication -> BitPut () putSpawnedReplication SpawnedReplication x ReplicationValueUpdated UpdatedReplication x -> do Bool -> BitPut () BinaryBits.putBool Bool True Bool -> BitPut () BinaryBits.putBool Bool False UpdatedReplication -> BitPut () putUpdatedReplication UpdatedReplication x ReplicationValueDestroyed DestroyedReplication x -> do Bool -> BitPut () BinaryBits.putBool Bool False DestroyedReplication -> BitPut () putDestroyedReplication DestroyedReplication x