Exemplo n.º 1
0
        /// <summary>
        /// Empty the NetGuidCache
        /// </summary>
        public void Cleanup()
        {
            NetFieldExportGroupIndexToGroup.Clear();
            NetFieldExportGroupMap.Clear();
            NetGuidToPathName.Clear();
            ObjectLookup.Clear();
            NetFieldExportGroupMapPathFixed.Clear();

            _archTypeToExportGroup.Clear();
            _cleanedPaths.Clear();
            _cleanedClassNetCache.Clear();
        }
Exemplo n.º 2
0
        public void OnWorldQuit()
        {
            sLoading = true;

            //sDelayLoading = true;

            DereferenceManager.Logger.OnWorldQuit = true;

            ObjectLookup.Clear();

            sObjectsOfInterest.Clear();

            sAllRunning.Clear();
        }
Exemplo n.º 3
0
        public void OnDelayedWorldLoadFinished()
        {
            sObjectsOfInterest.Clear();

            List <ICheck> checks = DerivativeSearch.Find <ICheck>();

            foreach (ICheck check in checks)
            {
                check.Finish();
            }

            EventTracker.sCurrentlyUpdatingDreamsAndPromisesManagers = false;

            new CheckRoleManager().Perform(RoleManager.sRoleManager, true);

            CheckRecovery();

            CheckOutfits();

            CheckLotObjects();

            Inventories.CheckInventories(LogCorrection, DebugLogCorrection, true);

            List <IDereferenceController> controllers = DerivativeSearch.Find <IDereferenceController>();

            foreach (IDereferenceController controller in controllers)
            {
                controller.Clear();

                foreach (KeyValuePair <Type, List <ObjectLookup.Item> > list in ObjectLookup.List)
                {
                    controller.Add(list.Key, list.Value);
                }

                controller.PreProcess();
            }

            if (ErrorTrapTuning3.kLogCounting)
            {
                using (TestSpan span = new TestSpan(ExternalTimeSpanLogger.sLogger, "Log Counts"))
                {
                    ObjectLookup.LogCounts();
                }
            }

            DereferenceManager.Logger.OnWorldQuit = false;

            try
            {
                DereferenceManager.Logger.sCollecting = true;

                using (Common.TestSpan totalSpan = new Common.TestSpan(TimeSpanLogger.Bin, "Dereferencing", DebugLevel.Stats))
                {
                    foreach (IDereferenceController controller in controllers)
                    {
                        controller.Perform();

                        if (DereferenceManager.Logger.OnWorldQuit)
                        {
                            break;
                        }
                    }
                }
            }
            finally
            {
                DereferenceManager.Logger.sCollecting = false;
            }

            using (Common.TestSpan totalSpan = new Common.TestSpan(TimeSpanLogger.Bin, "Dereferencing", DebugLevel.Stats))
            {
                foreach (IDereferenceController controller in controllers)
                {
                    controller.PostPerform();

                    if (DereferenceManager.Logger.OnWorldQuit)
                    {
                        break;
                    }
                }
            }

            // Possibly loaded by Dereference
            sResidents = null;

            ProcessToBeDeleted(sToBeDeleted, true);
            ProcessToBeDeleted(sSilentToBeDeleted, false);

            ObjectLookup.Clear();

            //sDelayLoading = false;

            RecordErrors();
        }