// Token: 0x0600078D RID: 1933 RVA: 0x000218D4 File Offset: 0x0001FAD4
        public static bool SetDisabled(global::CharacterInterpolatorBase interpolator)
        {
            if (!global::CharacterInterpolatorBase.Interpolators.iterating)
            {
                return(((!global::CharacterInterpolatorBase.Interpolators.swapped) ? global::CharacterInterpolatorBase.Interpolators.hashset1 : global::CharacterInterpolatorBase.Interpolators.hashset2).Remove(interpolator));
            }
            if (global::CharacterInterpolatorBase.Interpolators.caughtIterating)
            {
                return(((!global::CharacterInterpolatorBase.Interpolators.swapped) ? global::CharacterInterpolatorBase.Interpolators.hashset2 : global::CharacterInterpolatorBase.Interpolators.hashset1).Remove(interpolator));
            }
            HashSet <global::CharacterInterpolatorBase> hashSet;
            HashSet <global::CharacterInterpolatorBase> hashSet2;

            if (global::CharacterInterpolatorBase.Interpolators.swapped)
            {
                hashSet  = global::CharacterInterpolatorBase.Interpolators.hashset2;
                hashSet2 = global::CharacterInterpolatorBase.Interpolators.hashset1;
            }
            else
            {
                hashSet  = global::CharacterInterpolatorBase.Interpolators.hashset1;
                hashSet2 = global::CharacterInterpolatorBase.Interpolators.hashset2;
            }
            if (!hashSet.Contains(interpolator))
            {
                return(false);
            }
            global::CharacterInterpolatorBase.Interpolators.caughtIterating = true;
            hashSet2.UnionWith(hashSet);
            return(hashSet2.Remove(interpolator));
        }
Ejemplo n.º 2
0
    // Token: 0x06000403 RID: 1027 RVA: 0x0001383C File Offset: 0x00011A3C
    private void UpdateStateNew(Vector3 origin, global::Angle2 eyesAngles, ushort stateFlags, double timestamp)
    {
        global::Character idMain = base.idMain;

        if (this.firstState)
        {
            this.firstState         = false;
            idMain.origin           = origin;
            idMain.eyesAngles       = eyesAngles;
            idMain.stateFlags.flags = stateFlags;
            return;
        }
        if (base.networkView.isMine)
        {
            idMain.origin           = origin;
            idMain.eyesAngles       = eyesAngles;
            idMain.stateFlags.flags = stateFlags;
            global::CCMotor ccmotor = base.ccmotor;
            if (ccmotor)
            {
                ccmotor.Teleport(origin);
            }
        }
        else
        {
            global::CharacterInterpolatorBase interpolator = base.interpolator;
            if (interpolator)
            {
                global::IStateInterpolator <global::CharacterStateInterpolatorData> stateInterpolator = interpolator as global::IStateInterpolator <global::CharacterStateInterpolatorData>;
                if (stateInterpolator != null)
                {
                    global::CharacterStateInterpolatorData characterStateInterpolatorData;
                    characterStateInterpolatorData.origin      = origin;
                    characterStateInterpolatorData.state.flags = stateFlags;
                    characterStateInterpolatorData.eyesAngles  = eyesAngles;
                    stateInterpolator.SetGoals(ref characterStateInterpolatorData, ref timestamp);
                }
                else
                {
                    idMain.stateFlags.flags = stateFlags;
                    interpolator.SetGoals(origin, eyesAngles.quat, timestamp);
                }
            }
        }
    }