private static void OnRefillFromBottle(MySyncCharacter syncObject, ref RefillFromBottleMsg message, MyNetworkClient sender) { if (syncObject.Entity == MySession.LocalCharacter) { syncObject.Entity.ShowRefillFromBottleNotification(); } }
private static void OnRefillFromBottle(MySyncCharacter syncObject, ref RefillFromBottleMsg message, MyNetworkClient sender) { if (syncObject.Entity == MySession.Static.LocalCharacter && syncObject.Entity.OxygenComponent != null) { syncObject.Entity.OxygenComponent.ShowRefillFromBottleNotification(message.GasId); } }
private static void OnPlayerMessageRequest(MySyncCharacter sync, ref SendPlayerMessageMsg msg, MyNetworkClient sender) { //Ignore messages that have improper lengths if (msg.Text.Length == 0 || msg.Text.Length > MyChatConstants.MAX_CHAT_STRING_LENGTH) { return; } var receiverId = MySession.Static.Players.TryGetPlayerIdentity(new MyPlayer.PlayerId(msg.ReceiverSteamId)); var senderId = MySession.Static.Players.TryGetPlayerIdentity(new MyPlayer.PlayerId(msg.SenderSteamId)); //TODO(AF) Check if message was already received if (receiverId != null && receiverId.Character != null && senderId != null && senderId.Character != null && MyAntennaSystem.CheckConnection(senderId, receiverId)) { Sync.Layer.SendMessage(ref msg, msg.ReceiverSteamId, MyTransportMessageEnum.Success); Sync.Layer.SendMessage(ref msg, sender.SteamUserId, MyTransportMessageEnum.Success); //Save chat history on server for non-server players if (receiverId.Character != MySession.LocalCharacter) { MyChatSystem.AddPlayerChatItem(receiverId.IdentityId, senderId.IdentityId, new MyPlayerChatItem(msg.Text, senderId.IdentityId, msg.Timestamp, true)); } if (senderId.Character != MySession.LocalCharacter) { MyChatSystem.AddPlayerChatItem(senderId.IdentityId, receiverId.IdentityId, new MyPlayerChatItem(msg.Text, senderId.IdentityId, msg.Timestamp, true)); } } }
private static void OnFlagsChanged(MySyncCharacter sync, ref ChangeFlagsMsg msg, MyNetworkClient sender) { if (MyFakes.CHARACTER_SERVER_SYNC) { var handler = sync.FlagsChanged; if (handler != null) { handler(msg.EnableJetpack, msg.EnableDampeners, msg.EnableLights, msg.EnableIronsight, msg.EnableBroadcast); } if (Sync.IsServer) { Sync.Layer.SendMessageToAll(ref msg); } } else if (sync.ResponsibleForUpdate(sender)) { var handler = sync.FlagsChanged; if (handler != null) { handler(msg.EnableJetpack, msg.EnableDampeners, msg.EnableLights, msg.EnableIronsight, msg.EnableBroadcast); } } }
private static void OnGlobalMessageRequest(MySyncCharacter sync, ref SendGlobalMessageMsg msg, MyNetworkClient sender) { //Ignore messages that have improper lengths if (msg.Text.Length == 0 || msg.Text.Length > MyChatConstants.MAX_CHAT_STRING_LENGTH) { return; } var senderId = MySession.Static.Players.TryGetPlayerIdentity(new MyPlayer.PlayerId(msg.SenderSteamId)); var allPlayers = MySession.Static.Players.GetOnlinePlayers(); foreach (var player in allPlayers) { var receiverId = player.Identity; if (receiverId != null && receiverId.Character != null && senderId != null && senderId.Character != null && MyAntennaSystem.CheckConnection(senderId, receiverId)) { Sync.Layer.SendMessage(ref msg, player.Id.SteamId, MyTransportMessageEnum.Success); //Save chat history on server for non-server players if (receiverId.Character != MySession.LocalCharacter) { MyChatSystem.AddGlobalChatItem(player.Identity.IdentityId, new MyGlobalChatItem(msg.Text, senderId.IdentityId)); } } } }
private static void OnUpdateOxygen(MySyncCharacter syncObject, ref UpdateOxygenMsg message, MyNetworkClient sender) { if (syncObject.Entity.OxygenComponent == null) { return; } syncObject.Entity.OxygenComponent.SuitOxygenAmount = message.OxygenAmount; }
private static void OnFactionMessageRequest(MySyncCharacter sync, ref SendNewFactionMessageMsg msg, MyNetworkClient sender) { //Ignore messages that have improper lengths if (msg.ChatItem.Text.Length == 0 || msg.ChatItem.Text.Length > MyChatConstants.MAX_CHAT_STRING_LENGTH) { return; } long currentSenderId = MyEntityIdentifier.ConstructId(MyEntityIdentifier.ID_OBJECT_TYPE.IDENTITY, msg.ChatItem.IdentityIdUniqueNumber); var senderId = MySession.Static.Players.TryGetIdentity(currentSenderId); var chatItem = new MyFactionChatItem(); chatItem.Init(msg.ChatItem); //Find all members that can receive this messages m_tempValidIds.Clear(); for (int i = 0; i < msg.ChatItem.PlayersToSendToUniqueNumber.Count; i++) { if (!msg.ChatItem.IsAlreadySentTo[i]) { long receiverIdentityId = MyEntityIdentifier.ConstructId(MyEntityIdentifier.ID_OBJECT_TYPE.IDENTITY, msg.ChatItem.PlayersToSendToUniqueNumber[i]); var receiverId = MySession.Static.Players.TryGetIdentity(receiverIdentityId); if (receiverId != null && receiverId.Character != null && MyAntennaSystem.CheckConnection(senderId, receiverId)) { m_tempValidIds.Add(receiverIdentityId); } } } //Set their sent flag to true, so that everyone knows they already got it (no need for confirm message) foreach (var id in m_tempValidIds) { chatItem.PlayersToSendTo[id] = true; } //Save the flags back in the message msg.ChatItem = chatItem.GetObjectBuilder(); //Send success message back to all recepient members foreach (var id in m_tempValidIds) { MyPlayer.PlayerId receiverPlayerId; MySession.Static.Players.TryGetPlayerId(id, out receiverPlayerId); ulong steamId = receiverPlayerId.SteamId; Sync.Layer.SendMessage(ref msg, steamId, MyTransportMessageEnum.Success); } //Save chat history on server for non-server players if (senderId.Character != MySession.LocalCharacter) { MyChatSystem.AddFactionChatItem(senderId.IdentityId, msg.FactionId1, msg.FactionId2, chatItem); } }
private static void OnSwitchCharacterModel(MySyncCharacter sync, ref SwitchCharacterModelMsg msg, MyNetworkClient sender) { if (sync.ResponsibleForUpdate(sender)) { var handler = sync.CharacterModelSwitched; if (handler != null) { handler(msg.Model, msg.ColorMaskHSV); } } }
private static void OnFlagsChanged(MySyncCharacter sync, ref ChangeFlagsMsg msg, MyNetworkClient sender) { if (sync.ResponsibleForUpdate(sender)) { var handler = sync.FlagsChanged; if (handler != null) { handler(msg.EnableJetpack, msg.EnableDampeners, msg.EnableLights, msg.EnableIronsight, msg.EnableBroadcast); } } }
private static void OnUpdateStoredGas(MySyncCharacter syncObject, ref UpdateGasFillLevelMsg message, MyNetworkClient sender) { if (syncObject.Entity.OxygenComponent == null) { return; } MyDefinitionId gasId = message.GasId; syncObject.Entity.OxygenComponent.UpdateStoredGasLevel(ref gasId, message.FillLevel); }
private static void OnMovementStateChanged(MySyncCharacter sync, ref ChangeMovementStateMsg msg, MyNetworkClient sender) { if (sync.ResponsibleForUpdate(sender)) { var handler = sync.MovementStateChanged; if (handler != null) { handler(msg.MovementState); } } }
private static void OnSecondarySoundPlay(MySyncCharacter syncObject, ref PlaySecondarySoundMsg msg, MyNetworkClient sender) { if (!MySandboxGame.IsDedicated) { syncObject.Entity.StartSecondarySound(msg.SoundId, sync: false); } if (Sync.IsServer) { Sync.Layer.SendMessageToAllButOne(ref msg, sender.SteamUserId); } }
private static void OnAnimationCommand(MySyncCharacter sync, ref AnimationCommandMsg msg, MyNetworkClient sender) { sync.Entity.AddCommand(new MyAnimationCommand() { AnimationSubtypeName = msg.AnimationSubtypeName, Mode = msg.Mode, Area = msg.Area, BlendTime = msg.BlendTime, TimeScale = msg.TimeScale, Loop = msg.Loop }); }
private static void OnHeadOrSpineChanged(MySyncCharacter sync, ref ChangeHeadOrSpineMsg msg, MyNetworkClient sender) { if (sync.ResponsibleForUpdate(sender)) { var handler = sync.HeadOrSpineChanged; if (handler != null) { handler(msg.HeadLocalXAngle, msg.HeadLocalYAngle, msg.AdditionalSpineRotation, msg.AdditionalHeadRotation, msg.AdditionalHandRotation, msg.AdditionalUpperHandRotation); } } }
static void OnAttachToCockpit(MySyncCharacter sync, ref AttachToCockpitMsg msg, MyNetworkClient sender) { MyCharacter character = sync.Entity; MyCockpit cockpit = MyEntities.GetEntityById(msg.CockpitEntityId) as MyCockpit; Debug.Assert(cockpit != null); if (cockpit == null) { return; } cockpit.AttachPilot(character, false); }
private static void OnAnimationCommand(MySyncCharacter sync, ref AnimationCommandMsg msg, MyNetworkClient sender) { sync.Entity.AddCommand(new MyAnimationCommand() { AnimationSubtypeName = msg.AnimationSubtypeName, PlaybackCommand = msg.PlaybackCommand, BlendOption = msg.BlendOption, FrameOption = msg.FrameOption, Area = msg.Area, BlendTime = msg.BlendTime, TimeScale = msg.TimeScale, }); }
private static void OnCharacterInput(MySyncCharacter sync, ref CharacterInputMsg msg, MyNetworkClient sender) { sender.ClientFrameId = msg.ClientFrameId; sync.CachedMovementState = msg; var matrix = MatrixD.CreateFromQuaternion(msg.Orientation); matrix.Translation = msg.Position; sync.Entity.WorldMatrix = matrix; if (Sync.IsServer) { Sync.Layer.SendMessageToAllButOne(ref msg, sender.SteamUserId); } }
private static void OnGlobalMessageSuccess(MySyncCharacter sync, ref SendGlobalMessageMsg msg, MyNetworkClient sender) { var senderId = MySession.Static.Players.TryGetPlayerIdentity(new MyPlayer.PlayerId(msg.SenderSteamId)); if (MySession.LocalCharacter != null) { MyChatSystem.AddGlobalChatItem(MySession.LocalPlayerId, new MyGlobalChatItem(msg.Text, senderId.IdentityId)); MySession.Static.ChatSystem.OnNewGlobalMessage(senderId.IdentityId); if (MySession.LocalPlayerId != senderId.IdentityId) { MySession.Static.Gpss.ScanText(msg.Text, MyTexts.GetString(MySpaceTexts.TerminalTab_GPS_NewFromBroadcast)); } } }
private static void OnFactionMessageSuccess(MySyncCharacter sync, ref SendNewFactionMessageMsg msg, MyNetworkClient sender) { long senderIdentityId = MyEntityIdentifier.ConstructId(MyEntityIdentifier.ID_OBJECT_TYPE.IDENTITY, msg.ChatItem.IdentityIdUniqueNumber); var factionChatItem = new MyFactionChatItem(); factionChatItem.Init(msg.ChatItem); if (!(Sync.IsServer && senderIdentityId != MySession.LocalPlayerId)) { MyChatSystem.AddFactionChatItem(MySession.LocalPlayerId, msg.FactionId1, msg.FactionId2, factionChatItem); } if (senderIdentityId != MySession.LocalPlayerId) { MySession.Static.Gpss.ScanText(factionChatItem.Text, MyTexts.GetString(MySpaceTexts.TerminalTab_GPS_NewFromFactionComms)); } MySession.Static.ChatSystem.OnNewFactionMessage(msg.FactionId1, msg.FactionId2, senderIdentityId, true); }
private static void OnAnimationCommand(MySyncCharacter sync, ref AnimationCommandMsg msg, MyNetworkClient sender) { sync.Entity.AddCommand(new MyAnimationCommand() { AnimationSubtypeName = msg.AnimationSubtypeName, PlaybackCommand = msg.PlaybackCommand, BlendOption = msg.BlendOption, FrameOption = msg.FrameOption, Area = msg.Area, BlendTime = msg.BlendTime, TimeScale = msg.TimeScale, }); if (Sync.IsServer) { Sync.Layer.SendMessageToAllButOne(ref msg, sender.SteamUserId); } }
private static void OnCharacterInput(MySyncCharacter sync, ref CharacterInputMsg msg, MyNetworkClient sender) { sender.ClientFrameId = msg.ClientFrameId; if (sync.Entity.GetCurrentMovementState() != MyCharacterMovementEnum.Sitting && !sync.Entity.IsDead) { // Set orientation var pos = sync.Entity.PositionComp.GetPosition(); var m = Matrix.CreateFromQuaternion(msg.Orientation); m.Translation = pos; sync.Entity.WorldMatrix = m; sync.m_moveIndicator = msg.MoveIndicator; sync.m_rotationIndicator = msg.RotationIndicator; sync.m_movementFlags = msg.MovementFlags; } }
private static void OnRagdollTransformsUpdate(MySyncCharacter syncObject, ref RagdollTransformsMsg message, MyNetworkClient sender) { var ragdollComponent = syncObject.Entity.Components.Get <MyCharacterRagdollComponent>(); if (ragdollComponent == null) { return; } if (syncObject.Entity.Physics == null) { return; } if (syncObject.Entity.Physics.Ragdoll == null) { return; } if (ragdollComponent.RagdollMapper == null) { return; } if (!syncObject.Entity.Physics.Ragdoll.InWorld) { return; } if (!ragdollComponent.RagdollMapper.IsActive) { return; } Debug.Assert(message.worldOrientation != null && message.worldOrientation != Quaternion.Zero, "Received invalid ragdoll orientation from server!"); Debug.Assert(message.worldPosition != null && message.worldPosition != Vector3.Zero, "Received invalid ragdoll orientation from server!"); Debug.Assert(message.transformsOrientations != null && message.transformsPositions != null, "Received empty ragdoll transformations from server!"); Debug.Assert(message.transformsPositions.Length == message.TransformsCount && message.transformsOrientations.Length == message.TransformsCount, "Received ragdoll data count doesn't match!"); Matrix worldMatrix = Matrix.CreateFromQuaternion(message.worldOrientation); worldMatrix.Translation = message.worldPosition; Matrix[] transforms = new Matrix[message.TransformsCount]; for (int i = 0; i < message.TransformsCount; ++i) { transforms[i] = Matrix.CreateFromQuaternion(message.transformsOrientations[i]); transforms[i].Translation = message.transformsPositions[i]; } ragdollComponent.RagdollMapper.UpdateRigidBodiesTransformsSynced(message.TransformsCount, worldMatrix, transforms); }
private static void OnSwitchCharacterModel(MySyncCharacter sync, ref SwitchCharacterModelMsg msg, MyNetworkClient sender) { if (Sync.IsServer && sync.ResponsibleForUpdate(sender)) { var handler = sync.CharacterModelSwitched; if (handler != null) { handler(msg.Model, msg.ColorMaskHSV); } Sync.Layer.SendMessageToAllButOne(ref msg, sender.SteamUserId); } else if (sender.SteamUserId == Sync.ServerId || sender.SteamUserId == Sync.MyId) { var handler = sync.CharacterModelSwitched; if (handler != null) { handler(msg.Model, msg.ColorMaskHSV); } } }
private static void OnPlayerMessageSuccess(MySyncCharacter sync, ref SendPlayerMessageMsg msg, MyNetworkClient sender) { var receiverId = MySession.Static.Players.TryGetPlayerIdentity(new MyPlayer.PlayerId(msg.ReceiverSteamId)); var senderId = MySession.Static.Players.TryGetPlayerIdentity(new MyPlayer.PlayerId(msg.SenderSteamId)); if (receiverId != null && receiverId.Character != null && senderId != null && senderId.Character != null) { if (receiverId.Character == MySession.LocalCharacter && receiverId.Character != senderId.Character) { MyChatSystem.AddPlayerChatItem(receiverId.IdentityId, senderId.IdentityId, new MyPlayerChatItem(msg.Text, senderId.IdentityId, msg.Timestamp, true)); MySession.Static.ChatSystem.OnNewPlayerMessage(senderId.IdentityId, senderId.IdentityId); MySession.Static.Gpss.ScanText(msg.Text, MyTexts.GetString(MySpaceTexts.TerminalTab_GPS_NewFromPrivateComms)); } else { MyChatSystem.SetPlayerChatItemSent(senderId.IdentityId, receiverId.IdentityId, msg.Text, new TimeSpan(msg.Timestamp), true); MySession.Static.ChatSystem.OnNewPlayerMessage(receiverId.IdentityId, senderId.IdentityId); } } }
private static void OnCharacterPhysicsEnabled(MySyncCharacter sync, ref SetCharacterPhysicsEnabledMsg msg, MyNetworkClient sender) { sync.Entity.Physics.Enabled = msg.Enabled; }
protected override MySyncComponentBase OnCreateSync() { var result = new MySyncCharacter(this); result.CharacterModelSwitched += ChangeModelAndColorInternal; result.SwitchToWeaponSuccessHandler += SwitchToWeaponSuccess; result.SwitchAmmoMagazineSuccessHandler += SwitchAmmoMagazineSuccess; //result.ShootHandler += ShootSuccess; return result; }
private static void OnConfirmFactionMessageSuccess(MySyncCharacter syncObject, ref ConfirmFactionMessageMsg message, MyNetworkClient sender) { ConfirmMessage(ref message, MySession.LocalPlayerId); }
private static void OnRefillFromBottle(MySyncCharacter syncObject, ref RefillFromBottleMsg message, MyNetworkClient sender) { if (syncObject.Entity == MySession.LocalCharacter) { syncObject.Entity.OxygenComponent.ShowRefillFromBottleNotification(); } }
private static void OnCharacterInput(MySyncCharacter sync, ref CharacterInputMsg msg, MyNetworkClient sender) { sender.ClientFrameId = msg.ClientFrameId; sync.CachedMovementState = msg; var matrix = MatrixD.CreateFromQuaternion(msg.Orientation); matrix.Translation = msg.Position; sync.Entity.WorldMatrix = matrix; if (Sync.IsServer) Sync.Layer.SendMessageToAllButOne(ref msg, sender.SteamUserId); }
private static void OnHeadOrSpineChanged(MySyncCharacter sync, ref ChangeHeadOrSpineMsg msg, MyNetworkClient sender) { if (sync.ResponsibleForUpdate(sender)) { var handler = sync.HeadOrSpineChanged; if (handler != null) handler(msg.HeadLocalXAngle, msg.HeadLocalYAngle, msg.AdditionalSpineRotation, msg.AdditionalHeadRotation, msg.AdditionalHandRotation, msg.AdditionalUpperHandRotation); } }
private static void OnUpdateOxygen(MySyncCharacter syncObject, ref UpdateOxygenMsg message, MyNetworkClient sender) { syncObject.Entity.OxygenComponent.SuitOxygenAmount = message.OxygenAmount; }
public void OnUpdateStoredGas(MySyncCharacter syncObject, ref UpdateGasFillLevelMsg message, MyNetworkClient sender) { syncObject.Entity.OxygenComponent.UpdateStoredGasLevel(message.GasId, message.FillLevel); }
private static void OnUpdateOxygen(MySyncCharacter syncObject, ref UpdateOxygenMsg message, MyNetworkClient sender) { syncObject.Entity.SuitOxygenAmount = message.OxygenAmount; }
private static void OnFlagsChanged(MySyncCharacter sync, ref ChangeFlagsMsg msg, MyNetworkClient sender) { if (MyFakes.CHARACTER_SERVER_SYNC) { var handler = sync.FlagsChanged; if (handler != null) handler(msg.EnableJetpack, msg.EnableDampeners, msg.EnableLights, msg.EnableIronsight, msg.EnableBroadcast, msg.TargetFromCamera); if (Sync.IsServer) Sync.Layer.SendMessageToAll(ref msg); } else if (sync.ResponsibleForUpdate(sender)) { var handler = sync.FlagsChanged; if (handler != null) handler(msg.EnableJetpack, msg.EnableDampeners, msg.EnableLights, msg.EnableIronsight, msg.EnableBroadcast, msg.TargetFromCamera); } }
private static void OnSecondarySoundPlay(MySyncCharacter syncObject, ref PlaySecondarySoundMsg msg, MyNetworkClient sender) { if (!MySandboxGame.IsDedicated) { syncObject.Entity.SoundComp.StartSecondarySound(msg.SoundId, sync: false); } if (Sync.IsServer) { Sync.Layer.SendMessageToAllButOne(ref msg, sender.SteamUserId); } }
private static void OnSwitchCharacterModel(MySyncCharacter sync, ref SwitchCharacterModelMsg msg, MyNetworkClient sender) { if (Sync.IsServer && sync.ResponsibleForUpdate(sender)) { var handler = sync.CharacterModelSwitched; if (handler != null) { handler(msg.Model, msg.ColorMaskHSV); } Sync.Layer.SendMessageToAllButOne(ref msg, sender.SteamUserId); } else if (sender.SteamUserId == Sync.ServerId || sender.SteamUserId == Sync.MyId) { var handler = sync.CharacterModelSwitched; if (handler != null) handler(msg.Model, msg.ColorMaskHSV); } }
static void OnAttachToCockpit(MySyncCharacter sync, ref AttachToCockpitMsg msg, MyNetworkClient sender) { MyCharacter character = sync.Entity; MyCockpit cockpit = MyEntities.GetEntityById(msg.CockpitEntityId) as MyCockpit; Debug.Assert(cockpit != null); if (cockpit == null) return; cockpit.AttachPilot(character, false); }
private static void OnSwitchCharacterModel(MySyncCharacter sync, ref SwitchCharacterModelMsg msg, MyNetworkClient sender) { if (sync.ResponsibleForUpdate(sender)) { var handler = sync.CharacterModelSwitched; if (handler != null) handler(msg.Model, msg.ColorMaskHSV); } }
private static void OnMovementStateChanged(MySyncCharacter sync, ref ChangeMovementStateMsg msg, MyNetworkClient sender) { if (sync.ResponsibleForUpdate(sender)) { var handler = sync.MovementStateChanged; if (handler != null) handler(msg.MovementState); } }
private static void OnUpdateStoredGas(MySyncCharacter syncObject, ref UpdateGasFillLevelMsg message, MyNetworkClient sender) { if (syncObject.Entity.OxygenComponent == null) return; MyDefinitionId gasId = message.GasId; syncObject.Entity.OxygenComponent.UpdateStoredGasLevel(ref gasId, message.FillLevel); }
private static void OnFlagsChanged(MySyncCharacter sync, ref ChangeFlagsMsg msg, MyNetworkClient sender) { if (sync.ResponsibleForUpdate(sender)) { var handler = sync.FlagsChanged; if (handler != null) handler(msg.EnableJetpack, msg.EnableDampeners, msg.EnableLights, msg.EnableIronsight, msg.EnableBroadcast); } }
private static void OnRagdollTransformsUpdate(MySyncCharacter syncObject, ref RagdollTransformsMsg message, MyNetworkClient sender) { var ragdollComponent = syncObject.Entity.Components.Get<MyCharacterRagdollComponent>(); if (ragdollComponent == null) return; if (syncObject.Entity.Physics == null) return; if (syncObject.Entity.Physics.Ragdoll == null) return; if (ragdollComponent.RagdollMapper == null) return; if (!syncObject.Entity.Physics.Ragdoll.InWorld) return; if (!ragdollComponent.RagdollMapper.IsActive) return; Debug.Assert(message.worldOrientation != null && message.worldOrientation != Quaternion.Zero, "Received invalid ragdoll orientation from server!"); Debug.Assert(message.worldPosition != null && message.worldPosition != Vector3.Zero, "Received invalid ragdoll orientation from server!"); Debug.Assert(message.transformsOrientations != null && message.transformsPositions != null, "Received empty ragdoll transformations from server!"); Debug.Assert(message.transformsPositions.Count() == message.TransformsCount && message.transformsOrientations.Count() == message.TransformsCount, "Received ragdoll data count doesn't match!"); Matrix worldMatrix = Matrix.CreateFromQuaternion(message.worldOrientation); worldMatrix.Translation = message.worldPosition; Matrix[] transforms = new Matrix[message.TransformsCount]; for (int i = 0; i < message.TransformsCount; ++i) { transforms[i] = Matrix.CreateFromQuaternion(message.transformsOrientations[i]); transforms[i].Translation = message.transformsPositions[i]; } ragdollComponent.RagdollMapper.UpdateRigidBodiesTransformsSynced(message.TransformsCount, worldMatrix, transforms); }