Пример #1
0
 public void AddDelta(NetStream state0, NetStream delta, NetStream result)
 {
     if (showDebug)
     {
         Debug.Log(base.name + " Add Delta ");
     }
     posEncoder.AddDelta(state0, delta, result);
     for (int i = 0; i < rigidSegments; i++)
     {
         diffEncoder.AddDelta(state0, delta, result);
     }
 }
Пример #2
0
    public void AddDelta(NetStream state0, NetStream delta, NetStream result)
    {
        bool flag  = state0?.ReadBool() ?? false;
        bool flag2 = delta.ReadBool();

        result.Write(flag2);
        if (!flag)
        {
            state0 = null;
        }
        if (flag2)
        {
            posEncoderBlock.AddDelta(state0, delta, result);
            rotEncoderBlock.AddDelta(state0, delta, result);
            for (int i = 0; i < letters.Count; i++)
            {
                bool flag3 = flag && state0.ReadBool();
                bool flag4 = flag2 && delta.ReadBool();
                result.Write(flag4);
                if (flag4)
                {
                    NetStream state = (!flag3) ? null : state0;
                    posEncoder.AddDelta(state, delta, result);
                    rotEncoder.AddDelta(state, delta, result);
                }
                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);
                }
            }
        }
    }