From 4fc53ce7b223d132c96f80e153ec436f2fc25c8a Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Sat, 27 Jun 2020 08:26:38 -0600 Subject: [PATCH] Compression.BSA -> Wabbajack.Compression.BSA --- Compression.BSA.Test/BSATests.cs | 1 + .../Compression.BSA.Test.csproj | 2 +- Wabbajack.CLI/Verbs/BSADump.cs | 2 +- .../Definitions/GKA_software_license.pdf | Bin 0 -> 28738 bytes Wabbajack.Common/Wabbajack.Common.csproj | 4 +- .../BA2Builder.cs | 2 +- .../BA2Reader.cs | 2 +- .../BSABuilder.cs | 2 +- .../BSADispatch.cs | 2 +- .../BSAReader.cs | 2 +- .../DDS.cs | 2 +- .../IBSAReader.cs | 2 +- .../Readme.md | 0 .../TES3Builder.cs | 2 +- .../TES3Reader.cs | 2 +- .../Utils.cs | 2 +- .../Wabbajack.Compression.BSA.csproj | 8 ++- .../Wabbajack.Compression.BSA.xml | 56 ++++++++++++++++++ .../CompilationSteps/DeconstructBSAs.cs | 2 +- Wabbajack.Lib/Data.cs | 2 +- Wabbajack.Lib/MO2Compiler.cs | 2 +- Wabbajack.Lib/Wabbajack.Lib.csproj | 2 +- Wabbajack.Test/SanityTests.cs | 2 +- .../ExtractedBSAFile.cs | 2 +- Wabbajack.VirtualFileSystem/FileExtractor.cs | 2 +- .../Wabbajack.VirtualFileSystem.csproj | 2 +- Wabbajack.sln | 2 +- Wabbajack/Wabbajack.csproj | 2 +- 28 files changed, 87 insertions(+), 26 deletions(-) create mode 100644 Wabbajack.Common/FileSignatures/Definitions/GKA_software_license.pdf rename {Compression.BSA => Wabbajack.Compression.BSA}/BA2Builder.cs (99%) rename {Compression.BSA => Wabbajack.Compression.BSA}/BA2Reader.cs (99%) rename {Compression.BSA => Wabbajack.Compression.BSA}/BSABuilder.cs (99%) rename {Compression.BSA => Wabbajack.Compression.BSA}/BSADispatch.cs (97%) rename {Compression.BSA => Wabbajack.Compression.BSA}/BSAReader.cs (99%) rename {Compression.BSA => Wabbajack.Compression.BSA}/DDS.cs (99%) rename {Compression.BSA => Wabbajack.Compression.BSA}/IBSAReader.cs (97%) rename {Compression.BSA => Wabbajack.Compression.BSA}/Readme.md (100%) rename {Compression.BSA => Wabbajack.Compression.BSA}/TES3Builder.cs (98%) rename {Compression.BSA => Wabbajack.Compression.BSA}/TES3Reader.cs (99%) rename {Compression.BSA => Wabbajack.Compression.BSA}/Utils.cs (99%) rename Compression.BSA/Compression.BSA.csproj => Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj (67%) create mode 100644 Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.xml diff --git a/Compression.BSA.Test/BSATests.cs b/Compression.BSA.Test/BSATests.cs index 92d1aa63..b7d21aa6 100644 --- a/Compression.BSA.Test/BSATests.cs +++ b/Compression.BSA.Test/BSATests.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Threading.Tasks; using Newtonsoft.Json; using Wabbajack.Common; +using Wabbajack.Compression.BSA; using Wabbajack.Lib.Downloaders; using Wabbajack.Lib.NexusApi; using Wabbajack.VirtualFileSystem; diff --git a/Compression.BSA.Test/Compression.BSA.Test.csproj b/Compression.BSA.Test/Compression.BSA.Test.csproj index 1797506d..3b3f1ad9 100644 --- a/Compression.BSA.Test/Compression.BSA.Test.csproj +++ b/Compression.BSA.Test/Compression.BSA.Test.csproj @@ -19,9 +19,9 @@ - + diff --git a/Wabbajack.CLI/Verbs/BSADump.cs b/Wabbajack.CLI/Verbs/BSADump.cs index 0c1c55ca..59c1e7ff 100644 --- a/Wabbajack.CLI/Verbs/BSADump.cs +++ b/Wabbajack.CLI/Verbs/BSADump.cs @@ -1,7 +1,7 @@ using System; using System.Threading.Tasks; using CommandLine; -using Compression.BSA; +using Wabbajack.Compression.BSA; using Wabbajack.Common; namespace Wabbajack.CLI.Verbs diff --git a/Wabbajack.Common/FileSignatures/Definitions/GKA_software_license.pdf b/Wabbajack.Common/FileSignatures/Definitions/GKA_software_license.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9d9245fc043fcbf67544049e779e25a70bbbbe54 GIT binary patch literal 28738 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 LG&E8w(#Zbwin10-x64 enable true - 3.0 + 2.1.0.0 Wabbajack Common Lib Wabbajack Team 2020 @@ -14,7 +14,7 @@ https://raw.githubusercontent.com/wabbajack-tools/wabbajack/master/LICENSE.txt https://www.wabbajack.org/favicon.ico https://github.com/wabbajack-tools/wabbajack - 3.0 + 2.1.0.0 Wabbajack.Common.xml diff --git a/Compression.BSA/BA2Builder.cs b/Wabbajack.Compression.BSA/BA2Builder.cs similarity index 99% rename from Compression.BSA/BA2Builder.cs rename to Wabbajack.Compression.BSA/BA2Builder.cs index c182bd7c..234fc6d6 100644 --- a/Compression.BSA/BA2Builder.cs +++ b/Wabbajack.Compression.BSA/BA2Builder.cs @@ -9,7 +9,7 @@ using ICSharpCode.SharpZipLib.Zip.Compression; using ICSharpCode.SharpZipLib.Zip.Compression.Streams; using Wabbajack.Common; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { interface IFileBuilder { diff --git a/Compression.BSA/BA2Reader.cs b/Wabbajack.Compression.BSA/BA2Reader.cs similarity index 99% rename from Compression.BSA/BA2Reader.cs rename to Wabbajack.Compression.BSA/BA2Reader.cs index b5d20ed9..fd0ce5d1 100644 --- a/Compression.BSA/BA2Reader.cs +++ b/Wabbajack.Compression.BSA/BA2Reader.cs @@ -9,7 +9,7 @@ using Wabbajack.Common; using Wabbajack.Common.Serialization.Json; using File = Alphaleonis.Win32.Filesystem.File; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { public enum EntryType { diff --git a/Compression.BSA/BSABuilder.cs b/Wabbajack.Compression.BSA/BSABuilder.cs similarity index 99% rename from Compression.BSA/BSABuilder.cs rename to Wabbajack.Compression.BSA/BSABuilder.cs index dbc5dc56..7bd71e5b 100644 --- a/Compression.BSA/BSABuilder.cs +++ b/Wabbajack.Compression.BSA/BSABuilder.cs @@ -11,7 +11,7 @@ using Wabbajack.Common; using File = Alphaleonis.Win32.Filesystem.File; using Path = Alphaleonis.Win32.Filesystem.Path; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { public class BSABuilder : IBSABuilder { diff --git a/Compression.BSA/BSADispatch.cs b/Wabbajack.Compression.BSA/BSADispatch.cs similarity index 97% rename from Compression.BSA/BSADispatch.cs rename to Wabbajack.Compression.BSA/BSADispatch.cs index fec3073c..0e8cd684 100644 --- a/Compression.BSA/BSADispatch.cs +++ b/Wabbajack.Compression.BSA/BSADispatch.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; using Wabbajack.Common; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { public static class BSADispatch { diff --git a/Compression.BSA/BSAReader.cs b/Wabbajack.Compression.BSA/BSAReader.cs similarity index 99% rename from Compression.BSA/BSAReader.cs rename to Wabbajack.Compression.BSA/BSAReader.cs index 6858c4a8..8770edd0 100644 --- a/Compression.BSA/BSAReader.cs +++ b/Wabbajack.Compression.BSA/BSAReader.cs @@ -9,7 +9,7 @@ using Wabbajack.Common; using Wabbajack.Common.Serialization.Json; using File = Alphaleonis.Win32.Filesystem.File; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { public enum VersionType : uint { diff --git a/Compression.BSA/DDS.cs b/Wabbajack.Compression.BSA/DDS.cs similarity index 99% rename from Compression.BSA/DDS.cs rename to Wabbajack.Compression.BSA/DDS.cs index 01ca931e..309af7d2 100644 --- a/Compression.BSA/DDS.cs +++ b/Wabbajack.Compression.BSA/DDS.cs @@ -1,6 +1,6 @@ using System.Runtime.InteropServices; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { /* * Copied from https://raw.githubusercontent.com/AlexxEG/BSA_Browser/master/Sharp.BSA.BA2/BA2Util/DDS.cs diff --git a/Compression.BSA/IBSAReader.cs b/Wabbajack.Compression.BSA/IBSAReader.cs similarity index 97% rename from Compression.BSA/IBSAReader.cs rename to Wabbajack.Compression.BSA/IBSAReader.cs index 46f6ca4b..cb731931 100644 --- a/Compression.BSA/IBSAReader.cs +++ b/Wabbajack.Compression.BSA/IBSAReader.cs @@ -4,7 +4,7 @@ using System.IO; using System.Threading.Tasks; using Wabbajack.Common; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { public interface IBSAReader { diff --git a/Compression.BSA/Readme.md b/Wabbajack.Compression.BSA/Readme.md similarity index 100% rename from Compression.BSA/Readme.md rename to Wabbajack.Compression.BSA/Readme.md diff --git a/Compression.BSA/TES3Builder.cs b/Wabbajack.Compression.BSA/TES3Builder.cs similarity index 98% rename from Compression.BSA/TES3Builder.cs rename to Wabbajack.Compression.BSA/TES3Builder.cs index 78a42178..c7f39a98 100644 --- a/Compression.BSA/TES3Builder.cs +++ b/Wabbajack.Compression.BSA/TES3Builder.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using Wabbajack.Common; using File = Alphaleonis.Win32.Filesystem.File; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { public class TES3Builder : IBSABuilder { diff --git a/Compression.BSA/TES3Reader.cs b/Wabbajack.Compression.BSA/TES3Reader.cs similarity index 99% rename from Compression.BSA/TES3Reader.cs rename to Wabbajack.Compression.BSA/TES3Reader.cs index 45ffecdc..6d4939c6 100644 --- a/Compression.BSA/TES3Reader.cs +++ b/Wabbajack.Compression.BSA/TES3Reader.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using Wabbajack.Common; using Wabbajack.Common.Serialization.Json; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { public class TES3Reader : IBSAReader { diff --git a/Compression.BSA/Utils.cs b/Wabbajack.Compression.BSA/Utils.cs similarity index 99% rename from Compression.BSA/Utils.cs rename to Wabbajack.Compression.BSA/Utils.cs index 32893261..e266fe2b 100644 --- a/Compression.BSA/Utils.cs +++ b/Wabbajack.Compression.BSA/Utils.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using Wabbajack.Common; using Path = Alphaleonis.Win32.Filesystem.Path; -namespace Compression.BSA +namespace Wabbajack.Compression.BSA { internal static class Utils { diff --git a/Compression.BSA/Compression.BSA.csproj b/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj similarity index 67% rename from Compression.BSA/Compression.BSA.csproj rename to Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj index cf206971..e8bfd06d 100644 --- a/Compression.BSA/Compression.BSA.csproj +++ b/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj @@ -5,11 +5,15 @@ true x64 win10-x64 - 3.0 + 2.1.0.0 true + https://github.com/wabbajack-tools/wabbajack + https://raw.githubusercontent.com/wabbajack-tools/wabbajack/master/LICENSE.txt + https://www.wabbajack.org/favicon.ico + https://github.com/wabbajack-tools/wabbajack - Compression.BSA.xml + Wabbajack.Compression.BSA.xml diff --git a/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.xml b/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.xml new file mode 100644 index 00000000..df9cd0af --- /dev/null +++ b/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.xml @@ -0,0 +1,56 @@ + + + + Wabbajack.Compression.BSA + + + + + The files defined by the archive + + + + + The path of the file inside the archive + + + + + The uncompressed file size + + + + + Get the metadata for the file. + + + + + Copies this entry to the given stream. 100% thread safe, the .bsa will be opened multiple times + in order to maintain thread-safe access. + + + + + + Returns bytes for a \0 terminated string + + + + + + + Returns bytes for unterminated string with a count at the start + + + + + + + Returns bytes for a \0 terminated string prefixed by a length + + + + + + diff --git a/Wabbajack.Lib/CompilationSteps/DeconstructBSAs.cs b/Wabbajack.Lib/CompilationSteps/DeconstructBSAs.cs index daa6abc9..52fc3759 100644 --- a/Wabbajack.Lib/CompilationSteps/DeconstructBSAs.cs +++ b/Wabbajack.Lib/CompilationSteps/DeconstructBSAs.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Alphaleonis.Win32.Filesystem; -using Compression.BSA; +using Wabbajack.Compression.BSA; using Newtonsoft.Json; using Wabbajack.Common; using Wabbajack.Common.StatusFeed.Errors; diff --git a/Wabbajack.Lib/Data.cs b/Wabbajack.Lib/Data.cs index cc0cab5e..8eea94a4 100644 --- a/Wabbajack.Lib/Data.cs +++ b/Wabbajack.Lib/Data.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Compression.BSA; +using Wabbajack.Compression.BSA; using Newtonsoft.Json; using Wabbajack.Common; using Wabbajack.Common.Serialization.Json; diff --git a/Wabbajack.Lib/MO2Compiler.cs b/Wabbajack.Lib/MO2Compiler.cs index 2cbfb1ea..891acd7e 100644 --- a/Wabbajack.Lib/MO2Compiler.cs +++ b/Wabbajack.Lib/MO2Compiler.cs @@ -1,4 +1,4 @@ -using Compression.BSA; +using Wabbajack.Compression.BSA; using System; using System.Collections.Concurrent; using System.Collections.Generic; diff --git a/Wabbajack.Lib/Wabbajack.Lib.csproj b/Wabbajack.Lib/Wabbajack.Lib.csproj index 067f9f91..612006de 100644 --- a/Wabbajack.Lib/Wabbajack.Lib.csproj +++ b/Wabbajack.Lib/Wabbajack.Lib.csproj @@ -72,8 +72,8 @@ - + diff --git a/Wabbajack.Test/SanityTests.cs b/Wabbajack.Test/SanityTests.cs index a4fa2a78..a332b176 100644 --- a/Wabbajack.Test/SanityTests.cs +++ b/Wabbajack.Test/SanityTests.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; -using Compression.BSA; +using Wabbajack.Compression.BSA; using Wabbajack.Common; using Wabbajack.Lib; using Wabbajack.Lib.CompilationSteps.CompilationErrors; diff --git a/Wabbajack.VirtualFileSystem/ExtractedBSAFile.cs b/Wabbajack.VirtualFileSystem/ExtractedBSAFile.cs index 694a5a2a..055983ec 100644 --- a/Wabbajack.VirtualFileSystem/ExtractedBSAFile.cs +++ b/Wabbajack.VirtualFileSystem/ExtractedBSAFile.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Threading.Tasks; -using Compression.BSA; +using Wabbajack.Compression.BSA; using Wabbajack.Common; namespace Wabbajack.VirtualFileSystem diff --git a/Wabbajack.VirtualFileSystem/FileExtractor.cs b/Wabbajack.VirtualFileSystem/FileExtractor.cs index 41bc64bd..5f53c6b4 100644 --- a/Wabbajack.VirtualFileSystem/FileExtractor.cs +++ b/Wabbajack.VirtualFileSystem/FileExtractor.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Reactive.Linq; using System.Threading.Tasks; using Alphaleonis.Win32.Filesystem; -using Compression.BSA; +using Wabbajack.Compression.BSA; using OMODFramework; using Wabbajack.Common.StatusFeed; using Wabbajack.Common.StatusFeed.Errors; diff --git a/Wabbajack.VirtualFileSystem/Wabbajack.VirtualFileSystem.csproj b/Wabbajack.VirtualFileSystem/Wabbajack.VirtualFileSystem.csproj index 8fe0e7fc..146fa16b 100644 --- a/Wabbajack.VirtualFileSystem/Wabbajack.VirtualFileSystem.csproj +++ b/Wabbajack.VirtualFileSystem/Wabbajack.VirtualFileSystem.csproj @@ -9,8 +9,8 @@ Wabbajack.VirtualFileSystem.xml - + diff --git a/Wabbajack.sln b/Wabbajack.sln index 745caef4..16757883 100644 --- a/Wabbajack.sln +++ b/Wabbajack.sln @@ -5,7 +5,7 @@ VisualStudioVersion = 16.0.29102.190 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wabbajack.Common", "Wabbajack.Common\Wabbajack.Common.csproj", "{B3F3FB6E-B9EB-4F49-9875-D78578BC7AE5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compression.BSA", "Compression.BSA\Compression.BSA.csproj", "{FF5D892F-8FF4-44FC-8F7F-CD58F307AD1B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wabbajack.Compression.BSA", "Wabbajack.Compression.BSA\Wabbajack.Compression.BSA.csproj", "{FF5D892F-8FF4-44FC-8F7F-CD58F307AD1B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4EDEF6CC-2F5C-439B-BEAF-9D03895099F1}" ProjectSection(SolutionItems) = preProject diff --git a/Wabbajack/Wabbajack.csproj b/Wabbajack/Wabbajack.csproj index bde3bcf8..6266da13 100644 --- a/Wabbajack/Wabbajack.csproj +++ b/Wabbajack/Wabbajack.csproj @@ -80,9 +80,9 @@ - +