Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
 private void CreateElements(ContentPackData contentPackData)
 {
     foreach (ContentPackElementData elementData in contentPackData.Elements)
     {
         ContentPackElement element = new ContentPackElement(elementData, this);
         elementsList.Add(element);
     }
 }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
 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);
     }
 }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        private bool IsContentPackVersionCompatible(ContentPackData contentPackData)
        {
            string packVersion = contentPackData.CPVersion;

            return(CPVersion.IsCompatible(packVersion));
        }