示例#1
0
 public static SpawnEditor2.Region GetByName(string name, WorldMap map)
 {
     for (int i = 0; i < SpawnEditor2.Region.m_Regions.Count; i++)
     {
         SpawnEditor2.Region item = (SpawnEditor2.Region)SpawnEditor2.Region.m_Regions[i];
         if (item.Map == map && item.Name == name)
         {
             return(item);
         }
     }
     return(null);
 }
示例#2
0
 public static SpawnEditor2.Region FindByUId(int uid)
 {
     for (int i = 0; i < SpawnEditor2.Region.m_Regions.Count; i++)
     {
         SpawnEditor2.Region item = (SpawnEditor2.Region)SpawnEditor2.Region.m_Regions[i];
         if (item.UId == uid)
         {
             return(item);
         }
     }
     return(null);
 }
示例#3
0
 public static SpawnEditor2.Region Find(MapLocation p, WorldMap map)
 {
     if (map == WorldMap.Internal)
     {
         return(null);
     }
     for (int i = 0; i < SpawnEditor2.Region.m_Regions.Count; i++)
     {
         SpawnEditor2.Region item = (SpawnEditor2.Region)SpawnEditor2.Region.m_Regions[i];
         if (item.Map == map && item.Contains(p))
         {
             return(item);
         }
     }
     return(null);
 }
示例#4
0
 public static void RemoveRegion(SpawnEditor2.Region region)
 {
     SpawnEditor2.Region.m_Regions.Remove(region);
 }
示例#5
0
        public static void Load(string basedir)
        {
            string str = Path.Combine(basedir, "Data\\Regions.xml");

            if (!File.Exists(str))
            {
                return;
            }
            XmlDocument xmlDocument = new XmlDocument();

            xmlDocument.Load(str);
            foreach (XmlElement elementsByTagName in xmlDocument["ServerRegions"].GetElementsByTagName("Facet"))
            {
                string   attribute = elementsByTagName.GetAttribute("name");
                WorldMap worldMap  = WorldMap.Internal;
                try
                {
                    worldMap = (WorldMap)((int)((WorldMap)Enum.Parse(typeof(WorldMap), attribute, true)));
                }
                catch
                {
                }
                if (worldMap != WorldMap.Internal)
                {
                    foreach (XmlElement xmlElement in elementsByTagName.GetElementsByTagName("region"))
                    {
                        string attribute1 = xmlElement.GetAttribute("name");
                        if (attribute1 == null || attribute1.Length <= 0)
                        {
                            continue;
                        }
                        SpawnEditor2.Region region = new SpawnEditor2.Region("", attribute1, worldMap);
                        SpawnEditor2.Region.AddRegion(region);
                        try
                        {
                            region.Priority = int.Parse(xmlElement.GetAttribute("priority"));
                        }
                        catch
                        {
                            if (!SpawnEditor2.Region.m_SupressXmlWarnings)
                            {
                                Console.WriteLine("Regions.xml: Could not parse priority for region '{0}' (assuming TownPriority)", region.Name);
                            }
                            region.Priority = 50;
                        }
                        XmlElement item = xmlElement["go"];
                        if (item != null)
                        {
                            try
                            {
                                region.GoLocation       = MapLocation.Parse(item.GetAttribute("location"));
                                region.GoLocation.Facet = (int)worldMap;
                            }
                            catch
                            {
                                if (!SpawnEditor2.Region.m_SupressXmlWarnings)
                                {
                                    Console.WriteLine("Regions.xml: Could not parse go location for region '{0}'", region.Name);
                                }
                            }
                        }
                        item = xmlElement["music"];
                        if (item != null)
                        {
                            try
                            {
                                region.Music = (MusicName)((int)((MusicName)Enum.Parse(typeof(MusicName), item.GetAttribute("name"), true)));
                            }
                            catch
                            {
                                if (!SpawnEditor2.Region.m_SupressXmlWarnings)
                                {
                                    Console.WriteLine("Regions.xml: Could not parse music for region '{0}'", region.Name);
                                }
                            }
                        }
                        item = xmlElement["zrange"];
                        if (item != null)
                        {
                            string str1 = item.GetAttribute("min");
                            if (str1 != null && str1 != "")
                            {
                                try
                                {
                                    region.MinZ = int.Parse(str1);
                                }
                                catch
                                {
                                    if (!SpawnEditor2.Region.m_SupressXmlWarnings)
                                    {
                                        Console.WriteLine("Regions.xml: Could not parse zrange:min for region '{0}'", region.Name);
                                    }
                                }
                            }
                            str1 = item.GetAttribute("max");
                            if (str1 != null && str1 != "")
                            {
                                try
                                {
                                    region.MaxZ = int.Parse(str1);
                                }
                                catch
                                {
                                    if (!SpawnEditor2.Region.m_SupressXmlWarnings)
                                    {
                                        Console.WriteLine("Regions.xml: Could not parse zrange:max for region '{0}'", region.Name);
                                    }
                                }
                            }
                        }
                        foreach (XmlElement elementsByTagName1 in xmlElement.GetElementsByTagName("rect"))
                        {
                            try
                            {
                                if (region.m_LoadCoords == null)
                                {
                                    region.m_LoadCoords = new ArrayList(1);
                                }
                                region.m_LoadCoords.Add(SpawnEditor2.Region.ParseRectangle(elementsByTagName1, true));
                            }
                            catch
                            {
                                if (!SpawnEditor2.Region.m_SupressXmlWarnings)
                                {
                                    Console.WriteLine("Regions.xml: Error parsing rect for region '{0}'", region.Name);
                                }
                            }
                        }
                        foreach (XmlElement xmlElement1 in xmlElement.GetElementsByTagName("inn"))
                        {
                            try
                            {
                                if (region.InnBounds == null)
                                {
                                    region.InnBounds = new ArrayList(1);
                                }
                                region.InnBounds.Add(SpawnEditor2.Region.ParseRectangle(xmlElement1, false));
                            }
                            catch
                            {
                                if (!SpawnEditor2.Region.m_SupressXmlWarnings)
                                {
                                    Console.WriteLine("Regions.xml: Error parsing inn for region '{0}'", region.Name);
                                }
                            }
                        }
                    }
                }
                else
                {
                    if (SpawnEditor2.Region.m_SupressXmlWarnings)
                    {
                        continue;
                    }
                    Console.WriteLine("Regions.xml: Invalid facet name '{0}'", attribute);
                }
            }
            ArrayList arrayLists = new ArrayList(SpawnEditor2.Region.m_Regions);

            for (int i = 0; i < arrayLists.Count; i++)
            {
                SpawnEditor2.Region mLoadCoords = (SpawnEditor2.Region)arrayLists[i];
                if (!mLoadCoords.LoadFromXml && mLoadCoords.m_Coords == null)
                {
                    mLoadCoords.Coords = new ArrayList();
                }
                else if (mLoadCoords.LoadFromXml)
                {
                    if (mLoadCoords.m_LoadCoords == null)
                    {
                        mLoadCoords.m_LoadCoords = new ArrayList();
                    }
                    mLoadCoords.Coords = mLoadCoords.m_LoadCoords;
                }
            }
        }
示例#6
0
 public static bool IsNull(SpawnEditor2.Region r)
 {
     return(object.ReferenceEquals(r, null));
 }
示例#7
0
 public static void AddRegion(SpawnEditor2.Region region)
 {
     SpawnEditor2.Region.m_Regions.Add(region);
 }
示例#8
0
 public RegionNode(SpawnEditor2.Region region)
 {
     this._Region = region;
     this.UpdateNode();
 }