private IEnumerator GenWorldOnSecondThread(System.Random GameRNG) { Planet world = null; GeneralManager.StartLoading(); Thread thread = new Thread(() => { GeneralManager.SetStatus("Initializing World"); world = new Planet(Database, PlanetSettings, GameRNG); GeneralManager.SetStatus("Generating Terrain"); world.Generate(GeneralManager.SetStatus); }); thread.Start(); while (thread.IsAlive) { yield return(null); } GeneralManager.EndLoading(); FinishedGenerating(world); }