Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ playWorldCallBack()

static void Terraria.WorldGen.playWorldCallBack ( object threadContext)
inlinestatic

Definition at line 3189 of file WorldGen.cs.

3190 {
3191 if (Main.rand == null)
3192 {
3193 Main.rand = new UnifiedRandom((int)DateTime.Now.Ticks);
3194 }
3195 for (int i = 0; i < 255; i++)
3196 {
3197 if (i != Main.myPlayer)
3198 {
3199 Main.player[i].active = false;
3200 }
3201 }
3202 noMapUpdate = true;
3203 Main.ToggleGameplayUpdates(state: false);
3204 WorldFile.LoadWorld(Main.ActiveWorldFileData.IsCloudSave);
3205 if (loadFailed || !loadSuccess)
3206 {
3207 WorldFile.LoadWorld(Main.ActiveWorldFileData.IsCloudSave);
3208 if (loadFailed || !loadSuccess)
3209 {
3210 bool isCloudSave = Main.ActiveWorldFileData.IsCloudSave;
3211 if (FileUtilities.Exists(Main.worldPathName + ".bak", isCloudSave))
3212 {
3213 worldBackup = true;
3214 }
3215 else
3216 {
3217 worldBackup = false;
3218 }
3219 if (!Main.dedServ)
3220 {
3221 if (worldBackup)
3222 {
3223 Main.menuMode = 200;
3224 }
3225 else
3226 {
3227 Main.menuMode = 201;
3228 }
3229 return;
3230 }
3231 if (!worldBackup)
3232 {
3233 Console.WriteLine(Language.GetTextValue("Error.LoadFailedNoBackup"));
3234 return;
3235 }
3236 FileUtilities.Copy(Main.worldPathName, Main.worldPathName + ".bad", isCloudSave);
3237 FileUtilities.Copy(Main.worldPathName + ".bak", Main.worldPathName, isCloudSave);
3238 FileUtilities.Delete(Main.worldPathName + ".bak", isCloudSave);
3239 WorldFile.LoadWorld(Main.ActiveWorldFileData.IsCloudSave);
3240 if (loadFailed || !loadSuccess)
3241 {
3242 WorldFile.LoadWorld(Main.ActiveWorldFileData.IsCloudSave);
3243 if (loadFailed || !loadSuccess)
3244 {
3245 FileUtilities.Copy(Main.worldPathName, Main.worldPathName + ".bak", isCloudSave);
3246 FileUtilities.Copy(Main.worldPathName + ".bad", Main.worldPathName, isCloudSave);
3247 FileUtilities.Delete(Main.worldPathName + ".bad", isCloudSave);
3248 Console.WriteLine(Language.GetTextValue("Error.LoadFailed"));
3249 return;
3250 }
3251 }
3252 }
3253 }
3254 if (Main.mapEnabled)
3255 {
3256 Main.Map.Load();
3257 }
3258 if (Main.netMode != 2)
3259 {
3260 Main.sectionManager.SetAllSectionsLoaded();
3261 }
3262 while (Main.loadMapLock)
3263 {
3264 float num = (float)Main.loadMapLastX / (float)Main.maxTilesX;
3265 Main.statusText = Lang.gen[68].Value + " " + (int)(num * 100f + 1f) + "%";
3266 Thread.Sleep(0);
3267 if (!Main.mapEnabled)
3268 {
3269 break;
3270 }
3271 }
3272 if (Main.gameMenu)
3273 {
3274 Main.gameMenu = false;
3275 }
3276 if (Main.netMode == 0 && Main.anglerWhoFinishedToday.Contains(Main.player[Main.myPlayer].name))
3277 {
3278 Main.anglerQuestFinished = true;
3279 }
3280 Main.player[Main.myPlayer].Spawn(PlayerSpawnContext.SpawningIntoWorld);
3281 _lastSeed = Main.ActiveWorldFileData.Seed;
3284 Main.resetClouds = true;
3285 noMapUpdate = false;
3286 }
static void WriteLine()
Definition Console.cs:733
static void Sleep(int millisecondsTimeout)
Definition Thread.cs:658
static void PlaySound(int type, Vector2 position, int style=1)
static void LoadWorld(bool loadFromCloud)
Definition WorldFile.cs:576
static void SetOngoingToTemps()
Definition WorldFile.cs:211
static string GetTextValue(string key)
Definition Language.cs:15
static bool Exists(string path, bool cloud)
static void Copy(string source, string destination, bool cloud, bool overwrite=true)
static void Delete(string path, bool cloud, bool forceDeleteFile=false)
static int _lastSeed
Definition WorldGen.cs:1016
static bool loadFailed
Definition WorldGen.cs:982
static bool worldBackup
Definition WorldGen.cs:988
static bool noMapUpdate
Definition WorldGen.cs:898
static bool loadSuccess
Definition WorldGen.cs:984
static DateTime Now
Definition DateTime.cs:103

References Terraria.WorldGen._lastSeed, Terraria.Main.ActiveWorldFileData, Terraria.Main.anglerWhoFinishedToday, Terraria.Utilities.FileUtilities.Copy(), Terraria.Main.dedServ, Terraria.Utilities.FileUtilities.Delete(), Terraria.Utilities.FileUtilities.Exists(), Terraria.Main.gameMenu, Terraria.Lang.gen, Terraria.Localization.Language.GetTextValue(), Terraria.WorldGen.loadFailed, Terraria.Main.loadMapLastX, Terraria.Main.loadMapLock, Terraria.WorldGen.loadSuccess, Terraria.IO.WorldFile.LoadWorld(), Terraria.Main.Map, Terraria.Main.mapEnabled, Terraria.Main.maxTilesX, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.WorldGen.noMapUpdate, System.DateTime.Now, Terraria.Main.player, Terraria.Audio.SoundEngine.PlaySound(), Terraria.Main.rand, Terraria.Main.sectionManager, Terraria.IO.WorldFile.SetOngoingToTemps(), System.Threading.Thread.Sleep(), System.state, Terraria.Main.ToggleGameplayUpdates(), Terraria.WorldGen.worldBackup, Terraria.Main.worldPathName, and System.Console.WriteLine().

Referenced by Terraria.WorldGen.playWorld().