WarTornLands.Infrastructure.XMLParser.CreateArea C# (CSharp) Method

CreateArea() public method

Creates an Area from a given XML DataSet.
public CreateArea ( DataSet areaMeta, AreaVersion version ) : Area
areaMeta System.Data.DataSet The data.
version AreaVersion
return WarTornLands.World.Area
        public Area CreateArea(DataSet areaMeta, AreaVersion version)
        {
            string areaID = areaMeta.Tables["AreaInfo"].Rows[0]["ID"].ToString();

            string versionFile = "";

            if(version == AreaVersion.GOOD)
                versionFile = areaMeta.Tables["BaseInfo"].Rows[0]["Good"].ToString();
            if(version == AreaVersion.EVIL)
                versionFile = areaMeta.Tables["BaseInfo"].Rows[0]["Evil"].ToString();
            if(version == AreaVersion.NEUTRAL)
                versionFile = areaMeta.Tables["BaseInfo"].Rows[0]["Neutral"].ToString();

            #region Read BaseInfo

            DataRow info = areaMeta.Tables["BaseInfo"].Rows[0];
            DataRow posData = info.GetChildRows("BaseInfo_Position")[0];
            Rectangle bounds = new Rectangle(int.Parse(posData["X"].ToString()), int.Parse(posData["Y"].ToString()), 0, 0);
            string name = info["Name"].ToString();
            bool isDungeon = (info["IsDungeon"].ToString() == "1") ? true : false;

            #endregion

            if(isDungeon)
                Player.Instance.Inventory.AddKeyShelf(areaID);

            #region Read TMX

            string path = _game.Content.RootDirectory + "/Data";
            IEnumerable<string> files = Directory.EnumerateFiles(path, versionFile, SearchOption.AllDirectories);

            DataSet data = new DataSet();

            foreach (string file in files)
            {
                data.ReadXml(file);
            }

            bounds.Width = int.Parse(data.Tables["map"].Rows[0]["width"].ToString());
            bounds.Height = int.Parse(data.Tables["map"].Rows[0]["height"].ToString());

            Area area = new Area(bounds, name, areaID, isDungeon);

            List<DataSet> dataCollection = ReadEntityTypes();
            Game1.Instance.Level.EntityTypeData = dataCollection;
            ReadTMX(ref area, data);

            #endregion

            return area;
        }