ACR_Candlekeep.Monks.LoadAreas C# (CSharp) Метод

LoadAreas() публичный статический Метод

public static LoadAreas ( CLRScriptBase s ) : void
s CLRScriptFramework.CLRScriptBase
Результат void
        public static void LoadAreas(CLRScriptBase s)
        {
            if (!ACR_Candlekeep.ArchivesInstance.WaitForResourcesLoaded(false))
            {
                s.DelayCommand(6.0f, delegate { LoadAreas(s); });
                return;
            }
            ALFA.Shared.Modules.InfoStore.ActiveAreas = new Dictionary<uint, ALFA.Shared.ActiveArea>();
            List<uint> areas = new List<uint>();
            foreach (uint area in s.GetAreas())
            {
                ALFA.Shared.ActiveArea activeArea = new ALFA.Shared.ActiveArea();
                activeArea.Id = area;
                activeArea.Name = s.GetName(area).Trim();
                activeArea.Tag = s.GetTag(area);
                activeArea.GlobalQuests.Add("Infestation", s.GetLocalInt(area, "ACR_QST_MAX_INFESTATION"));
                ALFA.Shared.Modules.InfoStore.ActiveAreas.Add(area, activeArea);
                areas.Add(area);
            }
            int count = 0;
            foreach(KeyValuePair<string, string> keyValue in ALFA.Shared.Modules.InfoStore.AreaNames)
            {
                ALFA.Shared.Modules.InfoStore.ActiveAreas[areas[count]].LocalizedName = keyValue.Value;
                ALFA.Shared.Modules.InfoStore.ActiveAreas[areas[count]].ConfigureDisplayName();
                s.SetLocalString(areas[count], "ACR_AREA_RESREF", keyValue.Key);
                count++;
            }
            foreach (ALFA.Shared.ActiveArea activeArea in ALFA.Shared.Modules.InfoStore.ActiveAreas.Values)
            {
                foreach (uint thing in s.GetObjectsInArea(activeArea.Id))
                {
                    uint target = s.GetTransitionTarget(thing);
                    if (s.GetIsObjectValid(target) != FALSE)
                    {
                        ALFA.Shared.ActiveTransition activeTransition = new ALFA.Shared.ActiveTransition();
                        activeTransition.AreaTarget = ALFA.Shared.Modules.InfoStore.ActiveAreas[s.GetArea(target)];
                        activeTransition.Id = thing;
                        activeTransition.Target = target;
                        activeArea.ExitTransitions.Add(activeTransition, activeTransition.AreaTarget);
                    }
                }
            }
        }
    }

Usage Example

Пример #1
0
        public Int32 ScriptMain([In] object[] ScriptParameters, [In] Int32 DefaultReturnCode)
        {
            int Value = (int)ScriptParameters[0]; // ScriptParameterTypes[0] is typeof(int)

            switch ((Commands)Value)
            {
            case Commands.INITIALIZE_ARCHIVES:
                Archivist worker = new Archivist();
                if (ArchivesInstance != null)
                {
                    break;
                }

                ArchivesInstance = new Archives(worker);
                ALFA.Shared.Modules.InfoStore = ArchivesInstance;
                worker.DoWork += worker.InitializeArchives;
                worker.RunWorkerAsync();

                Monks.LoadAreas(this);

                ShowLoadingProgressDebugString();

                break;

            case Commands.PRINT_DEBUG:
                SendMessageToAllDMs("Running ACR_Candlekeep");
                SendMessageToAllDMs(Archivist.debug);
                break;

            case Commands.LIST_AREAS:
                foreach (ALFA.Shared.ActiveArea area in ALFA.Shared.Modules.InfoStore.ActiveAreas.Values)
                {
                    SendMessageToAllDMs(area.Name);
                    foreach (ALFA.Shared.ActiveArea areaTarget in area.ExitTransitions.Values)
                    {
                        SendMessageToAllDMs(String.Format(" - {0}", areaTarget.Name));
                    }
                }
                break;

            case Commands.LIST_SPELLS:
                foreach (ALFA.Shared.SpellCastItemProperties ip in ALFA.Shared.Modules.InfoStore.IPCastSpells)
                {
                    SendMessageToAllDMs(ip.ToString());
                }
                break;

            case Commands.LIST_BASE_ITEMS:
                foreach (ALFA.Shared.BaseItem item in ALFA.Shared.Modules.InfoStore.BaseItems)
                {
                    SendMessageToAllDMs(item.ToString());
                }
                break;
            }

            return(0);
        }