void FarmCookieThread() { while (isPlaying) { lock (unprocessedCommand) { if (unprocessedCommand.Count > 0) { System.DateTime sendTime; currentGameState = GameSmooth.ExecuteCommands(unprocessedCommand, processedCommand, currentGameState, serverFps, out sendTime); Sync(currentGameState, sendTime); } } Thread.Sleep(serverFps); } }
void SyncServer(GameState serverState, System.DateTime sendTime) { GameState serverStatenoLag = GameSmooth.SmoothState(processedCommand, serverState, sendTime, Time.deltaTime); if (Mathf.Abs(serverStatenoLag.GetCookieNum() - currentGameState.GetCookieNum()) < serverStatenoLag.GetCookiePerSecond() * 2) { return; } /*if (Mathf.Abs(serverStatenoLag.GetCookieNum() - currentGameState.GetCookieNum()) < 10) * { * return; * }*/ if (Mathf.Abs(serverStatenoLag.GetFarms().Count - currentGameState.GetFarms().Count) < 3) { return; } currentGameState = serverStatenoLag; gameStateChanged.Invoke(currentGameState); }