public GenericBufferWindow(int size, GenericBufferWindow <T> .NewInstance NewInstance)
 {
     this.size         = size;
     this.currentIndex = 0;
     this.buffer       = new T[size];
     for (int i = 0; i < size; i++)
     {
         this.buffer[i] = NewInstance();
     }
 }
        public AbstractLockstep(float deltaTime, ICommunicator communicator, IPhysicsManagerBase physicsManager, int syncWindow, int panicWindow, int rollbackWindow, FrameSyncEventCallback OnGameStarted, FrameSyncEventCallback OnGamePaused, FrameSyncEventCallback OnGameUnPaused, FrameSyncEventCallback OnGameEnded, FrameSyncPlayerDisconnectionCallback OnPlayerDisconnection, FrameSyncUpdateCallback OnStepUpdate, FrameSyncInputCallback GetLocalData, FrameSyncInputDataProvider InputDataProvider)
        {
            AbstractLockstep.instance  = this;
            this.deltaTime             = deltaTime;
            this.syncWindow            = syncWindow;
            this.panicWindow           = panicWindow;
            this.rollbackWindow        = rollbackWindow;
            this.totalWindow           = syncWindow + rollbackWindow;
            this.StepUpdate            = OnStepUpdate;
            this.OnGameStarted         = OnGameStarted;
            this.OnGamePaused          = OnGamePaused;
            this.OnGameUnPaused        = OnGameUnPaused;
            this.OnGameEnded           = OnGameEnded;
            this.OnPlayerDisconnection = OnPlayerDisconnection;
            this.GetLocalData          = GetLocalData;
            this.InputDataProvider     = InputDataProvider;
            this.ticks                = 0;
            this.players              = new Dictionary <byte, FPPlayer>(4);
            this.activePlayers        = new List <FPPlayer>(4);
            this.auxPlayersSyncedData = new List <SyncedData>(4);
            this.auxPlayersInputData  = new List <InputDataBase>(4);
            this.communicator         = communicator;
            bool flag = communicator != null;

            if (flag)
            {
                this.communicator.AddEventListener(new OnEventReceived(this.OnEventDataReceived));
            }
            this.physicsManager    = physicsManager;
            this.compoundStats     = new CompoundStats();
            this.bufferSyncedInfo  = new GenericBufferWindow <SyncedInfo>(3);
            this.checksumOk        = true;
            this.simulationState   = AbstractLockstep.SimulationState.NOT_STARTED;
            this.bodiesToDestroy   = new Dictionary <int, List <IBody> >();
            this.playersDisconnect = new Dictionary <int, List <byte> >();
            this.ReplayMode        = ReplayRecord.replayMode;
        }
Exemplo n.º 3
0
 public RollbackLockstep(float deltaTime, ICommunicator communicator, IPhysicsManagerBase physicsManager, int syncWindow, int panicTime, int rollbackWindow, FrameSyncEventCallback OnGameStarted, FrameSyncEventCallback OnGamePaused, FrameSyncEventCallback OnGameUnPaused, FrameSyncEventCallback OnGameEnded, FrameSyncPlayerDisconnectionCallback OnPlayerDisconnection, FrameSyncUpdateCallback OnStepUpdate, FrameSyncInputCallback GetLocalData, FrameSyncInputDataProvider InputDataProvider) : base(deltaTime, communicator, physicsManager, syncWindow, panicTime, rollbackWindow, OnGameStarted, OnGamePaused, OnGameUnPaused, OnGameEnded, OnPlayerDisconnection, OnStepUpdate, GetLocalData, InputDataProvider)
 {
     this.bufferWorldClone = new GenericBufferWindow <IWorldClone>(rollbackWindow, new GenericBufferWindow <IWorldClone> .NewInstance(physicsManager.GetWorldClone));
     this.rollbackIndex    = rollbackWindow;
 }
Exemplo n.º 4
0
 public CompoundStats()
 {
     this.bufferStats = new GenericBufferWindow <Stats>(10);
     this.globalStats = new Stats();
     this.timerAcc    = 0f;
 }