private Movement DumpMovement(Transform transform, Rigidbody rigidbody, TankCollidersUnityComponent tankCollidersUnity) =>
 new Movement
 {
     Position        = TankPositionConverter.ConvertedSentToServer(tankCollidersUnity),
     Orientation     = transform.rotation,
     Velocity        = rigidbody.velocity,
     AngularVelocity = rigidbody.angularVelocity
 };
Пример #2
0
 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);
         }
     }
 }