private Movement DumpMovement(Transform transform, Rigidbody rigidbody, TankCollidersUnityComponent tankCollidersUnity) => new Movement { Position = TankPositionConverter.ConvertedSentToServer(tankCollidersUnity), Orientation = transform.rotation, Velocity = rigidbody.velocity, AngularVelocity = rigidbody.angularVelocity };
private Movement GetMovement(TankNode tankNode) { if (PreciseTime.TimeType == TimeType.LAST_FIXED) { return(tankNode.tankMovementSender.LastPhysicsMovement); } return(new Movement { Position = TankPositionConverter.ConvertedSentToServer(tankNode.tankCollidersUnity), Orientation = tankNode.rigidbody.RigidbodyTransform.rotation, Velocity = this.GetVelocity(tankNode), AngularVelocity = tankNode.rigidbody.Rigidbody.angularVelocity }); }
private void ApplyMovement(TankNode tank, ref Movement?movement, bool init) { if (movement != 0) { Movement m = movement.Value; if (PhysicsUtil.ValidateMovement(m)) { bool flag = this.HalveMoveCommandIfNeed(tank, init, ref m); base.Log.Debug(!flag ? "APPLY MOVEMENT" : "APPLY HALVED MOVEMENT"); Transform rigidbodyTransform = tank.rigidbody.RigidbodyTransform; Rigidbody rigidbody = tank.rigidbody.Rigidbody; rigidbodyTransform.SetRotationSafe(m.Orientation); rigidbodyTransform.SetPositionSafe(TankPositionConverter.ConvertedReceptionFromServer(m.Position, tank.tankCollidersUnity, rigidbodyTransform.position)); rigidbody.SetVelocitySafe(m.Velocity); rigidbody.SetAngularVelocitySafe(m.AngularVelocity); } } }