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;
}