Esempio n. 1
0
        public override void CopyFrom(InputDataBase fromBase)
        {
            InputData from = (InputData)fromBase;

            var stringTableEnum = from.stringTable.GetEnumerator();

            while (stringTableEnum.MoveNext())
            {
                var kv = stringTableEnum.Current;
                this.stringTable.Add(kv.Key, kv.Value);
            }

            var byteTableEnum = from.byteTable.GetEnumerator();

            while (byteTableEnum.MoveNext())
            {
                var kv = byteTableEnum.Current;
                this.byteTable.Add(kv.Key, kv.Value);
            }

            var intTableEnum = from.intTable.GetEnumerator();

            while (intTableEnum.MoveNext())
            {
                var kv = intTableEnum.Current;
                this.intTable.Add(kv.Key, kv.Value);
            }

            var fpTableEnum = from.fpTable.GetEnumerator();

            while (fpTableEnum.MoveNext())
            {
                var kv = fpTableEnum.Current;
                this.fpTable.Add(kv.Key, kv.Value);
            }

            var byteArrayTableEnum = from.byteArrayTable.GetEnumerator();

            while (byteArrayTableEnum.MoveNext())
            {
                var kv = byteArrayTableEnum.Current;
                this.byteArrayTable.Add(kv.Key, kv.Value);
            }

            var FPVectorTableEnum = from.FPVectorTable.GetEnumerator();

            while (FPVectorTableEnum.MoveNext())
            {
                var kv = FPVectorTableEnum.Current;
                this.FPVectorTable.Add(kv.Key, kv.Value);
            }

            var FPVectorTable2Enum = from.FPVectorTable2.GetEnumerator();

            while (FPVectorTable2Enum.MoveNext())
            {
                var kv = FPVectorTable2Enum.Current;
                this.FPVectorTable2.Add(kv.Key, kv.Value);
            }
        }
Esempio n. 2
0
        public void UpdateAllCoroutines()
        {
            InputDataBase oldInputData = FrameSyncInput.CurrentSimulationData;

            UpdateAllCoroutines(lockStep.Ticks, FrameSyncManager.Time);
            FrameSyncInput.CurrentSimulationData = (InputData)oldInputData;
        }
Esempio n. 3
0
        void GetLocalData(InputDataBase playerInputData)
        {
            FrameSyncInput.CurrentInputData = (InputData)playerInputData;

            if (behaviorsByPlayer.ContainsKey(playerInputData.ownerID))
            {
                List <FrameSyncManagedBehaviour> managedBehavioursByPlayer = behaviorsByPlayer[playerInputData.ownerID];
                for (int index = 0, length = managedBehavioursByPlayer.Count; index < length; index++)
                {
                    FrameSyncManagedBehaviour bh = managedBehavioursByPlayer[index];

                    if (bh != null && !bh.disabled)
                    {
                        bh.OnSyncedInput();
                    }
                }
            }

            FrameSyncInput.CurrentInputData = null;
        }
Esempio n. 4
0
        /**
         * @brief Returns true if this {@link SyncedData} has all actions information equals to the provided one.
         **/
        public override bool EqualsData(InputDataBase otherBase)
        {
            InputData other = (InputData)otherBase;

            if (this.stringTable.Count != other.stringTable.Count ||
                this.byteTable.Count != other.byteTable.Count ||
                this.intTable.Count != other.intTable.Count ||
                this.fpTable.Count != other.fpTable.Count ||
                this.byteArrayTable.Count != other.byteArrayTable.Count ||
                this.FPVectorTable.Count != other.FPVectorTable.Count ||
                this.FPVectorTable2.Count != other.FPVectorTable2.Count)
            {
                return(false);
            }

            if (!checkEqualsTable(this, other))
            {
                return(false);
            }

            return(true);
        }
Esempio n. 5
0
 public SyncedData()
 {
     this.inputData = AbstractLockstep.instance.InputDataProvider();
 }
 public abstract void CopyFrom(InputDataBase fromBase);
 public abstract bool EqualsData(InputDataBase otherBase);
Esempio n. 8
0
        void OnStepUpdate(List <InputDataBase> allInputData)
        {
            time += lockedTimeStep;

            if (ReplayRecord.replayMode != ReplayMode.LOAD_REPLAY)
            {
                CheckGameObjectsSafeMap();
            }

            FrameSyncInput.SetAllInputs(null);

            for (int index = 0, length = generalBehaviours.Count; index < length; index++)
            {
                FrameSyncManagedBehaviour bh = generalBehaviours[index];

                if (bh != null && !bh.disabled)
                {
                    bh.OnPreSyncedUpdate();
                    instance.scheduler.UpdateAllCoroutines();
                }
            }

            for (int index = 0, length = allInputData.Count; index < length; index++)
            {
                InputDataBase playerInputData = allInputData[index];

                if (behaviorsByPlayer.ContainsKey(playerInputData.ownerID))
                {
                    List <FrameSyncManagedBehaviour> managedBehavioursByPlayer = behaviorsByPlayer[playerInputData.ownerID];
                    for (int index2 = 0, length2 = managedBehavioursByPlayer.Count; index2 < length2; index2++)
                    {
                        FrameSyncManagedBehaviour bh = managedBehavioursByPlayer[index2];

                        if (bh != null && !bh.disabled)
                        {
                            bh.OnPreSyncedUpdate();
                            instance.scheduler.UpdateAllCoroutines();
                        }
                    }
                }
            }

            FrameSyncInput.SetAllInputs(allInputData);

            FrameSyncInput.CurrentSimulationData = null;
            for (int index = 0, length = generalBehaviours.Count; index < length; index++)
            {
                FrameSyncManagedBehaviour bh = generalBehaviours[index];

                if (bh != null && !bh.disabled)
                {
                    bh.OnSyncedUpdate();
                    instance.scheduler.UpdateAllCoroutines();
                }
            }

            for (int index = 0, length = allInputData.Count; index < length; index++)
            {
                InputDataBase playerInputData = allInputData[index];

                if (behaviorsByPlayer.ContainsKey(playerInputData.ownerID))
                {
                    FrameSyncInput.CurrentSimulationData = (InputData)playerInputData;

                    List <FrameSyncManagedBehaviour> managedBehavioursByPlayer = behaviorsByPlayer[playerInputData.ownerID];
                    for (int index2 = 0, length2 = managedBehavioursByPlayer.Count; index2 < length2; index2++)
                    {
                        FrameSyncManagedBehaviour bh = managedBehavioursByPlayer[index2];

                        if (bh != null && !bh.disabled)
                        {
                            bh.OnSyncedUpdate();
                            instance.scheduler.UpdateAllCoroutines();
                        }
                    }
                }

                FrameSyncInput.CurrentSimulationData = null;
            }

            CheckQueuedBehaviours();
        }