From 63f4b24b714d0240d27724c56356604d13cc37fa Mon Sep 17 00:00:00 2001 From: Razmoth <12517189-Razmoth@users.noreply.gitlab.com> Date: Sun, 12 Mar 2023 22:14:22 +0400 Subject: [PATCH] v0.80.36 --- AssetStudio/AssetStudio.csproj | 6 - AssetStudio/AssetsManager.cs | 41 +- AssetStudio/BundleFile.cs | 33 +- AssetStudio/Classes/Renderer.cs | 2 - AssetStudio/Crypto/CNUnity.cs | 158 -- AssetStudio/GameManager.cs | 4 +- AssetStudio/Keys.json | 70 - AssetStudio/UnityCNKeyManager.cs | 68 - AssetStudioFBXWrapper/Fbx.cs | 4 +- AssetStudioFBXWrapper/FbxExporter.cs | 6 +- AssetStudioFBXWrapper/FbxExporterContext.cs | 44 +- AssetStudioGUI/App.config | 12 +- AssetStudioGUI/AssetStudioGUIForm.Designer.cs | 1817 ++++++++--------- AssetStudioGUI/AssetStudioGUIForm.cs | 47 +- AssetStudioGUI/CNUnityForm.Designer.cs | 94 - AssetStudioGUI/CNUnityForm.cs | 126 -- AssetStudioGUI/CNUnityForm.resx | 66 - AssetStudioGUI/ExportOptions.Designer.cs | 1006 ++++----- AssetStudioGUI/ExportOptions.cs | 27 +- AssetStudioGUI/ExportOptions.resx | 13 +- AssetStudioGUI/Exporter.cs | 3 +- AssetStudioGUI/Libraries/x64/acl.dll | Bin 18944 -> 19456 bytes AssetStudioGUI/Libraries/x64/sracl.dll | Bin 16384 -> 16896 bytes AssetStudioGUI/Libraries/x86/acl.dll | Bin 86016 -> 89088 bytes AssetStudioGUI/Libraries/x86/sracl.dll | Bin 13824 -> 14336 bytes .../Properties/Settings.Designer.cs | 52 +- AssetStudioGUI/Properties/Settings.settings | 12 +- AssetStudioUtility/ACL/ACL.cs | 55 +- AssetStudioUtility/ModelExporter.cs | 4 +- 29 files changed, 1533 insertions(+), 2237 deletions(-) delete mode 100644 AssetStudio/Crypto/CNUnity.cs delete mode 100644 AssetStudio/Keys.json delete mode 100644 AssetStudio/UnityCNKeyManager.cs delete mode 100644 AssetStudioGUI/CNUnityForm.Designer.cs delete mode 100644 AssetStudioGUI/CNUnityForm.cs delete mode 100644 AssetStudioGUI/CNUnityForm.resx diff --git a/AssetStudio/AssetStudio.csproj b/AssetStudio/AssetStudio.csproj index d3a981b..fd85873 100644 --- a/AssetStudio/AssetStudio.csproj +++ b/AssetStudio/AssetStudio.csproj @@ -13,11 +13,5 @@ - - - - PreserveNewest - - diff --git a/AssetStudio/AssetsManager.cs b/AssetStudio/AssetsManager.cs index 56f2db0..f3c04af 100644 --- a/AssetStudio/AssetsManager.cs +++ b/AssetStudio/AssetsManager.cs @@ -443,7 +443,7 @@ namespace AssetStudio foreach (var offset in offsets) { stream.Offset = offset; - var dummyPath = Path.Combine("//?/block:/", reader.FileName, offset.ToString("X8")); + var dummyPath = Path.Combine(reader.FileName, offset.ToString("X8")); var subReader = new FileReader(dummyPath, stream, true); LoadBundleFile(subReader, reader.FullPath, offset); } @@ -454,7 +454,7 @@ namespace AssetStudio do { stream.Offset = stream.RelativePosition; - var dummyPath = Path.Combine("//?/block:/", reader.FileName, stream.RelativePosition.ToString("X8")); + var dummyPath = Path.Combine(reader.FileName, stream.RelativePosition.ToString("X8")); var subReader = new FileReader(dummyPath, stream, true); LoadBundleFile(subReader, reader.FullPath, stream.RelativePosition); } while (stream.Remaining > 0); @@ -480,7 +480,7 @@ namespace AssetStudio foreach (var offset in offsets) { stream.Offset = offset; - var dummyPath = Path.Combine("//?/blk:/", reader.FileName, offset.ToString("X8")); + var dummyPath = Path.Combine(reader.FileName, offset.ToString("X8")); var subReader = new FileReader(dummyPath, stream, true); switch (subReader.FileType) { @@ -499,7 +499,7 @@ namespace AssetStudio do { stream.Offset = stream.RelativePosition; - var dummyPath = Path.Combine("//?/blk:/", reader.FileName, stream.RelativePosition.ToString("X8")); + var dummyPath = Path.Combine(reader.FileName, stream.RelativePosition.ToString("X8")); var subReader = new FileReader(dummyPath, stream, true); switch (subReader.FileType) { @@ -626,10 +626,10 @@ namespace AssetStudio case ClassIDType.Animation: obj = new Animation(objectReader); break; - case ClassIDType.AnimationClip: + case ClassIDType.AnimationClip when ExportableTypes[ClassIDType.AnimationClip]: obj = new AnimationClip(objectReader); break; - case ClassIDType.Animator: + case ClassIDType.Animator when ExportableTypes[ClassIDType.Animator]: obj = new Animator(objectReader); break; case ClassIDType.AnimatorController: @@ -638,7 +638,7 @@ namespace AssetStudio case ClassIDType.AnimatorOverrideController: obj = new AnimatorOverrideController(objectReader); break; - case ClassIDType.AssetBundle: + case ClassIDType.AssetBundle when ExportableTypes[ClassIDType.AssetBundle]: obj = new AssetBundle(objectReader); break; case ClassIDType.AudioClip: @@ -647,30 +647,29 @@ namespace AssetStudio case ClassIDType.Avatar: obj = new Avatar(objectReader); break; - case ClassIDType.Font: + case ClassIDType.Font when ExportableTypes[ClassIDType.Font]: obj = new Font(objectReader); break; - case ClassIDType.GameObject: + case ClassIDType.GameObject when ExportableTypes[ClassIDType.GameObject]: obj = new GameObject(objectReader); break; - case ClassIDType.IndexObject: + case ClassIDType.IndexObject when ExportableTypes[ClassIDType.MiHoYoBinData]: obj = new IndexObject(objectReader); break; case ClassIDType.Material: + case ClassIDType.Material when ExportableTypes[ClassIDType.Material]: obj = new Material(objectReader); break; - case ClassIDType.Mesh: + case ClassIDType.Mesh when ExportableTypes[ClassIDType.Mesh]: obj = new Mesh(objectReader); break; case ClassIDType.MeshFilter: obj = new MeshFilter(objectReader); break; - case ClassIDType.MeshRenderer: - if (Renderer.Skipped) - goto default; + case ClassIDType.MeshRenderer when ExportableTypes[ClassIDType.Renderer]: obj = new MeshRenderer(objectReader); break; - case ClassIDType.MiHoYoBinData: + case ClassIDType.MiHoYoBinData when ExportableTypes[ClassIDType.MiHoYoBinData]: obj = new MiHoYoBinData(objectReader); break; case ClassIDType.MonoBehaviour: @@ -688,24 +687,22 @@ namespace AssetStudio case ClassIDType.RectTransform: obj = new RectTransform(objectReader); break; - case ClassIDType.Shader: + case ClassIDType.Shader when ExportableTypes[ClassIDType.Shader]: obj = new Shader(objectReader); break; - case ClassIDType.SkinnedMeshRenderer: - if (Renderer.Skipped) - goto default; + case ClassIDType.SkinnedMeshRenderer when ExportableTypes[ClassIDType.Renderer]: obj = new SkinnedMeshRenderer(objectReader); break; - case ClassIDType.Sprite: + case ClassIDType.Sprite when ExportableTypes[ClassIDType.Sprite]: obj = new Sprite(objectReader); break; case ClassIDType.SpriteAtlas: obj = new SpriteAtlas(objectReader); break; - case ClassIDType.TextAsset: + case ClassIDType.TextAsset when ExportableTypes[ClassIDType.TextAsset]: obj = new TextAsset(objectReader); break; - case ClassIDType.Texture2D: + case ClassIDType.Texture2D when ExportableTypes[ClassIDType.Texture2D]: obj = new Texture2D(objectReader); break; case ClassIDType.Transform: diff --git a/AssetStudio/BundleFile.cs b/AssetStudio/BundleFile.cs index a85713b..866bf16 100644 --- a/AssetStudio/BundleFile.cs +++ b/AssetStudio/BundleFile.cs @@ -15,7 +15,6 @@ namespace AssetStudio BlocksInfoAtTheEnd = 0x80, OldWebPluginCompatibility = 0x100, BlockInfoNeedPaddingAtStart = 0x200, - CNUnityEncryption = 0x400 } [Flags] @@ -23,7 +22,6 @@ namespace AssetStudio { CompressionTypeMask = 0x3f, Streamed = 0x40, - CNUnity = 0x100 } public enum CompressionType @@ -66,7 +64,6 @@ namespace AssetStudio } private Game Game; - private CNUnity CNUnity; public Header m_Header; private Node[] m_DirectoryInfo; @@ -311,30 +308,6 @@ namespace AssetStudio private void ReadBlocksInfoAndDirectory(FileReader reader) { - if (Game.Type.IsCNUnity()) - { - ArchiveFlags mask; - - var version = ParseVersion(); - //Flag changed it in these versions - if (version[0] < 2020 || //2020 and earlier - (version[0] == 2020 && version[1] == 3 && version[2] <= 34) || //2020.3.34 and earlier - (version[0] == 2021 && version[1] == 3 && version[2] <= 2) || //2021.3.2 and earlier - (version[0] == 2022 && version[1] == 3 && version[2] <= 1)) //2022.3.1 and earlier - { - mask = ArchiveFlags.BlockInfoNeedPaddingAtStart; - } - else - { - mask = ArchiveFlags.CNUnityEncryption; - } - - if ((m_Header.flags & mask) != 0) - { - CNUnity = new CNUnity(reader); - } - } - byte[] blocksInfoBytes; if (m_Header.version >= 7 && !Game.Type.IsSRGroup()) { @@ -424,7 +397,7 @@ namespace AssetStudio }; } } - if (!Game.Type.IsCNUnity() && (m_Header.flags & ArchiveFlags.BlockInfoNeedPaddingAtStart) != 0) + if ((m_Header.flags & ArchiveFlags.BlockInfoNeedPaddingAtStart) != 0) { reader.AlignStream(16); } @@ -460,10 +433,6 @@ namespace AssetStudio { compressedBytesSpan = Mr0kUtils.Decrypt(compressedBytesSpan, (Mr0k)Game); } - if (Game.Type.IsCNUnity() && (blockInfo.flags & StorageBlockFlags.CNUnity) != 0) - { - CNUnity.DecryptBlock(compressedBytesSpan, compressedSize, i); - } if (Game.Type.IsOPFP()) { OPFPUtils.Decrypt(compressedBytesSpan, reader.FullPath); diff --git a/AssetStudio/Classes/Renderer.cs b/AssetStudio/Classes/Renderer.cs index e4181b5..bbc9d5f 100644 --- a/AssetStudio/Classes/Renderer.cs +++ b/AssetStudio/Classes/Renderer.cs @@ -19,8 +19,6 @@ namespace AssetStudio public abstract class Renderer : Component { - public static bool Skipped; - public PPtr[] m_Materials; public StaticBatchInfo m_StaticBatchInfo; public uint[] m_SubsetIndices; diff --git a/AssetStudio/Crypto/CNUnity.cs b/AssetStudio/Crypto/CNUnity.cs deleted file mode 100644 index f8e2a6c..0000000 --- a/AssetStudio/Crypto/CNUnity.cs +++ /dev/null @@ -1,158 +0,0 @@ -using System; -using System.Text; -using System.Security.Cryptography; - -namespace AssetStudio -{ - public class CNUnity - { - private const string Signature = "#$unity3dchina!@"; - - public static ICryptoTransform Encryptor; - - public byte[] Index = new byte[0x10]; - public byte[] Sub = new byte[0x10]; - - public CNUnity(EndianBinaryReader reader) - { - reader.ReadUInt32(); - - var infoBytes = reader.ReadBytes(0x10); - var infoKey = reader.ReadBytes(0x10); - reader.Position += 1; - - var signatureBytes = reader.ReadBytes(0x10); - var signatureKey = reader.ReadBytes(0x10); - reader.Position += 1; - - DecryptKey(signatureKey, signatureBytes); - - var str = Encoding.UTF8.GetString(signatureBytes); - if (str != Signature) - throw new Exception("Invalid Signature !!"); - - DecryptKey(infoKey, infoBytes); - - infoBytes = infoBytes.ToUInt4Array(); - infoBytes.AsSpan(0, 0x10).CopyTo(Index); - var subBytes = infoBytes.AsSpan(0x10, 0x10); - for (var i = 0; i < subBytes.Length; i++) - { - var idx = (i % 4 * 4) + (i / 4); - Sub[idx] = subBytes[i]; - } - } - - public static bool SetKey(Entry entry) - { - try - { - using var aes = Aes.Create(); - aes.Mode = CipherMode.ECB; - aes.Key = entry.GenerateKey(); - - Encryptor = aes.CreateEncryptor(); - } - catch(Exception e) - { - Logger.Error($"[CNUnity] Invalid key !!\n{e.Message}"); - return false; - } - return true; - } - - public void DecryptBlock(Span bytes, int size, int index) - { - var offset = 0; - while (offset < size) - { - offset += Decrypt(bytes[offset..], index++, size - offset); - } - } - - private void DecryptKey(byte[] key, byte[] data) - { - if (Encryptor != null) - { - key = Encryptor.TransformFinalBlock(key, 0, key.Length); - for (int i = 0; i < 0x10; i++) - data[i] ^= key[i]; - } - } - - private int DecryptByte(Span bytes, ref int offset, ref int index) - { - var b = Sub[((index >> 2) & 3) + 4] + Sub[index & 3] + Sub[((index >> 4) & 3) + 8] + Sub[((byte)index >> 6) + 12]; - bytes[offset] = (byte)((Index[bytes[offset] & 0xF] - b) & 0xF | 0x10 * (Index[bytes[offset] >> 4] - b)); - b = bytes[offset]; - offset++; - index++; - return b; - } - - private int Decrypt(Span bytes, int index, int remaining) - { - var offset = 0; - - var curByte = DecryptByte(bytes, ref offset, ref index); - var byteHigh = curByte >> 4; - var byteLow = curByte & 0xF; - - if (byteHigh == 0xF) - { - int b; - do - { - b = DecryptByte(bytes, ref offset, ref index); - byteHigh += b; - } while (b == 0xFF); - } - - offset += byteHigh; - - if (offset < remaining) - { - DecryptByte(bytes, ref offset, ref index); - DecryptByte(bytes, ref offset, ref index); - if (byteLow == 0xF) - { - int b; - do - { - b = DecryptByte(bytes, ref offset, ref index); - } while(b == 0xFF); - } - } - - return offset; - } - - public record Entry - { - public string Name { get; private set; } - public string Key { get; private set; } - - public Entry(string name, string key) - { - Name = name; - Key = key; - } - - public bool Validate() - { - var bytes = GenerateKey(); - if (bytes.Length != 0x10) - { - Logger.Warning($"[CNUnity] {this} has invalid key, size should be 16 bytes, skipping..."); - return false; - } - - return true; - } - - public byte[] GenerateKey() => Convert.FromHexString(Key); - - public override string ToString() => $"{Name} ({Key})"; - } - } -} \ No newline at end of file diff --git a/AssetStudio/GameManager.cs b/AssetStudio/GameManager.cs index f69cb31..0c45af2 100644 --- a/AssetStudio/GameManager.cs +++ b/AssetStudio/GameManager.cs @@ -12,7 +12,6 @@ namespace AssetStudio { int index = 0; Games.Add(index++, new(GameType.Normal)); - Games.Add(index++, new Game(GameType.CNUnity)); Games.Add(index++, new Mhy0(GameType.GI, GIMhy0ShiftRow, GIMhy0Key, GIMhy0Mul, GIExpansionKey, GISBox, GIInitVector, GIInitSeed)); Games.Add(index++, new Mr0k(GameType.GI_Pack, PackExpansionKey, blockKey: PackBlockKey)); Games.Add(index++, new Mr0k(GameType.GI_CB1)); @@ -31,6 +30,7 @@ namespace AssetStudio Games.Add(index++, new Game(GameType.FantasyOfWind)); Games.Add(index++, new Game(GameType.ShiningNikki)); } + public static Game GetGame(GameType gameType) => GetGame((int)gameType); public static Game GetGame(int index) { if (!Games.TryGetValue(index, out var format)) @@ -124,7 +124,6 @@ namespace AssetStudio SR_CB3, TOT, Naraka, - CNUnity, EnsembleStars, OPFP, AlchemyStars, @@ -147,7 +146,6 @@ namespace AssetStudio public static bool IsSRCB3(this GameType type) => type == GameType.SR_CB3; public static bool IsTOT(this GameType type) => type == GameType.TOT; public static bool IsNaraka(this GameType type) => type == GameType.Naraka; - public static bool IsCNUnity(this GameType type) => type == GameType.CNUnity; public static bool IsOPFP(this GameType type) => type == GameType.OPFP; public static bool IsGIGroup(this GameType type) => type switch { diff --git a/AssetStudio/Keys.json b/AssetStudio/Keys.json deleted file mode 100644 index 0962ae1..0000000 --- a/AssetStudio/Keys.json +++ /dev/null @@ -1,70 +0,0 @@ -[ - { - "Name": "PGR GLB/KR", - "Key": "6B75726F6B75726F6B75726F6B75726F" - }, - { - "Name": "PGR CN/JP/TW", - "Key": "7935585076714C4F72436F6B57524961" - }, - { - "Name": "Archeland/Kalpa of Universe", - "Key": "426C61636B4A61636B50726F6A656374" - }, - { - "Name": "Archeland 1.1.14", - "Key": "50726F6A65637441726368654C616E64" - }, - { - "Name": "Neural Cloud", - "Key": "31636162383436663532393031633965" - }, - { - "Name": "Higan: Eruthyll", - "Key": "45317832633361346C35693662377572" - }, - { - "Name": "White Chord", - "Key": "79756C6F6E6731383638676E6F6C7579" - }, - { - "Name": "Mecharashi", - "Key": "33384338334631333245374637413041" - }, - { - "Name": "Castlevania: Moon Night Fantasy", - "Key": "31323334353637383132333435363738" - }, - { - "Name": "Huā Yì Shān Xīn Zhī Yuè", - "Key": "494E484A6E68647970716B3534377864" - }, - { - "Name": "Doula Continent", - "Key": "52346366773339474644326661785756" - }, - { - "Name": "Bless Global", - "Key": "6C6F6E67747567616D652E796A66623F" - }, - { - "Name": "Starside", - "Key": "41394A3542384D4A50554D3539464B57" - }, - { - "Name": "Resonance Soltice", - "Key": "5265736F6E616E63655265626F726E52" - }, - { - "Name": "Oblivion Override", - "Key": "7179666D6F6F6E323331323433343532" - }, - { - "Name": "Dawnlands", - "Key": "636F6465737339353237636F64657373" - }, - { - "Name": "BB", - "Key": "5F6C4E3F3A3F233F3F3F3F663F1A3F3F" - } -] \ No newline at end of file diff --git a/AssetStudio/UnityCNKeyManager.cs b/AssetStudio/UnityCNKeyManager.cs deleted file mode 100644 index f5c6f05..0000000 --- a/AssetStudio/UnityCNKeyManager.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using Newtonsoft.Json; -using System.Collections.Generic; -using System.Reflection; - -namespace AssetStudio -{ - public static class CNUnityKeyManager - { - public const string KeysFileName = "Keys.json"; - - private static List Entries = new List(); - - static CNUnityKeyManager() - { - var str = File.ReadAllText(KeysFileName); - Entries = JsonConvert.DeserializeObject>(str); - } - - public static void SaveEntries(List entries) - { - Entries.Clear(); - Entries.AddRange(entries); - - var str = JsonConvert.SerializeObject(Entries); - File.WriteAllText(KeysFileName, str); - } - - public static void SetKey(int index) - { - if (TryGetEntry(index, out var cnunity)) - { - if (CNUnity.SetKey(cnunity)) - { - Logger.Info($"[CNUnity] Selected Key is {cnunity}"); - } - else - { - Logger.Info($"[CNUnity] No Key is selected !!"); - } - } - } - - public static bool TryGetEntry(int index, out CNUnity.Entry key) - { - try - { - if (index < 0 || index > Entries.Count) - { - throw new ArgumentOutOfRangeException(); - } - - key = Entries[index]; - } - catch(Exception e) - { - Logger.Error($"[CNUnity] Invalid Index, check if list is not empty !!\n{e.Message}"); - key = null; - return false; - } - - return true; - } - public static CNUnity.Entry[] GetEntries() => Entries.ToArray(); - } -} diff --git a/AssetStudioFBXWrapper/Fbx.cs b/AssetStudioFBXWrapper/Fbx.cs index 543706b..7fd9a82 100644 --- a/AssetStudioFBXWrapper/Fbx.cs +++ b/AssetStudioFBXWrapper/Fbx.cs @@ -28,7 +28,7 @@ namespace AssetStudio { public static void Export(string path, IImported imported, bool eulerFilter, float filterPrecision, - bool allNodes, bool skins, bool animation, bool blendShape, bool castToBone, float boneSize, bool exportAllUvsAsDiffuseMaps, float scaleFactor, int versionIndex, bool isAscii) + bool allNodes, bool skins, bool animation, bool blendShape, bool castToBone, float boneSize, bool exportAllUvsAsDiffuseMaps, bool exportUV0UV1, float scaleFactor, int versionIndex, bool isAscii) { var file = new FileInfo(path); var dir = file.Directory; @@ -43,7 +43,7 @@ namespace AssetStudio var name = Path.GetFileName(path); - using (var exporter = new FbxExporter(name, imported, allNodes, skins, castToBone, boneSize, exportAllUvsAsDiffuseMaps, scaleFactor, versionIndex, isAscii)) + using (var exporter = new FbxExporter(name, imported, allNodes, skins, castToBone, boneSize, exportAllUvsAsDiffuseMaps, exportUV0UV1, scaleFactor, versionIndex, isAscii)) { exporter.Initialize(); exporter.ExportAll(blendShape, animation, eulerFilter, filterPrecision); diff --git a/AssetStudioFBXWrapper/FbxExporter.cs b/AssetStudioFBXWrapper/FbxExporter.cs index b9e5ed6..d920daa 100644 --- a/AssetStudioFBXWrapper/FbxExporter.cs +++ b/AssetStudioFBXWrapper/FbxExporter.cs @@ -16,11 +16,12 @@ namespace AssetStudio.FbxInterop private readonly bool _castToBone; private readonly float _boneSize; private readonly bool _exportAllUvsAsDiffuseMaps; + private readonly bool _exportUV0UV1; private readonly float _scaleFactor; private readonly int _versionIndex; private readonly bool _isAscii; - internal FbxExporter(string fileName, IImported imported, bool allNodes, bool exportSkins, bool castToBone, float boneSize, bool exportAllUvsAsDiffuseMaps, float scaleFactor, int versionIndex, bool isAscii) + internal FbxExporter(string fileName, IImported imported, bool allNodes, bool exportSkins, bool castToBone, float boneSize, bool exportAllUvsAsDiffuseMaps, bool exportUV0UV1, float scaleFactor, int versionIndex, bool isAscii) { _context = new FbxExporterContext(); @@ -31,6 +32,7 @@ namespace AssetStudio.FbxInterop _castToBone = castToBone; _boneSize = boneSize; _exportAllUvsAsDiffuseMaps = exportAllUvsAsDiffuseMaps; + _exportUV0UV1 = exportUV0UV1; _scaleFactor = scaleFactor; _versionIndex = versionIndex; _isAscii = isAscii; @@ -173,7 +175,7 @@ namespace AssetStudio.FbxInterop { foreach (var meshFrame in meshFrames) { - _context.ExportMeshFromFrame(rootFrame, meshFrame, _imported.MeshList, _imported.MaterialList, _imported.TextureList, _exportSkins, _exportAllUvsAsDiffuseMaps); + _context.ExportMeshFromFrame(rootFrame, meshFrame, _imported.MeshList, _imported.MaterialList, _imported.TextureList, _exportSkins, _exportAllUvsAsDiffuseMaps, _exportUV0UV1); } } diff --git a/AssetStudioFBXWrapper/FbxExporterContext.cs b/AssetStudioFBXWrapper/FbxExporterContext.cs index 6c4ed7c..a37e260 100644 --- a/AssetStudioFBXWrapper/FbxExporterContext.cs +++ b/AssetStudioFBXWrapper/FbxExporterContext.cs @@ -173,12 +173,12 @@ namespace AssetStudio.FbxInterop AsFbxPrepareMaterials(_pContext, materialCount, textureCount); } - internal void ExportMeshFromFrame(ImportedFrame rootFrame, ImportedFrame meshFrame, List meshList, List materialList, List textureList, bool exportSkins, bool exportAllUvsAsDiffuseMaps) + internal void ExportMeshFromFrame(ImportedFrame rootFrame, ImportedFrame meshFrame, List meshList, List materialList, List textureList, bool exportSkins, bool exportAllUvsAsDiffuseMaps, bool exportUV0UV1) { var meshNode = _frameToNode[meshFrame]; var mesh = ImportedHelpers.FindMesh(meshFrame.Path, meshList); - ExportMesh(rootFrame, materialList, textureList, meshNode, mesh, exportSkins, exportAllUvsAsDiffuseMaps); + ExportMesh(rootFrame, materialList, textureList, meshNode, mesh, exportSkins, exportAllUvsAsDiffuseMaps, exportUV0UV1); } private IntPtr ExportTexture(ImportedTexture texture) @@ -207,7 +207,7 @@ namespace AssetStudio.FbxInterop return pTex; } - private void ExportMesh(ImportedFrame rootFrame, List materialList, List textureList, IntPtr frameNode, ImportedMesh importedMesh, bool exportSkins, bool exportAllUvsAsDiffuseMaps) + private void ExportMesh(ImportedFrame rootFrame, List materialList, List textureList, IntPtr frameNode, ImportedMesh importedMesh, bool exportSkins, bool exportAllUvsAsDiffuseMaps, bool exportUV0UV1) { var boneList = importedMesh.BoneList; var totalBoneCount = 0; @@ -253,17 +253,38 @@ namespace AssetStudio.FbxInterop AsFbxMeshCreateElementNormal(mesh); } - for (int i = 0; i < importedMesh.hasUV.Length; i++) + if (exportUV0UV1) { - if (!importedMesh.hasUV[i]) { continue; } - - if (i == 1 && !exportAllUvsAsDiffuseMaps) + if (importedMesh.hasUV[0]) { - AsFbxMeshCreateNormalMapUV(mesh, 1); + AsFbxMeshCreateDiffuseUV(mesh, 0); } - else + if (importedMesh.hasUV[1]) { - AsFbxMeshCreateDiffuseUV(mesh, i); + if (exportAllUvsAsDiffuseMaps) + { + AsFbxMeshCreateDiffuseUV(mesh, 1); + } + else + { + AsFbxMeshCreateNormalMapUV(mesh, 1); + } + } + } + else + { + for (int i = 0; i < importedMesh.hasUV.Length; i++) + { + if (!importedMesh.hasUV[i]) { continue; } + + if (i == 1 && !exportAllUvsAsDiffuseMaps) + { + AsFbxMeshCreateNormalMapUV(mesh, 1); + } + else + { + AsFbxMeshCreateDiffuseUV(mesh, i); + } } } @@ -367,7 +388,8 @@ namespace AssetStudio.FbxInterop AsFbxMeshElementNormalAdd(mesh, 0, normal.X, normal.Y, normal.Z); } - for (var uvIndex = 0; uvIndex < importedMesh.hasUV.Length; uvIndex += 1) + var uvSize = exportUV0UV1 ? 2 : importedMesh.hasUV.Length; + for (var uvIndex = 0; uvIndex < uvSize; uvIndex += 1) { if (importedMesh.hasUV[uvIndex]) { diff --git a/AssetStudioGUI/App.config b/AssetStudioGUI/App.config index 1d7718b..29065e4 100644 --- a/AssetStudioGUI/App.config +++ b/AssetStudioGUI/App.config @@ -76,18 +76,12 @@ True - - False - 0 True - - 0 - 0 @@ -100,6 +94,12 @@ False + + False + + + {"GameObject":true,"Material":true,"Texture2D":true,"Mesh":true,"Renderer":true,"Shader":true,"TextAsset":true,"AnimationClip":true,"Font":true,"Sprite":true,"Animator":true,"MiHoYoBinData":true,"AssetBundle":true} + \ No newline at end of file diff --git a/AssetStudioGUI/AssetStudioGUIForm.Designer.cs b/AssetStudioGUI/AssetStudioGUIForm.Designer.cs index f8c5d28..a84ac8e 100644 --- a/AssetStudioGUI/AssetStudioGUIForm.Designer.cs +++ b/AssetStudioGUI/AssetStudioGUIForm.Designer.cs @@ -30,1347 +30,1225 @@ namespace AssetStudioGUI /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); + components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AssetStudioGUIForm)); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.extractFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.extractFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); - this.resetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.abortStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.displayAll = new System.Windows.Forms.ToolStripMenuItem(); - this.enablePreview = new System.Windows.Forms.ToolStripMenuItem(); - this.displayInfo = new System.Windows.Forms.ToolStripMenuItem(); - this.enableResolveDependencies = new System.Windows.Forms.ToolStripMenuItem(); - this.skipContainer = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripMenuItem(); - this.specifyUnityVersion = new System.Windows.Forms.ToolStripTextBox(); - this.toolStripMenuItem18 = new System.Windows.Forms.ToolStripMenuItem(); - this.specifyGame = new System.Windows.Forms.ToolStripComboBox(); - this.toolStripMenuItem19 = new System.Windows.Forms.ToolStripMenuItem(); - this.specifyAIVersion = new System.Windows.Forms.ToolStripComboBox(); - this.toolStripMenuItem23 = new System.Windows.Forms.ToolStripMenuItem(); - this.showExpOpt = new System.Windows.Forms.ToolStripMenuItem(); - this.modelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportAllObjectssplitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.exportSelectedObjectsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportSelectedObjectsWithAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.exportSelectedObjectsmergeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportAllAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportSelectedAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportFilteredAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem17 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem24 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem25 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem12 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripMenuItem(); - this.filterTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.debugMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripMenuItem(); - this.exportClassStructuresMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.enableConsole = new System.Windows.Forms.ToolStripMenuItem(); - this.clearConsoleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.assetHelpersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.cABMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.CABMapNameComboBox = new System.Windows.Forms.ToolStripComboBox(); - this.toolStripMenuItem20 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem21 = new System.Windows.Forms.ToolStripMenuItem(); - this.assetMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.assetMapNameTextBox = new System.Windows.Forms.ToolStripTextBox(); - this.toolStripMenuItem22 = new System.Windows.Forms.ToolStripMenuItem(); - this.assetMapTypeComboBox = new System.Windows.Forms.ToolStripComboBox(); - this.loadAIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.sceneTreeView = new AssetStudioGUI.GOHierarchy(); - this.treeSearch = new System.Windows.Forms.TextBox(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.assetListView = new System.Windows.Forms.ListView(); - this.columnHeaderName = new System.Windows.Forms.ColumnHeader(); - this.columnHeaderContainer = new System.Windows.Forms.ColumnHeader(); - this.columnHeaderType = new System.Windows.Forms.ColumnHeader(); - this.columnHeaderPathID = new System.Windows.Forms.ColumnHeader(); - this.columnHeaderSize = new System.Windows.Forms.ColumnHeader(); - this.listSearch = new System.Windows.Forms.TextBox(); - this.tabPage3 = new System.Windows.Forms.TabPage(); - this.classesListView = new System.Windows.Forms.ListView(); - this.columnHeader1 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader2 = new System.Windows.Forms.ColumnHeader(); - this.progressbarPanel = new System.Windows.Forms.Panel(); - this.progressBar1 = new System.Windows.Forms.ProgressBar(); - this.tabControl2 = new System.Windows.Forms.TabControl(); - this.tabPage4 = new System.Windows.Forms.TabPage(); - this.previewPanel = new System.Windows.Forms.Panel(); - this.assetInfoLabel = new System.Windows.Forms.Label(); - this.FMODpanel = new System.Windows.Forms.Panel(); - this.FMODcopyright = new System.Windows.Forms.Label(); - this.FMODinfoLabel = new System.Windows.Forms.Label(); - this.FMODtimerLabel = new System.Windows.Forms.Label(); - this.FMODstatusLabel = new System.Windows.Forms.Label(); - this.FMODprogressBar = new System.Windows.Forms.TrackBar(); - this.FMODvolumeBar = new System.Windows.Forms.TrackBar(); - this.FMODloopButton = new System.Windows.Forms.CheckBox(); - this.FMODstopButton = new System.Windows.Forms.Button(); - this.FMODpauseButton = new System.Windows.Forms.Button(); - this.FMODplayButton = new System.Windows.Forms.Button(); - this.fontPreviewBox = new System.Windows.Forms.RichTextBox(); - this.glControl = new OpenTK.WinForms.GLControl(); - this.textPreviewBox = new System.Windows.Forms.TextBox(); - this.classTextBox = new System.Windows.Forms.TextBox(); - this.tabPage5 = new System.Windows.Forms.TabPage(); - this.dumpTextBox = new System.Windows.Forms.TextBox(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); - this.timer = new System.Windows.Forms.Timer(this.components); - this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportSelectedAssetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportAnimatorwithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.goToSceneHierarchyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.menuStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - this.tabPage3.SuspendLayout(); - this.progressbarPanel.SuspendLayout(); - this.tabControl2.SuspendLayout(); - this.tabPage4.SuspendLayout(); - this.previewPanel.SuspendLayout(); - this.FMODpanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.FMODprogressBar)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.FMODvolumeBar)).BeginInit(); - this.tabPage5.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.contextMenuStrip1.SuspendLayout(); - this.SuspendLayout(); + menuStrip1 = new System.Windows.Forms.MenuStrip(); + fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + loadFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + loadFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + extractFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + extractFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + resetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + abortStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + displayAll = new System.Windows.Forms.ToolStripMenuItem(); + enablePreview = new System.Windows.Forms.ToolStripMenuItem(); + displayInfo = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem14 = new System.Windows.Forms.ToolStripMenuItem(); + specifyUnityVersion = new System.Windows.Forms.ToolStripTextBox(); + toolStripMenuItem18 = new System.Windows.Forms.ToolStripMenuItem(); + specifyGame = new System.Windows.Forms.ToolStripComboBox(); + toolStripMenuItem19 = new System.Windows.Forms.ToolStripMenuItem(); + specifyAIVersion = new System.Windows.Forms.ToolStripComboBox(); + showExpOpt = new System.Windows.Forms.ToolStripMenuItem(); + modelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportAllObjectssplitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + exportSelectedObjectsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportSelectedObjectsWithAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + exportSelectedObjectsmergeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportAllAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportSelectedAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportFilteredAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + exportAnimatorWithSelectedAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem6 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem7 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem8 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem16 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem17 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem24 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem25 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + toolStripMenuItem10 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem11 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem12 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem13 = new System.Windows.Forms.ToolStripMenuItem(); + filterTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + debugMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem15 = new System.Windows.Forms.ToolStripMenuItem(); + exportClassStructuresMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + enableConsole = new System.Windows.Forms.ToolStripMenuItem(); + clearConsoleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + assetHelpersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + cABMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + CABMapNameComboBox = new System.Windows.Forms.ToolStripComboBox(); + toolStripMenuItem20 = new System.Windows.Forms.ToolStripMenuItem(); + toolStripMenuItem21 = new System.Windows.Forms.ToolStripMenuItem(); + assetMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + assetMapNameTextBox = new System.Windows.Forms.ToolStripTextBox(); + toolStripMenuItem22 = new System.Windows.Forms.ToolStripMenuItem(); + assetMapTypeComboBox = new System.Windows.Forms.ToolStripComboBox(); + loadAIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + splitContainer1 = new System.Windows.Forms.SplitContainer(); + tabControl1 = new System.Windows.Forms.TabControl(); + tabPage1 = new System.Windows.Forms.TabPage(); + sceneTreeView = new GOHierarchy(); + treeSearch = new System.Windows.Forms.TextBox(); + tabPage2 = new System.Windows.Forms.TabPage(); + assetListView = new System.Windows.Forms.ListView(); + columnHeaderName = new System.Windows.Forms.ColumnHeader(); + columnHeaderContainer = new System.Windows.Forms.ColumnHeader(); + columnHeaderType = new System.Windows.Forms.ColumnHeader(); + columnHeaderPathID = new System.Windows.Forms.ColumnHeader(); + columnHeaderSize = new System.Windows.Forms.ColumnHeader(); + listSearch = new System.Windows.Forms.TextBox(); + tabPage3 = new System.Windows.Forms.TabPage(); + classesListView = new System.Windows.Forms.ListView(); + columnHeader1 = new System.Windows.Forms.ColumnHeader(); + columnHeader2 = new System.Windows.Forms.ColumnHeader(); + progressbarPanel = new System.Windows.Forms.Panel(); + progressBar1 = new System.Windows.Forms.ProgressBar(); + tabControl2 = new System.Windows.Forms.TabControl(); + tabPage4 = new System.Windows.Forms.TabPage(); + previewPanel = new System.Windows.Forms.Panel(); + assetInfoLabel = new System.Windows.Forms.Label(); + FMODpanel = new System.Windows.Forms.Panel(); + FMODcopyright = new System.Windows.Forms.Label(); + FMODinfoLabel = new System.Windows.Forms.Label(); + FMODtimerLabel = new System.Windows.Forms.Label(); + FMODstatusLabel = new System.Windows.Forms.Label(); + FMODprogressBar = new System.Windows.Forms.TrackBar(); + FMODvolumeBar = new System.Windows.Forms.TrackBar(); + FMODloopButton = new System.Windows.Forms.CheckBox(); + FMODstopButton = new System.Windows.Forms.Button(); + FMODpauseButton = new System.Windows.Forms.Button(); + FMODplayButton = new System.Windows.Forms.Button(); + fontPreviewBox = new System.Windows.Forms.RichTextBox(); + glControl = new OpenTK.WinForms.GLControl(); + textPreviewBox = new System.Windows.Forms.TextBox(); + classTextBox = new System.Windows.Forms.TextBox(); + tabPage5 = new System.Windows.Forms.TabPage(); + dumpTextBox = new System.Windows.Forms.TextBox(); + statusStrip1 = new System.Windows.Forms.StatusStrip(); + toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); + timer = new System.Windows.Forms.Timer(components); + openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(components); + copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportSelectedAssetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + exportAnimatorwithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + goToSceneHierarchyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + menuStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + tabControl1.SuspendLayout(); + tabPage1.SuspendLayout(); + tabPage2.SuspendLayout(); + tabPage3.SuspendLayout(); + progressbarPanel.SuspendLayout(); + tabControl2.SuspendLayout(); + tabPage4.SuspendLayout(); + previewPanel.SuspendLayout(); + FMODpanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)FMODprogressBar).BeginInit(); + ((System.ComponentModel.ISupportInitialize)FMODvolumeBar).BeginInit(); + tabPage5.SuspendLayout(); + statusStrip1.SuspendLayout(); + contextMenuStrip1.SuspendLayout(); + SuspendLayout(); // // menuStrip1 // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.optionsToolStripMenuItem, - this.modelToolStripMenuItem, - this.exportToolStripMenuItem, - this.filterTypeToolStripMenuItem, - this.debugMenuItem, - this.miscToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(1264, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; + menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem, optionsToolStripMenuItem, modelToolStripMenuItem, exportToolStripMenuItem, filterTypeToolStripMenuItem, debugMenuItem, miscToolStripMenuItem }); + menuStrip1.Location = new System.Drawing.Point(0, 0); + menuStrip1.Name = "menuStrip1"; + menuStrip1.Size = new System.Drawing.Size(1264, 24); + menuStrip1.TabIndex = 0; + menuStrip1.Text = "menuStrip1"; // // fileToolStripMenuItem // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.loadFileToolStripMenuItem, - this.loadFolderToolStripMenuItem, - this.toolStripMenuItem1, - this.extractFileToolStripMenuItem, - this.extractFolderToolStripMenuItem, - this.toolStripSeparator6, - this.resetToolStripMenuItem, - this.abortStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "File"; + fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { loadFileToolStripMenuItem, loadFolderToolStripMenuItem, toolStripMenuItem1, extractFileToolStripMenuItem, extractFolderToolStripMenuItem, toolStripSeparator6, resetToolStripMenuItem, abortStripMenuItem }); + fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + fileToolStripMenuItem.Text = "File"; // // loadFileToolStripMenuItem // - this.loadFileToolStripMenuItem.Name = "loadFileToolStripMenuItem"; - this.loadFileToolStripMenuItem.Size = new System.Drawing.Size(144, 22); - this.loadFileToolStripMenuItem.Text = "Load file"; - this.loadFileToolStripMenuItem.Click += new System.EventHandler(this.loadFile_Click); + loadFileToolStripMenuItem.Name = "loadFileToolStripMenuItem"; + loadFileToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + loadFileToolStripMenuItem.Text = "Load file"; + loadFileToolStripMenuItem.Click += loadFile_Click; // // loadFolderToolStripMenuItem // - this.loadFolderToolStripMenuItem.Name = "loadFolderToolStripMenuItem"; - this.loadFolderToolStripMenuItem.Size = new System.Drawing.Size(144, 22); - this.loadFolderToolStripMenuItem.Text = "Load folder"; - this.loadFolderToolStripMenuItem.Click += new System.EventHandler(this.loadFolder_Click); + loadFolderToolStripMenuItem.Name = "loadFolderToolStripMenuItem"; + loadFolderToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + loadFolderToolStripMenuItem.Text = "Load folder"; + loadFolderToolStripMenuItem.Click += loadFolder_Click; // // toolStripMenuItem1 // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(141, 6); + toolStripMenuItem1.Name = "toolStripMenuItem1"; + toolStripMenuItem1.Size = new System.Drawing.Size(141, 6); // // extractFileToolStripMenuItem // - this.extractFileToolStripMenuItem.Name = "extractFileToolStripMenuItem"; - this.extractFileToolStripMenuItem.Size = new System.Drawing.Size(144, 22); - this.extractFileToolStripMenuItem.Text = "Extract file"; - this.extractFileToolStripMenuItem.Click += new System.EventHandler(this.extractFileToolStripMenuItem_Click); + extractFileToolStripMenuItem.Name = "extractFileToolStripMenuItem"; + extractFileToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + extractFileToolStripMenuItem.Text = "Extract file"; + extractFileToolStripMenuItem.Click += extractFileToolStripMenuItem_Click; // // extractFolderToolStripMenuItem // - this.extractFolderToolStripMenuItem.Name = "extractFolderToolStripMenuItem"; - this.extractFolderToolStripMenuItem.Size = new System.Drawing.Size(144, 22); - this.extractFolderToolStripMenuItem.Text = "Extract folder"; - this.extractFolderToolStripMenuItem.Click += new System.EventHandler(this.extractFolderToolStripMenuItem_Click); + extractFolderToolStripMenuItem.Name = "extractFolderToolStripMenuItem"; + extractFolderToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + extractFolderToolStripMenuItem.Text = "Extract folder"; + extractFolderToolStripMenuItem.Click += extractFolderToolStripMenuItem_Click; // // toolStripSeparator6 // - this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(141, 6); + toolStripSeparator6.Name = "toolStripSeparator6"; + toolStripSeparator6.Size = new System.Drawing.Size(141, 6); // // resetToolStripMenuItem // - this.resetToolStripMenuItem.Name = "resetToolStripMenuItem"; - this.resetToolStripMenuItem.Size = new System.Drawing.Size(144, 22); - this.resetToolStripMenuItem.Text = "Reset"; - this.resetToolStripMenuItem.Click += new System.EventHandler(this.resetToolStripMenuItem_Click); + resetToolStripMenuItem.Name = "resetToolStripMenuItem"; + resetToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + resetToolStripMenuItem.Text = "Reset"; + resetToolStripMenuItem.Click += resetToolStripMenuItem_Click; // // abortStripMenuItem // - this.abortStripMenuItem.Name = "abortStripMenuItem"; - this.abortStripMenuItem.Size = new System.Drawing.Size(144, 22); - this.abortStripMenuItem.Text = "Abort"; - this.abortStripMenuItem.Click += new System.EventHandler(this.abortStripMenuItem_Click); + abortStripMenuItem.Name = "abortStripMenuItem"; + abortStripMenuItem.Size = new System.Drawing.Size(144, 22); + abortStripMenuItem.Text = "Abort"; + abortStripMenuItem.Click += abortStripMenuItem_Click; // // optionsToolStripMenuItem // - this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.displayAll, - this.enablePreview, - this.displayInfo, - this.enableResolveDependencies, - this.skipContainer, - this.toolStripMenuItem14, - this.toolStripMenuItem18, - this.toolStripMenuItem19, - this.toolStripMenuItem23, - this.showExpOpt}); - this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; - this.optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.optionsToolStripMenuItem.Text = "Options"; + optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { displayAll, enablePreview, displayInfo, toolStripMenuItem14, toolStripMenuItem18, toolStripMenuItem19, showExpOpt }); + optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; + optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); + optionsToolStripMenuItem.Text = "Options"; // // displayAll // - this.displayAll.CheckOnClick = true; - this.displayAll.Name = "displayAll"; - this.displayAll.Size = new System.Drawing.Size(225, 22); - this.displayAll.Text = "Display all assets"; - this.displayAll.ToolTipText = "Check this option will display all types assets. Not extractable assets can expor" + - "t the RAW file."; - this.displayAll.CheckedChanged += new System.EventHandler(this.displayAll_CheckedChanged); + displayAll.CheckOnClick = true; + displayAll.Name = "displayAll"; + displayAll.Size = new System.Drawing.Size(207, 22); + displayAll.Text = "Display all assets"; + displayAll.ToolTipText = "Check this option will display all types assets. Not extractable assets can export the RAW file."; + displayAll.CheckedChanged += displayAll_CheckedChanged; // // enablePreview // - this.enablePreview.Checked = true; - this.enablePreview.CheckOnClick = true; - this.enablePreview.CheckState = System.Windows.Forms.CheckState.Checked; - this.enablePreview.Name = "enablePreview"; - this.enablePreview.Size = new System.Drawing.Size(225, 22); - this.enablePreview.Text = "Enable preview"; - this.enablePreview.ToolTipText = "Toggle the loading and preview of readable assets, such as images, sounds, text, " + - "etc.\r\nDisable preview if you have performance or compatibility issues."; - this.enablePreview.CheckedChanged += new System.EventHandler(this.enablePreview_Check); + enablePreview.Checked = true; + enablePreview.CheckOnClick = true; + enablePreview.CheckState = System.Windows.Forms.CheckState.Checked; + enablePreview.Name = "enablePreview"; + enablePreview.Size = new System.Drawing.Size(207, 22); + enablePreview.Text = "Enable preview"; + enablePreview.ToolTipText = "Toggle the loading and preview of readable assets, such as images, sounds, text, etc.\r\nDisable preview if you have performance or compatibility issues."; + enablePreview.CheckedChanged += enablePreview_Check; // // displayInfo // - this.displayInfo.Checked = true; - this.displayInfo.CheckOnClick = true; - this.displayInfo.CheckState = System.Windows.Forms.CheckState.Checked; - this.displayInfo.Name = "displayInfo"; - this.displayInfo.Size = new System.Drawing.Size(225, 22); - this.displayInfo.Text = "Display asset information"; - this.displayInfo.ToolTipText = "Toggle the overlay that shows information about each asset, eg. image size, forma" + - "t, audio bitrate, etc."; - this.displayInfo.CheckedChanged += new System.EventHandler(this.displayAssetInfo_Check); - // - // enableResolveDependencies - // - this.enableResolveDependencies.Checked = true; - this.enableResolveDependencies.CheckOnClick = true; - this.enableResolveDependencies.CheckState = System.Windows.Forms.CheckState.Checked; - this.enableResolveDependencies.Name = "enableResolveDependencies"; - this.enableResolveDependencies.Size = new System.Drawing.Size(225, 22); - this.enableResolveDependencies.Text = "Enable resolve dependencies"; - this.enableResolveDependencies.ToolTipText = "Toggle the behaviour of loading assets.\nDisable to load file(s) without its depen" + - "dencies."; - this.enableResolveDependencies.CheckedChanged += new System.EventHandler(this.enableResolveDependencies_CheckedChanged); - // - // skipContainer - // - this.skipContainer.CheckOnClick = true; - this.skipContainer.Name = "skipContainer"; - this.skipContainer.Size = new System.Drawing.Size(225, 22); - this.skipContainer.Text = "Skip container recovery"; - this.skipContainer.ToolTipText = "Skips the container recovery step.\nImproves loading when dealing with a large num" + - "ber of files."; - this.skipContainer.CheckedChanged += new System.EventHandler(this.skipContainer_CheckedChanged); + displayInfo.Checked = true; + displayInfo.CheckOnClick = true; + displayInfo.CheckState = System.Windows.Forms.CheckState.Checked; + displayInfo.Name = "displayInfo"; + displayInfo.Size = new System.Drawing.Size(207, 22); + displayInfo.Text = "Display asset information"; + displayInfo.ToolTipText = "Toggle the overlay that shows information about each asset, eg. image size, format, audio bitrate, etc."; + displayInfo.CheckedChanged += displayAssetInfo_Check; // // toolStripMenuItem14 // - this.toolStripMenuItem14.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.specifyUnityVersion}); - this.toolStripMenuItem14.Name = "toolStripMenuItem14"; - this.toolStripMenuItem14.Size = new System.Drawing.Size(225, 22); - this.toolStripMenuItem14.Text = "Specify Unity version"; + toolStripMenuItem14.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { specifyUnityVersion }); + toolStripMenuItem14.Name = "toolStripMenuItem14"; + toolStripMenuItem14.Size = new System.Drawing.Size(207, 22); + toolStripMenuItem14.Text = "Specify Unity version"; // // specifyUnityVersion // - this.specifyUnityVersion.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); - this.specifyUnityVersion.Name = "specifyUnityVersion"; - this.specifyUnityVersion.Size = new System.Drawing.Size(100, 23); + specifyUnityVersion.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + specifyUnityVersion.Name = "specifyUnityVersion"; + specifyUnityVersion.Size = new System.Drawing.Size(100, 23); // // toolStripMenuItem18 // - this.toolStripMenuItem18.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.specifyGame}); - this.toolStripMenuItem18.Name = "toolStripMenuItem18"; - this.toolStripMenuItem18.Size = new System.Drawing.Size(225, 22); - this.toolStripMenuItem18.Text = "Specify Game"; + toolStripMenuItem18.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { specifyGame }); + toolStripMenuItem18.Name = "toolStripMenuItem18"; + toolStripMenuItem18.Size = new System.Drawing.Size(207, 22); + toolStripMenuItem18.Text = "Specify Game"; // // specifyGame // - this.specifyGame.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.specifyGame.Name = "specifyGame"; - this.specifyGame.Size = new System.Drawing.Size(121, 23); + specifyGame.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + specifyGame.Name = "specifyGame"; + specifyGame.Size = new System.Drawing.Size(121, 23); // // toolStripMenuItem19 // - this.toolStripMenuItem19.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.specifyAIVersion}); - this.toolStripMenuItem19.Name = "toolStripMenuItem19"; - this.toolStripMenuItem19.Size = new System.Drawing.Size(225, 22); - this.toolStripMenuItem19.Text = "Specify AI version"; - this.toolStripMenuItem19.DropDownOpening += new System.EventHandler(this.toolStripMenuItem19_DropDownOpening); + toolStripMenuItem19.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { specifyAIVersion }); + toolStripMenuItem19.Name = "toolStripMenuItem19"; + toolStripMenuItem19.Size = new System.Drawing.Size(207, 22); + toolStripMenuItem19.Text = "Specify AI version"; + toolStripMenuItem19.DropDownOpening += toolStripMenuItem19_DropDownOpening; // // specifyAIVersion // - this.specifyAIVersion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.specifyAIVersion.Items.AddRange(new object[] { - "None"}); - this.specifyAIVersion.Name = "specifyAIVersion"; - this.specifyAIVersion.Size = new System.Drawing.Size(121, 23); - // - // toolStripMenuItem23 - // - this.toolStripMenuItem23.Name = "toolStripMenuItem23"; - this.toolStripMenuItem23.Size = new System.Drawing.Size(225, 22); - this.toolStripMenuItem23.Text = "Specify CNUnity Key"; - this.toolStripMenuItem23.Click += new System.EventHandler(this.toolStripMenuItem23_Click); + specifyAIVersion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + specifyAIVersion.Items.AddRange(new object[] { "None" }); + specifyAIVersion.Name = "specifyAIVersion"; + specifyAIVersion.Size = new System.Drawing.Size(121, 23); // // showExpOpt // - this.showExpOpt.Name = "showExpOpt"; - this.showExpOpt.Size = new System.Drawing.Size(225, 22); - this.showExpOpt.Text = "Export options"; - this.showExpOpt.Click += new System.EventHandler(this.showExpOpt_Click); + showExpOpt.Name = "showExpOpt"; + showExpOpt.Size = new System.Drawing.Size(207, 22); + showExpOpt.Text = "Export options"; + showExpOpt.Click += showExpOpt_Click; // // modelToolStripMenuItem // - this.modelToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exportAllObjectssplitToolStripMenuItem1, - this.exportSelectedObjectsToolStripMenuItem, - this.exportSelectedObjectsWithAnimationClipToolStripMenuItem, - this.toolStripSeparator1, - this.exportSelectedObjectsmergeToolStripMenuItem, - this.exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem}); - this.modelToolStripMenuItem.Name = "modelToolStripMenuItem"; - this.modelToolStripMenuItem.Size = new System.Drawing.Size(53, 20); - this.modelToolStripMenuItem.Text = "Model"; + modelToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { exportAllObjectssplitToolStripMenuItem1, exportSelectedObjectsToolStripMenuItem, exportSelectedObjectsWithAnimationClipToolStripMenuItem, toolStripSeparator1, exportSelectedObjectsmergeToolStripMenuItem, exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem }); + modelToolStripMenuItem.Name = "modelToolStripMenuItem"; + modelToolStripMenuItem.Size = new System.Drawing.Size(53, 20); + modelToolStripMenuItem.Text = "Model"; // // exportAllObjectssplitToolStripMenuItem1 // - this.exportAllObjectssplitToolStripMenuItem1.Name = "exportAllObjectssplitToolStripMenuItem1"; - this.exportAllObjectssplitToolStripMenuItem1.Size = new System.Drawing.Size(382, 22); - this.exportAllObjectssplitToolStripMenuItem1.Text = "Export all objects (split)"; - this.exportAllObjectssplitToolStripMenuItem1.Click += new System.EventHandler(this.exportAllObjectssplitToolStripMenuItem1_Click); + exportAllObjectssplitToolStripMenuItem1.Name = "exportAllObjectssplitToolStripMenuItem1"; + exportAllObjectssplitToolStripMenuItem1.Size = new System.Drawing.Size(382, 22); + exportAllObjectssplitToolStripMenuItem1.Text = "Export all objects (split)"; + exportAllObjectssplitToolStripMenuItem1.Click += exportAllObjectssplitToolStripMenuItem1_Click; // // exportSelectedObjectsToolStripMenuItem // - this.exportSelectedObjectsToolStripMenuItem.Name = "exportSelectedObjectsToolStripMenuItem"; - this.exportSelectedObjectsToolStripMenuItem.Size = new System.Drawing.Size(382, 22); - this.exportSelectedObjectsToolStripMenuItem.Text = "Export selected objects (split)"; - this.exportSelectedObjectsToolStripMenuItem.Click += new System.EventHandler(this.exportSelectedObjectsToolStripMenuItem_Click); + exportSelectedObjectsToolStripMenuItem.Name = "exportSelectedObjectsToolStripMenuItem"; + exportSelectedObjectsToolStripMenuItem.Size = new System.Drawing.Size(382, 22); + exportSelectedObjectsToolStripMenuItem.Text = "Export selected objects (split)"; + exportSelectedObjectsToolStripMenuItem.Click += exportSelectedObjectsToolStripMenuItem_Click; // // exportSelectedObjectsWithAnimationClipToolStripMenuItem // - this.exportSelectedObjectsWithAnimationClipToolStripMenuItem.Name = "exportSelectedObjectsWithAnimationClipToolStripMenuItem"; - this.exportSelectedObjectsWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(382, 22); - this.exportSelectedObjectsWithAnimationClipToolStripMenuItem.Text = "Export selected objects (split) + selected AnimationClips"; - this.exportSelectedObjectsWithAnimationClipToolStripMenuItem.Click += new System.EventHandler(this.exportObjectswithAnimationClipMenuItem_Click); + exportSelectedObjectsWithAnimationClipToolStripMenuItem.Name = "exportSelectedObjectsWithAnimationClipToolStripMenuItem"; + exportSelectedObjectsWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(382, 22); + exportSelectedObjectsWithAnimationClipToolStripMenuItem.Text = "Export selected objects (split) + selected AnimationClips"; + exportSelectedObjectsWithAnimationClipToolStripMenuItem.Click += exportObjectswithAnimationClipMenuItem_Click; // // toolStripSeparator1 // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(379, 6); + toolStripSeparator1.Name = "toolStripSeparator1"; + toolStripSeparator1.Size = new System.Drawing.Size(379, 6); // // exportSelectedObjectsmergeToolStripMenuItem // - this.exportSelectedObjectsmergeToolStripMenuItem.Name = "exportSelectedObjectsmergeToolStripMenuItem"; - this.exportSelectedObjectsmergeToolStripMenuItem.Size = new System.Drawing.Size(382, 22); - this.exportSelectedObjectsmergeToolStripMenuItem.Text = "Export selected objects (merge)"; - this.exportSelectedObjectsmergeToolStripMenuItem.Click += new System.EventHandler(this.exportSelectedObjectsmergeToolStripMenuItem_Click); + exportSelectedObjectsmergeToolStripMenuItem.Name = "exportSelectedObjectsmergeToolStripMenuItem"; + exportSelectedObjectsmergeToolStripMenuItem.Size = new System.Drawing.Size(382, 22); + exportSelectedObjectsmergeToolStripMenuItem.Text = "Export selected objects (merge)"; + exportSelectedObjectsmergeToolStripMenuItem.Click += exportSelectedObjectsmergeToolStripMenuItem_Click; // // exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem // - this.exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Name = "exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem"; - this.exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(382, 22); - this.exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Text = "Export selected objects (merge) + selected AnimationClips"; - this.exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Click += new System.EventHandler(this.exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem_Click); + exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Name = "exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem"; + exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(382, 22); + exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Text = "Export selected objects (merge) + selected AnimationClips"; + exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem.Click += exportSelectedObjectsmergeWithAnimationClipToolStripMenuItem_Click; // // exportToolStripMenuItem // - this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exportAllAssetsMenuItem, - this.exportSelectedAssetsMenuItem, - this.exportFilteredAssetsMenuItem, - this.toolStripSeparator3, - this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem, - this.toolStripSeparator4, - this.toolStripMenuItem2, - this.toolStripMenuItem3, - this.toolStripMenuItem16, - this.toolStripSeparator2, - this.toolStripMenuItem10}); - this.exportToolStripMenuItem.Name = "exportToolStripMenuItem"; - this.exportToolStripMenuItem.Size = new System.Drawing.Size(53, 20); - this.exportToolStripMenuItem.Text = "Export"; + exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { exportAllAssetsMenuItem, exportSelectedAssetsMenuItem, exportFilteredAssetsMenuItem, toolStripSeparator3, exportAnimatorWithSelectedAnimationClipToolStripMenuItem, toolStripSeparator4, toolStripMenuItem2, toolStripMenuItem3, toolStripMenuItem16, toolStripSeparator2, toolStripMenuItem10 }); + exportToolStripMenuItem.Name = "exportToolStripMenuItem"; + exportToolStripMenuItem.Size = new System.Drawing.Size(53, 20); + exportToolStripMenuItem.Text = "Export"; // // exportAllAssetsMenuItem // - this.exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem"; - this.exportAllAssetsMenuItem.Size = new System.Drawing.Size(266, 22); - this.exportAllAssetsMenuItem.Text = "All assets"; - this.exportAllAssetsMenuItem.Click += new System.EventHandler(this.exportAllAssetsMenuItem_Click); + exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem"; + exportAllAssetsMenuItem.Size = new System.Drawing.Size(266, 22); + exportAllAssetsMenuItem.Text = "All assets"; + exportAllAssetsMenuItem.Click += exportAllAssetsMenuItem_Click; // // exportSelectedAssetsMenuItem // - this.exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem"; - this.exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(266, 22); - this.exportSelectedAssetsMenuItem.Text = "Selected assets"; - this.exportSelectedAssetsMenuItem.Click += new System.EventHandler(this.exportSelectedAssetsMenuItem_Click); + exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem"; + exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(266, 22); + exportSelectedAssetsMenuItem.Text = "Selected assets"; + exportSelectedAssetsMenuItem.Click += exportSelectedAssetsMenuItem_Click; // // exportFilteredAssetsMenuItem // - this.exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem"; - this.exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(266, 22); - this.exportFilteredAssetsMenuItem.Text = "Filtered assets"; - this.exportFilteredAssetsMenuItem.Click += new System.EventHandler(this.exportFilteredAssetsMenuItem_Click); + exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem"; + exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(266, 22); + exportFilteredAssetsMenuItem.Text = "Filtered assets"; + exportFilteredAssetsMenuItem.Click += exportFilteredAssetsMenuItem_Click; // // toolStripSeparator3 // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(263, 6); + toolStripSeparator3.Name = "toolStripSeparator3"; + toolStripSeparator3.Size = new System.Drawing.Size(263, 6); // // exportAnimatorWithSelectedAnimationClipToolStripMenuItem // - this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Name = "exportAnimatorWithSelectedAnimationClipToolStripMenuItem"; - this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(266, 22); - this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Text = "Animator + selected AnimationClips"; - this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Click += new System.EventHandler(this.exportAnimatorwithAnimationClipMenuItem_Click); + exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Name = "exportAnimatorWithSelectedAnimationClipToolStripMenuItem"; + exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(266, 22); + exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Text = "Animator + selected AnimationClips"; + exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Click += exportAnimatorwithAnimationClipMenuItem_Click; // // toolStripSeparator4 // - this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(263, 6); + toolStripSeparator4.Name = "toolStripSeparator4"; + toolStripSeparator4.Size = new System.Drawing.Size(263, 6); // // toolStripMenuItem2 // - this.toolStripMenuItem2.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem4, - this.toolStripMenuItem5, - this.toolStripMenuItem6}); - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(266, 22); - this.toolStripMenuItem2.Text = "Raw"; + toolStripMenuItem2.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem4, toolStripMenuItem5, toolStripMenuItem6 }); + toolStripMenuItem2.Name = "toolStripMenuItem2"; + toolStripMenuItem2.Size = new System.Drawing.Size(266, 22); + toolStripMenuItem2.Text = "Raw"; // // toolStripMenuItem4 // - this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem4.Text = "All assets"; - this.toolStripMenuItem4.Click += new System.EventHandler(this.toolStripMenuItem4_Click); + toolStripMenuItem4.Name = "toolStripMenuItem4"; + toolStripMenuItem4.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem4.Text = "All assets"; + toolStripMenuItem4.Click += toolStripMenuItem4_Click; // // toolStripMenuItem5 // - this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem5.Text = "Selected assets"; - this.toolStripMenuItem5.Click += new System.EventHandler(this.toolStripMenuItem5_Click); + toolStripMenuItem5.Name = "toolStripMenuItem5"; + toolStripMenuItem5.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem5.Text = "Selected assets"; + toolStripMenuItem5.Click += toolStripMenuItem5_Click; // // toolStripMenuItem6 // - this.toolStripMenuItem6.Name = "toolStripMenuItem6"; - this.toolStripMenuItem6.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem6.Text = "Filtered assets"; - this.toolStripMenuItem6.Click += new System.EventHandler(this.toolStripMenuItem6_Click); + toolStripMenuItem6.Name = "toolStripMenuItem6"; + toolStripMenuItem6.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem6.Text = "Filtered assets"; + toolStripMenuItem6.Click += toolStripMenuItem6_Click; // // toolStripMenuItem3 // - this.toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem7, - this.toolStripMenuItem8, - this.toolStripMenuItem9}); - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(266, 22); - this.toolStripMenuItem3.Text = "Dump"; + toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem7, toolStripMenuItem8, toolStripMenuItem9 }); + toolStripMenuItem3.Name = "toolStripMenuItem3"; + toolStripMenuItem3.Size = new System.Drawing.Size(266, 22); + toolStripMenuItem3.Text = "Dump"; // // toolStripMenuItem7 // - this.toolStripMenuItem7.Name = "toolStripMenuItem7"; - this.toolStripMenuItem7.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem7.Text = "All assets"; - this.toolStripMenuItem7.Click += new System.EventHandler(this.toolStripMenuItem7_Click); + toolStripMenuItem7.Name = "toolStripMenuItem7"; + toolStripMenuItem7.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem7.Text = "All assets"; + toolStripMenuItem7.Click += toolStripMenuItem7_Click; // // toolStripMenuItem8 // - this.toolStripMenuItem8.Name = "toolStripMenuItem8"; - this.toolStripMenuItem8.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem8.Text = "Selected assets"; - this.toolStripMenuItem8.Click += new System.EventHandler(this.toolStripMenuItem8_Click); + toolStripMenuItem8.Name = "toolStripMenuItem8"; + toolStripMenuItem8.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem8.Text = "Selected assets"; + toolStripMenuItem8.Click += toolStripMenuItem8_Click; // // toolStripMenuItem9 // - this.toolStripMenuItem9.Name = "toolStripMenuItem9"; - this.toolStripMenuItem9.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem9.Text = "Filtered assets"; - this.toolStripMenuItem9.Click += new System.EventHandler(this.toolStripMenuItem9_Click); + toolStripMenuItem9.Name = "toolStripMenuItem9"; + toolStripMenuItem9.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem9.Text = "Filtered assets"; + toolStripMenuItem9.Click += toolStripMenuItem9_Click; // // toolStripMenuItem16 // - this.toolStripMenuItem16.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem17, - this.toolStripMenuItem24, - this.toolStripMenuItem25}); - this.toolStripMenuItem16.Name = "toolStripMenuItem16"; - this.toolStripMenuItem16.Size = new System.Drawing.Size(266, 22); - this.toolStripMenuItem16.Text = "JSON"; + toolStripMenuItem16.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem17, toolStripMenuItem24, toolStripMenuItem25 }); + toolStripMenuItem16.Name = "toolStripMenuItem16"; + toolStripMenuItem16.Size = new System.Drawing.Size(266, 22); + toolStripMenuItem16.Text = "JSON"; // // toolStripMenuItem17 // - this.toolStripMenuItem17.Name = "toolStripMenuItem17"; - this.toolStripMenuItem17.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem17.Text = "All assets"; - this.toolStripMenuItem17.Click += new System.EventHandler(this.toolStripMenuItem17_Click); + toolStripMenuItem17.Name = "toolStripMenuItem17"; + toolStripMenuItem17.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem17.Text = "All assets"; + toolStripMenuItem17.Click += toolStripMenuItem17_Click; // // toolStripMenuItem24 // - this.toolStripMenuItem24.Name = "toolStripMenuItem24"; - this.toolStripMenuItem24.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem24.Text = "Selected assets"; - this.toolStripMenuItem24.Click += new System.EventHandler(this.toolStripMenuItem24_Click); + toolStripMenuItem24.Name = "toolStripMenuItem24"; + toolStripMenuItem24.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem24.Text = "Selected assets"; + toolStripMenuItem24.Click += toolStripMenuItem24_Click; // // toolStripMenuItem25 // - this.toolStripMenuItem25.Name = "toolStripMenuItem25"; - this.toolStripMenuItem25.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem25.Text = "Filtered assets"; - this.toolStripMenuItem25.Click += new System.EventHandler(this.toolStripMenuItem25_Click); + toolStripMenuItem25.Name = "toolStripMenuItem25"; + toolStripMenuItem25.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem25.Text = "Filtered assets"; + toolStripMenuItem25.Click += toolStripMenuItem25_Click; // // toolStripSeparator2 // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(263, 6); + toolStripSeparator2.Name = "toolStripSeparator2"; + toolStripSeparator2.Size = new System.Drawing.Size(263, 6); // // toolStripMenuItem10 // - this.toolStripMenuItem10.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem11, - this.toolStripMenuItem12, - this.toolStripMenuItem13}); - this.toolStripMenuItem10.Name = "toolStripMenuItem10"; - this.toolStripMenuItem10.Size = new System.Drawing.Size(266, 22); - this.toolStripMenuItem10.Text = "Asset list to XML"; + toolStripMenuItem10.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem11, toolStripMenuItem12, toolStripMenuItem13 }); + toolStripMenuItem10.Name = "toolStripMenuItem10"; + toolStripMenuItem10.Size = new System.Drawing.Size(266, 22); + toolStripMenuItem10.Text = "Asset list to XML"; // // toolStripMenuItem11 // - this.toolStripMenuItem11.Name = "toolStripMenuItem11"; - this.toolStripMenuItem11.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem11.Text = "All assets"; - this.toolStripMenuItem11.Click += new System.EventHandler(this.toolStripMenuItem11_Click); + toolStripMenuItem11.Name = "toolStripMenuItem11"; + toolStripMenuItem11.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem11.Text = "All assets"; + toolStripMenuItem11.Click += toolStripMenuItem11_Click; // // toolStripMenuItem12 // - this.toolStripMenuItem12.Name = "toolStripMenuItem12"; - this.toolStripMenuItem12.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem12.Text = "Selected assets"; - this.toolStripMenuItem12.Click += new System.EventHandler(this.toolStripMenuItem12_Click); + toolStripMenuItem12.Name = "toolStripMenuItem12"; + toolStripMenuItem12.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem12.Text = "Selected assets"; + toolStripMenuItem12.Click += toolStripMenuItem12_Click; // // toolStripMenuItem13 // - this.toolStripMenuItem13.Name = "toolStripMenuItem13"; - this.toolStripMenuItem13.Size = new System.Drawing.Size(152, 22); - this.toolStripMenuItem13.Text = "Filtered assets"; - this.toolStripMenuItem13.Click += new System.EventHandler(this.toolStripMenuItem13_Click); + toolStripMenuItem13.Name = "toolStripMenuItem13"; + toolStripMenuItem13.Size = new System.Drawing.Size(152, 22); + toolStripMenuItem13.Text = "Filtered assets"; + toolStripMenuItem13.Click += toolStripMenuItem13_Click; // // filterTypeToolStripMenuItem // - this.filterTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.allToolStripMenuItem}); - this.filterTypeToolStripMenuItem.Name = "filterTypeToolStripMenuItem"; - this.filterTypeToolStripMenuItem.Size = new System.Drawing.Size(72, 20); - this.filterTypeToolStripMenuItem.Text = "Filter Type"; + filterTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { allToolStripMenuItem }); + filterTypeToolStripMenuItem.Name = "filterTypeToolStripMenuItem"; + filterTypeToolStripMenuItem.Size = new System.Drawing.Size(72, 20); + filterTypeToolStripMenuItem.Text = "Filter Type"; // // allToolStripMenuItem // - this.allToolStripMenuItem.Checked = true; - this.allToolStripMenuItem.CheckOnClick = true; - this.allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; - this.allToolStripMenuItem.Name = "allToolStripMenuItem"; - this.allToolStripMenuItem.Size = new System.Drawing.Size(88, 22); - this.allToolStripMenuItem.Text = "All"; - this.allToolStripMenuItem.Click += new System.EventHandler(this.typeToolStripMenuItem_Click); + allToolStripMenuItem.Checked = true; + allToolStripMenuItem.CheckOnClick = true; + allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; + allToolStripMenuItem.Name = "allToolStripMenuItem"; + allToolStripMenuItem.Size = new System.Drawing.Size(88, 22); + allToolStripMenuItem.Text = "All"; + allToolStripMenuItem.Click += typeToolStripMenuItem_Click; // // debugMenuItem // - this.debugMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem15, - this.exportClassStructuresMenuItem, - this.enableConsole, - this.clearConsoleToolStripMenuItem}); - this.debugMenuItem.Name = "debugMenuItem"; - this.debugMenuItem.Size = new System.Drawing.Size(54, 20); - this.debugMenuItem.Text = "Debug"; + debugMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem15, exportClassStructuresMenuItem, enableConsole, clearConsoleToolStripMenuItem }); + debugMenuItem.Name = "debugMenuItem"; + debugMenuItem.Size = new System.Drawing.Size(54, 20); + debugMenuItem.Text = "Debug"; // // toolStripMenuItem15 // - this.toolStripMenuItem15.Checked = true; - this.toolStripMenuItem15.CheckOnClick = true; - this.toolStripMenuItem15.CheckState = System.Windows.Forms.CheckState.Checked; - this.toolStripMenuItem15.Name = "toolStripMenuItem15"; - this.toolStripMenuItem15.Size = new System.Drawing.Size(191, 22); - this.toolStripMenuItem15.Text = "Show error message"; - this.toolStripMenuItem15.Click += new System.EventHandler(this.toolStripMenuItem15_Click); + toolStripMenuItem15.Checked = true; + toolStripMenuItem15.CheckOnClick = true; + toolStripMenuItem15.CheckState = System.Windows.Forms.CheckState.Checked; + toolStripMenuItem15.Name = "toolStripMenuItem15"; + toolStripMenuItem15.Size = new System.Drawing.Size(191, 22); + toolStripMenuItem15.Text = "Show error message"; + toolStripMenuItem15.Click += toolStripMenuItem15_Click; // // exportClassStructuresMenuItem // - this.exportClassStructuresMenuItem.Name = "exportClassStructuresMenuItem"; - this.exportClassStructuresMenuItem.Size = new System.Drawing.Size(191, 22); - this.exportClassStructuresMenuItem.Text = "Export class structures"; - this.exportClassStructuresMenuItem.Click += new System.EventHandler(this.exportClassStructuresMenuItem_Click); + exportClassStructuresMenuItem.Name = "exportClassStructuresMenuItem"; + exportClassStructuresMenuItem.Size = new System.Drawing.Size(191, 22); + exportClassStructuresMenuItem.Text = "Export class structures"; + exportClassStructuresMenuItem.Click += exportClassStructuresMenuItem_Click; // // enableConsole // - this.enableConsole.Checked = true; - this.enableConsole.CheckOnClick = true; - this.enableConsole.CheckState = System.Windows.Forms.CheckState.Checked; - this.enableConsole.Name = "enableConsole"; - this.enableConsole.Size = new System.Drawing.Size(191, 22); - this.enableConsole.Text = "Enable Console"; - this.enableConsole.CheckedChanged += new System.EventHandler(this.enableConsole_CheckedChanged); + enableConsole.Checked = true; + enableConsole.CheckOnClick = true; + enableConsole.CheckState = System.Windows.Forms.CheckState.Checked; + enableConsole.Name = "enableConsole"; + enableConsole.Size = new System.Drawing.Size(191, 22); + enableConsole.Text = "Enable Console"; + enableConsole.CheckedChanged += enableConsole_CheckedChanged; // // clearConsoleToolStripMenuItem // - this.clearConsoleToolStripMenuItem.Name = "clearConsoleToolStripMenuItem"; - this.clearConsoleToolStripMenuItem.Size = new System.Drawing.Size(191, 22); - this.clearConsoleToolStripMenuItem.Text = "Clear Console"; - this.clearConsoleToolStripMenuItem.Click += new System.EventHandler(this.clearConsoleToolStripMenuItem_Click); + clearConsoleToolStripMenuItem.Name = "clearConsoleToolStripMenuItem"; + clearConsoleToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + clearConsoleToolStripMenuItem.Text = "Clear Console"; + clearConsoleToolStripMenuItem.Click += clearConsoleToolStripMenuItem_Click; // // miscToolStripMenuItem // - this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.assetHelpersToolStripMenuItem, - this.loadAIToolStripMenuItem}); - this.miscToolStripMenuItem.Name = "miscToolStripMenuItem"; - this.miscToolStripMenuItem.Size = new System.Drawing.Size(47, 20); - this.miscToolStripMenuItem.Text = "Misc."; + miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { assetHelpersToolStripMenuItem, loadAIToolStripMenuItem }); + miscToolStripMenuItem.Name = "miscToolStripMenuItem"; + miscToolStripMenuItem.Size = new System.Drawing.Size(47, 20); + miscToolStripMenuItem.Text = "Misc."; // // assetHelpersToolStripMenuItem // - this.assetHelpersToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.cABMapToolStripMenuItem, - this.assetMapToolStripMenuItem}); - this.assetHelpersToolStripMenuItem.Name = "assetHelpersToolStripMenuItem"; - this.assetHelpersToolStripMenuItem.Size = new System.Drawing.Size(145, 22); - this.assetHelpersToolStripMenuItem.Text = "Asset Helpers"; - this.assetHelpersToolStripMenuItem.DropDownOpening += new System.EventHandler(this.assetHelpersToolStripMenuItem_DropDownOpening); + assetHelpersToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { cABMapToolStripMenuItem, assetMapToolStripMenuItem }); + assetHelpersToolStripMenuItem.Name = "assetHelpersToolStripMenuItem"; + assetHelpersToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + assetHelpersToolStripMenuItem.Text = "Asset Helpers"; + assetHelpersToolStripMenuItem.DropDownOpening += assetHelpersToolStripMenuItem_DropDownOpening; // // cABMapToolStripMenuItem // - this.cABMapToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.CABMapNameComboBox, - this.toolStripMenuItem20, - this.toolStripMenuItem21}); - this.cABMapToolStripMenuItem.Name = "cABMapToolStripMenuItem"; - this.cABMapToolStripMenuItem.Size = new System.Drawing.Size(126, 22); - this.cABMapToolStripMenuItem.Text = "CABMap"; + cABMapToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { CABMapNameComboBox, toolStripMenuItem20, toolStripMenuItem21 }); + cABMapToolStripMenuItem.Name = "cABMapToolStripMenuItem"; + cABMapToolStripMenuItem.Size = new System.Drawing.Size(126, 22); + cABMapToolStripMenuItem.Text = "CABMap"; // // CABMapNameComboBox // - this.CABMapNameComboBox.Name = "CABMapNameComboBox"; - this.CABMapNameComboBox.Size = new System.Drawing.Size(121, 23); - this.CABMapNameComboBox.ToolTipText = "Enter name of CABMap here"; + CABMapNameComboBox.Name = "CABMapNameComboBox"; + CABMapNameComboBox.Size = new System.Drawing.Size(121, 23); + CABMapNameComboBox.ToolTipText = "Enter name of CABMap here"; // // toolStripMenuItem20 // - this.toolStripMenuItem20.Name = "toolStripMenuItem20"; - this.toolStripMenuItem20.Size = new System.Drawing.Size(181, 22); - this.toolStripMenuItem20.Text = "Build CABMap"; - this.toolStripMenuItem20.Click += new System.EventHandler(this.toolStripMenuItem20_Click); + toolStripMenuItem20.Name = "toolStripMenuItem20"; + toolStripMenuItem20.Size = new System.Drawing.Size(181, 22); + toolStripMenuItem20.Text = "Build CABMap"; + toolStripMenuItem20.Click += toolStripMenuItem20_Click; // // toolStripMenuItem21 // - this.toolStripMenuItem21.Name = "toolStripMenuItem21"; - this.toolStripMenuItem21.Size = new System.Drawing.Size(181, 22); - this.toolStripMenuItem21.Text = "Clear CABMap"; - this.toolStripMenuItem21.Click += new System.EventHandler(this.toolStripMenuItem21_Click); + toolStripMenuItem21.Name = "toolStripMenuItem21"; + toolStripMenuItem21.Size = new System.Drawing.Size(181, 22); + toolStripMenuItem21.Text = "Clear CABMap"; + toolStripMenuItem21.Click += toolStripMenuItem21_Click; // // assetMapToolStripMenuItem // - this.assetMapToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.assetMapNameTextBox, - this.toolStripMenuItem22, - this.assetMapTypeComboBox}); - this.assetMapToolStripMenuItem.Name = "assetMapToolStripMenuItem"; - this.assetMapToolStripMenuItem.Size = new System.Drawing.Size(126, 22); - this.assetMapToolStripMenuItem.Text = "AssetMap"; + assetMapToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { assetMapNameTextBox, toolStripMenuItem22, assetMapTypeComboBox }); + assetMapToolStripMenuItem.Name = "assetMapToolStripMenuItem"; + assetMapToolStripMenuItem.Size = new System.Drawing.Size(126, 22); + assetMapToolStripMenuItem.Text = "AssetMap"; // // assetMapNameTextBox // - this.assetMapNameTextBox.Name = "assetMapNameTextBox"; - this.assetMapNameTextBox.Size = new System.Drawing.Size(100, 23); - this.assetMapNameTextBox.ToolTipText = "Enter name of AssetMap here"; + assetMapNameTextBox.Name = "assetMapNameTextBox"; + assetMapNameTextBox.Size = new System.Drawing.Size(100, 23); + assetMapNameTextBox.ToolTipText = "Enter name of AssetMap here"; // // toolStripMenuItem22 // - this.toolStripMenuItem22.Name = "toolStripMenuItem22"; - this.toolStripMenuItem22.Size = new System.Drawing.Size(181, 22); - this.toolStripMenuItem22.Text = "Build AssetMap"; - this.toolStripMenuItem22.Click += new System.EventHandler(this.toolStripMenuItem22_Click); + toolStripMenuItem22.Name = "toolStripMenuItem22"; + toolStripMenuItem22.Size = new System.Drawing.Size(181, 22); + toolStripMenuItem22.Text = "Build AssetMap"; + toolStripMenuItem22.Click += toolStripMenuItem22_Click; // // assetMapTypeComboBox // - this.assetMapTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.assetMapTypeComboBox.Name = "assetMapTypeComboBox"; - this.assetMapTypeComboBox.Size = new System.Drawing.Size(121, 23); - this.assetMapTypeComboBox.SelectedIndexChanged += new System.EventHandler(this.assetMapTypeComboBox_SelectedIndexChanged); + assetMapTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + assetMapTypeComboBox.Name = "assetMapTypeComboBox"; + assetMapTypeComboBox.Size = new System.Drawing.Size(121, 23); + assetMapTypeComboBox.SelectedIndexChanged += assetMapTypeComboBox_SelectedIndexChanged; // // loadAIToolStripMenuItem // - this.loadAIToolStripMenuItem.Name = "loadAIToolStripMenuItem"; - this.loadAIToolStripMenuItem.Size = new System.Drawing.Size(145, 22); - this.loadAIToolStripMenuItem.Text = "Load AI"; - this.loadAIToolStripMenuItem.Click += new System.EventHandler(this.loadAIToolStripMenuItem_Click); + loadAIToolStripMenuItem.Name = "loadAIToolStripMenuItem"; + loadAIToolStripMenuItem.Size = new System.Drawing.Size(145, 22); + loadAIToolStripMenuItem.Text = "Load AI"; + loadAIToolStripMenuItem.Click += loadAIToolStripMenuItem_Click; // // toolStripSeparator5 // - this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(178, 6); + toolStripSeparator5.Name = "toolStripSeparator5"; + toolStripSeparator5.Size = new System.Drawing.Size(178, 6); // // splitContainer1 // - this.splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 24); - this.splitContainer1.Name = "splitContainer1"; + splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + splitContainer1.Location = new System.Drawing.Point(0, 24); + splitContainer1.Name = "splitContainer1"; // // splitContainer1.Panel1 // - this.splitContainer1.Panel1.Controls.Add(this.tabControl1); - this.splitContainer1.Panel1.Controls.Add(this.progressbarPanel); - this.splitContainer1.Panel1MinSize = 200; + splitContainer1.Panel1.Controls.Add(tabControl1); + splitContainer1.Panel1.Controls.Add(progressbarPanel); + splitContainer1.Panel1MinSize = 200; // // splitContainer1.Panel2 // - this.splitContainer1.Panel2.Controls.Add(this.tabControl2); - this.splitContainer1.Panel2.Controls.Add(this.statusStrip1); - this.splitContainer1.Panel2MinSize = 400; - this.splitContainer1.Size = new System.Drawing.Size(1264, 657); - this.splitContainer1.SplitterDistance = 482; - this.splitContainer1.TabIndex = 2; - this.splitContainer1.TabStop = false; + splitContainer1.Panel2.Controls.Add(tabControl2); + splitContainer1.Panel2.Controls.Add(statusStrip1); + splitContainer1.Panel2MinSize = 400; + splitContainer1.Size = new System.Drawing.Size(1264, 657); + splitContainer1.SplitterDistance = 482; + splitContainer1.TabIndex = 2; + splitContainer1.TabStop = false; // // tabControl1 // - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Controls.Add(this.tabPage3); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.Padding = new System.Drawing.Point(17, 3); - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(480, 635); - this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; - this.tabControl1.TabIndex = 0; - this.tabControl1.Selected += new System.Windows.Forms.TabControlEventHandler(this.tabPageSelected); + tabControl1.Controls.Add(tabPage1); + tabControl1.Controls.Add(tabPage2); + tabControl1.Controls.Add(tabPage3); + tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + tabControl1.Location = new System.Drawing.Point(0, 0); + tabControl1.Name = "tabControl1"; + tabControl1.Padding = new System.Drawing.Point(17, 3); + tabControl1.SelectedIndex = 0; + tabControl1.Size = new System.Drawing.Size(480, 635); + tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; + tabControl1.TabIndex = 0; + tabControl1.Selected += tabPageSelected; // // tabPage1 // - this.tabPage1.Controls.Add(this.sceneTreeView); - this.tabPage1.Controls.Add(this.treeSearch); - this.tabPage1.Location = new System.Drawing.Point(4, 24); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Size = new System.Drawing.Size(472, 607); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Scene Hierarchy"; - this.tabPage1.UseVisualStyleBackColor = true; + tabPage1.Controls.Add(sceneTreeView); + tabPage1.Controls.Add(treeSearch); + tabPage1.Location = new System.Drawing.Point(4, 24); + tabPage1.Name = "tabPage1"; + tabPage1.Size = new System.Drawing.Size(472, 607); + tabPage1.TabIndex = 0; + tabPage1.Text = "Scene Hierarchy"; + tabPage1.UseVisualStyleBackColor = true; // // sceneTreeView // - this.sceneTreeView.CheckBoxes = true; - this.sceneTreeView.Dock = System.Windows.Forms.DockStyle.Fill; - this.sceneTreeView.HideSelection = false; - this.sceneTreeView.Location = new System.Drawing.Point(0, 23); - this.sceneTreeView.Name = "sceneTreeView"; - this.sceneTreeView.Size = new System.Drawing.Size(472, 584); - this.sceneTreeView.TabIndex = 1; - this.sceneTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.sceneTreeView_AfterCheck); + sceneTreeView.CheckBoxes = true; + sceneTreeView.Dock = System.Windows.Forms.DockStyle.Fill; + sceneTreeView.HideSelection = false; + sceneTreeView.Location = new System.Drawing.Point(0, 23); + sceneTreeView.Name = "sceneTreeView"; + sceneTreeView.Size = new System.Drawing.Size(472, 584); + sceneTreeView.TabIndex = 1; + sceneTreeView.AfterCheck += sceneTreeView_AfterCheck; // // treeSearch // - this.treeSearch.Dock = System.Windows.Forms.DockStyle.Top; - this.treeSearch.ForeColor = System.Drawing.SystemColors.GrayText; - this.treeSearch.Location = new System.Drawing.Point(0, 0); - this.treeSearch.Name = "treeSearch"; - this.treeSearch.Size = new System.Drawing.Size(472, 23); - this.treeSearch.TabIndex = 0; - this.treeSearch.Text = " Search "; - this.treeSearch.TextChanged += new System.EventHandler(this.treeSearch_TextChanged); - this.treeSearch.Enter += new System.EventHandler(this.treeSearch_Enter); - this.treeSearch.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeSearch_KeyDown); - this.treeSearch.Leave += new System.EventHandler(this.treeSearch_Leave); + treeSearch.Dock = System.Windows.Forms.DockStyle.Top; + treeSearch.ForeColor = System.Drawing.SystemColors.GrayText; + treeSearch.Location = new System.Drawing.Point(0, 0); + treeSearch.Name = "treeSearch"; + treeSearch.Size = new System.Drawing.Size(472, 23); + treeSearch.TabIndex = 0; + treeSearch.Text = " Search "; + treeSearch.TextChanged += treeSearch_TextChanged; + treeSearch.Enter += treeSearch_Enter; + treeSearch.KeyDown += treeSearch_KeyDown; + treeSearch.Leave += treeSearch_Leave; // // tabPage2 // - this.tabPage2.Controls.Add(this.assetListView); - this.tabPage2.Controls.Add(this.listSearch); - this.tabPage2.Location = new System.Drawing.Point(4, 24); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Size = new System.Drawing.Size(472, 607); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Asset List"; - this.tabPage2.UseVisualStyleBackColor = true; + tabPage2.Controls.Add(assetListView); + tabPage2.Controls.Add(listSearch); + tabPage2.Location = new System.Drawing.Point(4, 24); + tabPage2.Name = "tabPage2"; + tabPage2.Size = new System.Drawing.Size(472, 607); + tabPage2.TabIndex = 1; + tabPage2.Text = "Asset List"; + tabPage2.UseVisualStyleBackColor = true; // // assetListView // - this.assetListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.columnHeaderName, - this.columnHeaderContainer, - this.columnHeaderType, - this.columnHeaderPathID, - this.columnHeaderSize}); - this.assetListView.Dock = System.Windows.Forms.DockStyle.Fill; - this.assetListView.FullRowSelect = true; - this.assetListView.GridLines = true; - this.assetListView.Location = new System.Drawing.Point(0, 23); - this.assetListView.Name = "assetListView"; - this.assetListView.Size = new System.Drawing.Size(472, 584); - this.assetListView.TabIndex = 1; - this.assetListView.UseCompatibleStateImageBehavior = false; - this.assetListView.View = System.Windows.Forms.View.Details; - this.assetListView.VirtualMode = true; - this.assetListView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.assetListView_ColumnClick); - this.assetListView.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.selectAsset); - this.assetListView.RetrieveVirtualItem += new System.Windows.Forms.RetrieveVirtualItemEventHandler(this.assetListView_RetrieveVirtualItem); - this.assetListView.MouseClick += new System.Windows.Forms.MouseEventHandler(this.assetListView_MouseClick); + assetListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { columnHeaderName, columnHeaderContainer, columnHeaderType, columnHeaderPathID, columnHeaderSize }); + assetListView.Dock = System.Windows.Forms.DockStyle.Fill; + assetListView.FullRowSelect = true; + assetListView.GridLines = true; + assetListView.Location = new System.Drawing.Point(0, 23); + assetListView.Name = "assetListView"; + assetListView.Size = new System.Drawing.Size(472, 584); + assetListView.TabIndex = 1; + assetListView.UseCompatibleStateImageBehavior = false; + assetListView.View = System.Windows.Forms.View.Details; + assetListView.VirtualMode = true; + assetListView.ColumnClick += assetListView_ColumnClick; + assetListView.ItemSelectionChanged += selectAsset; + assetListView.RetrieveVirtualItem += assetListView_RetrieveVirtualItem; + assetListView.MouseClick += assetListView_MouseClick; // // columnHeaderName // - this.columnHeaderName.Text = "Name"; - this.columnHeaderName.Width = 170; + columnHeaderName.Text = "Name"; + columnHeaderName.Width = 170; // // columnHeaderContainer // - this.columnHeaderContainer.Text = "Container"; - this.columnHeaderContainer.Width = 80; + columnHeaderContainer.Text = "Container"; + columnHeaderContainer.Width = 80; // // columnHeaderType // - this.columnHeaderType.Text = "Type"; - this.columnHeaderType.Width = 90; + columnHeaderType.Text = "Type"; + columnHeaderType.Width = 90; // // columnHeaderPathID // - this.columnHeaderPathID.Text = "PathID"; + columnHeaderPathID.Text = "PathID"; // // columnHeaderSize // - this.columnHeaderSize.Text = "Size"; - this.columnHeaderSize.Width = 50; + columnHeaderSize.Text = "Size"; + columnHeaderSize.Width = 50; // // listSearch // - this.listSearch.Dock = System.Windows.Forms.DockStyle.Top; - this.listSearch.ForeColor = System.Drawing.SystemColors.GrayText; - this.listSearch.Location = new System.Drawing.Point(0, 0); - this.listSearch.Name = "listSearch"; - this.listSearch.Size = new System.Drawing.Size(472, 23); - this.listSearch.TabIndex = 0; - this.listSearch.Text = " Filter "; - this.listSearch.TextChanged += new System.EventHandler(this.ListSearchTextChanged); - this.listSearch.Enter += new System.EventHandler(this.listSearch_Enter); - this.listSearch.Leave += new System.EventHandler(this.listSearch_Leave); + listSearch.Dock = System.Windows.Forms.DockStyle.Top; + listSearch.ForeColor = System.Drawing.SystemColors.GrayText; + listSearch.Location = new System.Drawing.Point(0, 0); + listSearch.Name = "listSearch"; + listSearch.Size = new System.Drawing.Size(472, 23); + listSearch.TabIndex = 0; + listSearch.Text = " Filter "; + listSearch.TextChanged += ListSearchTextChanged; + listSearch.Enter += listSearch_Enter; + listSearch.Leave += listSearch_Leave; // // tabPage3 // - this.tabPage3.Controls.Add(this.classesListView); - this.tabPage3.Location = new System.Drawing.Point(4, 24); - this.tabPage3.Name = "tabPage3"; - this.tabPage3.Size = new System.Drawing.Size(472, 607); - this.tabPage3.TabIndex = 2; - this.tabPage3.Text = "Asset Classes"; - this.tabPage3.UseVisualStyleBackColor = true; + tabPage3.Controls.Add(classesListView); + tabPage3.Location = new System.Drawing.Point(4, 24); + tabPage3.Name = "tabPage3"; + tabPage3.Size = new System.Drawing.Size(472, 607); + tabPage3.TabIndex = 2; + tabPage3.Text = "Asset Classes"; + tabPage3.UseVisualStyleBackColor = true; // // classesListView // - this.classesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.columnHeader1, - this.columnHeader2}); - this.classesListView.Dock = System.Windows.Forms.DockStyle.Fill; - this.classesListView.FullRowSelect = true; - this.classesListView.Location = new System.Drawing.Point(0, 0); - this.classesListView.MultiSelect = false; - this.classesListView.Name = "classesListView"; - this.classesListView.Size = new System.Drawing.Size(472, 607); - this.classesListView.TabIndex = 0; - this.classesListView.UseCompatibleStateImageBehavior = false; - this.classesListView.View = System.Windows.Forms.View.Details; - this.classesListView.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.classesListView_ItemSelectionChanged); + classesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { columnHeader1, columnHeader2 }); + classesListView.Dock = System.Windows.Forms.DockStyle.Fill; + classesListView.FullRowSelect = true; + classesListView.Location = new System.Drawing.Point(0, 0); + classesListView.MultiSelect = false; + classesListView.Name = "classesListView"; + classesListView.Size = new System.Drawing.Size(472, 607); + classesListView.TabIndex = 0; + classesListView.UseCompatibleStateImageBehavior = false; + classesListView.View = System.Windows.Forms.View.Details; + classesListView.ItemSelectionChanged += classesListView_ItemSelectionChanged; // // columnHeader1 // - this.columnHeader1.DisplayIndex = 1; - this.columnHeader1.Text = "Name"; - this.columnHeader1.Width = 300; + columnHeader1.DisplayIndex = 1; + columnHeader1.Text = "Name"; + columnHeader1.Width = 300; // // columnHeader2 // - this.columnHeader2.DisplayIndex = 0; - this.columnHeader2.Text = "ID"; - this.columnHeader2.Width = 70; + columnHeader2.DisplayIndex = 0; + columnHeader2.Text = "ID"; + columnHeader2.Width = 70; // // progressbarPanel // - this.progressbarPanel.Controls.Add(this.progressBar1); - this.progressbarPanel.Dock = System.Windows.Forms.DockStyle.Bottom; - this.progressbarPanel.Location = new System.Drawing.Point(0, 635); - this.progressbarPanel.Name = "progressbarPanel"; - this.progressbarPanel.Padding = new System.Windows.Forms.Padding(1, 3, 1, 1); - this.progressbarPanel.Size = new System.Drawing.Size(480, 20); - this.progressbarPanel.TabIndex = 2; + progressbarPanel.Controls.Add(progressBar1); + progressbarPanel.Dock = System.Windows.Forms.DockStyle.Bottom; + progressbarPanel.Location = new System.Drawing.Point(0, 635); + progressbarPanel.Name = "progressbarPanel"; + progressbarPanel.Padding = new System.Windows.Forms.Padding(1, 3, 1, 1); + progressbarPanel.Size = new System.Drawing.Size(480, 20); + progressbarPanel.TabIndex = 2; // // progressBar1 // - this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.progressBar1.Location = new System.Drawing.Point(1, 2); - this.progressBar1.Name = "progressBar1"; - this.progressBar1.Size = new System.Drawing.Size(478, 17); - this.progressBar1.Step = 1; - this.progressBar1.TabIndex = 1; + progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom; + progressBar1.Location = new System.Drawing.Point(1, 2); + progressBar1.Name = "progressBar1"; + progressBar1.Size = new System.Drawing.Size(478, 17); + progressBar1.Step = 1; + progressBar1.TabIndex = 1; // // tabControl2 // - this.tabControl2.Controls.Add(this.tabPage4); - this.tabControl2.Controls.Add(this.tabPage5); - this.tabControl2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl2.Location = new System.Drawing.Point(0, 0); - this.tabControl2.Name = "tabControl2"; - this.tabControl2.SelectedIndex = 0; - this.tabControl2.Size = new System.Drawing.Size(776, 633); - this.tabControl2.TabIndex = 4; - this.tabControl2.SelectedIndexChanged += new System.EventHandler(this.tabControl2_SelectedIndexChanged); + tabControl2.Controls.Add(tabPage4); + tabControl2.Controls.Add(tabPage5); + tabControl2.Dock = System.Windows.Forms.DockStyle.Fill; + tabControl2.Location = new System.Drawing.Point(0, 0); + tabControl2.Name = "tabControl2"; + tabControl2.SelectedIndex = 0; + tabControl2.Size = new System.Drawing.Size(776, 633); + tabControl2.TabIndex = 4; + tabControl2.SelectedIndexChanged += tabControl2_SelectedIndexChanged; // // tabPage4 // - this.tabPage4.Controls.Add(this.previewPanel); - this.tabPage4.Location = new System.Drawing.Point(4, 24); - this.tabPage4.Name = "tabPage4"; - this.tabPage4.Size = new System.Drawing.Size(768, 605); - this.tabPage4.TabIndex = 0; - this.tabPage4.Text = "Preview"; - this.tabPage4.UseVisualStyleBackColor = true; + tabPage4.Controls.Add(previewPanel); + tabPage4.Location = new System.Drawing.Point(4, 24); + tabPage4.Name = "tabPage4"; + tabPage4.Size = new System.Drawing.Size(768, 605); + tabPage4.TabIndex = 0; + tabPage4.Text = "Preview"; + tabPage4.UseVisualStyleBackColor = true; // // previewPanel // - this.previewPanel.BackColor = System.Drawing.SystemColors.ControlDark; - this.previewPanel.BackgroundImage = global::AssetStudioGUI.Properties.Resources.preview; - this.previewPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.previewPanel.Controls.Add(this.assetInfoLabel); - this.previewPanel.Controls.Add(this.FMODpanel); - this.previewPanel.Controls.Add(this.fontPreviewBox); - this.previewPanel.Controls.Add(this.glControl); - this.previewPanel.Controls.Add(this.textPreviewBox); - this.previewPanel.Controls.Add(this.classTextBox); - this.previewPanel.Dock = System.Windows.Forms.DockStyle.Fill; - this.previewPanel.Location = new System.Drawing.Point(0, 0); - this.previewPanel.Name = "previewPanel"; - this.previewPanel.Size = new System.Drawing.Size(768, 605); - this.previewPanel.TabIndex = 1; - this.previewPanel.Resize += new System.EventHandler(this.preview_Resize); + previewPanel.BackColor = System.Drawing.SystemColors.ControlDark; + previewPanel.BackgroundImage = Properties.Resources.preview; + previewPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + previewPanel.Controls.Add(assetInfoLabel); + previewPanel.Controls.Add(FMODpanel); + previewPanel.Controls.Add(fontPreviewBox); + previewPanel.Controls.Add(glControl); + previewPanel.Controls.Add(textPreviewBox); + previewPanel.Controls.Add(classTextBox); + previewPanel.Dock = System.Windows.Forms.DockStyle.Fill; + previewPanel.Location = new System.Drawing.Point(0, 0); + previewPanel.Name = "previewPanel"; + previewPanel.Size = new System.Drawing.Size(768, 605); + previewPanel.TabIndex = 1; + previewPanel.Resize += preview_Resize; // // assetInfoLabel // - this.assetInfoLabel.AutoSize = true; - this.assetInfoLabel.BackColor = System.Drawing.Color.Transparent; - this.assetInfoLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight; - this.assetInfoLabel.Location = new System.Drawing.Point(4, 7); - this.assetInfoLabel.Name = "assetInfoLabel"; - this.assetInfoLabel.Size = new System.Drawing.Size(0, 15); - this.assetInfoLabel.TabIndex = 0; + assetInfoLabel.AutoSize = true; + assetInfoLabel.BackColor = System.Drawing.Color.Transparent; + assetInfoLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight; + assetInfoLabel.Location = new System.Drawing.Point(4, 7); + assetInfoLabel.Name = "assetInfoLabel"; + assetInfoLabel.Size = new System.Drawing.Size(0, 15); + assetInfoLabel.TabIndex = 0; // // FMODpanel // - this.FMODpanel.BackColor = System.Drawing.SystemColors.ControlDark; - this.FMODpanel.Controls.Add(this.FMODcopyright); - this.FMODpanel.Controls.Add(this.FMODinfoLabel); - this.FMODpanel.Controls.Add(this.FMODtimerLabel); - this.FMODpanel.Controls.Add(this.FMODstatusLabel); - this.FMODpanel.Controls.Add(this.FMODprogressBar); - this.FMODpanel.Controls.Add(this.FMODvolumeBar); - this.FMODpanel.Controls.Add(this.FMODloopButton); - this.FMODpanel.Controls.Add(this.FMODstopButton); - this.FMODpanel.Controls.Add(this.FMODpauseButton); - this.FMODpanel.Controls.Add(this.FMODplayButton); - this.FMODpanel.Dock = System.Windows.Forms.DockStyle.Fill; - this.FMODpanel.Location = new System.Drawing.Point(0, 0); - this.FMODpanel.Name = "FMODpanel"; - this.FMODpanel.Size = new System.Drawing.Size(768, 605); - this.FMODpanel.TabIndex = 2; - this.FMODpanel.Visible = false; + FMODpanel.BackColor = System.Drawing.SystemColors.ControlDark; + FMODpanel.Controls.Add(FMODcopyright); + FMODpanel.Controls.Add(FMODinfoLabel); + FMODpanel.Controls.Add(FMODtimerLabel); + FMODpanel.Controls.Add(FMODstatusLabel); + FMODpanel.Controls.Add(FMODprogressBar); + FMODpanel.Controls.Add(FMODvolumeBar); + FMODpanel.Controls.Add(FMODloopButton); + FMODpanel.Controls.Add(FMODstopButton); + FMODpanel.Controls.Add(FMODpauseButton); + FMODpanel.Controls.Add(FMODplayButton); + FMODpanel.Dock = System.Windows.Forms.DockStyle.Fill; + FMODpanel.Location = new System.Drawing.Point(0, 0); + FMODpanel.Name = "FMODpanel"; + FMODpanel.Size = new System.Drawing.Size(768, 605); + FMODpanel.TabIndex = 2; + FMODpanel.Visible = false; // // FMODcopyright // - this.FMODcopyright.AutoSize = true; - this.FMODcopyright.ForeColor = System.Drawing.SystemColors.ControlLight; - this.FMODcopyright.Location = new System.Drawing.Point(214, 337); - this.FMODcopyright.Name = "FMODcopyright"; - this.FMODcopyright.Size = new System.Drawing.Size(316, 15); - this.FMODcopyright.TabIndex = 9; - this.FMODcopyright.Text = "Audio Engine supplied by FMOD by Firelight Technologies."; + FMODcopyright.AutoSize = true; + FMODcopyright.ForeColor = System.Drawing.SystemColors.ControlLight; + FMODcopyright.Location = new System.Drawing.Point(214, 337); + FMODcopyright.Name = "FMODcopyright"; + FMODcopyright.Size = new System.Drawing.Size(316, 15); + FMODcopyright.TabIndex = 9; + FMODcopyright.Text = "Audio Engine supplied by FMOD by Firelight Technologies."; // // FMODinfoLabel // - this.FMODinfoLabel.AutoSize = true; - this.FMODinfoLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight; - this.FMODinfoLabel.Location = new System.Drawing.Point(269, 235); - this.FMODinfoLabel.Name = "FMODinfoLabel"; - this.FMODinfoLabel.Size = new System.Drawing.Size(0, 15); - this.FMODinfoLabel.TabIndex = 8; + FMODinfoLabel.AutoSize = true; + FMODinfoLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight; + FMODinfoLabel.Location = new System.Drawing.Point(269, 235); + FMODinfoLabel.Name = "FMODinfoLabel"; + FMODinfoLabel.Size = new System.Drawing.Size(0, 15); + FMODinfoLabel.TabIndex = 8; // // FMODtimerLabel // - this.FMODtimerLabel.AutoSize = true; - this.FMODtimerLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight; - this.FMODtimerLabel.Location = new System.Drawing.Point(460, 235); - this.FMODtimerLabel.Name = "FMODtimerLabel"; - this.FMODtimerLabel.Size = new System.Drawing.Size(78, 15); - this.FMODtimerLabel.TabIndex = 7; - this.FMODtimerLabel.Text = "0:00.0 / 0:00.0"; + FMODtimerLabel.AutoSize = true; + FMODtimerLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight; + FMODtimerLabel.Location = new System.Drawing.Point(460, 235); + FMODtimerLabel.Name = "FMODtimerLabel"; + FMODtimerLabel.Size = new System.Drawing.Size(78, 15); + FMODtimerLabel.TabIndex = 7; + FMODtimerLabel.Text = "0:00.0 / 0:00.0"; // // FMODstatusLabel // - this.FMODstatusLabel.AutoSize = true; - this.FMODstatusLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight; - this.FMODstatusLabel.Location = new System.Drawing.Point(213, 235); - this.FMODstatusLabel.Name = "FMODstatusLabel"; - this.FMODstatusLabel.Size = new System.Drawing.Size(51, 15); - this.FMODstatusLabel.TabIndex = 6; - this.FMODstatusLabel.Text = "Stopped"; + FMODstatusLabel.AutoSize = true; + FMODstatusLabel.ForeColor = System.Drawing.SystemColors.ControlLightLight; + FMODstatusLabel.Location = new System.Drawing.Point(213, 235); + FMODstatusLabel.Name = "FMODstatusLabel"; + FMODstatusLabel.Size = new System.Drawing.Size(51, 15); + FMODstatusLabel.TabIndex = 6; + FMODstatusLabel.Text = "Stopped"; // // FMODprogressBar // - this.FMODprogressBar.AutoSize = false; - this.FMODprogressBar.Location = new System.Drawing.Point(213, 253); - this.FMODprogressBar.Maximum = 1000; - this.FMODprogressBar.Name = "FMODprogressBar"; - this.FMODprogressBar.Size = new System.Drawing.Size(350, 22); - this.FMODprogressBar.TabIndex = 5; - this.FMODprogressBar.TickStyle = System.Windows.Forms.TickStyle.None; - this.FMODprogressBar.Scroll += new System.EventHandler(this.FMODprogressBar_Scroll); - this.FMODprogressBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.FMODprogressBar_MouseDown); - this.FMODprogressBar.MouseUp += new System.Windows.Forms.MouseEventHandler(this.FMODprogressBar_MouseUp); + FMODprogressBar.AutoSize = false; + FMODprogressBar.Location = new System.Drawing.Point(213, 253); + FMODprogressBar.Maximum = 1000; + FMODprogressBar.Name = "FMODprogressBar"; + FMODprogressBar.Size = new System.Drawing.Size(350, 22); + FMODprogressBar.TabIndex = 5; + FMODprogressBar.TickStyle = System.Windows.Forms.TickStyle.None; + FMODprogressBar.Scroll += FMODprogressBar_Scroll; + FMODprogressBar.MouseDown += FMODprogressBar_MouseDown; + FMODprogressBar.MouseUp += FMODprogressBar_MouseUp; // // FMODvolumeBar // - this.FMODvolumeBar.LargeChange = 2; - this.FMODvolumeBar.Location = new System.Drawing.Point(460, 280); - this.FMODvolumeBar.Name = "FMODvolumeBar"; - this.FMODvolumeBar.Size = new System.Drawing.Size(104, 45); - this.FMODvolumeBar.TabIndex = 4; - this.FMODvolumeBar.TickStyle = System.Windows.Forms.TickStyle.Both; - this.FMODvolumeBar.Value = 8; - this.FMODvolumeBar.ValueChanged += new System.EventHandler(this.FMODvolumeBar_ValueChanged); + FMODvolumeBar.LargeChange = 2; + FMODvolumeBar.Location = new System.Drawing.Point(460, 280); + FMODvolumeBar.Name = "FMODvolumeBar"; + FMODvolumeBar.Size = new System.Drawing.Size(104, 45); + FMODvolumeBar.TabIndex = 4; + FMODvolumeBar.TickStyle = System.Windows.Forms.TickStyle.Both; + FMODvolumeBar.Value = 8; + FMODvolumeBar.ValueChanged += FMODvolumeBar_ValueChanged; // // FMODloopButton // - this.FMODloopButton.Appearance = System.Windows.Forms.Appearance.Button; - this.FMODloopButton.Location = new System.Drawing.Point(399, 280); - this.FMODloopButton.Name = "FMODloopButton"; - this.FMODloopButton.Size = new System.Drawing.Size(55, 42); - this.FMODloopButton.TabIndex = 3; - this.FMODloopButton.Text = "Loop"; - this.FMODloopButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.FMODloopButton.UseVisualStyleBackColor = true; - this.FMODloopButton.CheckedChanged += new System.EventHandler(this.FMODloopButton_CheckedChanged); + FMODloopButton.Appearance = System.Windows.Forms.Appearance.Button; + FMODloopButton.Location = new System.Drawing.Point(399, 280); + FMODloopButton.Name = "FMODloopButton"; + FMODloopButton.Size = new System.Drawing.Size(55, 42); + FMODloopButton.TabIndex = 3; + FMODloopButton.Text = "Loop"; + FMODloopButton.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + FMODloopButton.UseVisualStyleBackColor = true; + FMODloopButton.CheckedChanged += FMODloopButton_CheckedChanged; // // FMODstopButton // - this.FMODstopButton.Location = new System.Drawing.Point(338, 280); - this.FMODstopButton.Name = "FMODstopButton"; - this.FMODstopButton.Size = new System.Drawing.Size(55, 42); - this.FMODstopButton.TabIndex = 2; - this.FMODstopButton.Text = "Stop"; - this.FMODstopButton.UseVisualStyleBackColor = true; - this.FMODstopButton.Click += new System.EventHandler(this.FMODstopButton_Click); + FMODstopButton.Location = new System.Drawing.Point(338, 280); + FMODstopButton.Name = "FMODstopButton"; + FMODstopButton.Size = new System.Drawing.Size(55, 42); + FMODstopButton.TabIndex = 2; + FMODstopButton.Text = "Stop"; + FMODstopButton.UseVisualStyleBackColor = true; + FMODstopButton.Click += FMODstopButton_Click; // // FMODpauseButton // - this.FMODpauseButton.Location = new System.Drawing.Point(277, 280); - this.FMODpauseButton.Name = "FMODpauseButton"; - this.FMODpauseButton.Size = new System.Drawing.Size(55, 42); - this.FMODpauseButton.TabIndex = 1; - this.FMODpauseButton.Text = "Pause"; - this.FMODpauseButton.UseVisualStyleBackColor = true; - this.FMODpauseButton.Click += new System.EventHandler(this.FMODpauseButton_Click); + FMODpauseButton.Location = new System.Drawing.Point(277, 280); + FMODpauseButton.Name = "FMODpauseButton"; + FMODpauseButton.Size = new System.Drawing.Size(55, 42); + FMODpauseButton.TabIndex = 1; + FMODpauseButton.Text = "Pause"; + FMODpauseButton.UseVisualStyleBackColor = true; + FMODpauseButton.Click += FMODpauseButton_Click; // // FMODplayButton // - this.FMODplayButton.Location = new System.Drawing.Point(216, 280); - this.FMODplayButton.Name = "FMODplayButton"; - this.FMODplayButton.Size = new System.Drawing.Size(55, 42); - this.FMODplayButton.TabIndex = 0; - this.FMODplayButton.Text = "Play"; - this.FMODplayButton.UseVisualStyleBackColor = true; - this.FMODplayButton.Click += new System.EventHandler(this.FMODplayButton_Click); + FMODplayButton.Location = new System.Drawing.Point(216, 280); + FMODplayButton.Name = "FMODplayButton"; + FMODplayButton.Size = new System.Drawing.Size(55, 42); + FMODplayButton.TabIndex = 0; + FMODplayButton.Text = "Play"; + FMODplayButton.UseVisualStyleBackColor = true; + FMODplayButton.Click += FMODplayButton_Click; // // fontPreviewBox // - this.fontPreviewBox.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.fontPreviewBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.fontPreviewBox.Location = new System.Drawing.Point(0, 0); - this.fontPreviewBox.Name = "fontPreviewBox"; - this.fontPreviewBox.ReadOnly = true; - this.fontPreviewBox.Size = new System.Drawing.Size(768, 605); - this.fontPreviewBox.TabIndex = 0; - this.fontPreviewBox.Text = resources.GetString("fontPreviewBox.Text"); - this.fontPreviewBox.Visible = false; - this.fontPreviewBox.WordWrap = false; + fontPreviewBox.BackColor = System.Drawing.SystemColors.ControlLightLight; + fontPreviewBox.Dock = System.Windows.Forms.DockStyle.Fill; + fontPreviewBox.Location = new System.Drawing.Point(0, 0); + fontPreviewBox.Name = "fontPreviewBox"; + fontPreviewBox.ReadOnly = true; + fontPreviewBox.Size = new System.Drawing.Size(768, 605); + fontPreviewBox.TabIndex = 0; + fontPreviewBox.Text = resources.GetString("fontPreviewBox.Text"); + fontPreviewBox.Visible = false; + fontPreviewBox.WordWrap = false; // // glControl // - this.glControl.API = OpenTK.Windowing.Common.ContextAPI.OpenGL; - this.glControl.APIVersion = new System.Version(4, 6, 0, 0); - this.glControl.BackColor = System.Drawing.SystemColors.ControlDarkDark; - this.glControl.Dock = System.Windows.Forms.DockStyle.Fill; - this.glControl.Flags = OpenTK.Windowing.Common.ContextFlags.Default; - this.glControl.IsEventDriven = true; - this.glControl.Location = new System.Drawing.Point(0, 0); - this.glControl.Name = "glControl"; - this.glControl.Profile = OpenTK.Windowing.Common.ContextProfile.Core; - this.glControl.Size = new System.Drawing.Size(768, 605); - this.glControl.TabIndex = 4; - this.glControl.Visible = false; - this.glControl.Load += new System.EventHandler(this.glControl_Load); - this.glControl.Paint += new System.Windows.Forms.PaintEventHandler(this.glControl_Paint); - this.glControl.MouseDown += new System.Windows.Forms.MouseEventHandler(this.glControl_MouseDown); - this.glControl.MouseMove += new System.Windows.Forms.MouseEventHandler(this.glControl_MouseMove); - this.glControl.MouseUp += new System.Windows.Forms.MouseEventHandler(this.glControl_MouseUp); - this.glControl.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.glControl_MouseWheel); + glControl.API = OpenTK.Windowing.Common.ContextAPI.OpenGL; + glControl.APIVersion = new Version(4, 6, 0, 0); + glControl.BackColor = System.Drawing.SystemColors.ControlDarkDark; + glControl.Dock = System.Windows.Forms.DockStyle.Fill; + glControl.Flags = OpenTK.Windowing.Common.ContextFlags.Default; + glControl.IsEventDriven = true; + glControl.Location = new System.Drawing.Point(0, 0); + glControl.Name = "glControl"; + glControl.Profile = OpenTK.Windowing.Common.ContextProfile.Core; + glControl.Size = new System.Drawing.Size(768, 605); + glControl.TabIndex = 4; + glControl.Visible = false; + glControl.Load += glControl_Load; + glControl.Paint += glControl_Paint; + glControl.MouseDown += glControl_MouseDown; + glControl.MouseMove += glControl_MouseMove; + glControl.MouseUp += glControl_MouseUp; + glControl.MouseWheel += glControl_MouseWheel; // // textPreviewBox // - this.textPreviewBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.textPreviewBox.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); - this.textPreviewBox.Location = new System.Drawing.Point(0, 0); - this.textPreviewBox.Multiline = true; - this.textPreviewBox.Name = "textPreviewBox"; - this.textPreviewBox.ReadOnly = true; - this.textPreviewBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.textPreviewBox.Size = new System.Drawing.Size(768, 605); - this.textPreviewBox.TabIndex = 2; - this.textPreviewBox.Visible = false; - this.textPreviewBox.WordWrap = false; + textPreviewBox.Dock = System.Windows.Forms.DockStyle.Fill; + textPreviewBox.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + textPreviewBox.Location = new System.Drawing.Point(0, 0); + textPreviewBox.Multiline = true; + textPreviewBox.Name = "textPreviewBox"; + textPreviewBox.ReadOnly = true; + textPreviewBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; + textPreviewBox.Size = new System.Drawing.Size(768, 605); + textPreviewBox.TabIndex = 2; + textPreviewBox.Visible = false; + textPreviewBox.WordWrap = false; // // classTextBox // - this.classTextBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.classTextBox.Location = new System.Drawing.Point(0, 0); - this.classTextBox.Multiline = true; - this.classTextBox.Name = "classTextBox"; - this.classTextBox.ReadOnly = true; - this.classTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.classTextBox.Size = new System.Drawing.Size(768, 605); - this.classTextBox.TabIndex = 3; - this.classTextBox.Visible = false; - this.classTextBox.WordWrap = false; + classTextBox.Dock = System.Windows.Forms.DockStyle.Fill; + classTextBox.Location = new System.Drawing.Point(0, 0); + classTextBox.Multiline = true; + classTextBox.Name = "classTextBox"; + classTextBox.ReadOnly = true; + classTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; + classTextBox.Size = new System.Drawing.Size(768, 605); + classTextBox.TabIndex = 3; + classTextBox.Visible = false; + classTextBox.WordWrap = false; // // tabPage5 // - this.tabPage5.Controls.Add(this.dumpTextBox); - this.tabPage5.Location = new System.Drawing.Point(4, 24); - this.tabPage5.Name = "tabPage5"; - this.tabPage5.Size = new System.Drawing.Size(768, 605); - this.tabPage5.TabIndex = 1; - this.tabPage5.Text = "Dump"; - this.tabPage5.UseVisualStyleBackColor = true; + tabPage5.Controls.Add(dumpTextBox); + tabPage5.Location = new System.Drawing.Point(4, 24); + tabPage5.Name = "tabPage5"; + tabPage5.Size = new System.Drawing.Size(768, 605); + tabPage5.TabIndex = 1; + tabPage5.Text = "Dump"; + tabPage5.UseVisualStyleBackColor = true; // // dumpTextBox // - this.dumpTextBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.dumpTextBox.Location = new System.Drawing.Point(0, 0); - this.dumpTextBox.Multiline = true; - this.dumpTextBox.Name = "dumpTextBox"; - this.dumpTextBox.ReadOnly = true; - this.dumpTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.dumpTextBox.Size = new System.Drawing.Size(768, 605); - this.dumpTextBox.TabIndex = 0; - this.dumpTextBox.WordWrap = false; + dumpTextBox.Dock = System.Windows.Forms.DockStyle.Fill; + dumpTextBox.Location = new System.Drawing.Point(0, 0); + dumpTextBox.Multiline = true; + dumpTextBox.Name = "dumpTextBox"; + dumpTextBox.ReadOnly = true; + dumpTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; + dumpTextBox.Size = new System.Drawing.Size(768, 605); + dumpTextBox.TabIndex = 0; + dumpTextBox.WordWrap = false; // // statusStrip1 // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripStatusLabel1}); - this.statusStrip1.Location = new System.Drawing.Point(0, 633); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(776, 22); - this.statusStrip1.TabIndex = 2; - this.statusStrip1.Text = "statusStrip1"; + statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel1 }); + statusStrip1.Location = new System.Drawing.Point(0, 633); + statusStrip1.Name = "statusStrip1"; + statusStrip1.Size = new System.Drawing.Size(776, 22); + statusStrip1.TabIndex = 2; + statusStrip1.Text = "statusStrip1"; // // toolStripStatusLabel1 // - this.toolStripStatusLabel1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; - this.toolStripStatusLabel1.Size = new System.Drawing.Size(761, 17); - this.toolStripStatusLabel1.Spring = true; - this.toolStripStatusLabel1.Text = "Ready to go"; - this.toolStripStatusLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + toolStripStatusLabel1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + toolStripStatusLabel1.Name = "toolStripStatusLabel1"; + toolStripStatusLabel1.Size = new System.Drawing.Size(761, 17); + toolStripStatusLabel1.Spring = true; + toolStripStatusLabel1.Text = "Ready to go"; + toolStripStatusLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // timer // - this.timer.Interval = 10; - this.timer.Tick += new System.EventHandler(this.timer_Tick); + timer.Interval = 10; + timer.Tick += timer_Tick; // // openFileDialog1 // - this.openFileDialog1.AddExtension = false; - this.openFileDialog1.Filter = "All types|*.*"; - this.openFileDialog1.Multiselect = true; - this.openFileDialog1.RestoreDirectory = true; + openFileDialog1.AddExtension = false; + openFileDialog1.Filter = "All types|*.*"; + openFileDialog1.Multiselect = true; + openFileDialog1.RestoreDirectory = true; // // contextMenuStrip1 // - this.contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.copyToolStripMenuItem, - this.exportSelectedAssetsToolStripMenuItem, - this.exportAnimatorwithselectedAnimationClipMenuItem, - this.goToSceneHierarchyToolStripMenuItem, - this.showOriginalFileToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(304, 114); + contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); + contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { copyToolStripMenuItem, exportSelectedAssetsToolStripMenuItem, exportAnimatorwithselectedAnimationClipMenuItem, goToSceneHierarchyToolStripMenuItem, showOriginalFileToolStripMenuItem }); + contextMenuStrip1.Name = "contextMenuStrip1"; + contextMenuStrip1.Size = new System.Drawing.Size(304, 114); // // copyToolStripMenuItem // - this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; - this.copyToolStripMenuItem.Size = new System.Drawing.Size(303, 22); - this.copyToolStripMenuItem.Text = "Copy text"; - this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click); + copyToolStripMenuItem.Name = "copyToolStripMenuItem"; + copyToolStripMenuItem.Size = new System.Drawing.Size(303, 22); + copyToolStripMenuItem.Text = "Copy text"; + copyToolStripMenuItem.Click += copyToolStripMenuItem_Click; // // exportSelectedAssetsToolStripMenuItem // - this.exportSelectedAssetsToolStripMenuItem.Name = "exportSelectedAssetsToolStripMenuItem"; - this.exportSelectedAssetsToolStripMenuItem.Size = new System.Drawing.Size(303, 22); - this.exportSelectedAssetsToolStripMenuItem.Text = "Export selected assets"; - this.exportSelectedAssetsToolStripMenuItem.Click += new System.EventHandler(this.exportSelectedAssetsToolStripMenuItem_Click); + exportSelectedAssetsToolStripMenuItem.Name = "exportSelectedAssetsToolStripMenuItem"; + exportSelectedAssetsToolStripMenuItem.Size = new System.Drawing.Size(303, 22); + exportSelectedAssetsToolStripMenuItem.Text = "Export selected assets"; + exportSelectedAssetsToolStripMenuItem.Click += exportSelectedAssetsToolStripMenuItem_Click; // // exportAnimatorwithselectedAnimationClipMenuItem // - this.exportAnimatorwithselectedAnimationClipMenuItem.Name = "exportAnimatorwithselectedAnimationClipMenuItem"; - this.exportAnimatorwithselectedAnimationClipMenuItem.Size = new System.Drawing.Size(303, 22); - this.exportAnimatorwithselectedAnimationClipMenuItem.Text = "Export Animator + selected AnimationClips"; - this.exportAnimatorwithselectedAnimationClipMenuItem.Visible = false; - this.exportAnimatorwithselectedAnimationClipMenuItem.Click += new System.EventHandler(this.exportAnimatorwithAnimationClipMenuItem_Click); + exportAnimatorwithselectedAnimationClipMenuItem.Name = "exportAnimatorwithselectedAnimationClipMenuItem"; + exportAnimatorwithselectedAnimationClipMenuItem.Size = new System.Drawing.Size(303, 22); + exportAnimatorwithselectedAnimationClipMenuItem.Text = "Export Animator + selected AnimationClips"; + exportAnimatorwithselectedAnimationClipMenuItem.Visible = false; + exportAnimatorwithselectedAnimationClipMenuItem.Click += exportAnimatorwithAnimationClipMenuItem_Click; // // goToSceneHierarchyToolStripMenuItem // - this.goToSceneHierarchyToolStripMenuItem.Name = "goToSceneHierarchyToolStripMenuItem"; - this.goToSceneHierarchyToolStripMenuItem.Size = new System.Drawing.Size(303, 22); - this.goToSceneHierarchyToolStripMenuItem.Text = "Go to scene hierarchy"; - this.goToSceneHierarchyToolStripMenuItem.Visible = false; - this.goToSceneHierarchyToolStripMenuItem.Click += new System.EventHandler(this.goToSceneHierarchyToolStripMenuItem_Click); + goToSceneHierarchyToolStripMenuItem.Name = "goToSceneHierarchyToolStripMenuItem"; + goToSceneHierarchyToolStripMenuItem.Size = new System.Drawing.Size(303, 22); + goToSceneHierarchyToolStripMenuItem.Text = "Go to scene hierarchy"; + goToSceneHierarchyToolStripMenuItem.Visible = false; + goToSceneHierarchyToolStripMenuItem.Click += goToSceneHierarchyToolStripMenuItem_Click; // // showOriginalFileToolStripMenuItem // - this.showOriginalFileToolStripMenuItem.Name = "showOriginalFileToolStripMenuItem"; - this.showOriginalFileToolStripMenuItem.Size = new System.Drawing.Size(303, 22); - this.showOriginalFileToolStripMenuItem.Text = "Show original file"; - this.showOriginalFileToolStripMenuItem.Visible = false; - this.showOriginalFileToolStripMenuItem.Click += new System.EventHandler(this.showOriginalFileToolStripMenuItem_Click); + showOriginalFileToolStripMenuItem.Name = "showOriginalFileToolStripMenuItem"; + showOriginalFileToolStripMenuItem.Size = new System.Drawing.Size(303, 22); + showOriginalFileToolStripMenuItem.Text = "Show original file"; + showOriginalFileToolStripMenuItem.Visible = false; + showOriginalFileToolStripMenuItem.Click += showOriginalFileToolStripMenuItem_Click; // // AssetStudioGUIForm // - this.AllowDrop = true; - this.ClientSize = new System.Drawing.Size(1264, 681); - this.Controls.Add(this.splitContainer1); - this.Controls.Add(this.menuStrip1); - this.Icon = global::AssetStudioGUI.Properties.Resources._as; - this.KeyPreview = true; - this.MainMenuStrip = this.menuStrip1; - this.MinimumSize = new System.Drawing.Size(620, 372); - this.Name = "AssetStudioGUIForm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "AssetStudioGUI"; - this.DragDrop += new System.Windows.Forms.DragEventHandler(this.AssetStudioGUIForm_DragDrop); - this.DragEnter += new System.Windows.Forms.DragEventHandler(this.AssetStudioGUIForm_DragEnter); - this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.AssetStudioForm_KeyDown); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.Panel2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); - this.splitContainer1.ResumeLayout(false); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage1.PerformLayout(); - this.tabPage2.ResumeLayout(false); - this.tabPage2.PerformLayout(); - this.tabPage3.ResumeLayout(false); - this.progressbarPanel.ResumeLayout(false); - this.tabControl2.ResumeLayout(false); - this.tabPage4.ResumeLayout(false); - this.previewPanel.ResumeLayout(false); - this.previewPanel.PerformLayout(); - this.FMODpanel.ResumeLayout(false); - this.FMODpanel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.FMODprogressBar)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.FMODvolumeBar)).EndInit(); - this.tabPage5.ResumeLayout(false); - this.tabPage5.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.contextMenuStrip1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - + AllowDrop = true; + ClientSize = new System.Drawing.Size(1264, 681); + Controls.Add(splitContainer1); + Controls.Add(menuStrip1); + Icon = Properties.Resources._as; + KeyPreview = true; + MainMenuStrip = menuStrip1; + MinimumSize = new System.Drawing.Size(620, 372); + Name = "AssetStudioGUIForm"; + StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + Text = "AssetStudioGUI"; + DragDrop += AssetStudioGUIForm_DragDrop; + DragEnter += AssetStudioGUIForm_DragEnter; + KeyDown += AssetStudioForm_KeyDown; + menuStrip1.ResumeLayout(false); + menuStrip1.PerformLayout(); + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel2.ResumeLayout(false); + splitContainer1.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + tabControl1.ResumeLayout(false); + tabPage1.ResumeLayout(false); + tabPage1.PerformLayout(); + tabPage2.ResumeLayout(false); + tabPage2.PerformLayout(); + tabPage3.ResumeLayout(false); + progressbarPanel.ResumeLayout(false); + tabControl2.ResumeLayout(false); + tabPage4.ResumeLayout(false); + previewPanel.ResumeLayout(false); + previewPanel.PerformLayout(); + FMODpanel.ResumeLayout(false); + FMODpanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)FMODprogressBar).EndInit(); + ((System.ComponentModel.ISupportInitialize)FMODvolumeBar).EndInit(); + tabPage5.ResumeLayout(false); + tabPage5.PerformLayout(); + statusStrip1.ResumeLayout(false); + statusStrip1.PerformLayout(); + contextMenuStrip1.ResumeLayout(false); + ResumeLayout(false); + PerformLayout(); } #endregion @@ -1471,7 +1349,6 @@ namespace AssetStudioGUI private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem14; private System.Windows.Forms.ToolStripTextBox specifyUnityVersion; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem15; - private System.Windows.Forms.ToolStripMenuItem enableResolveDependencies; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem18; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem19; private System.Windows.Forms.ToolStripComboBox specifyGame; @@ -1486,7 +1363,6 @@ namespace AssetStudioGUI private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem20; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem22; private System.Windows.Forms.ToolStripComboBox CABMapNameComboBox; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem23; private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; private System.Windows.Forms.ToolStripMenuItem resetToolStripMenuItem; @@ -1498,7 +1374,6 @@ namespace AssetStudioGUI private System.Windows.Forms.ToolStripMenuItem clearConsoleToolStripMenuItem; private System.Windows.Forms.ToolStripTextBox assetMapNameTextBox; private System.Windows.Forms.ToolStripComboBox assetMapTypeComboBox; - private System.Windows.Forms.ToolStripMenuItem skipContainer; } } diff --git a/AssetStudioGUI/AssetStudioGUIForm.cs b/AssetStudioGUI/AssetStudioGUIForm.cs index bb08dfc..8cb31fa 100644 --- a/AssetStudioGUI/AssetStudioGUIForm.cs +++ b/AssetStudioGUI/AssetStudioGUIForm.cs @@ -107,13 +107,17 @@ namespace AssetStudioGUI displayAll.Checked = Properties.Settings.Default.displayAll; displayInfo.Checked = Properties.Settings.Default.displayInfo; enablePreview.Checked = Properties.Settings.Default.enablePreview; - enableResolveDependencies.Checked = Properties.Settings.Default.enableResolveDependencies; - skipContainer.Checked = Properties.Settings.Default.skipContainer; - assetsManager.ResolveDependencies = enableResolveDependencies.Checked; - Renderer.Skipped = Properties.Settings.Default.skipRenderer; + assetsManager.ResolveDependencies = Properties.Settings.Default.enableResolveDependencies; MiHoYoBinData.Exportable = Properties.Settings.Default.exportMiHoYoBinData; MiHoYoBinData.Encrypted = Properties.Settings.Default.encrypted; MiHoYoBinData.Key = Properties.Settings.Default.key; + + var types = JsonConvert.DeserializeObject>(Properties.Settings.Default.exportableTypes); + foreach (var exportable in types) + { + if (assetsManager.ExportableTypes.ContainsKey(exportable.Key)) + assetsManager.ExportableTypes[exportable.Key] = exportable.Value; + } } private void InitializeLogger() @@ -152,7 +156,6 @@ namespace AssetStudioGUI Logger.Info($"Target Game type is {Studio.Game.Type}"); CABMapNameComboBox.SelectedIndexChanged += new EventHandler(specifyNameComboBox_SelectedIndexChanged); - CNUnityKeyManager.SetKey(Properties.Settings.Default.selectedCNUnityKey); } private void AssetStudioGUIForm_DragEnter(object sender, DragEventArgs e) { @@ -269,7 +272,7 @@ namespace AssetStudioGUI { productName = "no productName"; } - } + } Text = $"Studio v{Application.ProductVersion} - {productName} - {assetsManager.assetsFileList[0].unityVersion} - {assetsManager.assetsFileList[0].m_TargetPlatform}"; @@ -494,22 +497,6 @@ namespace AssetStudioGUI Properties.Settings.Default.enablePreview = enablePreview.Checked; Properties.Settings.Default.Save(); } - - private void enableResolveDependencies_CheckedChanged(object sender, EventArgs e) - { - Properties.Settings.Default.enableResolveDependencies = enableResolveDependencies.Checked; - Properties.Settings.Default.Save(); - - assetsManager.ResolveDependencies = enableResolveDependencies.Checked; - } - - private void skipContainer_CheckedChanged(object sender, EventArgs e) - { - Properties.Settings.Default.skipContainer = skipContainer.Checked; - Properties.Settings.Default.Save(); - - SkipContainer = skipContainer.Checked; - } private void displayAssetInfo_Check(object sender, EventArgs e) { if (displayInfo.Checked && assetInfoLabel.Text != null) @@ -529,6 +516,12 @@ namespace AssetStudioGUI { var exportOpt = new ExportOptions(); exportOpt.ShowDialog(this); + var types = JsonConvert.DeserializeObject>(Properties.Settings.Default.exportableTypes); + foreach (var exportable in types) + { + if (assetsManager.ExportableTypes.ContainsKey(exportable.Key)) + assetsManager.ExportableTypes[exportable.Key] = exportable.Value; + } } private void assetListView_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e) @@ -1737,7 +1730,7 @@ namespace AssetStudioGUI { return; } - if (skipContainer.Checked) + if (Properties.Settings.Default.skipContainer) { Logger.Info("Skip container is enabled, aborting..."); return; @@ -1937,12 +1930,6 @@ namespace AssetStudioGUI InvokeUpdate(miscToolStripMenuItem, true); } - private void toolStripMenuItem23_Click(object sender, EventArgs e) - { - var form = new CNUnityForm(); - form.Show(); - } - private void resetToolStripMenuItem_Click(object sender, EventArgs e) { ResetForm(); @@ -1978,7 +1965,7 @@ namespace AssetStudioGUI private async void loadAIToolStripMenuItem_Click(object sender, EventArgs e) { - if (skipContainer.Checked) + if (Properties.Settings.Default.skipContainer) { Logger.Info("Skip container is enabled, aborting..."); return; diff --git a/AssetStudioGUI/CNUnityForm.Designer.cs b/AssetStudioGUI/CNUnityForm.Designer.cs deleted file mode 100644 index cc0046b..0000000 --- a/AssetStudioGUI/CNUnityForm.Designer.cs +++ /dev/null @@ -1,94 +0,0 @@ -namespace AssetStudioGUI -{ - partial class CNUnityForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.specifyCNUnityList = new System.Windows.Forms.DataGridView(); - this.NameField = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.KeyField = new System.Windows.Forms.DataGridViewTextBoxColumn(); - ((System.ComponentModel.ISupportInitialize)(this.specifyCNUnityList)).BeginInit(); - this.SuspendLayout(); - // - // specifyCNUnityList - // - this.specifyCNUnityList.AllowUserToResizeColumns = false; - this.specifyCNUnityList.AllowUserToResizeRows = false; - this.specifyCNUnityList.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWithoutHeaderText; - this.specifyCNUnityList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.specifyCNUnityList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.NameField, - this.KeyField}); - this.specifyCNUnityList.Dock = System.Windows.Forms.DockStyle.Fill; - this.specifyCNUnityList.Location = new System.Drawing.Point(0, 0); - this.specifyCNUnityList.MultiSelect = false; - this.specifyCNUnityList.Name = "specifyCNUnityList"; - this.specifyCNUnityList.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; - this.specifyCNUnityList.RowTemplate.Height = 25; - this.specifyCNUnityList.Size = new System.Drawing.Size(432, 229); - this.specifyCNUnityList.TabIndex = 0; - this.specifyCNUnityList.RowHeaderMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.specifyCNUnityList_RowHeaderMouseDoubleClick); - // - // NameField - // - this.NameField.HeaderText = "Name"; - this.NameField.Name = "NameField"; - this.NameField.Width = 140; - // - // KeyField - // - this.KeyField.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.KeyField.HeaderText = "Key"; - this.KeyField.Name = "KeyField"; - // - // CNUnityForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(432, 229); - this.Controls.Add(this.specifyCNUnityList); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "CNUnityForm"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "CNUnityForm"; - this.TopMost = true; - ((System.ComponentModel.ISupportInitialize)(this.specifyCNUnityList)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.DataGridView specifyCNUnityList; - private System.Windows.Forms.DataGridViewTextBoxColumn NameField; - private System.Windows.Forms.DataGridViewTextBoxColumn KeyField; - } -} \ No newline at end of file diff --git a/AssetStudioGUI/CNUnityForm.cs b/AssetStudioGUI/CNUnityForm.cs deleted file mode 100644 index 7de79cf..0000000 --- a/AssetStudioGUI/CNUnityForm.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.Windows.Forms; -using System.Collections.Generic; -using AssetStudio; -using System.Linq; - -namespace AssetStudioGUI -{ - public partial class CNUnityForm : Form - { - public CNUnityForm() - { - InitializeComponent(); - - var keys = CNUnityKeyManager.GetEntries(); - - for (int i = 0; i < keys.Length; i++) - { - var key = keys[i]; - var rowIdx = specifyCNUnityList.Rows.Add(); - - specifyCNUnityList.Rows[rowIdx].Cells["NameField"].Value = key.Name; - specifyCNUnityList.Rows[rowIdx].Cells["KeyField"].Value = key.Key; - } - - var index = Properties.Settings.Default.selectedCNUnityKey; - if (index >= specifyCNUnityList.RowCount) - { - index = 0; - } - specifyCNUnityList.CurrentCell = specifyCNUnityList.Rows[index].Cells[0]; - } - - private void OKbutton_Click(object sender, EventArgs e) - { - var keys = new List(); - for (int i = specifyCNUnityList.Rows.Count - 1; i >= 0; i--) - { - var row = specifyCNUnityList.Rows[i]; - var name = row.Cells["NameField"].Value as string; - var key = row.Cells["KeyField"].Value as string; - - if (!(string.IsNullOrEmpty(name) || string.IsNullOrEmpty(key))) - { - var cnunity = new CNUnity.Entry(name, key); - - if (cnunity.Validate()) - { - keys.Add(cnunity); - continue; - } - } - - if (specifyCNUnityList.CurrentCell.RowIndex == row.Index) - { - var previousRow = specifyCNUnityList.Rows.Cast().ElementAtOrDefault(i - 1); - if (previousRow != null) - { - specifyCNUnityList.CurrentCell = previousRow.Cells[0]; - } - } - if (i != specifyCNUnityList.RowCount - 1) - { - specifyCNUnityList.Rows.RemoveAt(i); - } - } - CNUnityKeyManager.SaveEntries(keys.Reverse().ToList()); - CNUnityKeyManager.SetKey(specifyCNUnityList.CurrentRow.Index); - - Properties.Settings.Default.selectedCNUnityKey = specifyCNUnityList.CurrentRow.Index; - Properties.Settings.Default.Save(); - - DialogResult = DialogResult.OK; - Close(); - } - - private void Cancel_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.Cancel; - Close(); - } - - private void specifyCNUnityList_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) - { - var keys = new List(); - for (int i = specifyCNUnityList.Rows.Count - 1; i >= 0; i--) - { - var row = specifyCNUnityList.Rows[i]; - var name = row.Cells["NameField"].Value as string; - var key = row.Cells["KeyField"].Value as string; - - if (!(string.IsNullOrEmpty(name) || string.IsNullOrEmpty(key))) - { - var cnunity = new CNUnity.Entry(name, key); - - if (cnunity.Validate()) - { - keys.Add(cnunity); - continue; - } - } - - if (specifyCNUnityList.CurrentCell.RowIndex == row.Index) - { - var previousRow = specifyCNUnityList.Rows.Cast().ElementAtOrDefault(i - 1); - if (previousRow != null) - { - specifyCNUnityList.CurrentCell = previousRow.Cells[0]; - } - } - if (i != specifyCNUnityList.RowCount - 1) - { - specifyCNUnityList.Rows.RemoveAt(i); - } - } - CNUnityKeyManager.SaveEntries(keys.Reverse().ToList()); - CNUnityKeyManager.SetKey(specifyCNUnityList.CurrentRow.Index); - - Properties.Settings.Default.selectedCNUnityKey = specifyCNUnityList.CurrentRow.Index; - Properties.Settings.Default.Save(); - - DialogResult = DialogResult.OK; - Close(); - } - } -} diff --git a/AssetStudioGUI/CNUnityForm.resx b/AssetStudioGUI/CNUnityForm.resx deleted file mode 100644 index da13c3e..0000000 --- a/AssetStudioGUI/CNUnityForm.resx +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - True - - \ No newline at end of file diff --git a/AssetStudioGUI/ExportOptions.Designer.cs b/AssetStudioGUI/ExportOptions.Designer.cs index f620b7a..f6850df 100644 --- a/AssetStudioGUI/ExportOptions.Designer.cs +++ b/AssetStudioGUI/ExportOptions.Designer.cs @@ -1,4 +1,7 @@ -namespace AssetStudioGUI +using System; +using System.Linq; + +namespace AssetStudioGUI { partial class ExportOptions { @@ -28,615 +31,608 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.OKbutton = new System.Windows.Forms.Button(); - this.Cancel = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.skipRenderer = new System.Windows.Forms.CheckBox(); - this.exportMiHoYoBinData = new System.Windows.Forms.CheckBox(); - this.openAfterExport = new System.Windows.Forms.CheckBox(); - this.restoreExtensionName = new System.Windows.Forms.CheckBox(); - this.assetGroupOptions = new System.Windows.Forms.ComboBox(); - this.label6 = new System.Windows.Forms.Label(); - this.convertAudio = new System.Windows.Forms.CheckBox(); - this.panel1 = new System.Windows.Forms.Panel(); - this.totga = new System.Windows.Forms.RadioButton(); - this.tojpg = new System.Windows.Forms.RadioButton(); - this.topng = new System.Windows.Forms.RadioButton(); - this.tobmp = new System.Windows.Forms.RadioButton(); - this.converttexture = new System.Windows.Forms.CheckBox(); - this.collectAnimations = new System.Windows.Forms.CheckBox(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.exportAllUvsAsDiffuseMaps = new System.Windows.Forms.CheckBox(); - this.exportBlendShape = new System.Windows.Forms.CheckBox(); - this.exportAnimations = new System.Windows.Forms.CheckBox(); - this.scaleFactor = new System.Windows.Forms.NumericUpDown(); - this.label5 = new System.Windows.Forms.Label(); - this.fbxFormat = new System.Windows.Forms.ComboBox(); - this.label4 = new System.Windows.Forms.Label(); - this.fbxVersion = new System.Windows.Forms.ComboBox(); - this.label3 = new System.Windows.Forms.Label(); - this.boneSize = new System.Windows.Forms.NumericUpDown(); - this.label2 = new System.Windows.Forms.Label(); - this.exportSkins = new System.Windows.Forms.CheckBox(); - this.label1 = new System.Windows.Forms.Label(); - this.filterPrecision = new System.Windows.Forms.NumericUpDown(); - this.castToBone = new System.Windows.Forms.CheckBox(); - this.exportAllNodes = new System.Windows.Forms.CheckBox(); - this.eulerFilter = new System.Windows.Forms.CheckBox(); - this.exportUvsTooltip = new System.Windows.Forms.ToolTip(this.components); - this.groupBox3 = new System.Windows.Forms.GroupBox(); - this.encrypted = new System.Windows.Forms.CheckBox(); - this.key = new System.Windows.Forms.NumericUpDown(); - this.label7 = new System.Windows.Forms.Label(); - this.keyToolTip = new System.Windows.Forms.ToolTip(this.components); - this.groupBox1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.groupBox2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.scaleFactor)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.boneSize)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.filterPrecision)).BeginInit(); - this.groupBox3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.key)).BeginInit(); - this.SuspendLayout(); + components = new System.ComponentModel.Container(); + OKbutton = new System.Windows.Forms.Button(); + Cancel = new System.Windows.Forms.Button(); + groupBox1 = new System.Windows.Forms.GroupBox(); + openAfterExport = new System.Windows.Forms.CheckBox(); + restoreExtensionName = new System.Windows.Forms.CheckBox(); + assetGroupOptions = new System.Windows.Forms.ComboBox(); + label6 = new System.Windows.Forms.Label(); + convertAudio = new System.Windows.Forms.CheckBox(); + panel1 = new System.Windows.Forms.Panel(); + totga = new System.Windows.Forms.RadioButton(); + tojpg = new System.Windows.Forms.RadioButton(); + topng = new System.Windows.Forms.RadioButton(); + tobmp = new System.Windows.Forms.RadioButton(); + converttexture = new System.Windows.Forms.CheckBox(); + collectAnimations = new System.Windows.Forms.CheckBox(); + groupBox2 = new System.Windows.Forms.GroupBox(); + exportUV0UV1 = new System.Windows.Forms.CheckBox(); + exportAllUvsAsDiffuseMaps = new System.Windows.Forms.CheckBox(); + exportBlendShape = new System.Windows.Forms.CheckBox(); + exportAnimations = new System.Windows.Forms.CheckBox(); + scaleFactor = new System.Windows.Forms.NumericUpDown(); + label5 = new System.Windows.Forms.Label(); + fbxFormat = new System.Windows.Forms.ComboBox(); + label4 = new System.Windows.Forms.Label(); + fbxVersion = new System.Windows.Forms.ComboBox(); + label3 = new System.Windows.Forms.Label(); + boneSize = new System.Windows.Forms.NumericUpDown(); + label2 = new System.Windows.Forms.Label(); + exportSkins = new System.Windows.Forms.CheckBox(); + label1 = new System.Windows.Forms.Label(); + filterPrecision = new System.Windows.Forms.NumericUpDown(); + castToBone = new System.Windows.Forms.CheckBox(); + exportAllNodes = new System.Windows.Forms.CheckBox(); + eulerFilter = new System.Windows.Forms.CheckBox(); + exportUvsTooltip = new System.Windows.Forms.ToolTip(components); + encrypted = new System.Windows.Forms.CheckBox(); + key = new System.Windows.Forms.NumericUpDown(); + keyToolTip = new System.Windows.Forms.ToolTip(components); + groupBox4 = new System.Windows.Forms.GroupBox(); + label7 = new System.Windows.Forms.Label(); + exportableTypes = new System.Windows.Forms.CheckedListBox(); + skipContainer = new System.Windows.Forms.CheckBox(); + enableResolveDependencies = new System.Windows.Forms.CheckBox(); + resolveToolTip = new System.Windows.Forms.ToolTip(components); + skipToolTip = new System.Windows.Forms.ToolTip(components); + groupBox1.SuspendLayout(); + panel1.SuspendLayout(); + groupBox2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)scaleFactor).BeginInit(); + ((System.ComponentModel.ISupportInitialize)boneSize).BeginInit(); + ((System.ComponentModel.ISupportInitialize)filterPrecision).BeginInit(); + ((System.ComponentModel.ISupportInitialize)key).BeginInit(); + groupBox4.SuspendLayout(); + SuspendLayout(); // // OKbutton // - this.OKbutton.Location = new System.Drawing.Point(371, 439); - this.OKbutton.Margin = new System.Windows.Forms.Padding(4); - this.OKbutton.Name = "OKbutton"; - this.OKbutton.Size = new System.Drawing.Size(88, 26); - this.OKbutton.TabIndex = 6; - this.OKbutton.Text = "OK"; - this.OKbutton.UseVisualStyleBackColor = true; - this.OKbutton.Click += new System.EventHandler(this.OKbutton_Click); + OKbutton.Location = new System.Drawing.Point(371, 439); + OKbutton.Margin = new System.Windows.Forms.Padding(4); + OKbutton.Name = "OKbutton"; + OKbutton.Size = new System.Drawing.Size(88, 26); + OKbutton.TabIndex = 6; + OKbutton.Text = "OK"; + OKbutton.UseVisualStyleBackColor = true; + OKbutton.Click += OKbutton_Click; // // Cancel // - this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel.Location = new System.Drawing.Point(465, 439); - this.Cancel.Margin = new System.Windows.Forms.Padding(4); - this.Cancel.Name = "Cancel"; - this.Cancel.Size = new System.Drawing.Size(88, 26); - this.Cancel.TabIndex = 7; - this.Cancel.Text = "Cancel"; - this.Cancel.UseVisualStyleBackColor = true; - this.Cancel.Click += new System.EventHandler(this.Cancel_Click); + Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + Cancel.Location = new System.Drawing.Point(465, 439); + Cancel.Margin = new System.Windows.Forms.Padding(4); + Cancel.Name = "Cancel"; + Cancel.Size = new System.Drawing.Size(88, 26); + Cancel.TabIndex = 7; + Cancel.Text = "Cancel"; + Cancel.UseVisualStyleBackColor = true; + Cancel.Click += Cancel_Click; // // groupBox1 // - this.groupBox1.AutoSize = true; - this.groupBox1.Controls.Add(this.skipRenderer); - this.groupBox1.Controls.Add(this.exportMiHoYoBinData); - this.groupBox1.Controls.Add(this.openAfterExport); - this.groupBox1.Controls.Add(this.restoreExtensionName); - this.groupBox1.Controls.Add(this.assetGroupOptions); - this.groupBox1.Controls.Add(this.label6); - this.groupBox1.Controls.Add(this.convertAudio); - this.groupBox1.Controls.Add(this.panel1); - this.groupBox1.Controls.Add(this.converttexture); - this.groupBox1.Location = new System.Drawing.Point(14, 15); - this.groupBox1.Margin = new System.Windows.Forms.Padding(4); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Padding = new System.Windows.Forms.Padding(4); - this.groupBox1.Size = new System.Drawing.Size(271, 293); - this.groupBox1.TabIndex = 9; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Export"; - // - // skipRenderer - // - this.skipRenderer.AutoSize = true; - this.skipRenderer.Location = new System.Drawing.Point(7, 226); - this.skipRenderer.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.skipRenderer.Name = "skipRenderer"; - this.skipRenderer.Size = new System.Drawing.Size(98, 19); - this.skipRenderer.TabIndex = 23; - this.skipRenderer.Text = "Skip Renderer"; - this.skipRenderer.UseVisualStyleBackColor = true; - // - // exportMiHoYoBinData - // - this.exportMiHoYoBinData.AutoSize = true; - this.exportMiHoYoBinData.Checked = true; - this.exportMiHoYoBinData.CheckState = System.Windows.Forms.CheckState.Checked; - this.exportMiHoYoBinData.Location = new System.Drawing.Point(7, 251); - this.exportMiHoYoBinData.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.exportMiHoYoBinData.Name = "exportMiHoYoBinData"; - this.exportMiHoYoBinData.Size = new System.Drawing.Size(147, 19); - this.exportMiHoYoBinData.TabIndex = 22; - this.exportMiHoYoBinData.Text = "Export MiHoYoBinData"; - this.exportMiHoYoBinData.UseVisualStyleBackColor = true; + groupBox1.AutoSize = true; + groupBox1.Controls.Add(openAfterExport); + groupBox1.Controls.Add(restoreExtensionName); + groupBox1.Controls.Add(assetGroupOptions); + groupBox1.Controls.Add(label6); + groupBox1.Controls.Add(convertAudio); + groupBox1.Controls.Add(panel1); + groupBox1.Controls.Add(converttexture); + groupBox1.Location = new System.Drawing.Point(14, 15); + groupBox1.Margin = new System.Windows.Forms.Padding(4); + groupBox1.Name = "groupBox1"; + groupBox1.Padding = new System.Windows.Forms.Padding(4); + groupBox1.Size = new System.Drawing.Size(271, 243); + groupBox1.TabIndex = 9; + groupBox1.TabStop = false; + groupBox1.Text = "Export"; // // openAfterExport // - this.openAfterExport.AutoSize = true; - this.openAfterExport.Checked = true; - this.openAfterExport.CheckState = System.Windows.Forms.CheckState.Checked; - this.openAfterExport.Location = new System.Drawing.Point(7, 200); - this.openAfterExport.Margin = new System.Windows.Forms.Padding(4); - this.openAfterExport.Name = "openAfterExport"; - this.openAfterExport.Size = new System.Drawing.Size(153, 19); - this.openAfterExport.TabIndex = 10; - this.openAfterExport.Text = "Open folder after export"; - this.openAfterExport.UseVisualStyleBackColor = true; + openAfterExport.AutoSize = true; + openAfterExport.Checked = true; + openAfterExport.CheckState = System.Windows.Forms.CheckState.Checked; + openAfterExport.Location = new System.Drawing.Point(7, 200); + openAfterExport.Margin = new System.Windows.Forms.Padding(4); + openAfterExport.Name = "openAfterExport"; + openAfterExport.Size = new System.Drawing.Size(153, 19); + openAfterExport.TabIndex = 10; + openAfterExport.Text = "Open folder after export"; + openAfterExport.UseVisualStyleBackColor = true; // // restoreExtensionName // - this.restoreExtensionName.AutoSize = true; - this.restoreExtensionName.Checked = true; - this.restoreExtensionName.CheckState = System.Windows.Forms.CheckState.Checked; - this.restoreExtensionName.Location = new System.Drawing.Point(7, 72); - this.restoreExtensionName.Margin = new System.Windows.Forms.Padding(4); - this.restoreExtensionName.Name = "restoreExtensionName"; - this.restoreExtensionName.Size = new System.Drawing.Size(204, 19); - this.restoreExtensionName.TabIndex = 9; - this.restoreExtensionName.Text = "Restore TextAsset extension name"; - this.restoreExtensionName.UseVisualStyleBackColor = true; + restoreExtensionName.AutoSize = true; + restoreExtensionName.Checked = true; + restoreExtensionName.CheckState = System.Windows.Forms.CheckState.Checked; + restoreExtensionName.Location = new System.Drawing.Point(7, 72); + restoreExtensionName.Margin = new System.Windows.Forms.Padding(4); + restoreExtensionName.Name = "restoreExtensionName"; + restoreExtensionName.Size = new System.Drawing.Size(204, 19); + restoreExtensionName.TabIndex = 9; + restoreExtensionName.Text = "Restore TextAsset extension name"; + restoreExtensionName.UseVisualStyleBackColor = true; // // assetGroupOptions // - this.assetGroupOptions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.assetGroupOptions.FormattingEnabled = true; - this.assetGroupOptions.Items.AddRange(new object[] { - "type name", - "container path", - "source file name", - "do not group"}); - this.assetGroupOptions.Location = new System.Drawing.Point(7, 40); - this.assetGroupOptions.Margin = new System.Windows.Forms.Padding(4); - this.assetGroupOptions.Name = "assetGroupOptions"; - this.assetGroupOptions.Size = new System.Drawing.Size(173, 23); - this.assetGroupOptions.TabIndex = 8; + assetGroupOptions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + assetGroupOptions.FormattingEnabled = true; + assetGroupOptions.Items.AddRange(new object[] { "type name", "container path", "source file name", "do not group" }); + assetGroupOptions.Location = new System.Drawing.Point(7, 40); + assetGroupOptions.Margin = new System.Windows.Forms.Padding(4); + assetGroupOptions.Name = "assetGroupOptions"; + assetGroupOptions.Size = new System.Drawing.Size(173, 23); + assetGroupOptions.TabIndex = 8; // // label6 // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(7, 21); - this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(140, 15); - this.label6.TabIndex = 7; - this.label6.Text = "Group exported assets by"; + label6.AutoSize = true; + label6.Location = new System.Drawing.Point(7, 21); + label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label6.Name = "label6"; + label6.Size = new System.Drawing.Size(140, 15); + label6.TabIndex = 7; + label6.Text = "Group exported assets by"; // // convertAudio // - this.convertAudio.AutoSize = true; - this.convertAudio.Checked = true; - this.convertAudio.CheckState = System.Windows.Forms.CheckState.Checked; - this.convertAudio.Location = new System.Drawing.Point(7, 172); - this.convertAudio.Margin = new System.Windows.Forms.Padding(4); - this.convertAudio.Name = "convertAudio"; - this.convertAudio.Size = new System.Drawing.Size(200, 19); - this.convertAudio.TabIndex = 6; - this.convertAudio.Text = "Convert AudioClip to WAV(PCM)"; - this.convertAudio.UseVisualStyleBackColor = true; + convertAudio.AutoSize = true; + convertAudio.Checked = true; + convertAudio.CheckState = System.Windows.Forms.CheckState.Checked; + convertAudio.Location = new System.Drawing.Point(7, 172); + convertAudio.Margin = new System.Windows.Forms.Padding(4); + convertAudio.Name = "convertAudio"; + convertAudio.Size = new System.Drawing.Size(200, 19); + convertAudio.TabIndex = 6; + convertAudio.Text = "Convert AudioClip to WAV(PCM)"; + convertAudio.UseVisualStyleBackColor = true; // // panel1 // - this.panel1.Controls.Add(this.totga); - this.panel1.Controls.Add(this.tojpg); - this.panel1.Controls.Add(this.topng); - this.panel1.Controls.Add(this.tobmp); - this.panel1.Location = new System.Drawing.Point(23, 128); - this.panel1.Margin = new System.Windows.Forms.Padding(4); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(236, 38); - this.panel1.TabIndex = 5; + panel1.Controls.Add(totga); + panel1.Controls.Add(tojpg); + panel1.Controls.Add(topng); + panel1.Controls.Add(tobmp); + panel1.Location = new System.Drawing.Point(23, 128); + panel1.Margin = new System.Windows.Forms.Padding(4); + panel1.Name = "panel1"; + panel1.Size = new System.Drawing.Size(236, 38); + panel1.TabIndex = 5; // // totga // - this.totga.AutoSize = true; - this.totga.Location = new System.Drawing.Point(175, 8); - this.totga.Margin = new System.Windows.Forms.Padding(4); - this.totga.Name = "totga"; - this.totga.Size = new System.Drawing.Size(43, 19); - this.totga.TabIndex = 2; - this.totga.Text = "Tga"; - this.totga.UseVisualStyleBackColor = true; + totga.AutoSize = true; + totga.Location = new System.Drawing.Point(175, 8); + totga.Margin = new System.Windows.Forms.Padding(4); + totga.Name = "totga"; + totga.Size = new System.Drawing.Size(43, 19); + totga.TabIndex = 2; + totga.Text = "Tga"; + totga.UseVisualStyleBackColor = true; // // tojpg // - this.tojpg.AutoSize = true; - this.tojpg.Location = new System.Drawing.Point(113, 8); - this.tojpg.Margin = new System.Windows.Forms.Padding(4); - this.tojpg.Name = "tojpg"; - this.tojpg.Size = new System.Drawing.Size(49, 19); - this.tojpg.TabIndex = 4; - this.tojpg.Text = "Jpeg"; - this.tojpg.UseVisualStyleBackColor = true; + tojpg.AutoSize = true; + tojpg.Location = new System.Drawing.Point(113, 8); + tojpg.Margin = new System.Windows.Forms.Padding(4); + tojpg.Name = "tojpg"; + tojpg.Size = new System.Drawing.Size(49, 19); + tojpg.TabIndex = 4; + tojpg.Text = "Jpeg"; + tojpg.UseVisualStyleBackColor = true; // // topng // - this.topng.AutoSize = true; - this.topng.Checked = true; - this.topng.Location = new System.Drawing.Point(58, 8); - this.topng.Margin = new System.Windows.Forms.Padding(4); - this.topng.Name = "topng"; - this.topng.Size = new System.Drawing.Size(46, 19); - this.topng.TabIndex = 3; - this.topng.TabStop = true; - this.topng.Text = "Png"; - this.topng.UseVisualStyleBackColor = true; + topng.AutoSize = true; + topng.Checked = true; + topng.Location = new System.Drawing.Point(58, 8); + topng.Margin = new System.Windows.Forms.Padding(4); + topng.Name = "topng"; + topng.Size = new System.Drawing.Size(46, 19); + topng.TabIndex = 3; + topng.TabStop = true; + topng.Text = "Png"; + topng.UseVisualStyleBackColor = true; // // tobmp // - this.tobmp.AutoSize = true; - this.tobmp.Location = new System.Drawing.Point(4, 8); - this.tobmp.Margin = new System.Windows.Forms.Padding(4); - this.tobmp.Name = "tobmp"; - this.tobmp.Size = new System.Drawing.Size(50, 19); - this.tobmp.TabIndex = 2; - this.tobmp.Text = "Bmp"; - this.tobmp.UseVisualStyleBackColor = true; + tobmp.AutoSize = true; + tobmp.Location = new System.Drawing.Point(4, 8); + tobmp.Margin = new System.Windows.Forms.Padding(4); + tobmp.Name = "tobmp"; + tobmp.Size = new System.Drawing.Size(50, 19); + tobmp.TabIndex = 2; + tobmp.Text = "Bmp"; + tobmp.UseVisualStyleBackColor = true; // // converttexture // - this.converttexture.AutoSize = true; - this.converttexture.Checked = true; - this.converttexture.CheckState = System.Windows.Forms.CheckState.Checked; - this.converttexture.Location = new System.Drawing.Point(7, 100); - this.converttexture.Margin = new System.Windows.Forms.Padding(4); - this.converttexture.Name = "converttexture"; - this.converttexture.Size = new System.Drawing.Size(123, 19); - this.converttexture.TabIndex = 1; - this.converttexture.Text = "Convert Texture2D"; - this.converttexture.UseVisualStyleBackColor = true; + converttexture.AutoSize = true; + converttexture.Checked = true; + converttexture.CheckState = System.Windows.Forms.CheckState.Checked; + converttexture.Location = new System.Drawing.Point(7, 100); + converttexture.Margin = new System.Windows.Forms.Padding(4); + converttexture.Name = "converttexture"; + converttexture.Size = new System.Drawing.Size(123, 19); + converttexture.TabIndex = 1; + converttexture.Text = "Convert Texture2D"; + converttexture.UseVisualStyleBackColor = true; // // collectAnimations // - this.collectAnimations.AutoSize = true; - this.collectAnimations.Checked = true; - this.collectAnimations.CheckState = System.Windows.Forms.CheckState.Checked; - this.collectAnimations.Location = new System.Drawing.Point(8, 122); - this.collectAnimations.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.collectAnimations.Name = "collectAnimations"; - this.collectAnimations.Size = new System.Drawing.Size(125, 19); - this.collectAnimations.TabIndex = 24; - this.collectAnimations.Text = "Collect animations"; - this.collectAnimations.UseVisualStyleBackColor = true; + collectAnimations.AutoSize = true; + collectAnimations.Checked = true; + collectAnimations.CheckState = System.Windows.Forms.CheckState.Checked; + collectAnimations.Location = new System.Drawing.Point(8, 113); + collectAnimations.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + collectAnimations.Name = "collectAnimations"; + collectAnimations.Size = new System.Drawing.Size(125, 19); + collectAnimations.TabIndex = 24; + collectAnimations.Text = "Collect animations"; + collectAnimations.UseVisualStyleBackColor = true; // // groupBox2 // - this.groupBox2.AutoSize = true; - this.groupBox2.Controls.Add(this.collectAnimations); - this.groupBox2.Controls.Add(this.exportAllUvsAsDiffuseMaps); - this.groupBox2.Controls.Add(this.exportBlendShape); - this.groupBox2.Controls.Add(this.exportAnimations); - this.groupBox2.Controls.Add(this.scaleFactor); - this.groupBox2.Controls.Add(this.label5); - this.groupBox2.Controls.Add(this.fbxFormat); - this.groupBox2.Controls.Add(this.label4); - this.groupBox2.Controls.Add(this.fbxVersion); - this.groupBox2.Controls.Add(this.label3); - this.groupBox2.Controls.Add(this.boneSize); - this.groupBox2.Controls.Add(this.label2); - this.groupBox2.Controls.Add(this.exportSkins); - this.groupBox2.Controls.Add(this.label1); - this.groupBox2.Controls.Add(this.filterPrecision); - this.groupBox2.Controls.Add(this.castToBone); - this.groupBox2.Controls.Add(this.exportAllNodes); - this.groupBox2.Controls.Add(this.eulerFilter); - this.groupBox2.Location = new System.Drawing.Point(292, 15); - this.groupBox2.Margin = new System.Windows.Forms.Padding(4); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Padding = new System.Windows.Forms.Padding(4); - this.groupBox2.Size = new System.Drawing.Size(261, 419); - this.groupBox2.TabIndex = 11; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "Fbx"; + groupBox2.AutoSize = true; + groupBox2.Controls.Add(exportUV0UV1); + groupBox2.Controls.Add(collectAnimations); + groupBox2.Controls.Add(exportAllUvsAsDiffuseMaps); + groupBox2.Controls.Add(exportBlendShape); + groupBox2.Controls.Add(exportAnimations); + groupBox2.Controls.Add(scaleFactor); + groupBox2.Controls.Add(label5); + groupBox2.Controls.Add(fbxFormat); + groupBox2.Controls.Add(label4); + groupBox2.Controls.Add(fbxVersion); + groupBox2.Controls.Add(label3); + groupBox2.Controls.Add(boneSize); + groupBox2.Controls.Add(label2); + groupBox2.Controls.Add(exportSkins); + groupBox2.Controls.Add(label1); + groupBox2.Controls.Add(filterPrecision); + groupBox2.Controls.Add(castToBone); + groupBox2.Controls.Add(exportAllNodes); + groupBox2.Controls.Add(eulerFilter); + groupBox2.Location = new System.Drawing.Point(292, 15); + groupBox2.Margin = new System.Windows.Forms.Padding(4); + groupBox2.Name = "groupBox2"; + groupBox2.Padding = new System.Windows.Forms.Padding(4); + groupBox2.Size = new System.Drawing.Size(261, 418); + groupBox2.TabIndex = 11; + groupBox2.TabStop = false; + groupBox2.Text = "Fbx"; + // + // exportUV0UV1 + // + exportUV0UV1.AccessibleDescription = ""; + exportUV0UV1.AutoSize = true; + exportUV0UV1.Location = new System.Drawing.Point(8, 243); + exportUV0UV1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + exportUV0UV1.Name = "exportUV0UV1"; + exportUV0UV1.Size = new System.Drawing.Size(124, 19); + exportUV0UV1.TabIndex = 25; + exportUV0UV1.Text = "Export UV 0/1 only"; + exportUvsTooltip.SetToolTip(exportUV0UV1, "Unchecked: Export UV0/UV1 only. Check this if your facing issues with vertex color/tangent."); + exportUV0UV1.UseVisualStyleBackColor = true; // // exportAllUvsAsDiffuseMaps // - this.exportAllUvsAsDiffuseMaps.AccessibleDescription = ""; - this.exportAllUvsAsDiffuseMaps.AutoSize = true; - this.exportAllUvsAsDiffuseMaps.Location = new System.Drawing.Point(8, 226); - this.exportAllUvsAsDiffuseMaps.Margin = new System.Windows.Forms.Padding(4); - this.exportAllUvsAsDiffuseMaps.Name = "exportAllUvsAsDiffuseMaps"; - this.exportAllUvsAsDiffuseMaps.Size = new System.Drawing.Size(183, 19); - this.exportAllUvsAsDiffuseMaps.TabIndex = 23; - this.exportAllUvsAsDiffuseMaps.Text = "Export all UVs as diffuse maps"; - this.exportUvsTooltip.SetToolTip(this.exportAllUvsAsDiffuseMaps, "Unchecked: UV1 exported as normal map. Check this if your export is missing a UV " + - "map."); - this.exportAllUvsAsDiffuseMaps.UseVisualStyleBackColor = true; + exportAllUvsAsDiffuseMaps.AccessibleDescription = ""; + exportAllUvsAsDiffuseMaps.AutoSize = true; + exportAllUvsAsDiffuseMaps.Location = new System.Drawing.Point(8, 217); + exportAllUvsAsDiffuseMaps.Margin = new System.Windows.Forms.Padding(4); + exportAllUvsAsDiffuseMaps.Name = "exportAllUvsAsDiffuseMaps"; + exportAllUvsAsDiffuseMaps.Size = new System.Drawing.Size(183, 19); + exportAllUvsAsDiffuseMaps.TabIndex = 23; + exportAllUvsAsDiffuseMaps.Text = "Export all UVs as diffuse maps"; + exportUvsTooltip.SetToolTip(exportAllUvsAsDiffuseMaps, "Unchecked: UV1 exported as normal map. Check this if your export is missing a UV map."); + exportAllUvsAsDiffuseMaps.UseVisualStyleBackColor = true; // // exportBlendShape // - this.exportBlendShape.AutoSize = true; - this.exportBlendShape.Checked = true; - this.exportBlendShape.CheckState = System.Windows.Forms.CheckState.Checked; - this.exportBlendShape.Location = new System.Drawing.Point(8, 172); - this.exportBlendShape.Margin = new System.Windows.Forms.Padding(4); - this.exportBlendShape.Name = "exportBlendShape"; - this.exportBlendShape.Size = new System.Drawing.Size(124, 19); - this.exportBlendShape.TabIndex = 22; - this.exportBlendShape.Text = "Export blendshape"; - this.exportBlendShape.UseVisualStyleBackColor = true; + exportBlendShape.AutoSize = true; + exportBlendShape.Checked = true; + exportBlendShape.CheckState = System.Windows.Forms.CheckState.Checked; + exportBlendShape.Location = new System.Drawing.Point(8, 163); + exportBlendShape.Margin = new System.Windows.Forms.Padding(4); + exportBlendShape.Name = "exportBlendShape"; + exportBlendShape.Size = new System.Drawing.Size(124, 19); + exportBlendShape.TabIndex = 22; + exportBlendShape.Text = "Export blendshape"; + exportBlendShape.UseVisualStyleBackColor = true; // // exportAnimations // - this.exportAnimations.AutoSize = true; - this.exportAnimations.Checked = true; - this.exportAnimations.CheckState = System.Windows.Forms.CheckState.Checked; - this.exportAnimations.Location = new System.Drawing.Point(8, 147); - this.exportAnimations.Margin = new System.Windows.Forms.Padding(4); - this.exportAnimations.Name = "exportAnimations"; - this.exportAnimations.Size = new System.Drawing.Size(122, 19); - this.exportAnimations.TabIndex = 21; - this.exportAnimations.Text = "Export animations"; - this.exportAnimations.UseVisualStyleBackColor = true; + exportAnimations.AutoSize = true; + exportAnimations.Checked = true; + exportAnimations.CheckState = System.Windows.Forms.CheckState.Checked; + exportAnimations.Location = new System.Drawing.Point(8, 136); + exportAnimations.Margin = new System.Windows.Forms.Padding(4); + exportAnimations.Name = "exportAnimations"; + exportAnimations.Size = new System.Drawing.Size(122, 19); + exportAnimations.TabIndex = 21; + exportAnimations.Text = "Export animations"; + exportAnimations.UseVisualStyleBackColor = true; // // scaleFactor // - this.scaleFactor.DecimalPlaces = 2; - this.scaleFactor.Increment = new decimal(new int[] { - 1, - 0, - 0, - 131072}); - this.scaleFactor.Location = new System.Drawing.Point(98, 292); - this.scaleFactor.Margin = new System.Windows.Forms.Padding(4); - this.scaleFactor.Name = "scaleFactor"; - this.scaleFactor.Size = new System.Drawing.Size(70, 23); - this.scaleFactor.TabIndex = 20; - this.scaleFactor.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.scaleFactor.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); + scaleFactor.DecimalPlaces = 2; + scaleFactor.Increment = new decimal(new int[] { 1, 0, 0, 131072 }); + scaleFactor.Location = new System.Drawing.Point(98, 305); + scaleFactor.Margin = new System.Windows.Forms.Padding(4); + scaleFactor.Name = "scaleFactor"; + scaleFactor.Size = new System.Drawing.Size(70, 23); + scaleFactor.TabIndex = 20; + scaleFactor.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + scaleFactor.Value = new decimal(new int[] { 1, 0, 0, 0 }); // // label5 // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(8, 294); - this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(67, 15); - this.label5.TabIndex = 19; - this.label5.Text = "ScaleFactor"; + label5.AutoSize = true; + label5.Location = new System.Drawing.Point(8, 307); + label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label5.Name = "label5"; + label5.Size = new System.Drawing.Size(67, 15); + label5.TabIndex = 19; + label5.Text = "ScaleFactor"; // // fbxFormat // - this.fbxFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.fbxFormat.FormattingEnabled = true; - this.fbxFormat.Items.AddRange(new object[] { - "Binary", - "Ascii"}); - this.fbxFormat.Location = new System.Drawing.Point(91, 330); - this.fbxFormat.Margin = new System.Windows.Forms.Padding(4); - this.fbxFormat.Name = "fbxFormat"; - this.fbxFormat.Size = new System.Drawing.Size(70, 23); - this.fbxFormat.TabIndex = 18; + fbxFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + fbxFormat.FormattingEnabled = true; + fbxFormat.Items.AddRange(new object[] { "Binary", "Ascii" }); + fbxFormat.Location = new System.Drawing.Point(91, 339); + fbxFormat.Margin = new System.Windows.Forms.Padding(4); + fbxFormat.Name = "fbxFormat"; + fbxFormat.Size = new System.Drawing.Size(70, 23); + fbxFormat.TabIndex = 18; // // label4 // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(8, 334); - this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(65, 15); - this.label4.TabIndex = 17; - this.label4.Text = "FBXFormat"; + label4.AutoSize = true; + label4.Location = new System.Drawing.Point(8, 343); + label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label4.Name = "label4"; + label4.Size = new System.Drawing.Size(65, 15); + label4.TabIndex = 17; + label4.Text = "FBXFormat"; // // fbxVersion // - this.fbxVersion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.fbxVersion.FormattingEnabled = true; - this.fbxVersion.Items.AddRange(new object[] { - "6.1", - "7.1", - "7.2", - "7.3", - "7.4", - "7.5"}); - this.fbxVersion.Location = new System.Drawing.Point(91, 367); - this.fbxVersion.Margin = new System.Windows.Forms.Padding(4); - this.fbxVersion.Name = "fbxVersion"; - this.fbxVersion.Size = new System.Drawing.Size(54, 23); - this.fbxVersion.TabIndex = 16; + fbxVersion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + fbxVersion.FormattingEnabled = true; + fbxVersion.Items.AddRange(new object[] { "6.1", "7.1", "7.2", "7.3", "7.4", "7.5" }); + fbxVersion.Location = new System.Drawing.Point(91, 371); + fbxVersion.Margin = new System.Windows.Forms.Padding(4); + fbxVersion.Name = "fbxVersion"; + fbxVersion.Size = new System.Drawing.Size(54, 23); + fbxVersion.TabIndex = 16; // // label3 // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(8, 371); - this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(65, 15); - this.label3.TabIndex = 15; - this.label3.Text = "FBXVersion"; + label3.AutoSize = true; + label3.Location = new System.Drawing.Point(8, 375); + label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label3.Name = "label3"; + label3.Size = new System.Drawing.Size(65, 15); + label3.TabIndex = 15; + label3.Text = "FBXVersion"; // // boneSize // - this.boneSize.Location = new System.Drawing.Point(77, 258); - this.boneSize.Margin = new System.Windows.Forms.Padding(4); - this.boneSize.Name = "boneSize"; - this.boneSize.Size = new System.Drawing.Size(54, 23); - this.boneSize.TabIndex = 11; - this.boneSize.Value = new decimal(new int[] { - 10, - 0, - 0, - 0}); + boneSize.Location = new System.Drawing.Point(77, 270); + boneSize.Margin = new System.Windows.Forms.Padding(4); + boneSize.Name = "boneSize"; + boneSize.Size = new System.Drawing.Size(54, 23); + boneSize.TabIndex = 11; + boneSize.Value = new decimal(new int[] { 10, 0, 0, 0 }); // // label2 // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(8, 260); - this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(54, 15); - this.label2.TabIndex = 10; - this.label2.Text = "BoneSize"; + label2.AutoSize = true; + label2.Location = new System.Drawing.Point(8, 272); + label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label2.Name = "label2"; + label2.Size = new System.Drawing.Size(54, 15); + label2.TabIndex = 10; + label2.Text = "BoneSize"; // // exportSkins // - this.exportSkins.AutoSize = true; - this.exportSkins.Checked = true; - this.exportSkins.CheckState = System.Windows.Forms.CheckState.Checked; - this.exportSkins.Location = new System.Drawing.Point(8, 96); - this.exportSkins.Margin = new System.Windows.Forms.Padding(4); - this.exportSkins.Name = "exportSkins"; - this.exportSkins.Size = new System.Drawing.Size(89, 19); - this.exportSkins.TabIndex = 8; - this.exportSkins.Text = "Export skins"; - this.exportSkins.UseVisualStyleBackColor = true; + exportSkins.AutoSize = true; + exportSkins.Checked = true; + exportSkins.CheckState = System.Windows.Forms.CheckState.Checked; + exportSkins.Location = new System.Drawing.Point(8, 87); + exportSkins.Margin = new System.Windows.Forms.Padding(4); + exportSkins.Name = "exportSkins"; + exportSkins.Size = new System.Drawing.Size(89, 19); + exportSkins.TabIndex = 8; + exportSkins.Text = "Export skins"; + exportSkins.UseVisualStyleBackColor = true; // // label1 // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(31, 41); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(81, 15); - this.label1.TabIndex = 7; - this.label1.Text = "FilterPrecision"; + label1.AutoSize = true; + label1.Location = new System.Drawing.Point(31, 41); + label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label1.Name = "label1"; + label1.Size = new System.Drawing.Size(81, 15); + label1.TabIndex = 7; + label1.Text = "FilterPrecision"; // // filterPrecision // - this.filterPrecision.DecimalPlaces = 2; - this.filterPrecision.Increment = new decimal(new int[] { - 1, - 0, - 0, - 131072}); - this.filterPrecision.Location = new System.Drawing.Point(149, 38); - this.filterPrecision.Margin = new System.Windows.Forms.Padding(4); - this.filterPrecision.Name = "filterPrecision"; - this.filterPrecision.Size = new System.Drawing.Size(59, 23); - this.filterPrecision.TabIndex = 6; - this.filterPrecision.Value = new decimal(new int[] { - 25, - 0, - 0, - 131072}); + filterPrecision.DecimalPlaces = 2; + filterPrecision.Increment = new decimal(new int[] { 1, 0, 0, 131072 }); + filterPrecision.Location = new System.Drawing.Point(149, 38); + filterPrecision.Margin = new System.Windows.Forms.Padding(4); + filterPrecision.Name = "filterPrecision"; + filterPrecision.Size = new System.Drawing.Size(59, 23); + filterPrecision.TabIndex = 6; + filterPrecision.Value = new decimal(new int[] { 25, 0, 0, 131072 }); // // castToBone // - this.castToBone.AutoSize = true; - this.castToBone.Location = new System.Drawing.Point(8, 198); - this.castToBone.Margin = new System.Windows.Forms.Padding(4); - this.castToBone.Name = "castToBone"; - this.castToBone.Size = new System.Drawing.Size(143, 19); - this.castToBone.TabIndex = 5; - this.castToBone.Text = "All nodes cast to bone"; - this.castToBone.UseVisualStyleBackColor = true; + castToBone.AutoSize = true; + castToBone.Location = new System.Drawing.Point(8, 190); + castToBone.Margin = new System.Windows.Forms.Padding(4); + castToBone.Name = "castToBone"; + castToBone.Size = new System.Drawing.Size(143, 19); + castToBone.TabIndex = 5; + castToBone.Text = "All nodes cast to bone"; + castToBone.UseVisualStyleBackColor = true; // // exportAllNodes // - this.exportAllNodes.AutoSize = true; - this.exportAllNodes.Checked = true; - this.exportAllNodes.CheckState = System.Windows.Forms.CheckState.Checked; - this.exportAllNodes.Location = new System.Drawing.Point(8, 68); - this.exportAllNodes.Margin = new System.Windows.Forms.Padding(4); - this.exportAllNodes.Name = "exportAllNodes"; - this.exportAllNodes.Size = new System.Drawing.Size(110, 19); - this.exportAllNodes.TabIndex = 4; - this.exportAllNodes.Text = "Export all nodes"; - this.exportAllNodes.UseVisualStyleBackColor = true; + exportAllNodes.AutoSize = true; + exportAllNodes.Checked = true; + exportAllNodes.CheckState = System.Windows.Forms.CheckState.Checked; + exportAllNodes.Location = new System.Drawing.Point(8, 60); + exportAllNodes.Margin = new System.Windows.Forms.Padding(4); + exportAllNodes.Name = "exportAllNodes"; + exportAllNodes.Size = new System.Drawing.Size(110, 19); + exportAllNodes.TabIndex = 4; + exportAllNodes.Text = "Export all nodes"; + exportAllNodes.UseVisualStyleBackColor = true; // // eulerFilter // - this.eulerFilter.AutoSize = true; - this.eulerFilter.Checked = true; - this.eulerFilter.CheckState = System.Windows.Forms.CheckState.Checked; - this.eulerFilter.Location = new System.Drawing.Point(8, 17); - this.eulerFilter.Margin = new System.Windows.Forms.Padding(4); - this.eulerFilter.Name = "eulerFilter"; - this.eulerFilter.Size = new System.Drawing.Size(78, 19); - this.eulerFilter.TabIndex = 3; - this.eulerFilter.Text = "EulerFilter"; - this.eulerFilter.UseVisualStyleBackColor = true; - // - // groupBox3 - // - this.groupBox3.AutoSize = true; - this.groupBox3.Controls.Add(this.encrypted); - this.groupBox3.Controls.Add(this.key); - this.groupBox3.Controls.Add(this.label7); - this.groupBox3.Location = new System.Drawing.Point(158, 315); - this.groupBox3.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.groupBox3.Name = "groupBox3"; - this.groupBox3.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.groupBox3.Size = new System.Drawing.Size(126, 118); - this.groupBox3.TabIndex = 12; - this.groupBox3.TabStop = false; - this.groupBox3.Text = "MiHoYoBinData"; + eulerFilter.AutoSize = true; + eulerFilter.Checked = true; + eulerFilter.CheckState = System.Windows.Forms.CheckState.Checked; + eulerFilter.Location = new System.Drawing.Point(8, 17); + eulerFilter.Margin = new System.Windows.Forms.Padding(4); + eulerFilter.Name = "eulerFilter"; + eulerFilter.Size = new System.Drawing.Size(78, 19); + eulerFilter.TabIndex = 3; + eulerFilter.Text = "EulerFilter"; + eulerFilter.UseVisualStyleBackColor = true; // // encrypted // - this.encrypted.AutoSize = true; - this.encrypted.Checked = true; - this.encrypted.CheckState = System.Windows.Forms.CheckState.Checked; - this.encrypted.Location = new System.Drawing.Point(20, 35); - this.encrypted.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.encrypted.Name = "encrypted"; - this.encrypted.Size = new System.Drawing.Size(79, 19); - this.encrypted.TabIndex = 12; - this.encrypted.Text = "Encrypted"; - this.encrypted.UseVisualStyleBackColor = true; + encrypted.AutoSize = true; + encrypted.Checked = true; + encrypted.CheckState = System.Windows.Forms.CheckState.Checked; + encrypted.Location = new System.Drawing.Point(8, 22); + encrypted.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + encrypted.Name = "encrypted"; + encrypted.Size = new System.Drawing.Size(166, 19); + encrypted.TabIndex = 12; + encrypted.Text = "Encrypted MiHoYoBinData\r\n"; + encrypted.UseVisualStyleBackColor = true; // // key // - this.key.Hexadecimal = true; - this.key.Location = new System.Drawing.Point(54, 72); - this.key.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); - this.key.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.key.Name = "key"; - this.key.Size = new System.Drawing.Size(55, 23); - this.key.TabIndex = 8; - this.keyToolTip.SetToolTip(this.key, "Key in hex"); + key.Hexadecimal = true; + key.Location = new System.Drawing.Point(199, 18); + key.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + key.Maximum = new decimal(new int[] { 255, 0, 0, 0 }); + key.Name = "key"; + key.Size = new System.Drawing.Size(55, 23); + key.TabIndex = 8; + keyToolTip.SetToolTip(key, "Key in hex"); + // + // groupBox4 + // + groupBox4.AutoSize = true; + groupBox4.Controls.Add(label7); + groupBox4.Controls.Add(exportableTypes); + groupBox4.Controls.Add(skipContainer); + groupBox4.Controls.Add(key); + groupBox4.Controls.Add(encrypted); + groupBox4.Controls.Add(enableResolveDependencies); + groupBox4.Location = new System.Drawing.Point(13, 258); + groupBox4.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + groupBox4.Name = "groupBox4"; + groupBox4.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); + groupBox4.Size = new System.Drawing.Size(272, 176); + groupBox4.TabIndex = 13; + groupBox4.TabStop = false; + groupBox4.Text = "Options"; // // label7 // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(20, 74); - this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(26, 15); - this.label7.TabIndex = 7; - this.label7.Text = "Key"; + label7.AutoSize = true; + label7.Location = new System.Drawing.Point(7, 94); + label7.Name = "label7"; + label7.Size = new System.Drawing.Size(91, 15); + label7.TabIndex = 16; + label7.Text = "Exporable Types"; + // + // exportableTypes + // + exportableTypes.CheckOnClick = true; + exportableTypes.FormattingEnabled = true; + exportableTypes.Location = new System.Drawing.Point(102, 94); + exportableTypes.Name = "exportableTypes"; + exportableTypes.Size = new System.Drawing.Size(152, 58); + exportableTypes.TabIndex = 15; + // + // skipContainer + // + skipContainer.AutoSize = true; + skipContainer.Checked = true; + skipContainer.CheckState = System.Windows.Forms.CheckState.Checked; + skipContainer.Location = new System.Drawing.Point(8, 72); + skipContainer.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + skipContainer.Name = "skipContainer"; + skipContainer.Size = new System.Drawing.Size(149, 19); + skipContainer.TabIndex = 14; + skipContainer.Text = "Skip container recovery"; + skipToolTip.SetToolTip(skipContainer, "Skips the container recovery step.\nImproves loading when dealing with a large number of files."); + skipContainer.UseVisualStyleBackColor = true; + // + // enableResolveDependencies + // + enableResolveDependencies.AutoSize = true; + enableResolveDependencies.Checked = true; + enableResolveDependencies.CheckState = System.Windows.Forms.CheckState.Checked; + enableResolveDependencies.Location = new System.Drawing.Point(8, 47); + enableResolveDependencies.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + enableResolveDependencies.Name = "enableResolveDependencies"; + enableResolveDependencies.Size = new System.Drawing.Size(177, 19); + enableResolveDependencies.TabIndex = 13; + enableResolveDependencies.Text = "Enable resolve dependencies"; + resolveToolTip.SetToolTip(enableResolveDependencies, "Toggle the behaviour of loading assets.\r\nDisable to load file(s) without its dependencies."); + enableResolveDependencies.UseVisualStyleBackColor = true; // // ExportOptions // - this.AcceptButton = this.OKbutton; - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.Cancel; - this.ClientSize = new System.Drawing.Size(567, 480); - this.Controls.Add(this.groupBox3); - this.Controls.Add(this.groupBox2); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.Cancel); - this.Controls.Add(this.OKbutton); - this.Margin = new System.Windows.Forms.Padding(4); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ExportOptions"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Export options"; - this.TopMost = true; - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.groupBox2.ResumeLayout(false); - this.groupBox2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.scaleFactor)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.boneSize)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.filterPrecision)).EndInit(); - this.groupBox3.ResumeLayout(false); - this.groupBox3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.key)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - + AcceptButton = OKbutton; + AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + CancelButton = Cancel; + ClientSize = new System.Drawing.Size(567, 480); + Controls.Add(groupBox4); + Controls.Add(groupBox2); + Controls.Add(groupBox1); + Controls.Add(Cancel); + Controls.Add(OKbutton); + Margin = new System.Windows.Forms.Padding(4); + MaximizeBox = false; + MinimizeBox = false; + Name = "ExportOptions"; + ShowIcon = false; + ShowInTaskbar = false; + StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + Text = "Export options"; + TopMost = true; + groupBox1.ResumeLayout(false); + groupBox1.PerformLayout(); + panel1.ResumeLayout(false); + panel1.PerformLayout(); + groupBox2.ResumeLayout(false); + groupBox2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)scaleFactor).EndInit(); + ((System.ComponentModel.ISupportInitialize)boneSize).EndInit(); + ((System.ComponentModel.ISupportInitialize)filterPrecision).EndInit(); + ((System.ComponentModel.ISupportInitialize)key).EndInit(); + groupBox4.ResumeLayout(false); + groupBox4.PerformLayout(); + ResumeLayout(false); + PerformLayout(); } #endregion @@ -674,12 +670,16 @@ private System.Windows.Forms.CheckBox exportAllUvsAsDiffuseMaps; private System.Windows.Forms.ToolTip exportUvsTooltip; private System.Windows.Forms.CheckBox collectAnimations; - private System.Windows.Forms.CheckBox skipRenderer; - private System.Windows.Forms.CheckBox exportMiHoYoBinData; - private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.CheckBox encrypted; private System.Windows.Forms.NumericUpDown key; - private System.Windows.Forms.Label label7; private System.Windows.Forms.ToolTip keyToolTip; + private System.Windows.Forms.CheckBox exportUV0UV1; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.CheckBox enableResolveDependencies; + private System.Windows.Forms.CheckBox skipContainer; + private System.Windows.Forms.ToolTip resolveToolTip; + private System.Windows.Forms.ToolTip skipToolTip; + private System.Windows.Forms.CheckedListBox exportableTypes; + private System.Windows.Forms.Label label7; } } \ No newline at end of file diff --git a/AssetStudioGUI/ExportOptions.cs b/AssetStudioGUI/ExportOptions.cs index b612226..6195c61 100644 --- a/AssetStudioGUI/ExportOptions.cs +++ b/AssetStudioGUI/ExportOptions.cs @@ -1,5 +1,8 @@ using AssetStudio; +using Newtonsoft.Json; using System; +using System.Collections.Generic; +using System.Linq; using System.Windows.Forms; namespace AssetStudioGUI @@ -31,19 +34,35 @@ namespace AssetStudioGUI exportBlendShape.Checked = Properties.Settings.Default.exportBlendShape; castToBone.Checked = Properties.Settings.Default.castToBone; exportAllUvsAsDiffuseMaps.Checked = Properties.Settings.Default.exportAllUvsAsDiffuseMaps; + exportUV0UV1.Checked = Properties.Settings.Default.exportUV0UV1; boneSize.Value = Properties.Settings.Default.boneSize; scaleFactor.Value = Properties.Settings.Default.scaleFactor; fbxVersion.SelectedIndex = Properties.Settings.Default.fbxVersion; fbxFormat.SelectedIndex = Properties.Settings.Default.fbxFormat; - skipRenderer.Checked = Properties.Settings.Default.skipRenderer; - exportMiHoYoBinData.Checked = Properties.Settings.Default.exportMiHoYoBinData; collectAnimations.Checked = Properties.Settings.Default.collectAnimations; encrypted.Checked = Properties.Settings.Default.encrypted; key.Value = Properties.Settings.Default.key; + + exportableTypes.Items.AddRange(Studio.assetsManager.ExportableTypes.Keys.Select(x => x.ToString()).ToArray()); + var types = JsonConvert.DeserializeObject>(Properties.Settings.Default.exportableTypes); + foreach (var exportable in types) + { + var idx = exportableTypes.Items.IndexOf(exportable.Key.ToString()); + if (idx != -1) + exportableTypes.SetItemChecked(idx, exportable.Value); + } } private void OKbutton_Click(object sender, EventArgs e) { + var types = new Dictionary(); + for (int i = 0; i < exportableTypes.Items.Count; i++) + { + var type = Enum.Parse(exportableTypes.Items[i].ToString()); + var state = exportableTypes.GetItemChecked(i); + types.Add(type, state); + } + Properties.Settings.Default.exportableTypes = JsonConvert.SerializeObject(types); Properties.Settings.Default.assetGroupOption = assetGroupOptions.SelectedIndex; Properties.Settings.Default.restoreExtensionName = restoreExtensionName.Checked; Properties.Settings.Default.convertTexture = converttexture.Checked; @@ -65,17 +84,15 @@ namespace AssetStudioGUI Properties.Settings.Default.exportBlendShape = exportBlendShape.Checked; Properties.Settings.Default.castToBone = castToBone.Checked; Properties.Settings.Default.exportAllUvsAsDiffuseMaps = exportAllUvsAsDiffuseMaps.Checked; + Properties.Settings.Default.exportUV0UV1 = exportUV0UV1.Checked; Properties.Settings.Default.boneSize = boneSize.Value; Properties.Settings.Default.scaleFactor = scaleFactor.Value; Properties.Settings.Default.fbxVersion = fbxVersion.SelectedIndex; Properties.Settings.Default.fbxFormat = fbxFormat.SelectedIndex; - Properties.Settings.Default.skipRenderer = skipRenderer.Checked; - Properties.Settings.Default.exportMiHoYoBinData = exportMiHoYoBinData.Checked; Properties.Settings.Default.collectAnimations = collectAnimations.Checked; Properties.Settings.Default.encrypted = encrypted.Checked; Properties.Settings.Default.key = (byte)key.Value; Properties.Settings.Default.Save(); - Renderer.Skipped = !Properties.Settings.Default.skipRenderer; MiHoYoBinData.Key = (byte)key.Value; MiHoYoBinData.Encrypted = encrypted.Checked; DialogResult = DialogResult.OK; diff --git a/AssetStudioGUI/ExportOptions.resx b/AssetStudioGUI/ExportOptions.resx index 2b5ac0b..b787a62 100644 --- a/AssetStudioGUI/ExportOptions.resx +++ b/AssetStudioGUI/ExportOptions.resx @@ -60,13 +60,16 @@ 17, 17 - - 17, 17 - 162, 17 - - 162, 17 + + 404, 17 + + + 273, 17 + + + 57 \ No newline at end of file diff --git a/AssetStudioGUI/Exporter.cs b/AssetStudioGUI/Exporter.cs index b1f27db..71e9542 100644 --- a/AssetStudioGUI/Exporter.cs +++ b/AssetStudioGUI/Exporter.cs @@ -360,11 +360,12 @@ namespace AssetStudioGUI var castToBone = Properties.Settings.Default.castToBone; var boneSize = (int)Properties.Settings.Default.boneSize; var exportAllUvsAsDiffuseMaps = Properties.Settings.Default.exportAllUvsAsDiffuseMaps; + var exportUV0UV1 = Properties.Settings.Default.exportUV0UV1; var scaleFactor = (float)Properties.Settings.Default.scaleFactor; var fbxVersion = Properties.Settings.Default.fbxVersion; var fbxFormat = Properties.Settings.Default.fbxFormat; ModelExporter.ExportFbx(exportPath, convert, eulerFilter, filterPrecision, - exportAllNodes, exportSkins, exportAnimations, exportBlendShape, castToBone, boneSize, exportAllUvsAsDiffuseMaps, scaleFactor, fbxVersion, fbxFormat == 1); + exportAllNodes, exportSkins, exportAnimations, exportBlendShape, castToBone, boneSize, exportAllUvsAsDiffuseMaps, exportUV0UV1, scaleFactor, fbxVersion, fbxFormat == 1); } public static bool ExportDumpFile(AssetItem item, string exportPath) diff --git a/AssetStudioGUI/Libraries/x64/acl.dll b/AssetStudioGUI/Libraries/x64/acl.dll index 8249f885f28a71ee60dc6187f9e155dd4e00ddaa..0b7c8225aba3b262dbf419a60273b574e85ee9e7 100644 GIT binary patch delta 8359 zcmd^EdstN0wclr8c*$@^nZW@O2N`5ggyErLea#5yAsGxJK8P<6P)HF8&Lku?8SH55 zc)|^4n}#MPL8Yxp+r-u;L6atfs9@D-Oq*(xv{utEL$F?~X?!H{^taDBqnPjB|L%Wx zKKK5uwf5R;uf6tTZH}!wxz-M@eWvCH*)e;rCwhUjU&z{VDOem!HJ28EzrLvbVu_49 zFILF->_xkb&s@A8_`=Hei}wMAtoBQ5fG?MITr8Gxhl-7t6rRd_S$%aK8-u97(jr1? zeiW8MOz-Pzg2Ev(-aJARlR~VJOi-jpCes{lRd(e9LRLWX4)7_~(n`n;hD|6Tj8K2= zgp`83Kzq1xTqpfI7t58>s;n_ouZiGZrtzAzD3bvSc9b}JpC)N)cNoY@6b;H;lwm(R zA^yy!nkrWnglrf#TqsH*eMytX3G^81`wm>ujN+(1L~j$?bUrvf;7lOoB!2cqg7>mn zXw#cf!q3ceK<)8Zvd z9ZMWbVWpB!cUejWQM>a2n94mO_zEp{r}!^eJw!M{9Nl)sNNPntL^a#~UqTBA1_@!T6 z6ZnZ&#d&&ush^SlYy7Gq{;jaK=+=Zfs3 z4VCFE7Gj8_n=OVQ{#g)DNTvFAL3CQ|Lhi{xJa(NR?y?v=p~zd=T6&LEI#xSYtzNaV zm)as1Rj{ohF4VJqg1r#$tag~Np}uyqj@mB)#XT1^Fe-?#Oktd}x&Wcj{Y6puP*s3g z^KwC|)XPLK+lF*gWP;`qC+&#*MclWU*m>2-%!eD-_=?-SwJ%Vfd|+`@8|V2#ue!!t zH^J-8M_S?Qa@ho|+_ND!UuN^<(|>0ff{xJEV5t?rtG zifzKDyY*{l^z+^b3|lA;@#E~+>?Jq>eS-Lr(Dt++g9Q@MD2`xqK`e;it!H>^KQ#Db z{fnW+AM?M8^)+l0N3dq8hd*{!k{4VNc)UFtu%T+Zwt=0^qr218E;5P>ywehWg6~i2?@Lr#lqZ=09fB=Mtc;aJsxH?XoOik&fLB04zn7) z4OWZ2S2%vFbX$@Hu}zLLHkgfP(cWdTvvskm>$3TXd^f1O>?CfI&6hh7DXf!SP}ix@ zA{2=u4~`==DLPBDdJ=sgdTf+o5+OJhsrpIuk?5V8oX=^rZYsBo7U(8uQYO;x>*jFJ z&|m5v;I`1Oba8z=uv*Tt}=~~w&)Mocok`Mvi^Ca77~8xxBQCRe8mlZ*=;mU*-byu zcXDUw6C>+2OD@uPbvZ#M;I)&#O-G6#;&E4}2as zo_dVgqb?^0$bI1J2|LV>(`h8Op`fN9i z=PuA+o1RcS(!BZ?>Nh0FEDbYX%mcFY~Q>Q2;Hx--FJnU1^2trvQF z^lPv8NRpfD6?%^A2kr}Jc?PM(8kiA9*Ci*<`4v;VlHa6@cwn@S_9aiqN`q{R-_2yB0tpHe9vBH?@bZ36wyc

^w>~TU_?iH&zg4Ck>RX&p) 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 XE>ek|i4f;^3Y~SG?Va)|<;Z^k6+Q1) delta 8183 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 Uch)0HKtcc3{_cMKE`5>vZz+bV%>V!Z diff --git a/AssetStudioGUI/Libraries/x64/sracl.dll b/AssetStudioGUI/Libraries/x64/sracl.dll index d6dd18215c1365336517444dcb3765c84befc9e6..b7359e1c0e224fd646f1d36c9d117f5ab6c57d59 100644 GIT binary patch delta 7400 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 diff --git a/AssetStudioGUI/Libraries/x86/acl.dll b/AssetStudioGUI/Libraries/x86/acl.dll index 4262bcaf0183376547d0fba31922f2a41f3a160f..34eb8c7702ea91650670f97af4dc30ddf85362eb 100644 GIT binary patch delta 42615 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 diff --git a/AssetStudioGUI/Libraries/x86/sracl.dll b/AssetStudioGUI/Libraries/x86/sracl.dll index 9151f5a3fe54abbe889c443707ea2c570ba825f6..37f4a7d0e5733ac24897a59daf31b051681fac51 100644 GIT binary patch delta 5529 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 delta 5342 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 diff --git a/AssetStudioGUI/Properties/Settings.Designer.cs b/AssetStudioGUI/Properties/Settings.Designer.cs index 6e8a8d6..48675a2 100644 --- a/AssetStudioGUI/Properties/Settings.Designer.cs +++ b/AssetStudioGUI/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace AssetStudioGUI.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -311,18 +311,6 @@ namespace AssetStudioGUI.Properties { } } - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool skipRenderer { - get { - return ((bool)(this["skipRenderer"])); - } - set { - this["skipRenderer"] = value; - } - } - [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("0")] @@ -347,18 +335,6 @@ namespace AssetStudioGUI.Properties { } } - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int selectedCNUnityKey { - get { - return ((int)(this["selectedCNUnityKey"])); - } - set { - this["selectedCNUnityKey"] = value; - } - } - [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("0")] @@ -406,5 +382,31 @@ namespace AssetStudioGUI.Properties { this["skipContainer"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool exportUV0UV1 { + get { + return ((bool)(this["exportUV0UV1"])); + } + set { + this["exportUV0UV1"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("{\"GameObject\":true,\"Material\":true,\"Texture2D\":true,\"Mesh\":true,\"Renderer\":true,\"" + + "Shader\":true,\"TextAsset\":true,\"AnimationClip\":true,\"Font\":true,\"Sprite\":true,\"An" + + "imator\":true,\"MiHoYoBinData\":true,\"AssetBundle\":true}")] + public string exportableTypes { + get { + return ((string)(this["exportableTypes"])); + } + set { + this["exportableTypes"] = value; + } + } } } diff --git a/AssetStudioGUI/Properties/Settings.settings b/AssetStudioGUI/Properties/Settings.settings index 799a87b..cc68ddd 100644 --- a/AssetStudioGUI/Properties/Settings.settings +++ b/AssetStudioGUI/Properties/Settings.settings @@ -74,18 +74,12 @@ True - - False - 0 True - - 0 - 0 @@ -98,5 +92,11 @@ False + + False + + + {"GameObject":true,"Material":true,"Texture2D":true,"Mesh":true,"Renderer":true,"Shader":true,"TextAsset":true,"AnimationClip":true,"Font":true,"Sprite":true,"Animator":true,"MiHoYoBinData":true,"AssetBundle":true} + \ No newline at end of file diff --git a/AssetStudioUtility/ACL/ACL.cs b/AssetStudioUtility/ACL/ACL.cs index a4dbc34..07f2677 100644 --- a/AssetStudioUtility/ACL/ACL.cs +++ b/AssetStudioUtility/ACL/ACL.cs @@ -4,6 +4,13 @@ using AssetStudio.PInvoke; namespace ACLLibs { + public struct DecompressedClip + { + public IntPtr Values; + public int ValuesCount; + public IntPtr Times; + public int TimesCount; + } public static class ACL { private const string DLL_NAME = "acl"; @@ -13,27 +20,30 @@ namespace ACLLibs } public static void DecompressAll(byte[] data, out float[] values, out float[] times) { - var pinned = GCHandle.Alloc(data, GCHandleType.Pinned); - var pData = pinned.AddrOfPinnedObject(); - DecompressAll(pData, out var pValues, out var numValues, out var pTimes, out var numTimes); - pinned.Free(); + var decompressedClip = new DecompressedClip(); + DecompressAll(data, ref decompressedClip); - values = new float[numValues]; - Marshal.Copy(pValues, values, 0, numValues); + values = new float[decompressedClip.ValuesCount]; + Marshal.Copy(decompressedClip.Values, values, 0, decompressedClip.ValuesCount); - times = new float[numTimes]; - Marshal.Copy(pTimes, times, 0, numTimes); + times = new float[decompressedClip.TimesCount]; + Marshal.Copy(decompressedClip.Times, times, 0, decompressedClip.TimesCount); + + Dispose(ref decompressedClip); } #region importfunctions - [DllImport(DLL_NAME)] - private static extern void DecompressAll(IntPtr data, out IntPtr pValues, out int numValues, out IntPtr pTimes, out int numTimes); + [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)] + private static extern void DecompressAll(byte[] data, ref DecompressedClip decompressedClip); + + [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)] + private static extern void Dispose(ref DecompressedClip decompressedClip); #endregion } - public static partial class SRACL + public static class SRACL { private const string DLL_NAME = "sracl"; static SRACL() @@ -42,22 +52,25 @@ namespace ACLLibs } public static void DecompressAll(byte[] data, out float[] values, out float[] times) { - var pinned = GCHandle.Alloc(data, GCHandleType.Pinned); - var pData = pinned.AddrOfPinnedObject(); - DecompressAll(pData, out var pValues, out var numValues, out var pTimes, out var numTimes); - pinned.Free(); + var decompressedClip = new DecompressedClip(); + DecompressAll(data, ref decompressedClip); - values = new float[numValues]; - Marshal.Copy(pValues, values, 0, numValues); + values = new float[decompressedClip.ValuesCount]; + Marshal.Copy(decompressedClip.Values, values, 0, decompressedClip.ValuesCount); - times = new float[numTimes]; - Marshal.Copy(pTimes, times, 0, numTimes); + times = new float[decompressedClip.TimesCount]; + Marshal.Copy(decompressedClip.Times, times, 0, decompressedClip.TimesCount); + + Dispose(ref decompressedClip); } #region importfunctions - [DllImport(DLL_NAME)] - private static extern void DecompressAll(IntPtr data, out IntPtr pValues, out int numValues, out IntPtr pTimes, out int numTimes); + [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)] + private static extern void DecompressAll(byte[] data, ref DecompressedClip decompressedClip); + + [DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)] + private static extern void Dispose(ref DecompressedClip decompressedClip); #endregion } diff --git a/AssetStudioUtility/ModelExporter.cs b/AssetStudioUtility/ModelExporter.cs index 5b7813e..dea96e9 100644 --- a/AssetStudioUtility/ModelExporter.cs +++ b/AssetStudioUtility/ModelExporter.cs @@ -3,9 +3,9 @@ public static class ModelExporter { public static void ExportFbx(string path, IImported imported, bool eulerFilter, float filterPrecision, - bool allNodes, bool skins, bool animation, bool blendShape, bool castToBone, float boneSize, bool exportAllUvsAsDiffuseMaps, float scaleFactor, int versionIndex, bool isAscii) + bool allNodes, bool skins, bool animation, bool blendShape, bool castToBone, float boneSize, bool exportAllUvsAsDiffuseMaps, bool exportUV0UV1, float scaleFactor, int versionIndex, bool isAscii) { - Fbx.Exporter.Export(path, imported, eulerFilter, filterPrecision, allNodes, skins, animation, blendShape, castToBone, boneSize, exportAllUvsAsDiffuseMaps, scaleFactor, versionIndex, isAscii); + Fbx.Exporter.Export(path, imported, eulerFilter, filterPrecision, allNodes, skins, animation, blendShape, castToBone, boneSize, exportAllUvsAsDiffuseMaps, exportUV0UV1, scaleFactor, versionIndex, isAscii); } } }