public TileList(XDocument doc) { foreach (var elem in doc.Root.Descendants()) { if (elem.Name == "Room") { Add(Room.Parse(elem).AsLevelPart()); } else if (elem.Name == "Walls") { Add(BorderWalls.Parse(elem).AsLevelPart()); } else if (elem.Name == "Wall") { Add(Wall.Parse(elem).AsLevelPart()); } else if (elem.Name == "Floor") { Add(Floor.Parse(elem).AsLevelPart()); } else if (elem.Name == "Tile") { Add(Tile.Parse(elem)); } } }