/// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="fileEntry">The file data</param>
 /// <param name="settings">The settings when serializing the data</param>
 /// <param name="baseOffset">The base offset to use when reading the files</param>
 public UbiArtIPKArchiveFileData(UbiArtIPKFileEntry fileEntry, UbiArtSettings settings, uint baseOffset)
 {
     // Get the file properties
     Directory     = fileEntry.Path.DirectoryPath;
     FileExtension = new FileExtension(fileEntry.Path.GetFileExtensions());
     FileName      = fileEntry.Path.FileName;
     FileEntry     = fileEntry;
     BaseOffset    = baseOffset;
     Settings      = settings;
 }
Example #2
0
        /// <summary>
        /// Gets a value indicating if the file should be compressed
        /// </summary>
        /// <param name="entry">The file entry to check</param>
        /// <returns>True if the file should be compressed, otherwise false</returns>
        public bool ShouldCompress(UbiArtIPKFileEntry entry)
        {
            return(CompressionMode switch
            {
                FileCompressionMode.Never => false,
                FileCompressionMode.Always => true,

                FileCompressionMode.MatchesSetting => !CompressEntireBlock && CompressedFileExtensions.Any(x => x == new FileExtension(entry.Path.FileName)),
                FileCompressionMode.WasCompressed => entry.IsCompressed,

                _ => throw new ArgumentOutOfRangeException(nameof(CompressionMode), CompressionMode, null)
            });
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="fileEntry">The file data</param>
 /// <param name="settings">The settings when serializing the data</param>
 /// <param name="baseOffset">The base offset to use when reading the files</param>
 public UbiArtIPKArchiveImageFileData(UbiArtIPKFileEntry fileEntry, UbiArtSettings settings, uint baseOffset) : base(fileEntry, settings, baseOffset)
 {
 }