public void PostUpdate(GameTime gameTime) { if (!_gameClockManager.SimulationClock.IsNextSimulation) { // Only update during a simulation update since input is only processed at this time return; } var simTickNumber = _gameClockManager.SimulationClock.SimulationTickNumber; switch (_networkService.NetworkGameMode) { case NetworkGameMode.NotSet: break; case NetworkGameMode.Local: break; case NetworkGameMode.ListenServer: _serverPlayerManager.SendEntityChangesToClients(simTickNumber, _networkMessageWriter); break; case NetworkGameMode.DedicatedServer: _serverPlayerManager.SendEntityChangesToClients(simTickNumber, _networkMessageWriter); break; case NetworkGameMode.RemoteClient: _clientPlayerManager.SendClientInputPredictionsToServer(simTickNumber, _networkMessageWriter); break; default: Debug.Fail($"Unknown game mode type: {_networkService.NetworkGameMode}"); break; } }