Пример #1
0
 public AbstractLockstep(float deltaTime, ICommunicator communicator, IPhysicsManagerBase physicsManager, int syncWindow, int panicWindow, int rollbackWindow, TrueSyncEventCallback OnGameStarted, TrueSyncEventCallback OnGamePaused, TrueSyncEventCallback OnGameUnPaused, TrueSyncEventCallback OnGameEnded, TrueSyncPlayerDisconnectionCallback OnPlayerDisconnection, TrueSyncUpdateCallback OnStepUpdate, TrueSyncInputDataProvider 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.InputDataProvider     = InputDataProvider;
     this.ticks                = 0;
     this.players              = new Dictionary <byte, TSPlayer>(4);
     this.activePlayers        = new List <TSPlayer>(4);
     this.auxPlayersSyncedData = new List <SyncedData>(4);
     this.auxPlayersInputData  = new List <InputDataBase>(4);
     this.communicator         = communicator;
     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;
 }
Пример #2
0
 public DefaultLockstep(float deltaTime, ICommunicator communicator, IPhysicsManagerBase physicsManager, int syncWindow, int panicTime, int rollbackWindow, TrueSyncEventCallback OnGameStarted, TrueSyncEventCallback OnGamePaused, TrueSyncEventCallback OnGameUnPaused, TrueSyncEventCallback OnGameEnded, TrueSyncPlayerDisconnectionCallback OnPlayerDisconnection, TrueSyncUpdateCallback OnStepUpdate, TrueSyncInputDataProvider InputDataProvider) : base(deltaTime, communicator, physicsManager, syncWindow, panicTime, rollbackWindow, OnGameStarted, OnGamePaused, OnGameUnPaused, OnGameEnded, OnPlayerDisconnection, OnStepUpdate, InputDataProvider)
 {
 }
Пример #3
0
 public WorldChecksumExtractor(IPhysicsManagerBase physicsManager) : base(physicsManager)
 {
 }
        public static AbstractLockstep NewInstance(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)
        {
            bool             flag = rollbackWindow <= 0 || communicator == null;
            AbstractLockstep result;

            if (flag)
            {
                result = new DefaultLockstep(deltaTime, communicator, physicsManager, syncWindow, panicWindow, rollbackWindow, OnGameStarted, OnGamePaused, OnGameUnPaused, OnGameEnded, OnPlayerDisconnection, OnStepUpdate, GetLocalData, InputDataProvider);
            }
            else
            {
                result = new RollbackLockstep(deltaTime, communicator, physicsManager, syncWindow, panicWindow, rollbackWindow, OnGameStarted, OnGamePaused, OnGameUnPaused, OnGameEnded, OnPlayerDisconnection, OnStepUpdate, GetLocalData, InputDataProvider);
            }
            return(result);
        }
Пример #5
0
 public RollbackLockstep(float deltaTime, ICommunicator communicator, IPhysicsManagerBase physicsManager, int syncWindow, int panicTime, int rollbackWindow, TrueSyncEventCallback OnGameStarted, TrueSyncEventCallback OnGamePaused, TrueSyncEventCallback OnGameUnPaused, TrueSyncEventCallback OnGameEnded, TrueSyncPlayerDisconnectionCallback OnPlayerDisconnection, TrueSyncUpdateCallback OnStepUpdate, TrueSyncInputCallback GetLocalData, TrueSyncInputDataProvider 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;
 }
Пример #6
0
 public DefaultLockstep(FP deltaTime, TrueSyncConfig config, IPhysicsManagerBase physicsManager) : base(deltaTime, config, physicsManager)
 {
 }
 public RollbackLockstep(FP deltaTime, FrameSyncConfig config, IPhysicsManagerBase physicsManager) : base(deltaTime, config, physicsManager)
 {
 }
 public static void Init(IPhysicsManagerBase physicsManager)
 {
     ChecksumExtractor.worldExtractor = new WorldChecksumExtractor(physicsManager);
 }
 public ChecksumExtractor(IPhysicsManagerBase physicsManager)
 {
     this.physicsManager = physicsManager;
 }
Пример #10
0
 public AbstractLockstep(FP deltaTime, FrameSyncConfig config, IPhysicsManagerBase physicsManager)
 {
     this.deltaTime      = deltaTime;
     this.config         = config;
     this.physicsManager = physicsManager;
 }
Пример #11
0
 public static AbstractLockstep NewInstance(FP deltaTime, FrameSyncConfig config, IPhysicsManagerBase physicsManager)
 {
     return(new DefaultLockstep(deltaTime, config, physicsManager));
 }