Ejemplo n.º 1
0
        // Token: 0x060017B2 RID: 6066 RVA: 0x000709D4 File Offset: 0x0006EBD4
        private void AddKeyFrame(ref WormBodyPositions2.KeyFrame newKeyFrame)
        {
            this.newestKeyFrame = newKeyFrame;
            this.keyFrames.Insert(0, newKeyFrame);
            this.keyFramesTotalLength += newKeyFrame.length;
            bool  flag = false;
            float num  = this.keyFramesTotalLength;
            float num2 = this.totalLength + this.headDistance + 4f;

            while (this.keyFrames.Count > 0 && (num -= this.keyFrames[this.keyFrames.Count - 1].length) > num2)
            {
                this.keyFrames.RemoveAt(this.keyFrames.Count - 1);
                flag = true;
            }
            if (flag)
            {
                this.keyFramesTotalLength = 0f;
                foreach (WormBodyPositions2.KeyFrame keyFrame in this.keyFrames)
                {
                    this.keyFramesTotalLength += keyFrame.length;
                }
            }
            if (NetworkServer.active)
            {
                this.CallRpcSendKeyFrame(newKeyFrame);
            }
        }
Ejemplo n.º 2
0
 private void RpcSendKeyFrame(WormBodyPositions2.KeyFrame newKeyFrame)
 {
     if (!NetworkServer.active)
     {
         this.AddKeyFrame(ref newKeyFrame);
     }
 }
Ejemplo n.º 3
0
        private void AttemptToGenerateKeyFrame(Vector3 position)
        {
            if (!NetworkServer.active)
            {
                Debug.LogWarning("[Server] function 'System.Void RoR2.WormBodyPositions2::AttemptToGenerateKeyFrame(UnityEngine.Vector3)' called on client");
                return;
            }
            WormBodyPositions2.KeyFrame keyFrame = this.newestKeyFrame;
            CubicBezier3 curve  = CubicBezier3.FromVelocities(keyFrame.curve.p1, -keyFrame.curve.v1, position, -this.velocity * (this.keyFrameGenerationInterval * 0.25f));
            float        length = curve.ApproximateLength(50);

            WormBodyPositions2.KeyFrame keyFrame2 = new WormBodyPositions2.KeyFrame
            {
                curve  = curve,
                length = length,
                time   = WormBodyPositions2.GetSynchronizedTimeStamp()
            };
            if (keyFrame2.length >= 0f)
            {
                this.headDistance += keyFrame2.length;
                this.AddKeyFrame(ref keyFrame2);
            }
        }
Ejemplo n.º 4
0
		// Token: 0x060027A3 RID: 10147 RVA: 0x000B8A63 File Offset: 0x000B6C63
		public static void _WriteKeyFrame_WormBodyPositions2(NetworkWriter writer, WormBodyPositions2.KeyFrame value)
		{
			GeneratedNetworkCode._WriteCubicBezier3_None(writer, value.curve);
			writer.Write(value.length);
			writer.Write(value.time);
		}