diff --git a/AssetsTools/AssetTypeClass.cpp b/AssetsTools/AssetTypeClass.cpp index c92c0ec..589d473 100644 --- a/AssetsTools/AssetTypeClass.cpp +++ b/AssetsTools/AssetTypeClass.cpp @@ -190,7 +190,7 @@ ASSETSTOOLS_API QWORD AssetTypeValueField::Write(IAssetsWriter *pWriter, QWORD f SwapEndians_(dwValueTmp); pWriter->Write(filePos, 4, &dwValueTmp); filePos+=4; pWriter->Write(filePos, curStrLen, strVal); filePos+=curStrLen; - if ((this->templateField->children.size() > 0) && this->templateField->children[0].align) + if ((this->templateField->children.size() == 1) && this->templateField->children[0].align) doPadding = true; } else if (this->value != NULL @@ -215,6 +215,8 @@ ASSETSTOOLS_API QWORD AssetTypeValueField::Write(IAssetsWriter *pWriter, QWORD f filePos = this->pChildren[i]->Write(pWriter, filePos, bigEndian); } } + if ((this->templateField->children.size() == 1) && this->templateField->children[0].align) + doPadding = true; //For special case: String overwritten with ByteArray value. } else if (this->childrenCount > 0) { diff --git a/Launcher/Launcher.rc b/Launcher/Launcher.rc index b2b2e3e..ea255f8 100644 --- a/Launcher/Launcher.rc +++ b/Launcher/Launcher.rc @@ -42,7 +42,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL STRINGTABLE BEGIN -IDS_APP_TITLE "Unity Asset Bundle Extractor" +IDS_APP_TITLE "Asset Bundle Extractor" IDC_ASSETBUNDLEEXTRACTOR "ASSETBUNDLEEXTRACTOR" END diff --git a/ModInstaller/Dialogs.rc b/ModInstaller/Dialogs.rc index 9859904..1e0cb9d 100644 Binary files a/ModInstaller/Dialogs.rc and b/ModInstaller/Dialogs.rc differ diff --git a/README.md b/README.md index 6d3b5eb..2eb18a6 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ -# Unity Asset Bundle Extractor -Unity .assets and AssetBundle editor +# Asset Bundle Extractor +.assets and AssetBundle editor. +Not affiliated with Unity Technologies. -UABE is an editor for Unity 3.4+/4/5/2017-2021.3 .assets and AssetBundle files. It can create standalone mod installers from changes to .assets and/or bundles. +UABE is an editor for 3.4+/4/5/2017-2021.3 .assets and AssetBundle files. It can create standalone mod installers from changes to .assets and/or bundles. -There are multiple plugins to convert Unity assets from/to common file formats : +There are multiple plugins to convert assets from/to common file formats : - The Texture plugin can export and import .png and .tga files (Texture2D only) and decode&encode most texture formats used by Unity. - The TextAsset plugin can export and import .txt files. - The AudioClip plugin can export uncompressed .wav files from Unity 5+ AudioClip assets using FMOD, .m4a files from WebGL builds and Unity 4 sound files. diff --git a/Tools/Mono.Cecil.Rocks.dll b/Tools/Mono.Cecil.Rocks.dll index c54bd0e..6308165 100644 Binary files a/Tools/Mono.Cecil.Rocks.dll and b/Tools/Mono.Cecil.Rocks.dll differ diff --git a/Tools/Mono.Cecil.dll b/Tools/Mono.Cecil.dll index 65d0c8e..1774f62 100644 Binary files a/Tools/Mono.Cecil.dll and b/Tools/Mono.Cecil.dll differ diff --git a/Tools/TypeTreeGenerator.exe b/Tools/TypeTreeGenerator.exe index 4eb0df7..4d27951 100644 Binary files a/Tools/TypeTreeGenerator.exe and b/Tools/TypeTreeGenerator.exe differ diff --git a/TypeTreeGenerator/HelperClass.cs b/TypeTreeGenerator/HelperClass.cs index d7c83c5..d80cd0b 100644 --- a/TypeTreeGenerator/HelperClass.cs +++ b/TypeTreeGenerator/HelperClass.cs @@ -47,9 +47,9 @@ public static GenericFuncContainer BaseInterfaceComparer(Ty TypeDefinition curBaseType = type; while (curBaseType != null) { - foreach (TypeReference curInterfaceRef in curBaseType.Interfaces) + foreach (InterfaceImplementation curInterfaceImpl in curBaseType.Interfaces) { - TypeDefinition interfaceDef = curInterfaceRef.Resolve(); + TypeDefinition interfaceDef = curInterfaceImpl.InterfaceType.Resolve(); if (interfaceDef == null) continue; if (interfaceDef.Equals(baseType)) diff --git a/TypeTreeGenerator/Program.cs b/TypeTreeGenerator/Program.cs index d76ef4e..49d6c12 100644 --- a/TypeTreeGenerator/Program.cs +++ b/TypeTreeGenerator/Program.cs @@ -35,10 +35,6 @@ public AssemblyArgs(string path, EngineVersion engineVersion) static Logger logger; public static void Main(string[] args) { - /*args = new string[]{ "-f", "E:\\Programme\\SteamLibrary\\SteamApps\\common\\7 Days To Die\\7DaysToDie_Data\\Managed\\Assembly-CSharp.dll", - "-f", "E:\\Programme\\SteamLibrary\\SteamApps\\common\\7 Days To Die\\7DaysToDie_Data\\Managed\\Assembly-CSharp-firstpass.dll"};*/ - //args = new string[] { "-f", @"P:\Downloads\users_assetbundle-demo\demo\build9 test\test_Data\Managed\Assembly-CSharp.dll" }; - //args = new string[] { "-f", @"P:\Programme\Unity 5.6.0f3\Editor\Data\Managed\UnityEngine.dll", "-f", @"P:\Downloads\UABEHelp31032018_Assembly-CSharp_RefFix.dll", "-c", "UnityTest.BoolComparer" }; if (args.Length == 0) { Console.Out.WriteLine("TypeTreeGenerator Parameters (evaluated from first to last) :"); diff --git a/UABE_Win32/AssetBundleExtractor.rc b/UABE_Win32/AssetBundleExtractor.rc index b39fa94..64047a5 100644 Binary files a/UABE_Win32/AssetBundleExtractor.rc and b/UABE_Win32/AssetBundleExtractor.rc differ