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

◆ playWorldCallBack()

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

Definition at line 3550 of file WorldGen.cs.

3551 {
3552 Logging.Terraria.InfoFormat("Loading World: {0}, IsCloud={1}, Width: {2}, Height: {3}, Evil: {4}, GameMode: {5}", new object[6]
3553 {
3554 Main.ActiveWorldFileData.Name,
3555 Main.ActiveWorldFileData.IsCloudSave,
3556 Main.ActiveWorldFileData.WorldSizeX,
3557 Main.ActiveWorldFileData.WorldSizeY,
3558 Main.ActiveWorldFileData.HasCrimson.ToInt(),
3559 Main.ActiveWorldFileData.GameMode
3560 });
3561 if (Main.rand == null)
3562 {
3563 Main.rand = new UnifiedRandom((int)DateTime.Now.Ticks);
3564 }
3565 for (int i = 0; i < 255; i++)
3566 {
3567 if (i != Main.myPlayer)
3568 {
3569 Main.player[i].active = false;
3570 }
3571 }
3572 noMapUpdate = true;
3573 Main.ToggleGameplayUpdates(state: false);
3574 WorldFile.LoadWorld(Main.ActiveWorldFileData.IsCloudSave);
3575 if (loadFailed || !loadSuccess)
3576 {
3577 WorldFile.LoadWorld(Main.ActiveWorldFileData.IsCloudSave);
3578 if (loadFailed || !loadSuccess)
3579 {
3580 bool isCloudSave = Main.ActiveWorldFileData.IsCloudSave;
3581 if (FileUtilities.Exists(Main.worldPathName + ".bak", isCloudSave))
3582 {
3583 worldBackup = true;
3584 }
3585 else
3586 {
3587 worldBackup = false;
3588 }
3589 if (!Main.dedServ)
3590 {
3591 if (worldBackup)
3592 {
3593 Main.menuMode = 200;
3594 }
3595 else
3596 {
3597 Main.menuMode = 201;
3598 }
3599 return;
3600 }
3601 if (!worldBackup)
3602 {
3603 string message = Language.GetTextValue("Error.LoadFailedNoBackup");
3604 if (WorldIO.customDataFail != null)
3605 {
3606 message = WorldIO.customDataFail.modName + " " + message;
3607 message = message + "\n" + WorldIO.customDataFail.InnerException;
3608 }
3609 Console.WriteLine(message);
3610 return;
3611 }
3612 FileUtilities.Copy(Main.worldPathName, Main.worldPathName + ".bad", isCloudSave);
3613 FileUtilities.Copy(Main.worldPathName + ".bak", Main.worldPathName, isCloudSave);
3614 FileUtilities.Delete(Main.worldPathName + ".bak", isCloudSave);
3615 WorldIO.LoadDedServBackup(Main.worldPathName, isCloudSave);
3616 WorldFile.LoadWorld(Main.ActiveWorldFileData.IsCloudSave);
3617 if (loadFailed || !loadSuccess)
3618 {
3619 WorldFile.LoadWorld(Main.ActiveWorldFileData.IsCloudSave);
3620 if (loadFailed || !loadSuccess)
3621 {
3622 FileUtilities.Copy(Main.worldPathName, Main.worldPathName + ".bak", isCloudSave);
3623 FileUtilities.Copy(Main.worldPathName + ".bad", Main.worldPathName, isCloudSave);
3624 FileUtilities.Delete(Main.worldPathName + ".bad", isCloudSave);
3625 WorldIO.RevertDedServBackup(Main.worldPathName, isCloudSave);
3626 string message2 = Language.GetTextValue("Error.LoadFailed");
3627 if (WorldIO.customDataFail != null)
3628 {
3629 message2 = $"{WorldIO.customDataFail.modName} {message2}\r\n{WorldIO.customDataFail.InnerException}";
3630 }
3631 Console.WriteLine(message2);
3632 return;
3633 }
3634 }
3635 }
3636 }
3637 if (Main.mapEnabled)
3638 {
3639 Main.Map.Load();
3640 }
3641 if (Main.netMode != 2)
3642 {
3643 Main.sectionManager.SetAllSectionsLoaded();
3644 }
3645 while (Main.loadMapLock)
3646 {
3647 float num = (float)Main.loadMapLastX / (float)Main.maxTilesX;
3648 Main.statusText = Lang.gen[68].Value + " " + (int)(num * 100f + 1f) + "%";
3649 Thread.Sleep(0);
3650 if (!Main.mapEnabled)
3651 {
3652 break;
3653 }
3654 }
3655 if (Main.gameMenu)
3656 {
3657 Main.gameMenu = false;
3658 }
3659 if (Main.netMode == 0 && Main.anglerWhoFinishedToday.Contains(Main.player[Main.myPlayer].name))
3660 {
3661 Main.anglerQuestFinished = true;
3662 }
3663 Main.QueueMainThreadAction(FinishPlayWorld);
3664 }
static void LoadWorld(bool loadFromCloud)
Definition WorldFile.cs:579
static string GetTextValue(string key)
Retrieves the text value for a specified localization key. The text returned will be for the currentl...
Definition Language.cs:35
Contains methods to access or retrieve localization values. The Localization Guideteaches more about ...
Definition Language.cs:12
static void RevertDedServBackup(string path, bool cloudSave)
Definition WorldIO.cs:671
static CustomModDataException customDataFail
Definition WorldIO.cs:21
static void LoadDedServBackup(string path, bool cloudSave)
Definition WorldIO.cs:657
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 bool loadFailed
Definition WorldGen.cs:1220
static bool worldBackup
Definition WorldGen.cs:1226
static bool noMapUpdate
Definition WorldGen.cs:1136
static void FinishPlayWorld()
Definition WorldGen.cs:3666
static bool loadSuccess
Definition WorldGen.cs:1222
@ Console
Command can be used in server console during MP.

References Terraria.Main.ActiveWorldFileData, Terraria.Main.anglerWhoFinishedToday, Terraria.ModLoader.Console, Terraria.Utilities.FileUtilities.Copy(), Terraria.ModLoader.IO.WorldIO.customDataFail, Terraria.Main.dedServ, Terraria.Utilities.FileUtilities.Delete(), Terraria.Utilities.FileUtilities.Exists(), Terraria.WorldGen.FinishPlayWorld(), Terraria.Main.gameMenu, Terraria.Lang.gen, Terraria.Localization.Language.GetTextValue(), Terraria.ModLoader.IO.WorldIO.LoadDedServBackup(), 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, Terraria.Main.player, Terraria.Main.QueueMainThreadAction(), Terraria.Main.rand, Terraria.ModLoader.IO.WorldIO.RevertDedServBackup(), Terraria.Main.sectionManager, Terraria.ModLoader.Logging.Terraria, Terraria.Main.ToggleGameplayUpdates(), Terraria.WorldGen.worldBackup, and Terraria.Main.worldPathName.

Referenced by Terraria.WorldGen.playWorld().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: