/// <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; }
/// <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) { }