示例#1
0
 public static void Deinit(Map map)
 {
     try
     {
         MapDeiniter.PassPawnsToWorld(map);
     }
     catch (Exception arg)
     {
         Log.Error("Error while deiniting map: could not pass pawns to world: " + arg);
     }
     try
     {
         MapDeiniter.NotifyFactions(map);
     }
     catch (Exception arg2)
     {
         Log.Error("Error while deiniting map: could not notify factions: " + arg2);
     }
     try
     {
         map.weatherManager.EndAllSustainers();
     }
     catch (Exception arg3)
     {
         Log.Error("Error while deiniting map: could not end all weather sustainers: " + arg3);
     }
     try
     {
         Find.SoundRoot.sustainerManager.EndAllInMap(map);
     }
     catch (Exception arg4)
     {
         Log.Error("Error while deiniting map: could not end all effect sustainers: " + arg4);
     }
     try
     {
         map.areaManager.Notify_MapRemoved();
     }
     catch (Exception arg5)
     {
         Log.Error("Error while deiniting map: could not remove areas: " + arg5);
     }
     try
     {
         Find.TickManager.RemoveAllFromMap(map);
     }
     catch (Exception arg6)
     {
         Log.Error("Error while deiniting map: could not remove things from the tick manager: " + arg6);
     }
     try
     {
         MapDeiniter.NotifyEverythingWhichUsesMapReference(map);
     }
     catch (Exception arg7)
     {
         Log.Error("Error while deiniting map: could not notify things/regions/rooms/etc: " + arg7);
     }
 }
示例#2
0
 public static void Deinit(Map map)
 {
     try
     {
         MapDeiniter.DoQueuedPowerTasks(map);
     }
     catch (Exception arg)
     {
         Log.Error("Error while deiniting map: could not execute power related tasks: " + arg, false);
     }
     try
     {
         MapDeiniter.PassPawnsToWorld(map);
     }
     catch (Exception arg2)
     {
         Log.Error("Error while deiniting map: could not pass pawns to world: " + arg2, false);
     }
     try
     {
         map.weatherManager.EndAllSustainers();
     }
     catch (Exception arg3)
     {
         Log.Error("Error while deiniting map: could not end all weather sustainers: " + arg3, false);
     }
     try
     {
         Find.SoundRoot.sustainerManager.EndAllInMap(map);
     }
     catch (Exception arg4)
     {
         Log.Error("Error while deiniting map: could not end all effect sustainers: " + arg4, false);
     }
     try
     {
         map.areaManager.Notify_MapRemoved();
     }
     catch (Exception arg5)
     {
         Log.Error("Error while deiniting map: could not remove areas: " + arg5, false);
     }
     try
     {
         Find.TickManager.RemoveAllFromMap(map);
     }
     catch (Exception arg6)
     {
         Log.Error("Error while deiniting map: could not remove things from the tick manager: " + arg6, false);
     }
     try
     {
         MapDeiniter.NotifyEverythingWhichUsesMapReference(map);
     }
     catch (Exception arg7)
     {
         Log.Error("Error while deiniting map: could not notify things/regions/rooms/etc: " + arg7, false);
     }
     try
     {
         map.listerThings.Clear();
         map.spawnedThings.Clear();
     }
     catch (Exception arg8)
     {
         Log.Error("Error while deiniting map: could not remove things from thing listers: " + arg8, false);
     }
     try
     {
         Find.Archive.Notify_MapRemoved(map);
     }
     catch (Exception arg9)
     {
         Log.Error("Error while deiniting map: could not remove look targets: " + arg9, false);
     }
     try
     {
         Find.Storyteller.incidentQueue.Notify_MapRemoved(map);
     }
     catch (Exception arg10)
     {
         Log.Error("Error while deiniting map: could not remove queued incidents: " + arg10, false);
     }
 }