internal static void Unload()
{
while (loadOrder.Count > 0)
{
GetMod(loadOrder.Pop()).UnloadContent();
}
loadOrder.Clear();
loadedMods = new Mod[0];
ItemLoader.Unload();
EquipLoader.Unload();
ModPrefix.Unload();
ModDust.Unload();
TileLoader.Unload();
ModTileEntity.Unload();
WallLoader.Unload();
ProjectileLoader.Unload();
NPCLoader.Unload();
NPCHeadLoader.Unload();
PlayerHooks.Unload();
BuffLoader.Unload();
MountLoader.Unload();
ModGore.Unload();
SoundLoader.Unload();
DisposeMusic();
BackgroundTextureLoader.Unload();
UgBgStyleLoader.Unload();
SurfaceBgStyleLoader.Unload();
GlobalBgStyleLoader.Unload();
WaterStyleLoader.Unload();
WaterfallStyleLoader.Unload();
mods.Clear();
WorldHooks.Unload();
ResizeArrays(true);
for (int k = 0; k < Recipe.maxRecipes; k++)
{
Main.recipe[k] = new Recipe();
}
Recipe.numRecipes = 0;
RecipeGroupHelper.ResetRecipeGroups();
Recipe.SetupRecipes();
MapLoader.UnloadModMap();
ItemSorting.SetupWhiteLists();
modHotKeys.Clear();
RecipeHooks.Unload();
CommandManager.Unload();
TagSerializer.Reload();
ModNet.Unload();
GameContent.UI.CustomCurrencyManager.Initialize();
CleanupModReferences();
if (!Main.dedServ && Main.netMode != 1) //disable vanilla client compatiblity restrictions when reloading on a client
{
ModNet.AllowVanillaClients = false;
}
}