Beispiel #1
0
 public void CalculateDelta(NetStream state0, NetStream state1, NetStream delta)
 {
     if (showDebug)
     {
         Debug.Log(base.name + " Calculate Delta ");
     }
     posEncoder.CalculateDelta(state0, state1, delta);
     for (int i = 0; i < rigidSegments; i++)
     {
         diffEncoder.CalculateDelta(state0, state1, delta);
     }
 }
Beispiel #2
0
    public void CalculateDelta(NetStream state0, NetStream state1, NetStream delta)
    {
        bool flag  = state0?.ReadBool() ?? false;
        bool flag2 = state1.ReadBool();

        delta.Write(flag2);
        if (!flag)
        {
            state0 = null;
        }
        if (flag2)
        {
            posEncoderBlock.CalculateDelta(state0, state1, delta);
            rotEncoderBlock.CalculateDelta(state0, state1, delta);
            for (int i = 0; i < letters.Count; i++)
            {
                bool flag3 = flag && state0.ReadBool();
                bool flag4 = flag2 && state1.ReadBool();
                delta.Write(flag4);
                if (flag4)
                {
                    NetStream state2 = (!flag3) ? null : state0;
                    posEncoder.CalculateDelta(state2, state1, delta);
                    rotEncoder.CalculateDelta(state2, state1, delta);
                }
                else if (flag3)
                {
                    posEncoder.ApplyState(state0);
                    rotEncoder.ApplyState(state0);
                }
            }
        }
        else
        {
            if (!flag)
            {
                return;
            }
            posEncoderBlock.ApplyState(state0);
            rotEncoderBlock.ApplyState(state0);
            for (int j = 0; j < letters.Count; j++)
            {
                if (state0.ReadBool())
                {
                    posEncoder.ApplyState(state0);
                    rotEncoder.ApplyState(state0);
                }
            }
        }
    }