private void ReadPackFile(ZipArchive zipArchive, ContentPackData contentPackData) { try { XmlDocument xml = OpenPackFile(zipArchive); XmlNode root = xml.GetElementsByTagName("ContentPack")[0]; XmlNode node; node = root.SelectSingleNode("Name"); contentPackData.Name = node.InnerText; node = root.SelectSingleNode("Id"); contentPackData.Id = node.InnerText; node = root.SelectSingleNode("Version"); contentPackData.Version = node.InnerText; node = root.SelectSingleNode("CPVersion"); contentPackData.CPVersion = node.InnerText; node = root.SelectSingleNode("Author"); contentPackData.Author = node.InnerText; } catch (Exception e) { throw new Exception("Problem with reading ContentPack.xml file.", e); } }
private void CreateElements(ContentPackData contentPackData) { foreach (ContentPackElementData elementData in contentPackData.Elements) { ContentPackElement element = new ContentPackElement(elementData, this); elementsList.Add(element); } }
/// <summary> /// Default constructor. /// </summary> /// <param name="contentPackData">Content pack data.</param> public ContentPack(ContentPackData contentPackData) { this.Name = contentPackData.Name; this.Id = contentPackData.Id; this.Author = contentPackData.Author; this.Version = contentPackData.Version; this.CPVersion = contentPackData.CPVersion; CreateElements(contentPackData); }
private void ReadPackEntries(ZipArchive zipArchive, ContentPackData contentPackData) { try { foreach (ZipArchiveEntry entry in zipArchive.Entries) { if (IsEntryAnInfoFile(entry)) { ElementInfoFileReader elementInfoFileReader = new ElementInfoFileReader(); ContentPackElementData contentPackElementData = elementInfoFileReader.ReadFile(entry, zipArchive); contentPackData.Elements.Enqueue(contentPackElementData); } } } catch (Exception e) { throw new Exception("Problem with reading pack entries.", e); } }
private ContentPack ReadCotentPackFile(FileInfo file) { ContentPackData contentPackData = new ContentPackData(); try { ZipArchive zipArchive = OpenZipArchive(file); ReadPackFile(zipArchive, contentPackData); if (!IsContentPackVersionCompatible(contentPackData)) { throw new Exception("Content pack version is not compatible with current CPS version."); } ReadPackEntries(zipArchive, contentPackData); } catch (Exception e) { throw new Exception("Problem with reading content pack file.", e); } return(new ContentPack(contentPackData)); }
private bool IsContentPackVersionCompatible(ContentPackData contentPackData) { string packVersion = contentPackData.CPVersion; return(CPVersion.IsCompatible(packVersion)); }