diff --git a/CHANGELOG.md b/CHANGELOG.md index 75d48d82..a8c02f52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -176,6 +176,10 @@ Some features may be completely missing or incomplete at this point in time! -Fixed Model Generator crashing when minimized -Fixed more bugs +2.9c +==== +-Fixed some minor bugs + 2.8b ==== -Fixed a few bugs from 2.8 @@ -204,6 +208,10 @@ Some features may be completely missing or incomplete at this point in time! -Model Generator -Few UI Improvements +2.3(non-feature) +=== +-Rebranded Minekampf as PCK Studio + 2.3 === -Fully Fixed Cape Adding diff --git a/PCK-Studio/Classes/FileTypes/BehaviourFile.cs b/PCK-Studio/Classes/FileTypes/BehaviourFile.cs new file mode 100644 index 00000000..243d6a89 --- /dev/null +++ b/PCK-Studio/Classes/FileTypes/BehaviourFile.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PckStudio.Classes.FileTypes +{ + public class BehaviourFile + { + public List overrides { get; } = new List(); + public struct RiderPositionOverride + { + public string name; + public List overrides { get; } + + public RiderPositionOverride(string name) : this() + { + this.name = name; + overrides = new List(); + } + + public struct PositionOverride + { + public bool _1; + public bool _2; + public float x, y, z; + } + } + } +} diff --git a/PCK-Studio/Classes/FileTypes/Bink.cs b/PCK-Studio/Classes/FileTypes/Bink.cs index 73861182..db79fafa 100644 --- a/PCK-Studio/Classes/FileTypes/Bink.cs +++ b/PCK-Studio/Classes/FileTypes/Bink.cs @@ -14,86 +14,80 @@ namespace PckStudio.Classes [DllImport("kernel32.dll")] public static extern IntPtr FreeLibrary(IntPtr library); - public unsafe static string Binka(string infile, string outDir = null, bool last = true, string working = null) + public int temp_error_code; + string binka_enc_loc; + string mss32_loc; + string binkawin_loc; + public string working = null; + + public async void WavToBinka(string infile, string outFile, int compression) { - bool flag = working == null; - string text; - string text2; - string path; - if (flag) + var process = Process.Start(new ProcessStartInfo { - working = Path.GetTempPath() + DateTime.Now.Second.ToString(); - text = PckStudio.Classes.Bink.ExtractResource("Resources.binka_encode.exe", working, "binka_encode.exe"); - text2 = PckStudio.Classes.Bink.ExtractResource("Resources.mss32.dll", working, "mss32.dll"); - path = PckStudio.Classes.Bink.ExtractResource("Resources.binkawin.asi", working, "binkawin.asi"); - PckStudio.Classes.Bink.library = PckStudio.Classes.Bink.LoadLibrary(text2); + FileName = binka_enc_loc, + Arguments = $"\"{infile}\" \"{outFile}\" -s -b{compression}", + UseShellExecute = true, + CreateNoWindow = true, + WindowStyle = ProcessWindowStyle.Hidden + }); + process.WaitForExit(); + temp_error_code = process.ExitCode; + } + + public unsafe void BinkaToWav(string infile, string outFile) + { + string[] array2 = createArg(infile, outFile); + byte[] array3 = File.ReadAllBytes(array2[0]); + Console.WriteLine(array3.Length); + uint num = 0U; + AIL_set_redist_directory("."); + AIL_startup(); + IntPtr intPtr; + // crash happens in AIL_decompress_ASI + if (AIL_decompress_ASI(array3, (uint)array3.Length, ".binka", &intPtr, &num, 0U) == 0) + throw new Exception("AIL ERROR"); + byte[] array4 = new byte[num]; + Marshal.Copy(intPtr, array4, 0, array4.Length); + AIL_mem_free_lock(intPtr); + AIL_shutdown(); + File.WriteAllBytes(array2[1], array4); + } + + public void SetUpBinka() + { + if (working == null) + { + working = (Path.GetTempPath() + "PCKStudio").Replace("\\","/"); + Directory.CreateDirectory(working); + binka_enc_loc = ExtractResource("binka_encode.exe", working); + mss32_loc = ExtractResource("mss32.dll", working); + binkawin_loc = ExtractResource("binkawin.asi", working); + library = LoadLibrary(mss32_loc); } else { - text = working + "\\binka_encode.exe"; - text2 = working + "\\mss32.dll"; - path = working + "\\binkawin.asi"; + binka_enc_loc = working + "\\binka_encode.exe"; + mss32_loc = working + "\\mss32.dll"; + binkawin_loc = working + "\\binkawin.asi"; } - bool flag2 = PckStudio.Classes.Bink.getType(infile) == "WAV"; - if (flag2) + } + + public void CleanUpBinka() + { + File.Delete(binka_enc_loc); + File.Delete(binkawin_loc); + while (File.Exists(mss32_loc)) { - string[] array = PckStudio.Classes.Bink.createArg(infile, outDir); - Process process = new Process(); - process.StartInfo.FileName = text; - process.StartInfo.Arguments = string.Concat(new string[] + try { - " \"", - array[0], - "\" \"", - array[1], - "\"" - }); - process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; - process.Start(); - process.WaitForExit(); - } - else - { - bool flag3 = PckStudio.Classes.Bink.getType(infile) == "BINKA"; - if (flag3) + File.Delete(mss32_loc); + } + catch { - string[] array2 = PckStudio.Classes.Bink.createArg(infile, outDir); - byte[] array3 = File.ReadAllBytes(array2[0]); - uint num = 0U; - PckStudio.Classes.Bink.AIL_set_redist_directory("."); - PckStudio.Classes.Bink.AIL_startup(); - IntPtr intPtr; - bool flag4 = PckStudio.Classes.Bink.AIL_decompress_ASI(array3, (uint)array3.Length, ".binka", &intPtr, &num, 0U) == 0; - if (flag4) - { - throw new Exception("AIL ERROR"); - } - byte[] array4 = new byte[num]; - Marshal.Copy(intPtr, array4, 0, array4.Length); - PckStudio.Classes.Bink.AIL_mem_free_lock(intPtr); - PckStudio.Classes.Bink.AIL_shutdown(); - File.WriteAllBytes(array2[1], array4); + FreeLibrary(library); } } - if (last) - { - PckStudio.Classes.Bink.FreeLibrary(PckStudio.Classes.Bink.library); - PckStudio.Classes.Bink.FreeLibrary(PckStudio.Classes.Bink.library); - File.Delete(text); - File.Delete(path); - while (File.Exists(text2)) - { - try - { - File.Delete(text2); - } - catch - { - PckStudio.Classes.Bink.FreeLibrary(PckStudio.Classes.Bink.library); - } - } - } - return working; + Directory.Delete(working); } private static string getType(string loc) @@ -110,7 +104,7 @@ namespace PckStudio.Classes bool flag2 = !(a == ".wav"); if (flag2) { - throw new Exception("File type not valid. To use MP3 or other audio formats, convert to wav format before using tool"); + throw new Exception("File type not valid. To use MP3 or other audio formats, convert to wav format before using this tool"); } result = "WAV"; } @@ -122,7 +116,7 @@ namespace PckStudio.Classes string[] array = new string[2]; array[0] = inFile; string[] array2 = array; - string type = PckStudio.Classes.Bink.getType(inFile); + string type = getType(inFile); bool flag = type == "BINKA"; if (flag) { @@ -144,20 +138,18 @@ namespace PckStudio.Classes return array2; } - internal static string ExtractResource(string resource, string path, string filename) + internal static string ExtractResource(string resource, string working) { - Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource); - byte[] array = new byte[(int)manifestResourceStream.Length]; - manifestResourceStream.Read(array, 0, array.Length); - manifestResourceStream.Close(); - bool flag = !Directory.Exists(path); - if (flag) + object ob = Properties.Resources.ResourceManager.GetObject(Path.GetFileNameWithoutExtension(resource)); + byte[] myResBytes = (byte[])ob; + if(File.Exists(Path.Combine(working, resource))) File.Delete(Path.Combine(working, resource)); + using (FileStream fsDst = new FileStream(Path.Combine(working, resource), FileMode.CreateNew, FileAccess.Write)) { - Directory.CreateDirectory(path); + fsDst.Write(myResBytes, 0, myResBytes.Length); + fsDst.Close(); + fsDst.Dispose(); } - path = path + "\\" + filename; - File.WriteAllBytes(path, array); - return path; + return "\"" + working + "/" + resource + "\""; } [DllImport("mss32.dll", EntryPoint = "_AIL_decompress_ASI@24")] diff --git a/PCK-Studio/Classes/FileTypes/COLFile.cs b/PCK-Studio/Classes/FileTypes/COLFile.cs index 3259da6e..e83e37d3 100644 --- a/PCK-Studio/Classes/FileTypes/COLFile.cs +++ b/PCK-Studio/Classes/FileTypes/COLFile.cs @@ -23,16 +23,21 @@ namespace PckStudio.Classes.FileTypes public class ExtendedColorEntry : ColorEntry { - public uint rgbcolor; - public uint unk; + public uint color_b; + public uint color_c; - public ExtendedColorEntry(string name, uint color, uint rgbcolor, uint unk) : base(name, color) + // Water entries consist of three colors + // color_a - the surface of the water + // color_b - the color displayed underwater + // color_c - the color for the distant "fog" displayed while underwater + public ExtendedColorEntry(string name, uint color_a, uint color_b, uint color_c) : base(name, color_a) { - this.rgbcolor = rgbcolor; - this.unk = unk; + this.color_b = color_b; + this.color_c = color_c; } } + public bool hasWaterTable; public List entries = new List(); public List waterEntries = new List(); } diff --git a/PCK-Studio/Classes/FileTypes/CSMBFile.cs b/PCK-Studio/Classes/FileTypes/CSMBFile.cs new file mode 100644 index 00000000..e4db7b92 --- /dev/null +++ b/PCK-Studio/Classes/FileTypes/CSMBFile.cs @@ -0,0 +1,104 @@ +using System; +using System.Drawing; +using System.IO; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using PckStudio.Models; + +namespace PckStudio.Classes.FileTypes +{ + #region File Template + /* + Version - 4 bytes[int32] + NumberOfParts - 4 bytes[int32] + { + Part name length - 2 bytes[int16] + part name - x bytes + part parent - 4 bytes[int32] (HEAD=1, BODY=2, LEG0=3, LEG1=4, ARM0=5, ARM1=6) + Position-X - 4 bytes[float] + Position-Y - 4 bytes[float] + Position-Z - 4 bytes[float] + Size-X - 4 bytes[float] + Size-Y - 4 bytes[float] + Size-Z - 4 bytes[float] + UV-Y - 4 bytes[int32] + UV-X - 4 bytes[int32] + mirror texture - 1 byte[bool] + Hide with armour - 1 byte[bool] + inflation/scale value - 4 bytes[float] + } + NumberOfOffsets - 4 bytes[int32] + { + offset part - 4 bytes[int32] + vertical offset - 4 bytes[float] + } + */ + #endregion + class CSMBFile + { + public List Parts = new List(); + public List Offsets = new List(); + + } + + public class CSMBPart + { + public string Name = "Partname"; + public ParentPart Parent = 0; + public float posX, posY, posZ = 0.0f; + public float sizeX, sizeY, sizeZ = 0.0f; + public int uvX, uvY = 0; + public bool HideWArmour, MirrorTexture = false; + public float Inflation = 0.0f; + } + public class CSMBOffset + { + public OffsetPart offsetPart = 0; + public float VerticalOffset = 0.0f; + } + + public enum OffsetPart + { + HEAD = 0, + BODY = 1, + ARM0 = 2, + ARM1 = 3, + LEG0 = 4, + LEG1 = 5, + HEADWEAR = 6, + JACKET = 7, + SLEEVE0 = 8, + SLEEVE1 = 9, + PANTS0 = 10, + PANTS1 = 11, + WAIST = 12, + LEGGING0 = 13, + LEGGING1 = 14, + SOCK0 = 15, + SOCK1 = 16, + BOOT0 = 17, + BOOT1 = 18, + ARMARMOR1 = 19, + ARMARMOR0 = 20, + BODYARMOR = 21, + BELT = 22, + TOOL0 = 23, + TOOL1 = 24, + HELMET = 25, + SHOULDER0 = 26, + SHOULDER1 = 27, + CHEST = 28 + } + + public enum ParentPart + { + HEAD = 0, + BODY = 1, + ARM0 = 2, + ARM1 = 3, + LEG0 = 4, + LEG1 = 5, + } +} diff --git a/PCK-Studio/Classes/FileTypes/ModelFile.cs b/PCK-Studio/Classes/FileTypes/ModelFile.cs new file mode 100644 index 00000000..9e615050 --- /dev/null +++ b/PCK-Studio/Classes/FileTypes/ModelFile.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Documents; + +namespace PckStudio.Classes.FileTypes +{ + [Serializable] + internal class ModelNotFoundException : Exception + { + public ModelNotFoundException() + { + } + + public ModelNotFoundException(string message) : base(message) + { + } + + public ModelNotFoundException(string message, Exception innerException) : base(message, innerException) + { + } + + protected ModelNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) + { + } + } + public class ModelFile + { + public List Models { get; } = new List(); + + public void AddModel(Model model) + { + Models.Add(model); + } + + bool Contains(string name) => Models.FindIndex(m => m.name == name) > -1; + + /// + Model GetModelByName(string name) + { + return Contains(name) ? Models.First(m => m.name.Equals(name)) : throw new ModelNotFoundException(nameof(name)); + } + + public struct Model + { + public readonly string name; + public Size textureSize; + public List parts { get; } = new List(); + + public Model(string name, int textureWidth, int textureHeight) + { + this.name = name; + textureSize = new Size(textureWidth, textureHeight); + } + + public struct Part + { + string name; + (float x, float y, float z) position; + (float yaw, float pitch, float roll) rotation; + List Boxes { get; } = new List(); + + public struct Box + { + (float x, float y, float z) Position; + (int width, int height, int length) Size; + float U, V; + float Scale; + bool Mirror; + + public Box((float x, float y, float z) position, + (int width, int height, int length) size, + float u, float v, float scale, bool mirror) + { + Position = position; + Size = size; + U = u; + V = v; + Scale = scale; + Mirror = mirror; + } + } + + public Part(string name, + (float x, float y, float z) pos, + (float yaw, float pitch, float roll) rot) : this(name) + { + position = pos; + rotation = rot; + } + + public Part(string name) + { + this.name = name; + this.position = (0, 0, 0); + this.rotation = (0, 0, 0); + } + + public void AddBox((float x, float y, float z) position, + (int width, int height, int length) size, + float u, float v, float scale, bool mirror) + { + Boxes.Add(new Box(position, size, u, v, scale, mirror)); + } + + } + + public void AddPart(Part part) + { + parts.Add(part); + } + } + } +} diff --git a/PCK-Studio/Classes/IO/ARC/ARCFileReader.cs b/PCK-Studio/Classes/IO/ARC/ARCFileReader.cs index 201c8c4b..b4eb5c65 100644 --- a/PCK-Studio/Classes/IO/ARC/ARCFileReader.cs +++ b/PCK-Studio/Classes/IO/ARC/ARCFileReader.cs @@ -20,8 +20,8 @@ namespace PckStudio.Classes.IO.ARC private ConsoleArchive ReadFromStream(Stream stream) { ConsoleArchive _archive = new ConsoleArchive(); - int NumberOfFiles = ReadInt(stream); - for(int i = 0; i < NumberOfFiles; i++) + int numberOfFiles = ReadInt(stream); + for(int i = 0; i < numberOfFiles; i++) { string name = ReadString(stream); int pos = ReadInt(stream); @@ -41,9 +41,9 @@ namespace PckStudio.Classes.IO.ARC { long originalPOS = stream.Position; if (stream.Seek(position, SeekOrigin.Begin) != position) throw new Exception(); - byte[] bytes = ReadBytes(stream, size); + byte[] data = ReadBytes(stream, size); if (stream.Seek(originalPOS, SeekOrigin.Begin) != originalPOS) throw new Exception(); - return bytes; + return data; } } diff --git a/PCK-Studio/Classes/IO/ARC/ARCFileWriter.cs b/PCK-Studio/Classes/IO/ARC/ARCFileWriter.cs index d75ab63f..7f3604f9 100644 --- a/PCK-Studio/Classes/IO/ARC/ARCFileWriter.cs +++ b/PCK-Studio/Classes/IO/ARC/ARCFileWriter.cs @@ -25,7 +25,7 @@ namespace PckStudio.Classes.IO.ARC private void WriteToStream(Stream stream) { WriteInt(stream, _archive.Count); - int currentOffset = 4 + _archive.Keys.ToArray().Sum(key => 10 + key.Length); + int currentOffset = 4 + _archive.Keys.Sum(key => 10 + key.Length); foreach (var pair in _archive) { int size = pair.Value.Length; @@ -40,10 +40,10 @@ namespace PckStudio.Classes.IO.ARC } } - private void WriteString(Stream stream, string String) + private void WriteString(Stream stream, string s) { - WriteShort(stream, (short)String.Length); - WriteString(stream, String, Encoding.UTF8); + WriteShort(stream, (short)s.Length); + WriteString(stream, s, Encoding.UTF8); } } } diff --git a/PCK-Studio/Classes/IO/Behaviour/BehavioursReader.cs b/PCK-Studio/Classes/IO/Behaviour/BehavioursReader.cs new file mode 100644 index 00000000..1501cacc --- /dev/null +++ b/PCK-Studio/Classes/IO/Behaviour/BehavioursReader.cs @@ -0,0 +1,53 @@ +using PckStudio.Classes.FileTypes; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PckStudio.Classes.IO.Behaviour +{ + public class BehavioursReader : StreamDataReader + { + public static BehaviourFile Read(Stream stream, bool useLittleEndian) + { + return new BehavioursReader(useLittleEndian).ReadFromStream(stream); + } + + protected BehavioursReader(bool useLittleEndian) : base(useLittleEndian) + { + } + + private BehaviourFile ReadFromStream(Stream stream) + { + BehaviourFile behaviourFile = new BehaviourFile(); + _ = ReadInt(stream); + int riderPosOverrideCount = ReadInt(stream); + for (int i = 0; i < riderPosOverrideCount; i++) + { + string name = ReadString(stream); + var riderPositionOverride = new BehaviourFile.RiderPositionOverride(name); + int posOverideCount = ReadInt(stream); + for (; 0 < posOverideCount; posOverideCount--) + { + var posOverride = new BehaviourFile.RiderPositionOverride.PositionOverride(); + posOverride._1 = ReadBool(stream); + posOverride._2 = ReadBool(stream); + posOverride.x = ReadFloat(stream); + posOverride.y = ReadFloat(stream); + posOverride.z = ReadFloat(stream); + riderPositionOverride.overrides.Add(posOverride); + } + behaviourFile.overrides.Add(riderPositionOverride); + } + return behaviourFile; + } + + private string ReadString(Stream stream) + { + short length = ReadShort(stream); + return ReadString(stream, length, Encoding.ASCII); + } + } +} diff --git a/PCK-Studio/Classes/IO/COL/COLFileReader.cs b/PCK-Studio/Classes/IO/COL/COLFileReader.cs index efa4e214..beaec7be 100644 --- a/PCK-Studio/Classes/IO/COL/COLFileReader.cs +++ b/PCK-Studio/Classes/IO/COL/COLFileReader.cs @@ -19,6 +19,7 @@ namespace PckStudio.Classes.IO.COL { COLFile colourFile = new COLFile(); int has_water_colors = ReadInt(stream); + colourFile.hasWaterTable = has_water_colors > 0; int color_entries = ReadInt(stream); for (int i = 0; i < color_entries; i++) { @@ -32,10 +33,10 @@ namespace PckStudio.Classes.IO.COL for (int i = 0; i < water_color_entries; i++) { string name = ReadString(stream); - uint color = ReadUInt(stream); - uint rgbcolor = ReadUInt(stream); - uint unk = ReadUInt(stream); - colourFile.waterEntries.Add(new ExtendedColorEntry(name, color, rgbcolor, unk)); + uint colorA = ReadUInt(stream); + uint colorB = ReadUInt(stream); + uint colorC = ReadUInt(stream); + colourFile.waterEntries.Add(new ExtendedColorEntry(name, colorA, colorB, colorC)); } } return colourFile; diff --git a/PCK-Studio/Classes/IO/COL/COLFileWriter.cs b/PCK-Studio/Classes/IO/COL/COLFileWriter.cs index 8b254257..93ad6300 100644 --- a/PCK-Studio/Classes/IO/COL/COLFileWriter.cs +++ b/PCK-Studio/Classes/IO/COL/COLFileWriter.cs @@ -31,8 +31,8 @@ namespace PckStudio.Classes.IO.COL { WriteString(stream, colorEntry.name); WriteUInt(stream, colorEntry.color); - WriteUInt(stream, colorEntry.rgbcolor); - WriteUInt(stream, colorEntry.unk); + WriteUInt(stream, colorEntry.color_b); + WriteUInt(stream, colorEntry.color_c); } } } diff --git a/PCK-Studio/Classes/IO/CSMB/CSMBFileReader.cs b/PCK-Studio/Classes/IO/CSMB/CSMBFileReader.cs new file mode 100644 index 00000000..fc5a3758 --- /dev/null +++ b/PCK-Studio/Classes/IO/CSMB/CSMBFileReader.cs @@ -0,0 +1,56 @@ +using System.IO; +using System.Text; +using PckStudio.Classes.FileTypes; + +namespace PckStudio.Classes.IO.CSMB +{ + internal class CSMBFileReader : StreamDataReader + { + public CSMBFile Read(Stream stream) + { + return new CSMBFileReader().ReadFromStream(stream); + } + private CSMBFileReader() : base(false) + { } + + private CSMBFile ReadFromStream(Stream stream) + { + CSMBFile BinFile = new CSMBFile(); + ReadInt(stream); + int NumOfParts = ReadInt(stream); + for(int i = 0; i < NumOfParts; i++) + { + CSMBPart part = new CSMBPart(); + part.Name = ReadString(stream); + part.Parent = (ParentPart)ReadInt(stream); + part.posX = ReadFloat(stream); + part.posY = ReadFloat(stream); + part.posZ = ReadFloat(stream); + part.sizeX = ReadFloat(stream); + part.sizeY = ReadFloat(stream); + part.sizeZ = ReadFloat(stream); + part.uvX = ReadInt(stream); + part.uvY = ReadInt(stream); + part.MirrorTexture = ReadBool(stream); + part.HideWArmour = ReadBool(stream); + part.Inflation = ReadFloat(stream); + BinFile.Parts.Add(part); + } + int NumOfOffsets = ReadInt(stream); + for (int i = 0; i < NumOfOffsets; i++) + { + CSMBOffset offset = new CSMBOffset(); + offset.offsetPart = (OffsetPart)ReadInt(stream); + offset.VerticalOffset = ReadFloat(stream); + BinFile.Offsets.Add(offset); + } + return BinFile; + } + + private string ReadString(Stream stream) + { + short strlen = ReadShort(stream); + return ReadString(stream, strlen, Encoding.ASCII); + } + } +} diff --git a/PCK-Studio/Classes/IO/CSMB/CSMBFileWriter.cs b/PCK-Studio/Classes/IO/CSMB/CSMBFileWriter.cs new file mode 100644 index 00000000..2614c1d4 --- /dev/null +++ b/PCK-Studio/Classes/IO/CSMB/CSMBFileWriter.cs @@ -0,0 +1,50 @@ +using System.IO; +using System.Text; +using PckStudio.Classes.FileTypes; + +namespace PckStudio.Classes.IO.CSMB +{ + internal class CSMBFileWriter : StreamDataWriter + { + public static void Write(Stream stream, CSMBFile file) + { + new CSMBFileWriter().WriteToStream(stream, file); + } + private CSMBFileWriter() : base(false) + { } + + private void WriteToStream(Stream stream, CSMBFile CSMB) + { + WriteInt(stream, 0); + WriteInt(stream, CSMB.Parts.Count); + foreach(CSMBPart part in CSMB.Parts) + { + WriteString(stream, part.Name); + WriteInt(stream, (int)part.Parent); + WriteFloat(stream, part.posX); + WriteFloat(stream, part.posY); + WriteFloat(stream, part.posZ); + WriteFloat(stream, part.sizeX); + WriteFloat(stream, part.sizeY); + WriteFloat(stream, part.sizeZ); + WriteInt(stream, part.uvX); + WriteInt(stream, part.uvY); + WriteBool(stream, part.MirrorTexture); + WriteBool(stream, part.HideWArmour); + WriteFloat(stream, part.Inflation); + } + WriteInt(stream, CSMB.Offsets.Count); + foreach (CSMBOffset offset in CSMB.Offsets) + { + WriteInt(stream, (int)offset.offsetPart); + WriteFloat(stream, offset.VerticalOffset); + } + } + + private void WriteString(Stream stream, string s) + { + WriteShort(stream, (short)s.Length); + WriteString(stream, s, Encoding.ASCII); + } + } +} diff --git a/PCK-Studio/Classes/IO/GRF/GRFFileReader.cs b/PCK-Studio/Classes/IO/GRF/GRFFileReader.cs index 18ba7adf..3a223da3 100644 --- a/PCK-Studio/Classes/IO/GRF/GRFFileReader.cs +++ b/PCK-Studio/Classes/IO/GRF/GRFFileReader.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Text; using ICSharpCode.SharpZipLib.Zip.Compression.Streams; using PckStudio.Classes.Utils; +using System.Diagnostics; namespace PckStudio.Classes.IO.GRF { @@ -85,7 +86,7 @@ namespace PckStudio.Classes.IO.GRF { ReadStringLookUpTable(stream); string Name = GetString(stream); - Console.WriteLine($"[{nameof(GRFFile)}] Root Name: {Name}"); + Debug.WriteLine("[{0}] Root Name: {1}", nameof(GRFFile), Name); ReadGameRuleHierarchy(stream, _file.Root); } @@ -103,9 +104,9 @@ namespace PckStudio.Classes.IO.GRF private void ReadStringLookUpTable(Stream stream) { - int name_count = ReadInt(stream); - StringLookUpTable = new List(name_count); - for (int i = 0; i < name_count; i++) + int tableSize = ReadInt(stream); + StringLookUpTable = new List(tableSize); + for (int i = 0; i < tableSize; i++) { string s = ReadString(stream); StringLookUpTable.Add(s); diff --git a/PCK-Studio/Classes/IO/LOC/LOCFileWriter.cs b/PCK-Studio/Classes/IO/LOC/LOCFileWriter.cs index 158cf2ce..be4a019f 100644 --- a/PCK-Studio/Classes/IO/LOC/LOCFileWriter.cs +++ b/PCK-Studio/Classes/IO/LOC/LOCFileWriter.cs @@ -39,7 +39,7 @@ namespace PckStudio.Classes.IO.LOC private void WriteLanguages(Stream stream, int type) { - _locfile.Languages.ForEach(language => + foreach(var language in _locfile.Languages) { WriteString(stream, language); @@ -58,12 +58,12 @@ namespace PckStudio.Classes.IO.LOC } WriteInt(stream, size); - }); + }; } private void WriteLanguageEntries(Stream stream, int type) { - _locfile.Languages.ForEach(language => + foreach (var language in _locfile.Languages) { WriteInt(stream, 0x6D696B75); // :P stream.WriteByte(0); // <- only write when the previous written int was >0 @@ -75,7 +75,7 @@ namespace PckStudio.Classes.IO.LOC if (type == 0) WriteString(stream, locKey); WriteString(stream, _locfile.LocKeys[locKey][language]); } - }); + }; } private void WriteString(Stream stream, string s) diff --git a/PCK-Studio/Classes/IO/Model/ModelReader.cs b/PCK-Studio/Classes/IO/Model/ModelReader.cs new file mode 100644 index 00000000..5c00479d --- /dev/null +++ b/PCK-Studio/Classes/IO/Model/ModelReader.cs @@ -0,0 +1,77 @@ +using PckStudio.Classes.FileTypes; +using System; +using System.Diagnostics; +using System.IO; +using System.Text; + +namespace PckStudio.Classes.IO.Model +{ + public class ModelReader : StreamDataReader + { + public static ModelFile Read(Stream stream, bool useLittleEndian = false) + { + return new ModelReader(useLittleEndian).ReadFromStream(stream); + } + + private ModelReader(bool useLittleEndian) : base(useLittleEndian) + { + } + + private ModelFile ReadFromStream(Stream stream) + { + var modelFile = new ModelFile(); + int version = ReadInt(stream); + int modelCount = ReadInt(stream); + for (; 0 < modelCount; modelCount--) + { + string name = ReadString(stream); + int width = ReadInt(stream); + int height = ReadInt(stream); + var model = new ModelFile.Model(name, width, height); + + int partCount = ReadInt(stream); + for (; 0 < partCount; partCount--) + { + string partname = ReadString(stream); + float x = ReadFloat(stream); + float y = ReadFloat(stream); + float z = ReadFloat(stream); + + float yaw = ReadFloat(stream); + float pitch = ReadFloat(stream); + float roll = ReadFloat(stream); + var part = new ModelFile.Model.Part(partname, (x, y, z), (yaw, pitch, roll)); + if (version > 0) + { + float _1 = ReadFloat(stream); + float _2 = ReadFloat(stream); + float _3 = ReadFloat(stream); + Debug.WriteLine("[{0}]: {1}, {2}, {3}", nameof(ModelReader), _1, _2, _3); + } + + int boxCount = ReadInt(stream); + for (; 0 < boxCount; boxCount--) + { + var pos = (ReadFloat(stream), ReadFloat(stream), ReadFloat(stream)); + var size = (ReadInt(stream), ReadInt(stream), ReadInt(stream)); + float u = ReadFloat(stream), v = ReadFloat(stream); + float scale = ReadFloat(stream); + bool mirrored = ReadBool(stream); + part.AddBox(pos, size, u, v, scale, mirrored); + } + model.AddPart(part); + } + modelFile.AddModel(model); + + } + return modelFile; + } + + private string ReadString(Stream stream) + { + short length = ReadShort(stream); + return ReadString(stream, length, Encoding.ASCII); + } + + } +} diff --git a/PCK-Studio/Classes/IO/PCK/PCKFileReader.cs b/PCK-Studio/Classes/IO/PCK/PCKFileReader.cs index 6b779233..1c33701a 100644 --- a/PCK-Studio/Classes/IO/PCK/PCKFileReader.cs +++ b/PCK-Studio/Classes/IO/PCK/PCKFileReader.cs @@ -11,7 +11,6 @@ namespace PckStudio.Classes.IO private PCKFile _file; private List LUT; - public static PCKFile Read(Stream stream, bool isLittleEndian) { return new PCKFileReader(isLittleEndian).ReadFromStream(stream); @@ -24,7 +23,7 @@ namespace PckStudio.Classes.IO private PCKFile ReadFromStream(Stream stream) { int pck_type = ReadInt(stream); - if (pck_type > 0xf00000) // 03 00 00 00 == true + if (pck_type > 0xf0_00_00) // 03 00 00 00 == true throw new OverflowException(nameof(pck_type)); _file = new PCKFile(pck_type); ReadLookUpTable(stream); @@ -62,7 +61,8 @@ namespace PckStudio.Classes.IO private void ReadFileContents(Stream stream) { - _file.Files.ForEach( file => { + foreach (var file in _file.Files) + { int property_count = ReadInt(stream); for (; 0 < property_count; property_count--) { @@ -71,7 +71,7 @@ namespace PckStudio.Classes.IO file.properties.Add((key, value)); } stream.Read(file.data, 0, file.size); - }); + }; } private string ReadString(Stream stream) diff --git a/PCK-Studio/Classes/IO/PCK/PCKFileWriter.cs b/PCK-Studio/Classes/IO/PCK/PCKFileWriter.cs index 3dd00e26..d253dd30 100644 --- a/PCK-Studio/Classes/IO/PCK/PCKFileWriter.cs +++ b/PCK-Studio/Classes/IO/PCK/PCKFileWriter.cs @@ -11,17 +11,16 @@ namespace PckStudio.Classes.IO private PCKFile _pckfile; private List LUT = new List(); - public static void Write(Stream stream, PCKFile file, bool isLittleEndian) + public static void Write(Stream stream, PCKFile file, bool isLittleEndian, bool isSkinsPCK = false) { - new PCKFileWriter(file, isLittleEndian).WriteToStream(stream); + new PCKFileWriter(file, isLittleEndian, isSkinsPCK).WriteToStream(stream); } - private PCKFileWriter(PCKFile file, bool isLittleEndian) : base(isLittleEndian) + private PCKFileWriter(PCKFile file, bool isLittleEndian, bool isSkinsPCK) : base(isLittleEndian) { _pckfile = file; LUT = _pckfile.GatherPropertiesList(); - // fix for Skins.pck - if (!file.HasFile("localisation.loc", PCKFile.FileData.FileType.LocalisationFile) && !LUT.Contains("XMLVERSION")) LUT.Insert(0, "XMLVERSION"); + if (!LUT.Contains("XMLVERSION") && isSkinsPCK) LUT.Insert(0, "XMLVERSION"); } private void WriteToStream(Stream stream) @@ -78,4 +77,4 @@ namespace PckStudio.Classes.IO } } } -} +} \ No newline at end of file diff --git a/PCK-Studio/Classes/IO/Sounds/SoundIO.cs b/PCK-Studio/Classes/IO/Sounds/SoundIO.cs index 5815d356..a66f2907 100644 --- a/PCK-Studio/Classes/IO/Sounds/SoundIO.cs +++ b/PCK-Studio/Classes/IO/Sounds/SoundIO.cs @@ -10,15 +10,15 @@ namespace PckStudio.Classes.IO.Sounds { public class SoundIO { - public Dictionary Read(string Filepath) + public Dictionary Read(string Filepath) { var jObj = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(File.ReadAllText(Filepath)); - var dict = JsonConvert.DeserializeObject>(jObj.ToString()); + var dict = JsonConvert.DeserializeObject>(jObj.ToString()); return dict; } - public string Serialize(Dictionary input) + public string Serialize(Dictionary input) { return JsonConvert.SerializeObject(input, Formatting.Indented); } diff --git a/PCK-Studio/Classes/IO/Sounds/Sounds.cs b/PCK-Studio/Classes/IO/Sounds/Sounds.cs index a040eff3..b5350b69 100644 --- a/PCK-Studio/Classes/IO/Sounds/Sounds.cs +++ b/PCK-Studio/Classes/IO/Sounds/Sounds.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace PckStudio.Classes.IO.Sounds { - public class Type + public class SoundInfo { public bool replace { get; set; } public List sounds = new List(); diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.Designer.cs b/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.Designer.cs index 0f269246..08aae1f3 100644 --- a/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.Designer.cs +++ b/PCK-Studio/Forms/Additional-Popups/Animation/ChangeTile.Designer.cs @@ -28,180 +28,169 @@ /// private void InitializeComponent() { - this.acceptBtn = new System.Windows.Forms.Button(); - this.CancelBtn = new System.Windows.Forms.Button(); - this.treeViewBlocks = new System.Windows.Forms.TreeView(); - this.treeViewItems = new System.Windows.Forms.TreeView(); - this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); - this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); - this.metroTextBox1 = new MetroFramework.Controls.MetroTextBox(); - this.metroTabControl1 = new MetroFramework.Controls.MetroTabControl(); - this.Blocks = new System.Windows.Forms.TabPage(); - this.Items = new System.Windows.Forms.TabPage(); - this.metroTabControl1.SuspendLayout(); - this.Blocks.SuspendLayout(); - this.Items.SuspendLayout(); - this.SuspendLayout(); - // - // acceptBtn - // - this.acceptBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.acceptBtn.ForeColor = System.Drawing.Color.White; - this.acceptBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.acceptBtn.Location = new System.Drawing.Point(55, 233); - this.acceptBtn.Name = "acceptBtn"; - this.acceptBtn.Size = new System.Drawing.Size(75, 23); - this.acceptBtn.TabIndex = 7; - this.acceptBtn.Text = "Save"; - this.acceptBtn.UseVisualStyleBackColor = true; - this.acceptBtn.Click += new System.EventHandler(this.AcceptBtn_Click); - // - // CancelBtn - // - this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CancelBtn.ForeColor = System.Drawing.Color.White; - this.CancelBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.CancelBtn.Location = new System.Drawing.Point(135, 233); - this.CancelBtn.Name = "CancelBtn"; - this.CancelBtn.Size = new System.Drawing.Size(75, 23); - this.CancelBtn.TabIndex = 13; - this.CancelBtn.Text = "Cancel"; - this.CancelBtn.UseVisualStyleBackColor = true; - this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); - // - // treeView1 - // - this.treeViewBlocks.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.treeViewBlocks.Dock = System.Windows.Forms.DockStyle.Fill; - this.treeViewBlocks.ForeColor = System.Drawing.Color.White; - this.treeViewBlocks.Location = new System.Drawing.Point(0, 0); - this.treeViewBlocks.Name = "treeView1"; - this.treeViewBlocks.Size = new System.Drawing.Size(184, 125); - this.treeViewBlocks.TabIndex = 14; - this.treeViewBlocks.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViews_AfterSelect); - // - // treeView2 - // - this.treeViewItems.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.treeViewItems.Dock = System.Windows.Forms.DockStyle.Fill; - this.treeViewItems.ForeColor = System.Drawing.Color.White; - this.treeViewItems.Location = new System.Drawing.Point(0, 0); - this.treeViewItems.Name = "treeView2"; - this.treeViewItems.Size = new System.Drawing.Size(184, 125); - this.treeViewItems.TabIndex = 14; - this.treeViewItems.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViews_AfterSelect); - // - // metroLabel1 - // - this.metroLabel1.AutoSize = true; - this.metroLabel1.Location = new System.Drawing.Point(75, 13); - this.metroLabel1.Name = "metroLabel1"; - this.metroLabel1.Size = new System.Drawing.Size(114, 19); - this.metroLabel1.TabIndex = 15; - this.metroLabel1.Text = "Please select a tile"; - this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // metroLabel2 - // - this.metroLabel2.AutoSize = true; - this.metroLabel2.Location = new System.Drawing.Point(36, 35); - this.metroLabel2.Name = "metroLabel2"; - this.metroLabel2.Size = new System.Drawing.Size(46, 19); - this.metroLabel2.TabIndex = 16; - this.metroLabel2.Text = "Filter: "; - this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // metroTextBox1 - // - // - // - // - this.metroTextBox1.CustomButton.Image = null; - this.metroTextBox1.CustomButton.Location = new System.Drawing.Point(113, 1); - this.metroTextBox1.CustomButton.Name = ""; - this.metroTextBox1.CustomButton.Size = new System.Drawing.Size(21, 21); - this.metroTextBox1.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.metroTextBox1.CustomButton.TabIndex = 1; - this.metroTextBox1.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.metroTextBox1.CustomButton.UseSelectable = true; - this.metroTextBox1.CustomButton.Visible = false; - this.metroTextBox1.Lines = new string[0]; - this.metroTextBox1.Location = new System.Drawing.Point(75, 35); - this.metroTextBox1.MaxLength = 32767; - this.metroTextBox1.Name = "metroTextBox1"; - this.metroTextBox1.PasswordChar = '\0'; - this.metroTextBox1.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.metroTextBox1.SelectedText = ""; - this.metroTextBox1.SelectionLength = 0; - this.metroTextBox1.SelectionStart = 0; - this.metroTextBox1.ShortcutsEnabled = true; - this.metroTextBox1.Size = new System.Drawing.Size(135, 23); - this.metroTextBox1.TabIndex = 17; - this.metroTextBox1.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTextBox1.UseSelectable = true; - this.metroTextBox1.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.metroTextBox1.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - this.metroTextBox1.TextChanged += new System.EventHandler(this.filter_TextChanged); - // - // metroTabControl1 - // - this.metroTabControl1.Controls.Add(this.Blocks); - this.metroTabControl1.Controls.Add(this.Items); - this.metroTabControl1.Location = new System.Drawing.Point(36, 60); - this.metroTabControl1.Name = "metroTabControl1"; - this.metroTabControl1.SelectedIndex = 1; - this.metroTabControl1.Size = new System.Drawing.Size(192, 167); - this.metroTabControl1.TabIndex = 18; - this.metroTabControl1.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabControl1.UseSelectable = true; - // - // Blocks - // - this.Blocks.BackColor = System.Drawing.SystemColors.WindowFrame; - this.Blocks.Controls.Add(this.treeViewBlocks); - this.Blocks.Location = new System.Drawing.Point(4, 38); - this.Blocks.Name = "Blocks"; - this.Blocks.Size = new System.Drawing.Size(184, 125); - this.Blocks.TabIndex = 0; - this.Blocks.Text = "Blocks"; - // - // Items - // - this.Items.BackColor = System.Drawing.SystemColors.WindowFrame; - this.Items.Controls.Add(this.treeViewItems); - this.Items.Location = new System.Drawing.Point(4, 38); - this.Items.Name = "Items"; - this.Items.Size = new System.Drawing.Size(184, 125); - this.Items.TabIndex = 0; - this.Items.Text = "Items"; - // - // ChangeTile - // - this.AcceptButton = this.acceptBtn; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.CancelBtn; - this.ClientSize = new System.Drawing.Size(264, 264); - this.ControlBox = false; - this.Controls.Add(this.metroTabControl1); - this.Controls.Add(this.metroTextBox1); - this.Controls.Add(this.metroLabel2); - this.Controls.Add(this.metroLabel1); - this.Controls.Add(this.CancelBtn); - this.Controls.Add(this.acceptBtn); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ChangeTile"; - this.Resizable = false; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTabControl1.ResumeLayout(false); - this.Blocks.ResumeLayout(false); - this.Items.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); + this.acceptBtn = new System.Windows.Forms.Button(); + this.CancelBtn = new System.Windows.Forms.Button(); + this.treeViewBlocks = new System.Windows.Forms.TreeView(); + this.treeViewItems = new System.Windows.Forms.TreeView(); + this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); + this.metroTextBox1 = new MetroFramework.Controls.MetroTextBox(); + this.metroTabControl1 = new MetroFramework.Controls.MetroTabControl(); + this.Blocks = new System.Windows.Forms.TabPage(); + this.Items = new System.Windows.Forms.TabPage(); + this.metroTabControl1.SuspendLayout(); + this.Blocks.SuspendLayout(); + this.Items.SuspendLayout(); + this.SuspendLayout(); + // + // acceptBtn + // + this.acceptBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.acceptBtn.ForeColor = System.Drawing.Color.White; + this.acceptBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.acceptBtn.Location = new System.Drawing.Point(92, 196); + this.acceptBtn.Name = "acceptBtn"; + this.acceptBtn.Size = new System.Drawing.Size(75, 23); + this.acceptBtn.TabIndex = 7; + this.acceptBtn.Text = "Save"; + this.acceptBtn.UseVisualStyleBackColor = true; + this.acceptBtn.Click += new System.EventHandler(this.AcceptBtn_Click); + // + // CancelBtn + // + this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.CancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CancelBtn.ForeColor = System.Drawing.Color.White; + this.CancelBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.CancelBtn.Location = new System.Drawing.Point(172, 196); + this.CancelBtn.Name = "CancelBtn"; + this.CancelBtn.Size = new System.Drawing.Size(75, 23); + this.CancelBtn.TabIndex = 13; + this.CancelBtn.Text = "Cancel"; + this.CancelBtn.UseVisualStyleBackColor = true; + this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); + // + // treeViewBlocks + // + this.treeViewBlocks.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.treeViewBlocks.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeViewBlocks.ForeColor = System.Drawing.Color.White; + this.treeViewBlocks.Location = new System.Drawing.Point(0, 0); + this.treeViewBlocks.Name = "treeViewBlocks"; + this.treeViewBlocks.Size = new System.Drawing.Size(318, 142); + this.treeViewBlocks.TabIndex = 14; + this.treeViewBlocks.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViews_AfterSelect); + // + // treeViewItems + // + this.treeViewItems.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.treeViewItems.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeViewItems.ForeColor = System.Drawing.Color.White; + this.treeViewItems.Location = new System.Drawing.Point(0, 0); + this.treeViewItems.Name = "treeViewItems"; + this.treeViewItems.Size = new System.Drawing.Size(318, 142); + this.treeViewItems.TabIndex = 14; + this.treeViewItems.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViews_AfterSelect); + // + // metroLabel2 + // + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new System.Drawing.Point(133, 19); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new System.Drawing.Size(46, 19); + this.metroLabel2.TabIndex = 16; + this.metroLabel2.Text = "Filter: "; + this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // metroTextBox1 + // + // + // + // + this.metroTextBox1.CustomButton.Image = null; + this.metroTextBox1.CustomButton.Location = new System.Drawing.Point(113, 1); + this.metroTextBox1.CustomButton.Name = ""; + this.metroTextBox1.CustomButton.Size = new System.Drawing.Size(21, 21); + this.metroTextBox1.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.metroTextBox1.CustomButton.TabIndex = 1; + this.metroTextBox1.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.metroTextBox1.CustomButton.UseSelectable = true; + this.metroTextBox1.CustomButton.Visible = false; + this.metroTextBox1.Lines = new string[0]; + this.metroTextBox1.Location = new System.Drawing.Point(173, 18); + this.metroTextBox1.MaxLength = 32767; + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.PasswordChar = '\0'; + this.metroTextBox1.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.metroTextBox1.SelectedText = ""; + this.metroTextBox1.SelectionLength = 0; + this.metroTextBox1.SelectionStart = 0; + this.metroTextBox1.ShortcutsEnabled = true; + this.metroTextBox1.Size = new System.Drawing.Size(156, 23); + this.metroTextBox1.TabIndex = 17; + this.metroTextBox1.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroTextBox1.UseSelectable = true; + this.metroTextBox1.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.metroTextBox1.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.metroTextBox1.TextChanged += new System.EventHandler(this.filter_TextChanged); + // + // metroTabControl1 + // + this.metroTabControl1.Controls.Add(this.Blocks); + this.metroTabControl1.Controls.Add(this.Items); + this.metroTabControl1.Location = new System.Drawing.Point(6, 8); + this.metroTabControl1.Name = "metroTabControl1"; + this.metroTabControl1.SelectedIndex = 0; + this.metroTabControl1.Size = new System.Drawing.Size(326, 184); + this.metroTabControl1.Style = MetroFramework.MetroColorStyle.White; + this.metroTabControl1.TabIndex = 18; + this.metroTabControl1.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroTabControl1.UseSelectable = true; + // + // Blocks + // + this.Blocks.BackColor = System.Drawing.SystemColors.WindowFrame; + this.Blocks.Controls.Add(this.treeViewBlocks); + this.Blocks.Location = new System.Drawing.Point(4, 38); + this.Blocks.Name = "Blocks"; + this.Blocks.Size = new System.Drawing.Size(318, 142); + this.Blocks.TabIndex = 0; + this.Blocks.Text = "Blocks"; + // + // Items + // + this.Items.BackColor = System.Drawing.SystemColors.WindowFrame; + this.Items.Controls.Add(this.treeViewItems); + this.Items.Location = new System.Drawing.Point(4, 38); + this.Items.Name = "Items"; + this.Items.Size = new System.Drawing.Size(318, 142); + this.Items.TabIndex = 0; + this.Items.Text = "Items"; + // + // ChangeTile + // + this.AcceptButton = this.acceptBtn; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.CancelBtn; + this.ClientSize = new System.Drawing.Size(338, 228); + this.ControlBox = false; + this.Controls.Add(this.metroTextBox1); + this.Controls.Add(this.metroLabel2); + this.Controls.Add(this.metroTabControl1); + this.Controls.Add(this.CancelBtn); + this.Controls.Add(this.acceptBtn); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ChangeTile"; + this.Resizable = false; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroTabControl1.ResumeLayout(false); + this.Blocks.ResumeLayout(false); + this.Items.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -215,7 +204,6 @@ private System.Windows.Forms.Button CancelBtn; private System.Windows.Forms.TreeView treeViewBlocks; private System.Windows.Forms.TreeView treeViewItems; - private MetroFramework.Controls.MetroLabel metroLabel1; private MetroFramework.Controls.MetroLabel metroLabel2; private MetroFramework.Controls.MetroTextBox metroTextBox1; private MetroFramework.Controls.MetroTabControl metroTabControl1; diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.Designer.cs b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.Designer.cs index 664d19b9..3c8a510f 100644 --- a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.Designer.cs +++ b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.Designer.cs @@ -29,147 +29,148 @@ namespace PckStudio.Forms.Additional_Popups.Animation /// private void InitializeComponent() { - this.SaveBtn = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.CancelBtn = new System.Windows.Forms.Button(); - this.FrameIndexUpDown = new System.Windows.Forms.NumericUpDown(); - this.FrameTimeUpDown = new System.Windows.Forms.NumericUpDown(); - ((System.ComponentModel.ISupportInitialize)(this.FrameIndexUpDown)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.FrameTimeUpDown)).BeginInit(); - this.SuspendLayout(); - // - // SaveBtn - // - this.SaveBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.SaveBtn.ForeColor = System.Drawing.Color.White; - this.SaveBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.SaveBtn.Location = new System.Drawing.Point(55, 111); - this.SaveBtn.Name = "SaveBtn"; - this.SaveBtn.Size = new System.Drawing.Size(75, 23); - this.SaveBtn.TabIndex = 7; - this.SaveBtn.Text = "Save"; - this.SaveBtn.UseVisualStyleBackColor = true; - this.SaveBtn.Click += new System.EventHandler(this.SaveBtn_Click); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.label2.Location = new System.Drawing.Point(9, 54); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(65, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Frame Index"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.label1.Location = new System.Drawing.Point(9, 83); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(62, 13); - this.label1.TabIndex = 10; - this.label1.Text = "Frame Time"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.label3.Location = new System.Drawing.Point(47, 13); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(109, 13); - this.label3.TabIndex = 12; - this.label3.Text = "may/matt was here :3"; - // - // CancelBtn - // - this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.CancelBtn.ForeColor = System.Drawing.Color.White; - this.CancelBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.CancelBtn.Location = new System.Drawing.Point(135, 111); - this.CancelBtn.Name = "CancelBtn"; - this.CancelBtn.Size = new System.Drawing.Size(75, 23); - this.CancelBtn.TabIndex = 13; - this.CancelBtn.Text = "Cancel"; - this.CancelBtn.UseVisualStyleBackColor = true; - this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); - // - // FrameIndexUpDown - // - this.FrameIndexUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17))))); - this.FrameIndexUpDown.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.FrameIndexUpDown.ForeColor = System.Drawing.SystemColors.Window; - this.FrameIndexUpDown.Location = new System.Drawing.Point(77, 54); - this.FrameIndexUpDown.Maximum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.FrameIndexUpDown.Name = "FrameIndexUpDown"; - this.FrameIndexUpDown.Size = new System.Drawing.Size(179, 20); - this.FrameIndexUpDown.TabIndex = 14; - this.FrameIndexUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FrameTimeUpDown - // - this.FrameTimeUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17))))); - this.FrameTimeUpDown.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.FrameTimeUpDown.ForeColor = System.Drawing.SystemColors.Window; - this.FrameTimeUpDown.Location = new System.Drawing.Point(77, 81); - this.FrameTimeUpDown.Maximum = new decimal(new int[] { + this.components = new System.ComponentModel.Container(); + this.SaveBtn = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.CancelBtn = new System.Windows.Forms.Button(); + this.FrameTimeUpDown = new System.Windows.Forms.NumericUpDown(); + this.FrameList = new System.Windows.Forms.TreeView(); + this.TextureIcons = new System.Windows.Forms.ImageList(this.components); + ((System.ComponentModel.ISupportInitialize)(this.FrameTimeUpDown)).BeginInit(); + this.SuspendLayout(); + // + // SaveBtn + // + this.SaveBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.SaveBtn.ForeColor = System.Drawing.Color.White; + this.SaveBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.SaveBtn.Location = new System.Drawing.Point(12, 228); + this.SaveBtn.Name = "SaveBtn"; + this.SaveBtn.Size = new System.Drawing.Size(75, 23); + this.SaveBtn.TabIndex = 7; + this.SaveBtn.Text = "Save"; + this.SaveBtn.UseVisualStyleBackColor = true; + this.SaveBtn.Click += new System.EventHandler(this.SaveBtn_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label1.Location = new System.Drawing.Point(19, 204); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(62, 13); + this.label1.TabIndex = 10; + this.label1.Text = "Frame Time"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.ForeColor = System.Drawing.Color.White; + this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label3.Location = new System.Drawing.Point(14, 13); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(109, 13); + this.label3.TabIndex = 12; + this.label3.Text = "may/matt was here :3"; + // + // CancelBtn + // + this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.CancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.CancelBtn.ForeColor = System.Drawing.Color.White; + this.CancelBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.CancelBtn.Location = new System.Drawing.Point(92, 228); + this.CancelBtn.Name = "CancelBtn"; + this.CancelBtn.Size = new System.Drawing.Size(75, 23); + this.CancelBtn.TabIndex = 13; + this.CancelBtn.Text = "Cancel"; + this.CancelBtn.UseVisualStyleBackColor = true; + this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); + // + // FrameTimeUpDown + // + this.FrameTimeUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(17)))), ((int)(((byte)(17)))), ((int)(((byte)(17))))); + this.FrameTimeUpDown.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.FrameTimeUpDown.ForeColor = System.Drawing.SystemColors.Window; + this.FrameTimeUpDown.Location = new System.Drawing.Point(87, 202); + this.FrameTimeUpDown.Maximum = new decimal(new int[] { 10000, 0, 0, 0}); - this.FrameTimeUpDown.Name = "FrameTimeUpDown"; - this.FrameTimeUpDown.Size = new System.Drawing.Size(179, 20); - this.FrameTimeUpDown.TabIndex = 15; - this.FrameTimeUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FrameEditor - // - this.AcceptButton = this.SaveBtn; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.CancelBtn; - this.ClientSize = new System.Drawing.Size(264, 140); - this.ControlBox = false; - this.Controls.Add(this.FrameTimeUpDown); - this.Controls.Add(this.FrameIndexUpDown); - this.Controls.Add(this.CancelBtn); - this.Controls.Add(this.label3); - this.Controls.Add(this.label1); - this.Controls.Add(this.SaveBtn); - this.Controls.Add(this.label2); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(266, 142); - this.Name = "FrameEditor"; - this.Resizable = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - ((System.ComponentModel.ISupportInitialize)(this.FrameIndexUpDown)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.FrameTimeUpDown)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); + this.FrameTimeUpDown.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.FrameTimeUpDown.Name = "FrameTimeUpDown"; + this.FrameTimeUpDown.Size = new System.Drawing.Size(73, 20); + this.FrameTimeUpDown.TabIndex = 15; + this.FrameTimeUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.FrameTimeUpDown.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // FrameList + // + this.FrameList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.FrameList.ForeColor = System.Drawing.SystemColors.Window; + this.FrameList.HideSelection = false; + this.FrameList.ImageIndex = 0; + this.FrameList.ImageList = this.TextureIcons; + this.FrameList.Location = new System.Drawing.Point(12, 37); + this.FrameList.Name = "FrameList"; + this.FrameList.SelectedImageIndex = 0; + this.FrameList.ShowLines = false; + this.FrameList.ShowRootLines = false; + this.FrameList.Size = new System.Drawing.Size(155, 159); + this.FrameList.TabIndex = 1; + // + // TextureIcons + // + this.TextureIcons.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; + this.TextureIcons.ImageSize = new System.Drawing.Size(32, 32); + this.TextureIcons.TransparentColor = System.Drawing.Color.Transparent; + // + // FrameEditor + // + this.AcceptButton = this.SaveBtn; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.CancelBtn; + this.ClientSize = new System.Drawing.Size(178, 264); + this.ControlBox = false; + this.Controls.Add(this.FrameList); + this.Controls.Add(this.FrameTimeUpDown); + this.Controls.Add(this.CancelBtn); + this.Controls.Add(this.label3); + this.Controls.Add(this.label1); + this.Controls.Add(this.SaveBtn); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FrameEditor"; + this.Resizable = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + ((System.ComponentModel.ISupportInitialize)(this.FrameTimeUpDown)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); } #endregion - private System.Windows.Forms.Button SaveBtn; - private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label3; private System.Windows.Forms.Button CancelBtn; - private System.Windows.Forms.NumericUpDown FrameIndexUpDown; private System.Windows.Forms.NumericUpDown FrameTimeUpDown; - } + private System.Windows.Forms.TreeView FrameList; + public System.Windows.Forms.ImageList TextureIcons; + public System.Windows.Forms.Button SaveBtn; + } } \ No newline at end of file diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.cs b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.cs index c820c4c3..b994bad1 100644 --- a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.cs +++ b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.cs @@ -15,20 +15,30 @@ namespace PckStudio.Forms.Additional_Popups.Animation { public partial class FrameEditor : MetroForm { - public int FrameTextureIndex => (int)FrameIndexUpDown.Value; + public int FrameTextureIndex => FrameList.SelectedNode.Index; public int FrameTime => (int)FrameTimeUpDown.Value; - public FrameEditor(int indexLimit) + public FrameEditor(ImageList texList) { InitializeComponent(); - label3.Text = "Frame must be within 0 and " + indexLimit + "."; - FrameIndexUpDown.Maximum = indexLimit; - FrameTimeUpDown.Minimum = 1; + label3.Text = "Select a frame and frame time:"; + FrameList.ImageList = texList; + + int index = 0; + foreach (Image frameTex in texList.Images) + { + TreeNode frame = new TreeNode($"Frame {index}", index, index); + FrameList.Nodes.Add(frame); + Console.WriteLine(index); + index++; + } } - public FrameEditor(int frameTime, int frameTextureIndex, int indexLimit) : this(indexLimit) + + public FrameEditor(int frameTime, int frameTextureIndex, ImageList texList) : this(texList) { - FrameIndexUpDown.Value = frameTextureIndex; - FrameTimeUpDown.Value = frameTime; + FrameList.SelectedNode = FrameList.Nodes[frameTextureIndex]; + FrameList.SelectedNode.EnsureVisible(); + FrameTimeUpDown.Value = frameTime; } private void SaveBtn_Click(object sender, EventArgs e) diff --git a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.resx b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.resx index 1af7de15..4d46b116 100644 --- a/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.resx +++ b/PCK-Studio/Forms/Additional-Popups/Animation/FrameEditor.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/PCK-Studio/Forms/Additional-Popups/Job.Designer.cs b/PCK-Studio/Forms/Additional-Popups/Job.Designer.cs deleted file mode 100644 index 6bfb4818..00000000 --- a/PCK-Studio/Forms/Additional-Popups/Job.Designer.cs +++ /dev/null @@ -1,103 +0,0 @@ - -namespace PckStudio.Forms -{ - partial class Job - { - /// - /// 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() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Job)); - this.buttonClose = new System.Windows.Forms.Button(); - this.buttonDonate = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // buttonClose - // - this.buttonClose.BackColor = System.Drawing.Color.Transparent; - this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonClose.Font = new System.Drawing.Font("Segoe UI", 12F); - this.buttonClose.ForeColor = System.Drawing.Color.White; - this.buttonClose.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.buttonClose.Location = new System.Drawing.Point(308, 336); - this.buttonClose.Name = "buttonClose"; - this.buttonClose.Size = new System.Drawing.Size(103, 38); - this.buttonClose.TabIndex = 6; - this.buttonClose.Text = "Close"; - this.buttonClose.UseVisualStyleBackColor = false; - this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); - // - // buttonDonate - // - this.buttonDonate.BackColor = System.Drawing.Color.DarkCyan; - this.buttonDonate.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.buttonDonate.Font = new System.Drawing.Font("Segoe UI", 12F); - this.buttonDonate.ForeColor = System.Drawing.Color.White; - this.buttonDonate.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.buttonDonate.Location = new System.Drawing.Point(163, 336); - this.buttonDonate.Name = "buttonDonate"; - this.buttonDonate.Size = new System.Drawing.Size(134, 38); - this.buttonDonate.TabIndex = 5; - this.buttonDonate.Text = "Join Discord"; - this.buttonDonate.UseVisualStyleBackColor = false; - this.buttonDonate.Click += new System.EventHandler(this.buttonDonate_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.label1.Location = new System.Drawing.Point(19, 31); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(428, 260); - this.label1.TabIndex = 4; - this.label1.Text = resources.GetString("label1.Text"); - // - // Job - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(453, 400); - this.Controls.Add(this.buttonClose); - this.Controls.Add(this.buttonDonate); - this.Controls.Add(this.label1); - this.Name = "Job"; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.Load += new System.EventHandler(this.Job_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button buttonClose; - private System.Windows.Forms.Button buttonDonate; - private System.Windows.Forms.Label label1; - } -} \ No newline at end of file diff --git a/PCK-Studio/Forms/Additional-Popups/Job.cs b/PCK-Studio/Forms/Additional-Popups/Job.cs deleted file mode 100644 index 77ff666f..00000000 --- a/PCK-Studio/Forms/Additional-Popups/Job.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.IO; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using MetroFramework.Forms; - -namespace PckStudio.Forms -{ - public partial class Job : MetroForm - { - public Job() - { - InitializeComponent(); - } - - private void buttonClose_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void Job_Load(object sender, EventArgs e) - { - File.Create(Program.AppData + "\\discordmark"); - } - - private void buttonDonate_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://discord.gg/Byh4hcq25w"); - this.Close(); - } - } -} diff --git a/PCK-Studio/Forms/Additional-Popups/Job.resx b/PCK-Studio/Forms/Additional-Popups/Job.resx deleted file mode 100644 index a356ef87..00000000 --- a/PCK-Studio/Forms/Additional-Popups/Job.resx +++ /dev/null @@ -1,135 +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 - - - Hello users, - - The development of these tools has, and maintains to be, -entertaining and fun, and with the advent of the WiiU -edition growing, I hope to branch out to development for -the WiiU and Xbox360 editions as well, and am currently -researching ways of enabling Developer GUIs in-game. - - If you want to help contribute to the development -of these tools, feel free to join the team I'm creating solely -for this reason, simply open the discord server link below! - -- Felix (PhoenixARC) - - \ No newline at end of file diff --git a/PCK-Studio/Forms/Additional-Popups/goodbye.Designer.cs b/PCK-Studio/Forms/Additional-Popups/goodbye.Designer.cs deleted file mode 100644 index 39b3bc0d..00000000 --- a/PCK-Studio/Forms/Additional-Popups/goodbye.Designer.cs +++ /dev/null @@ -1,83 +0,0 @@ -namespace PckStudio.Forms -{ - partial class goodbye - { - /// - /// 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() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(goodbye)); - this.label1 = new System.Windows.Forms.Label(); - this.buttonDonate = new System.Windows.Forms.Button(); - this.buttonClose = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - resources.ApplyResources(this.label1, "label1"); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Name = "label1"; - // - // buttonDonate - // - this.buttonDonate.BackColor = System.Drawing.Color.DarkCyan; - resources.ApplyResources(this.buttonDonate, "buttonDonate"); - this.buttonDonate.ForeColor = System.Drawing.Color.White; - this.buttonDonate.Name = "buttonDonate"; - this.buttonDonate.UseVisualStyleBackColor = false; - this.buttonDonate.Click += new System.EventHandler(this.buttonDonate_Click); - // - // buttonClose - // - this.buttonClose.BackColor = System.Drawing.Color.Transparent; - resources.ApplyResources(this.buttonClose, "buttonClose"); - this.buttonClose.ForeColor = System.Drawing.Color.White; - this.buttonClose.Name = "buttonClose"; - this.buttonClose.UseVisualStyleBackColor = false; - this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); - // - // goodbye - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.buttonClose); - this.Controls.Add(this.buttonDonate); - this.Controls.Add(this.label1); - this.Name = "goodbye"; - this.Resizable = false; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.Load += new System.EventHandler(this.goodbye_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button buttonDonate; - private System.Windows.Forms.Button buttonClose; - } -} \ No newline at end of file diff --git a/PCK-Studio/Forms/Additional-Popups/goodbye.cs b/PCK-Studio/Forms/Additional-Popups/goodbye.cs deleted file mode 100644 index b9693f75..00000000 --- a/PCK-Studio/Forms/Additional-Popups/goodbye.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace PckStudio.Forms -{ - public partial class goodbye : MetroFramework.Forms.MetroForm - { - public goodbye() - { - InitializeComponent(); - } - - private void buttonDonate_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://cash.app/$PhoenixARC"); - } - - private void buttonClose_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void goodbye_Load(object sender, EventArgs e) - { - System.IO.File.Create(Program.AppData + "\\goodbyemark"); - } - } -} diff --git a/PCK-Studio/Forms/Additional-Popups/goodbye.ja.resx b/PCK-Studio/Forms/Additional-Popups/goodbye.ja.resx deleted file mode 100644 index 6cd67c01..00000000 --- a/PCK-Studio/Forms/Additional-Popups/goodbye.ja.resx +++ /dev/null @@ -1,158 +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 - - - - 411, 280 - - - こんにちはユーザー、 - - これらのツールの開発は、現在も維持されています。 -面白くて楽しい、そしてWiiUの登場とともに -エディションが成長しているので、開発に分岐したいと思っています -WiiUとXbox360のエディションもあり、現在 -ゲーム内で開発者GUIを有効にする方法を研究しています。 - -開発に貢献したい場合 -これらのツールのうち、お気軽に寄付してください -以下のCashappへの選択(Paypalは私が偽物だと思っています -何らかの理由で人... マジ!?) - --フェリックス(PhoenixARC) - - - 200, 384 - - - 寄付 - - - 314, 384 - - - 閉じる - - - 457, 456 - - - 寄付することを忘れないでください - - \ No newline at end of file diff --git a/PCK-Studio/Forms/Additional-Popups/goodbye.resx b/PCK-Studio/Forms/Additional-Popups/goodbye.resx deleted file mode 100644 index 9c1854d9..00000000 --- a/PCK-Studio/Forms/Additional-Popups/goodbye.resx +++ /dev/null @@ -1,244 +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 - - - - Microsoft Sans Serif, 12pt - - - 23, 72 - - - 428, 280 - - - 1 - - - Hello users, - - The development of these tools has, and maintains to be, -entertaining and fun, and with the advent of the WiiU -edition growing, I hope to branch out to development for -the WiiU and Xbox360 editions as well, and am currently -researching ways of enabling Developer GUIs in-game. - - If you want to help contribute to the development -of these tools, feel free to donate an amount of your -choice to the Cashapp below(Paypal thinks I'm a fake -person for some reason smh) - -- Felix (PhoenixARC) - - - label1 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 2 - - - - Flat - - - Segoe UI, 12pt - - - 198, 377 - - - 103, 38 - - - 2 - - - Donate - - - buttonDonate - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - Flat - - - Segoe UI, 12pt - - - 312, 377 - - - 103, 38 - - - 3 - - - Close - - - buttonClose - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - - - True - - - 6, 13 - - - 468, 443 - - - Don't forget to donate - - - goodbye - - - MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - \ No newline at end of file diff --git a/PCK-Studio/Forms/Editor/AnimationEditor.Designer.cs b/PCK-Studio/Forms/Editor/AnimationEditor.Designer.cs index c1adf481..4cb3f54f 100644 --- a/PCK-Studio/Forms/Editor/AnimationEditor.Designer.cs +++ b/PCK-Studio/Forms/Editor/AnimationEditor.Designer.cs @@ -34,6 +34,7 @@ this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); this.addFrameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeFrameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.TextureIcons = new System.Windows.Forms.ImageList(this.components); this.menuStrip = new System.Windows.Forms.MenuStrip(); this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); @@ -51,9 +52,11 @@ this.AnimationPlayBtn = new MetroFramework.Controls.MetroButton(); this.AnimationStopBtn = new MetroFramework.Controls.MetroButton(); this.tileLabel = new MetroFramework.Controls.MetroLabel(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.pictureBoxWithInterpolationMode1 = new PckStudio.PictureBoxWithInterpolationMode(); this.contextMenuStrip1.SuspendLayout(); this.menuStrip.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBoxWithInterpolationMode1)).BeginInit(); this.SuspendLayout(); // @@ -65,10 +68,15 @@ this.frameTreeView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.frameTreeView.ContextMenuStrip = this.contextMenuStrip1; this.frameTreeView.ForeColor = System.Drawing.Color.White; + this.frameTreeView.ImageIndex = 0; + this.frameTreeView.ImageList = this.TextureIcons; this.frameTreeView.Location = new System.Drawing.Point(20, 88); this.frameTreeView.Margin = new System.Windows.Forms.Padding(0); this.frameTreeView.Name = "frameTreeView"; - this.frameTreeView.Size = new System.Drawing.Size(165, 223); + this.frameTreeView.SelectedImageIndex = 0; + this.frameTreeView.ShowLines = false; + this.frameTreeView.ShowRootLines = false; + this.frameTreeView.Size = new System.Drawing.Size(134, 253); this.frameTreeView.TabIndex = 15; this.frameTreeView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.frameTreeView_ItemDrag); this.frameTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.frameTreeView_AfterSelect); @@ -87,7 +95,6 @@ // // addFrameToolStripMenuItem // - this.addFrameToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ExportFile; this.addFrameToolStripMenuItem.Name = "addFrameToolStripMenuItem"; this.addFrameToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.addFrameToolStripMenuItem.Text = "Add Frame"; @@ -95,12 +102,17 @@ // // removeFrameToolStripMenuItem // - this.removeFrameToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Del; this.removeFrameToolStripMenuItem.Name = "removeFrameToolStripMenuItem"; this.removeFrameToolStripMenuItem.Size = new System.Drawing.Size(153, 22); this.removeFrameToolStripMenuItem.Text = "Remove Frame"; this.removeFrameToolStripMenuItem.Click += new System.EventHandler(this.removeFrameToolStripMenuItem_Click); // + // TextureIcons + // + this.TextureIcons.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; + this.TextureIcons.ImageSize = new System.Drawing.Size(32, 32); + this.TextureIcons.TransparentColor = System.Drawing.Color.Transparent; + // // menuStrip // this.menuStrip.AutoSize = false; @@ -146,7 +158,6 @@ // // bulkAnimationSpeedToolStripMenuItem // - this.bulkAnimationSpeedToolStripMenuItem.Image = global::PckStudio.Properties.Resources.clock; this.bulkAnimationSpeedToolStripMenuItem.Name = "bulkAnimationSpeedToolStripMenuItem"; this.bulkAnimationSpeedToolStripMenuItem.Size = new System.Drawing.Size(210, 22); this.bulkAnimationSpeedToolStripMenuItem.Text = "Set Bulk Animation Speed"; @@ -154,7 +165,6 @@ // // importJavaAnimationToolStripMenuItem // - this.importJavaAnimationToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Replace; this.importJavaAnimationToolStripMenuItem.Name = "importJavaAnimationToolStripMenuItem"; this.importJavaAnimationToolStripMenuItem.Size = new System.Drawing.Size(210, 22); this.importJavaAnimationToolStripMenuItem.Text = "Import Java Animation"; @@ -162,7 +172,6 @@ // // exportJavaAnimationToolStripMenuItem // - this.exportJavaAnimationToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ExportFile; this.exportJavaAnimationToolStripMenuItem.Name = "exportJavaAnimationToolStripMenuItem"; this.exportJavaAnimationToolStripMenuItem.Size = new System.Drawing.Size(210, 22); this.exportJavaAnimationToolStripMenuItem.Text = "Export Java Animation"; @@ -170,7 +179,6 @@ // // changeTileToolStripMenuItem // - this.changeTileToolStripMenuItem.Image = global::PckStudio.Properties.Resources.changeTile; this.changeTileToolStripMenuItem.Name = "changeTileToolStripMenuItem"; this.changeTileToolStripMenuItem.Size = new System.Drawing.Size(210, 22); this.changeTileToolStripMenuItem.Text = "Change Tile"; @@ -220,20 +228,21 @@ // this.InterpolationCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.InterpolationCheckbox.AutoSize = true; - this.InterpolationCheckbox.Location = new System.Drawing.Point(188, 338); + this.InterpolationCheckbox.Location = new System.Drawing.Point(161, 63); this.InterpolationCheckbox.Name = "InterpolationCheckbox"; - this.InterpolationCheckbox.Size = new System.Drawing.Size(204, 15); + this.InterpolationCheckbox.Size = new System.Drawing.Size(231, 15); this.InterpolationCheckbox.TabIndex = 17; - this.InterpolationCheckbox.Text = "Interpolates (not simulated above)"; + this.InterpolationCheckbox.Text = "Enable Interpolation (not shown below)"; this.InterpolationCheckbox.Theme = MetroFramework.MetroThemeStyle.Dark; this.InterpolationCheckbox.UseSelectable = true; + this.InterpolationCheckbox.CheckedChanged += new System.EventHandler(this.InterpolationCheckbox_CheckedChanged); // // AnimationPlayBtn // this.AnimationPlayBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.AnimationPlayBtn.Location = new System.Drawing.Point(188, 312); + this.AnimationPlayBtn.Location = new System.Drawing.Point(157, 317); this.AnimationPlayBtn.Name = "AnimationPlayBtn"; - this.AnimationPlayBtn.Size = new System.Drawing.Size(99, 24); + this.AnimationPlayBtn.Size = new System.Drawing.Size(116, 24); this.AnimationPlayBtn.TabIndex = 18; this.AnimationPlayBtn.Text = "Play Animation"; this.AnimationPlayBtn.Theme = MetroFramework.MetroThemeStyle.Dark; @@ -244,9 +253,9 @@ // this.AnimationStopBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.AnimationStopBtn.Enabled = false; - this.AnimationStopBtn.Location = new System.Drawing.Point(293, 312); + this.AnimationStopBtn.Location = new System.Drawing.Point(276, 317); this.AnimationStopBtn.Name = "AnimationStopBtn"; - this.AnimationStopBtn.Size = new System.Drawing.Size(99, 24); + this.AnimationStopBtn.Size = new System.Drawing.Size(116, 24); this.AnimationStopBtn.TabIndex = 19; this.AnimationStopBtn.Text = "Stop Animation"; this.AnimationStopBtn.Theme = MetroFramework.MetroThemeStyle.Dark; @@ -257,23 +266,31 @@ // this.tileLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.tileLabel.AutoSize = true; - this.tileLabel.Location = new System.Drawing.Point(20, 311); + this.tileLabel.Location = new System.Drawing.Point(20, 341); this.tileLabel.MinimumSize = new System.Drawing.Size(170, 19); this.tileLabel.Name = "tileLabel"; - this.tileLabel.Size = new System.Drawing.Size(170, 19); + this.tileLabel.Size = new System.Drawing.Size(57, 19); this.tileLabel.TabIndex = 20; this.tileLabel.Text = "tileLabel"; this.tileLabel.Theme = MetroFramework.MetroThemeStyle.Dark; // + // pictureBox1 + // + this.pictureBox1.Location = new System.Drawing.Point(154, 60); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(244, 24); + this.pictureBox1.TabIndex = 21; + this.pictureBox1.TabStop = false; + // // pictureBoxWithInterpolationMode1 // this.pictureBoxWithInterpolationMode1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.pictureBoxWithInterpolationMode1.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; - this.pictureBoxWithInterpolationMode1.Location = new System.Drawing.Point(188, 88); + this.pictureBoxWithInterpolationMode1.Location = new System.Drawing.Point(157, 88); this.pictureBoxWithInterpolationMode1.Name = "pictureBoxWithInterpolationMode1"; - this.pictureBoxWithInterpolationMode1.Size = new System.Drawing.Size(204, 223); + this.pictureBoxWithInterpolationMode1.Size = new System.Drawing.Size(235, 223); this.pictureBoxWithInterpolationMode1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBoxWithInterpolationMode1.TabIndex = 16; this.pictureBoxWithInterpolationMode1.TabStop = false; @@ -283,10 +300,11 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(412, 362); + this.Controls.Add(this.InterpolationCheckbox); + this.Controls.Add(this.pictureBox1); this.Controls.Add(this.AnimationStopBtn); this.Controls.Add(this.AnimationPlayBtn); this.Controls.Add(this.tileLabel); - this.Controls.Add(this.InterpolationCheckbox); this.Controls.Add(this.pictureBoxWithInterpolationMode1); this.Controls.Add(this.frameTreeView); this.Controls.Add(this.menuStrip); @@ -299,6 +317,7 @@ this.contextMenuStrip1.ResumeLayout(false); this.menuStrip.ResumeLayout(false); this.menuStrip.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBoxWithInterpolationMode1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -329,5 +348,7 @@ private System.Windows.Forms.ToolStripMenuItem editorControlsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem setBulkSpedToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem javaAnimationSupportToolStripMenuItem; + private System.Windows.Forms.ImageList TextureIcons; + private System.Windows.Forms.PictureBox pictureBox1; } } \ No newline at end of file diff --git a/PCK-Studio/Forms/Editor/AnimationEditor.cs b/PCK-Studio/Forms/Editor/AnimationEditor.cs index 003931ee..095947d7 100644 --- a/PCK-Studio/Forms/Editor/AnimationEditor.cs +++ b/PCK-Studio/Forms/Editor/AnimationEditor.cs @@ -143,6 +143,11 @@ namespace PckStudio.Forms.Editor return frames; } + public List GetFrameTextures() + { + return frameTextures; + } + public int GetFrameIndex(Image frameTexture) { _ = frameTexture ?? throw new ArgumentNullException(nameof(frameTexture)); @@ -275,7 +280,9 @@ namespace PckStudio.Forms.Editor InterpolationCheckbox.Checked = currentAnimation.Interpolate; frameTreeView.Nodes.Clear(); // $"Frame: {i}, Frame Time: {Animation.MinimumFrameTime}" - currentAnimation.GetFrames().ForEach(f => frameTreeView.Nodes.Add($"Frame: {currentAnimation.GetFrameIndex(f.Texture)}, Frame Time: {f.Ticks}")); + TextureIcons.Images.Clear(); + TextureIcons.Images.AddRange(currentAnimation.GetFrameTextures().ToArray()); + currentAnimation.GetFrames().ForEach(f => frameTreeView.Nodes.Add("", $"for {f.Ticks} frame" + (f.Ticks > 1 ? "s" : "" ), currentAnimation.GetFrameIndex(f.Texture), currentAnimation.GetFrameIndex(f.Texture))); player.SelectFrame(currentAnimation, 0); } @@ -293,6 +300,8 @@ namespace PckStudio.Forms.Editor private void StartAnimationBtn_Click(object sender, EventArgs e) { + // crash fix: when pushing the play button on occasions, the animation will play twice the intended speed and crash PCK Studio after one iteration + player.Stop(); // force the player to stop before starting AnimationPlayBtn.Enabled = !(AnimationStopBtn.Enabled = !AnimationStopBtn.Enabled); if (currentAnimation.FrameCount > 1) { @@ -418,17 +427,22 @@ namespace PckStudio.Forms.Editor private void treeView1_doubleClick(object sender, EventArgs e) { var frame = currentAnimation.GetFrame(frameTreeView.SelectedNode.Index); - using FrameEditor diag = new FrameEditor(frame.Ticks, currentAnimation.GetFrameIndex(frame.Texture), currentAnimation.FrameTextureCount-1); - if (diag.ShowDialog(this) == DialogResult.OK) + using FrameEditor diag = new FrameEditor(frame.Ticks, currentAnimation.GetFrameIndex(frame.Texture), TextureIcons); + if (diag.ShowDialog(this) == DialogResult.OK) { - currentAnimation.SetFrame(frame, diag.FrameTextureIndex, diag.FrameTime); + /* Found a bug here. When passing the frame variable, it would replace the first instance of that frame and time + * rather than the actual frame that was clicked. I've just switched to passing the index to fix this for now. -Matt + */ + + currentAnimation.SetFrame(frameTreeView.SelectedNode.Index, diag.FrameTextureIndex, diag.FrameTime); LoadAnimationTreeView(); } } private void addFrameToolStripMenuItem_Click(object sender, EventArgs e) { - using FrameEditor diag = new FrameEditor(currentAnimation.FrameTextureCount-1); + using FrameEditor diag = new FrameEditor(TextureIcons); + diag.SaveBtn.Text = "Add"; if (diag.ShowDialog(this) == DialogResult.OK) { currentAnimation.AddFrame(diag.FrameTextureIndex, diag.FrameTime); @@ -605,5 +619,10 @@ namespace PckStudio.Forms.Editor "You can also export your animation as an Java Edition tile animation. It will also export the actual texture in the same spot.", "Java Edition Support"); } + private void InterpolationCheckbox_CheckedChanged(object sender, EventArgs e) + { + // Interpolation flag wasn't being updated when the check box changed, this fixes the issue + currentAnimation.Interpolate = InterpolationCheckbox.Checked; + } } } diff --git a/PCK-Studio/Forms/Editor/AnimationEditor.resx b/PCK-Studio/Forms/Editor/AnimationEditor.resx index 31e8ec68..c3546ac8 100644 --- a/PCK-Studio/Forms/Editor/AnimationEditor.resx +++ b/PCK-Studio/Forms/Editor/AnimationEditor.resx @@ -120,6 +120,9 @@ 125, 17 + + 280, 17 + 17, 17 diff --git a/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs b/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs index e64db857..18fadace 100644 --- a/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs +++ b/PCK-Studio/Forms/Editor/AudioEditor.Designer.cs @@ -43,6 +43,7 @@ namespace PckStudio.Forms.Editor this.creditsEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.deleteUnusedBINKAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openDataFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.bulkReplaceExistingTracksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.howToAddSongsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.whatIsEachCategoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -57,7 +58,6 @@ namespace PckStudio.Forms.Editor this.playOverworldInCreative = new MetroFramework.Controls.MetroCheckBox(); this.compressionUpDown = new System.Windows.Forms.NumericUpDown(); this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); - this.bulkReplaceExistingTracksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.contextMenuStrip1.SuspendLayout(); this.menuStrip.SuspendLayout(); this.contextMenuStrip2.SuspendLayout(); @@ -92,7 +92,6 @@ namespace PckStudio.Forms.Editor // // removeCategoryStripMenuItem // - this.removeCategoryStripMenuItem.Image = global::PckStudio.Properties.Resources.Del; this.removeCategoryStripMenuItem.Name = "removeCategoryStripMenuItem"; resources.ApplyResources(this.removeCategoryStripMenuItem, "removeCategoryStripMenuItem"); this.removeCategoryStripMenuItem.Click += new System.EventHandler(this.removeCategoryStripMenuItem_Click); @@ -148,25 +147,28 @@ namespace PckStudio.Forms.Editor // // creditsEditorToolStripMenuItem // - this.creditsEditorToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ExportFile; this.creditsEditorToolStripMenuItem.Name = "creditsEditorToolStripMenuItem"; resources.ApplyResources(this.creditsEditorToolStripMenuItem, "creditsEditorToolStripMenuItem"); this.creditsEditorToolStripMenuItem.Click += new System.EventHandler(this.creditsEditorToolStripMenuItem_Click); // // deleteUnusedBINKAsToolStripMenuItem // - this.deleteUnusedBINKAsToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Del; this.deleteUnusedBINKAsToolStripMenuItem.Name = "deleteUnusedBINKAsToolStripMenuItem"; resources.ApplyResources(this.deleteUnusedBINKAsToolStripMenuItem, "deleteUnusedBINKAsToolStripMenuItem"); this.deleteUnusedBINKAsToolStripMenuItem.Click += new System.EventHandler(this.deleteUnusedBINKAsToolStripMenuItem_Click); // // openDataFolderToolStripMenuItem // - this.openDataFolderToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ZZFolder; this.openDataFolderToolStripMenuItem.Name = "openDataFolderToolStripMenuItem"; resources.ApplyResources(this.openDataFolderToolStripMenuItem, "openDataFolderToolStripMenuItem"); this.openDataFolderToolStripMenuItem.Click += new System.EventHandler(this.openDataFolderToolStripMenuItem_Click); // + // bulkReplaceExistingTracksToolStripMenuItem + // + this.bulkReplaceExistingTracksToolStripMenuItem.Name = "bulkReplaceExistingTracksToolStripMenuItem"; + resources.ApplyResources(this.bulkReplaceExistingTracksToolStripMenuItem, "bulkReplaceExistingTracksToolStripMenuItem"); + this.bulkReplaceExistingTracksToolStripMenuItem.Click += new System.EventHandler(this.bulkReplaceExistingFilesToolStripMenuItem_Click); + // // helpToolStripMenuItem // this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -238,7 +240,6 @@ namespace PckStudio.Forms.Editor // // removeEntryMenuItem // - this.removeEntryMenuItem.Image = global::PckStudio.Properties.Resources.Del; this.removeEntryMenuItem.Name = "removeEntryMenuItem"; resources.ApplyResources(this.removeEntryMenuItem, "removeEntryMenuItem"); this.removeEntryMenuItem.Click += new System.EventHandler(this.removeEntryMenuItem_Click); @@ -288,12 +289,6 @@ namespace PckStudio.Forms.Editor this.metroLabel1.Name = "metroLabel1"; this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; // - // bulkReplaceExistingTracksToolStripMenuItem - // - this.bulkReplaceExistingTracksToolStripMenuItem.Name = "bulkReplaceExistingTracksToolStripMenuItem"; - resources.ApplyResources(this.bulkReplaceExistingTracksToolStripMenuItem, "bulkReplaceExistingTracksToolStripMenuItem"); - this.bulkReplaceExistingTracksToolStripMenuItem.Click += new System.EventHandler(this.bulkReplaceExistingFilesToolStripMenuItem_Click); - // // AudioEditor // resources.ApplyResources(this, "$this"); diff --git a/PCK-Studio/Forms/Editor/AudioEditor.cs b/PCK-Studio/Forms/Editor/AudioEditor.cs index ad3c0bda..c8956766 100644 --- a/PCK-Studio/Forms/Editor/AudioEditor.cs +++ b/PCK-Studio/Forms/Editor/AudioEditor.cs @@ -21,6 +21,7 @@ namespace PckStudio.Forms.Editor { public string defaultType = "yes"; string tempDir = ""; + Classes.Bink BINK = new Classes.Bink(); PCKAudioFile audioFile = null; PCKFile.FileData audioPCK; LOCFile loc; @@ -54,21 +55,10 @@ namespace PckStudio.Forms.Editor public AudioEditor(PCKFile.FileData file, LOCFile locFile, bool isLittleEndian) { InitializeComponent(); - // so the Creative songs aren't combined until after the forms are closed. - // this will prevent potential problems with editing the categories after merging. loc = locFile; - tempDir = Path.Combine(Directory.GetCurrentDirectory(), "temp"); _isLittleEndian = isLittleEndian; - try - { - handleUtilFiles(); - //library = LoadLibrary(Path.Combine(tempDir, "mss32.dll")); - } - catch (IOException ex) - { - MessageBox.Show("Failed to get Binka conversion files", "Exception thrown"); - Close(); - } + + BINK.SetUpBinka(); audioPCK = file; using (var stream = new MemoryStream(file.data)) @@ -97,45 +87,10 @@ namespace PckStudio.Forms.Editor playOverworldInCreative.Enabled = audioFile.HasCategory(PCKAudioFile.AudioCategory.EAudioType.Creative); } - // https://stackoverflow.com/a/25064568 by Alik Khilazhev -MattNL - private void ExtractResource(string resName, string fName) - { - object ob = Properties.Resources.ResourceManager.GetObject(resName); - byte[] myResBytes = (byte[])ob; - using (FileStream fsDst = new FileStream(fName, FileMode.CreateNew, FileAccess.Write)) - { - byte[] bytes = myResBytes; - fsDst.Write(bytes, 0, bytes.Length); - fsDst.Close(); - fsDst.Dispose(); - } - } - - private void handleUtilFiles(bool extractFiles = true) - { - string asiPath = Path.Combine(tempDir, "binkawin.asi"); - string mssPath = Path.Combine(tempDir, "mss32.dll"); - string encoderPath = Path.Combine(tempDir, "binka_encode.exe"); - - // Deletes files so that System.IO exceptions are avoided - if (File.Exists(asiPath)) File.Delete(asiPath); - if (File.Exists(mssPath)) File.Delete(mssPath); - if (File.Exists(encoderPath)) File.Delete(encoderPath); - if (Directory.Exists(tempDir)) Directory.Delete(tempDir); - - if (extractFiles) - { - Directory.CreateDirectory(tempDir); - ExtractResource("binka_encode", encoderPath); - ExtractResource("mss32", mssPath); - ExtractResource("binkawin", asiPath); - } - } - private void AudioEditor_FormClosed(object sender, FormClosedEventArgs e) { - //FreeLibrary(library); - handleUtilFiles(false); + // Clean up is throwing an error of some kind? FreeLibrary maybe?? + //BINK.CleanUpBinka(); } private void verifyFileLocationToolStripMenuItem_Click(object sender, EventArgs e) @@ -253,33 +208,23 @@ namespace PckStudio.Forms.Editor else if (user_prompt == DialogResult.No) continue; } } - + if (Path.GetExtension(file) == ".wav") // Convert Wave to BINKA { Cursor.Current = Cursors.WaitCursor; pleaseWait waitDiag = new pleaseWait(); waitDiag.Show(this); - int error_code = 0; await Task.Run(() => { - var process = Process.Start(new ProcessStartInfo - { - FileName = Path.Combine(tempDir, "binka_encode.exe"), - Arguments = $"\"{file}\" \"{new_loc}\" -s -b" + compressionUpDown.Value.ToString(), - UseShellExecute = true, - CreateNoWindow = true, - WindowStyle = ProcessWindowStyle.Hidden - }); - process.Start(); - process.WaitForExit(); + BINK.WavToBinka(file, new_loc, (int)compressionUpDown.Value); }); waitDiag.Close(); waitDiag.Dispose(); Cursor.Current = Cursors.Default; - if (error_code != 0) continue; + if (BINK.temp_error_code != 0) continue; } else if (!duplicate_song) { @@ -418,7 +363,7 @@ namespace PckStudio.Forms.Editor private void whatIsEachCategoryToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("Categories are pretty self explanatory. The game controls when each category should play.\n" + - "\nGAMEPLAY - Plays in the specified dimensions.\n" + + "\nGAMEPLAY - Plays in the specified dimensions and game modes.\n" + "-Overworld: Plays in survival mode and in Creative if no songs are set\n" + "-Nether: Nothing special to note.\n" + "-End: Prioritizes the final track when the dragon is alive.\n" + @@ -492,29 +437,27 @@ namespace PckStudio.Forms.Editor pleaseWait waitDiag = new pleaseWait(); waitDiag.Show(this); - int error_code = 0; await Task.Run(() => { - var process = Process.Start(new ProcessStartInfo - { - FileName = Path.Combine(tempDir, "binka_encode.exe"), - Arguments = $"\"{file}\" \"{new_loc}\" -s -b" + compressionUpDown.Value.ToString(), - UseShellExecute = true, - CreateNoWindow = true, - WindowStyle = ProcessWindowStyle.Hidden - }); - process.Start(); - process.WaitForExit(); + BINK.WavToBinka(file, new_loc, (int)compressionUpDown.Value); }); waitDiag.Close(); waitDiag.Dispose(); Cursor.Current = Cursors.Default; - if (error_code != 0) continue; + if (BINK.temp_error_code != 0) continue; } else if(file_ext == ".binka") File.Copy(file, Path.Combine(parent.GetDataPath(), Path.GetFileName(file))); } } + + private void convertToWAVToolStripMenuItem_Click(object sender, EventArgs e) + { + if (treeView2.SelectedNode != null && treeView1.SelectedNode.Tag is PCKAudioFile.AudioCategory) + { + BINK.BinkaToWav(Path.Combine(parent.GetDataPath(), treeView2.SelectedNode.Text + ".binka"), Path.Combine(parent.GetDataPath())); + } + } } } diff --git a/PCK-Studio/Forms/Editor/AudioEditor.resx b/PCK-Studio/Forms/Editor/AudioEditor.resx index 765e9368..909eb320 100644 --- a/PCK-Studio/Forms/Editor/AudioEditor.resx +++ b/PCK-Studio/Forms/Editor/AudioEditor.resx @@ -125,6 +125,26 @@ 127, 8 + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x + DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5 + jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC + + + + 168, 22 + + + Add Category + + + 168, 22 + + + Remove Category + 169, 48 @@ -146,7 +166,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADk - MAAAAk1TRnQBSQFMAgEBCQEAAWABAAFgAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + MAAAAk1TRnQBSQFMAgEBCQEAAXgBAAF4AQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA AwABMAMAAQEBAAEgBgABMBIAAzgB/wM1Af8DNQH/AzMB/wMwAf8DLwH/Ay0B/wMtAf8DJAH/AzsB/wM4 Af8DNQH/Ay0B/wMnAf8DNgH/AzIB/8AAAzgB/wN/Af8DeQH/A3kB/wN5Af8DcQH/A3EB/wN5Af8DeQH/ A3EB/wNxAf8DcQH/A3kB/wN5Af8DfwH/AzIB/8AAAzIB/wN2Af8DsAH/A7AB/wOvAf8DrwH/A68B/wOo @@ -384,38 +404,58 @@ 5 - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x - DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5 - jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC - - - - 168, 22 - - - Add Category - - - 168, 22 - - - Remove Category - 19, 8 False + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8 + QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C + y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga + QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN + 38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC + + + + 98, 22 + + + Save + 37, 20 File + + 220, 22 + + + Credits Editor + + + 220, 22 + + + Delete Unused BINKAs + + + 220, 22 + + + Open Data Folder + + + 220, 22 + + + Bulk Replace Existing Tracks + 46, 20 @@ -423,19 +463,19 @@ Tools - 245, 22 + 243, 22 How to add songs - 245, 22 + 243, 22 What is each category? - 245, 22 + 243, 22 How to edit credits @@ -447,7 +487,7 @@ How to optimize the Data folder - 245, 22 + 243, 22 BINKA Compression @@ -482,48 +522,40 @@ 7 - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8 - QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C - y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga - QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN - 38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC - - - - 180, 22 - - - Save - - - 220, 22 - - - Credits Editor - - - 220, 22 - - - Delete Unused BINKAs - - - 220, 22 - - - Open Data Folder - Top, Bottom, Left, Right 282, 8 + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x + DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5 + jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC + + + + 180, 22 + + + Add Entry + + + 180, 22 + + + Remove Entry + + + 180, 22 + + + Verify File Location + - 174, 70 + 181, 92 contextMenuStrip2 @@ -552,32 +584,6 @@ 6 - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x - DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5 - jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC - - - - 173, 22 - - - Add Entry - - - 173, 22 - - - Remove Entry - - - 173, 22 - - - Verify File Location - True @@ -653,12 +659,6 @@ 2 - - 220, 22 - - - Bulk Replace Existing Tracks - True @@ -731,6 +731,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + bulkReplaceExistingTracksToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + helpToolStripMenuItem @@ -785,12 +791,6 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - bulkReplaceExistingTracksToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - AudioEditor diff --git a/PCK-Studio/Forms/Editor/COLEditor.Designer.cs b/PCK-Studio/Forms/Editor/COLEditor.Designer.cs index eb5110c1..e34d56f4 100644 --- a/PCK-Studio/Forms/Editor/COLEditor.Designer.cs +++ b/PCK-Studio/Forms/Editor/COLEditor.Designer.cs @@ -31,288 +31,385 @@ namespace PckStudio.Forms.Editor /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(COLEditor)); - this.metroPanel1 = new MetroFramework.Controls.MetroPanel(); - this.setColorBtn = new MetroFramework.Controls.MetroButton(); - this.blueUpDown = new System.Windows.Forms.NumericUpDown(); - this.greenUpDown = new System.Windows.Forms.NumericUpDown(); - this.redUpDown = new System.Windows.Forms.NumericUpDown(); - this.alphaUpDown = new System.Windows.Forms.NumericUpDown(); - this.alphaLabel = new MetroFramework.Controls.MetroLabel(); - this.blueLabel = new MetroFramework.Controls.MetroLabel(); - this.greenLabel = new MetroFramework.Controls.MetroLabel(); - this.redLabel = new MetroFramework.Controls.MetroLabel(); - this.colorTextbox = new MetroFramework.Controls.MetroTextBox(); - this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.menuStrip = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.waterTab = new System.Windows.Forms.TabPage(); - this.treeView2 = new System.Windows.Forms.TreeView(); - this.colorsTab = new System.Windows.Forms.TabPage(); - this.treeView1 = new System.Windows.Forms.TreeView(); - this.tabControl = new MetroFramework.Controls.MetroTabControl(); - this.metroPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.blueUpDown)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.greenUpDown)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.redUpDown)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.alphaUpDown)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.menuStrip.SuspendLayout(); - this.waterTab.SuspendLayout(); - this.colorsTab.SuspendLayout(); - this.tabControl.SuspendLayout(); - this.SuspendLayout(); - // - // metroPanel1 - // - this.metroPanel1.Controls.Add(this.setColorBtn); - this.metroPanel1.Controls.Add(this.blueUpDown); - this.metroPanel1.Controls.Add(this.greenUpDown); - this.metroPanel1.Controls.Add(this.redUpDown); - this.metroPanel1.Controls.Add(this.alphaUpDown); - this.metroPanel1.Controls.Add(this.alphaLabel); - this.metroPanel1.Controls.Add(this.blueLabel); - this.metroPanel1.Controls.Add(this.greenLabel); - this.metroPanel1.Controls.Add(this.redLabel); - this.metroPanel1.Controls.Add(this.colorTextbox); - this.metroPanel1.Controls.Add(this.metroLabel1); - this.metroPanel1.Controls.Add(this.pictureBox1); - resources.ApplyResources(this.metroPanel1, "metroPanel1"); - this.metroPanel1.HorizontalScrollbarBarColor = true; - this.metroPanel1.HorizontalScrollbarHighlightOnWheel = false; - this.metroPanel1.HorizontalScrollbarSize = 10; - this.metroPanel1.Name = "metroPanel1"; - this.metroPanel1.Style = MetroFramework.MetroColorStyle.Silver; - this.metroPanel1.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroPanel1.VerticalScrollbarBarColor = true; - this.metroPanel1.VerticalScrollbarHighlightOnWheel = false; - this.metroPanel1.VerticalScrollbarSize = 10; - // - // setColorBtn - // - resources.ApplyResources(this.setColorBtn, "setColorBtn"); - this.setColorBtn.Name = "setColorBtn"; - this.setColorBtn.Theme = MetroFramework.MetroThemeStyle.Dark; - this.setColorBtn.UseSelectable = true; - this.setColorBtn.Click += new System.EventHandler(this.setColorBtn_Click); - // - // blueUpDown - // - this.blueUpDown.BackColor = System.Drawing.SystemColors.Desktop; - this.blueUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - resources.ApplyResources(this.blueUpDown, "blueUpDown"); - this.blueUpDown.Maximum = new decimal(new int[] { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(COLEditor)); + this.metroPanel1 = new MetroFramework.Controls.MetroPanel(); + this.metroTextBox1 = new MetroFramework.Controls.MetroTextBox(); + this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); + this.setColorBtn = new MetroFramework.Controls.MetroButton(); + this.blueUpDown = new System.Windows.Forms.NumericUpDown(); + this.greenUpDown = new System.Windows.Forms.NumericUpDown(); + this.redUpDown = new System.Windows.Forms.NumericUpDown(); + this.alphaUpDown = new System.Windows.Forms.NumericUpDown(); + this.alphaLabel = new MetroFramework.Controls.MetroLabel(); + this.blueLabel = new MetroFramework.Controls.MetroLabel(); + this.greenLabel = new MetroFramework.Controls.MetroLabel(); + this.redLabel = new MetroFramework.Controls.MetroLabel(); + this.colorTextbox = new MetroFramework.Controls.MetroTextBox(); + this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.waterTab = new System.Windows.Forms.TabPage(); + this.waterTreeView = new System.Windows.Forms.TreeView(); + this.ColorContextMenu = new MetroFramework.Controls.MetroContextMenu(this.components); + this.restoreOriginalColorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.underwaterTreeView = new System.Windows.Forms.TreeView(); + this.fogTreeView = new System.Windows.Forms.TreeView(); + this.colorsTab = new System.Windows.Forms.TabPage(); + this.colorTreeView = new System.Windows.Forms.TreeView(); + this.tabControl = new MetroFramework.Controls.MetroTabControl(); + this.underwaterTab = new System.Windows.Forms.TabPage(); + this.fogTab = new System.Windows.Forms.TabPage(); + this.metroPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.blueUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.greenUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.redUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.alphaUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.menuStrip.SuspendLayout(); + this.waterTab.SuspendLayout(); + this.ColorContextMenu.SuspendLayout(); + this.colorsTab.SuspendLayout(); + this.tabControl.SuspendLayout(); + this.underwaterTab.SuspendLayout(); + this.fogTab.SuspendLayout(); + this.SuspendLayout(); + // + // metroPanel1 + // + this.metroPanel1.Controls.Add(this.metroTextBox1); + this.metroPanel1.Controls.Add(this.metroLabel2); + this.metroPanel1.Controls.Add(this.setColorBtn); + this.metroPanel1.Controls.Add(this.blueUpDown); + this.metroPanel1.Controls.Add(this.greenUpDown); + this.metroPanel1.Controls.Add(this.redUpDown); + this.metroPanel1.Controls.Add(this.alphaUpDown); + this.metroPanel1.Controls.Add(this.alphaLabel); + this.metroPanel1.Controls.Add(this.blueLabel); + this.metroPanel1.Controls.Add(this.greenLabel); + this.metroPanel1.Controls.Add(this.redLabel); + this.metroPanel1.Controls.Add(this.colorTextbox); + this.metroPanel1.Controls.Add(this.metroLabel1); + this.metroPanel1.Controls.Add(this.pictureBox1); + resources.ApplyResources(this.metroPanel1, "metroPanel1"); + this.metroPanel1.HorizontalScrollbarBarColor = true; + this.metroPanel1.HorizontalScrollbarHighlightOnWheel = false; + this.metroPanel1.HorizontalScrollbarSize = 10; + this.metroPanel1.Name = "metroPanel1"; + this.metroPanel1.Style = MetroFramework.MetroColorStyle.Silver; + this.metroPanel1.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroPanel1.VerticalScrollbarBarColor = true; + this.metroPanel1.VerticalScrollbarHighlightOnWheel = false; + this.metroPanel1.VerticalScrollbarSize = 10; + // + // metroTextBox1 + // + // + // + // + this.metroTextBox1.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); + this.metroTextBox1.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); + this.metroTextBox1.CustomButton.Name = ""; + this.metroTextBox1.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); + this.metroTextBox1.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.metroTextBox1.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); + this.metroTextBox1.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.metroTextBox1.CustomButton.UseSelectable = true; + this.metroTextBox1.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); + this.metroTextBox1.Lines = new string[0]; + resources.ApplyResources(this.metroTextBox1, "metroTextBox1"); + this.metroTextBox1.MaxLength = 32767; + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.PasswordChar = '\0'; + this.metroTextBox1.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.metroTextBox1.SelectedText = ""; + this.metroTextBox1.SelectionLength = 0; + this.metroTextBox1.SelectionStart = 0; + this.metroTextBox1.ShortcutsEnabled = true; + this.metroTextBox1.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroTextBox1.UseSelectable = true; + this.metroTextBox1.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.metroTextBox1.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.metroTextBox1.TextChanged += new System.EventHandler(this.metroTextBox1_TextChanged); + // + // metroLabel2 + // + resources.ApplyResources(this.metroLabel2, "metroLabel2"); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // setColorBtn + // + resources.ApplyResources(this.setColorBtn, "setColorBtn"); + this.setColorBtn.Name = "setColorBtn"; + this.setColorBtn.Theme = MetroFramework.MetroThemeStyle.Dark; + this.setColorBtn.UseSelectable = true; + this.setColorBtn.Click += new System.EventHandler(this.setColorBtn_Click); + // + // blueUpDown + // + this.blueUpDown.BackColor = System.Drawing.SystemColors.Desktop; + this.blueUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); + resources.ApplyResources(this.blueUpDown, "blueUpDown"); + this.blueUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.blueUpDown.Name = "blueUpDown"; - this.blueUpDown.ValueChanged += new System.EventHandler(this.color_ValueChanged); - // - // greenUpDown - // - this.greenUpDown.BackColor = System.Drawing.SystemColors.Desktop; - this.greenUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - resources.ApplyResources(this.greenUpDown, "greenUpDown"); - this.greenUpDown.Maximum = new decimal(new int[] { + this.blueUpDown.Name = "blueUpDown"; + // + // greenUpDown + // + this.greenUpDown.BackColor = System.Drawing.SystemColors.Desktop; + this.greenUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); + resources.ApplyResources(this.greenUpDown, "greenUpDown"); + this.greenUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.greenUpDown.Name = "greenUpDown"; - this.greenUpDown.ValueChanged += new System.EventHandler(this.color_ValueChanged); - // - // redUpDown - // - this.redUpDown.BackColor = System.Drawing.SystemColors.Desktop; - this.redUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - resources.ApplyResources(this.redUpDown, "redUpDown"); - this.redUpDown.Maximum = new decimal(new int[] { + this.greenUpDown.Name = "greenUpDown"; + // + // redUpDown + // + this.redUpDown.BackColor = System.Drawing.SystemColors.Desktop; + this.redUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); + resources.ApplyResources(this.redUpDown, "redUpDown"); + this.redUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.redUpDown.Name = "redUpDown"; - this.redUpDown.ValueChanged += new System.EventHandler(this.color_ValueChanged); - // - // alphaUpDown - // - this.alphaUpDown.BackColor = System.Drawing.SystemColors.Desktop; - this.alphaUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - resources.ApplyResources(this.alphaUpDown, "alphaUpDown"); - this.alphaUpDown.Maximum = new decimal(new int[] { + this.redUpDown.Name = "redUpDown"; + // + // alphaUpDown + // + this.alphaUpDown.BackColor = System.Drawing.SystemColors.Desktop; + this.alphaUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); + resources.ApplyResources(this.alphaUpDown, "alphaUpDown"); + this.alphaUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.alphaUpDown.Name = "alphaUpDown"; - this.alphaUpDown.ValueChanged += new System.EventHandler(this.color_ValueChanged); - // - // alphaLabel - // - resources.ApplyResources(this.alphaLabel, "alphaLabel"); - this.alphaLabel.Name = "alphaLabel"; - this.alphaLabel.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // blueLabel - // - resources.ApplyResources(this.blueLabel, "blueLabel"); - this.blueLabel.Name = "blueLabel"; - this.blueLabel.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // greenLabel - // - resources.ApplyResources(this.greenLabel, "greenLabel"); - this.greenLabel.Name = "greenLabel"; - this.greenLabel.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // redLabel - // - resources.ApplyResources(this.redLabel, "redLabel"); - this.redLabel.Name = "redLabel"; - this.redLabel.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // colorTextbox - // - // - // - // - this.colorTextbox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); - this.colorTextbox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); - this.colorTextbox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); - this.colorTextbox.CustomButton.Name = ""; - this.colorTextbox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); - this.colorTextbox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.colorTextbox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); - this.colorTextbox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.colorTextbox.CustomButton.UseSelectable = true; - this.colorTextbox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); - this.colorTextbox.Lines = new string[0]; - resources.ApplyResources(this.colorTextbox, "colorTextbox"); - this.colorTextbox.MaxLength = 32767; - this.colorTextbox.Name = "colorTextbox"; - this.colorTextbox.PasswordChar = '\0'; - this.colorTextbox.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.colorTextbox.SelectedText = ""; - this.colorTextbox.SelectionLength = 0; - this.colorTextbox.SelectionStart = 0; - this.colorTextbox.ShortcutsEnabled = true; - this.colorTextbox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.colorTextbox.UseSelectable = true; - this.colorTextbox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.colorTextbox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - this.colorTextbox.TextChanged += new System.EventHandler(this.colorBox_TextChanged); - // - // metroLabel1 - // - resources.ApplyResources(this.metroLabel1, "metroLabel1"); - this.metroLabel1.Name = "metroLabel1"; - this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // pictureBox1 - // - this.pictureBox1.BackColor = System.Drawing.Color.Gray; - resources.ApplyResources(this.pictureBox1, "pictureBox1"); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.TabStop = false; - // - // menuStrip - // - resources.ApplyResources(this.menuStrip, "menuStrip"); - this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.alphaUpDown.Name = "alphaUpDown"; + this.alphaUpDown.ValueChanged += new System.EventHandler(this.alpha_ValueChanged); + // + // alphaLabel + // + resources.ApplyResources(this.alphaLabel, "alphaLabel"); + this.alphaLabel.Name = "alphaLabel"; + this.alphaLabel.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // blueLabel + // + resources.ApplyResources(this.blueLabel, "blueLabel"); + this.blueLabel.Name = "blueLabel"; + this.blueLabel.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // greenLabel + // + resources.ApplyResources(this.greenLabel, "greenLabel"); + this.greenLabel.Name = "greenLabel"; + this.greenLabel.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // redLabel + // + resources.ApplyResources(this.redLabel, "redLabel"); + this.redLabel.Name = "redLabel"; + this.redLabel.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // colorTextbox + // + // + // + // + this.colorTextbox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1"))); + this.colorTextbox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); + this.colorTextbox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1"))); + this.colorTextbox.CustomButton.Name = ""; + this.colorTextbox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1"))); + this.colorTextbox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.colorTextbox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1"))); + this.colorTextbox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.colorTextbox.CustomButton.UseSelectable = true; + this.colorTextbox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1"))); + this.colorTextbox.Lines = new string[0]; + resources.ApplyResources(this.colorTextbox, "colorTextbox"); + this.colorTextbox.MaxLength = 32767; + this.colorTextbox.Name = "colorTextbox"; + this.colorTextbox.PasswordChar = '\0'; + this.colorTextbox.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.colorTextbox.SelectedText = ""; + this.colorTextbox.SelectionLength = 0; + this.colorTextbox.SelectionStart = 0; + this.colorTextbox.ShortcutsEnabled = true; + this.colorTextbox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.colorTextbox.UseSelectable = true; + this.colorTextbox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.colorTextbox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.colorTextbox.TextChanged += new System.EventHandler(this.colorBox_TextChanged); + // + // metroLabel1 + // + resources.ApplyResources(this.metroLabel1, "metroLabel1"); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.Color.Gray; + resources.ApplyResources(this.pictureBox1, "pictureBox1"); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.TabStop = false; + // + // menuStrip + // + resources.ApplyResources(this.menuStrip, "menuStrip"); + this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem}); - this.menuStrip.Name = "menuStrip"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.menuStrip.Name = "menuStrip"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.saveToolStripMenuItem1}); - this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White; - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem"); - // - // saveToolStripMenuItem1 - // - resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1"); - this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1"; - this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click); - // - // waterTab - // - this.waterTab.BackColor = System.Drawing.SystemColors.WindowFrame; - this.waterTab.Controls.Add(this.treeView2); - resources.ApplyResources(this.waterTab, "waterTab"); - this.waterTab.Name = "waterTab"; - // - // treeView2 - // - resources.ApplyResources(this.treeView2, "treeView2"); - this.treeView2.Name = "treeView2"; - this.treeView2.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView2_AfterSelect); - this.treeView2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView2_KeyDown); - // - // colorsTab - // - this.colorsTab.BackColor = System.Drawing.SystemColors.WindowFrame; - this.colorsTab.Controls.Add(this.treeView1); - resources.ApplyResources(this.colorsTab, "colorsTab"); - this.colorsTab.Name = "colorsTab"; - // - // treeView1 - // - resources.ApplyResources(this.treeView1, "treeView1"); - this.treeView1.Name = "treeView1"; - this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); - this.treeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown); - // - // tabControl - // - resources.ApplyResources(this.tabControl, "tabControl"); - this.tabControl.Controls.Add(this.colorsTab); - this.tabControl.Controls.Add(this.waterTab); - this.tabControl.Name = "tabControl"; - this.tabControl.SelectedIndex = 0; - this.tabControl.Style = MetroFramework.MetroColorStyle.White; - this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark; - this.tabControl.UseSelectable = true; - // - // COLEditor - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.menuStrip); - this.Controls.Add(this.tabControl); - this.Controls.Add(this.metroPanel1); - this.ForeColor = System.Drawing.SystemColors.ControlText; - this.Name = "COLEditor"; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroPanel1.ResumeLayout(false); - this.metroPanel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.blueUpDown)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.greenUpDown)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.redUpDown)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.alphaUpDown)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.menuStrip.ResumeLayout(false); - this.menuStrip.PerformLayout(); - this.waterTab.ResumeLayout(false); - this.colorsTab.ResumeLayout(false); - this.tabControl.ResumeLayout(false); - this.ResumeLayout(false); + this.fileToolStripMenuItem.ForeColor = System.Drawing.Color.White; + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem"); + // + // saveToolStripMenuItem1 + // + resources.ApplyResources(this.saveToolStripMenuItem1, "saveToolStripMenuItem1"); + this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1"; + this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click); + // + // waterTab + // + this.waterTab.BackColor = System.Drawing.SystemColors.WindowFrame; + this.waterTab.Controls.Add(this.waterTreeView); + resources.ApplyResources(this.waterTab, "waterTab"); + this.waterTab.Name = "waterTab"; + // + // waterTreeView + // + this.waterTreeView.ContextMenuStrip = this.ColorContextMenu; + resources.ApplyResources(this.waterTreeView, "waterTreeView"); + this.waterTreeView.Name = "waterTreeView"; + this.waterTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView2_AfterSelect); + this.waterTreeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView2_KeyDown); + // + // ColorContextMenu + // + this.ColorContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.restoreOriginalColorToolStripMenuItem}); + this.ColorContextMenu.Name = "ColorContextMenu"; + resources.ApplyResources(this.ColorContextMenu, "ColorContextMenu"); + // + // restoreOriginalColorToolStripMenuItem + // + this.restoreOriginalColorToolStripMenuItem.Name = "restoreOriginalColorToolStripMenuItem"; + resources.ApplyResources(this.restoreOriginalColorToolStripMenuItem, "restoreOriginalColorToolStripMenuItem"); + this.restoreOriginalColorToolStripMenuItem.Click += new System.EventHandler(this.restoreOriginalColorToolStripMenuItem_Click); + // + // underwaterTreeView + // + this.underwaterTreeView.ContextMenuStrip = this.ColorContextMenu; + resources.ApplyResources(this.underwaterTreeView, "underwaterTreeView"); + this.underwaterTreeView.Name = "underwaterTreeView"; + this.underwaterTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView3_AfterSelect); + this.underwaterTreeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView3_KeyDown); + // + // fogTreeView + // + this.fogTreeView.ContextMenuStrip = this.ColorContextMenu; + resources.ApplyResources(this.fogTreeView, "fogTreeView"); + this.fogTreeView.Name = "fogTreeView"; + this.fogTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView4_AfterSelect); + this.fogTreeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView4_KeyDown); + // + // colorsTab + // + this.colorsTab.BackColor = System.Drawing.SystemColors.WindowFrame; + this.colorsTab.Controls.Add(this.colorTreeView); + resources.ApplyResources(this.colorsTab, "colorsTab"); + this.colorsTab.Name = "colorsTab"; + // + // colorTreeView + // + this.colorTreeView.ContextMenuStrip = this.ColorContextMenu; + resources.ApplyResources(this.colorTreeView, "colorTreeView"); + this.colorTreeView.Name = "colorTreeView"; + this.colorTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + this.colorTreeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown); + // + // tabControl + // + resources.ApplyResources(this.tabControl, "tabControl"); + this.tabControl.Controls.Add(this.fogTab); + this.tabControl.Controls.Add(this.colorsTab); + this.tabControl.Controls.Add(this.waterTab); + this.tabControl.Controls.Add(this.underwaterTab); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Style = MetroFramework.MetroColorStyle.White; + this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark; + this.tabControl.UseSelectable = true; + // + // underwaterTab + // + this.underwaterTab.BackColor = System.Drawing.SystemColors.WindowFrame; + this.underwaterTab.Controls.Add(this.underwaterTreeView); + resources.ApplyResources(this.underwaterTab, "underwaterTab"); + this.underwaterTab.Name = "underwaterTab"; + // + // fogTab + // + this.fogTab.BackColor = System.Drawing.SystemColors.WindowFrame; + this.fogTab.Controls.Add(this.fogTreeView); + resources.ApplyResources(this.fogTab, "fogTab"); + this.fogTab.Name = "fogTab"; + // + // COLEditor + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.menuStrip); + this.Controls.Add(this.tabControl); + this.Controls.Add(this.metroPanel1); + this.ForeColor = System.Drawing.SystemColors.ControlText; + this.Name = "COLEditor"; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.metroPanel1.ResumeLayout(false); + this.metroPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.blueUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.greenUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.redUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.alphaUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.waterTab.ResumeLayout(false); + this.ColorContextMenu.ResumeLayout(false); + this.colorsTab.ResumeLayout(false); + this.tabControl.ResumeLayout(false); + this.underwaterTab.ResumeLayout(false); + this.fogTab.ResumeLayout(false); + this.ResumeLayout(false); } #endregion private MetroFramework.Controls.MetroPanel metroPanel1; - private MetroFramework.Controls.MetroTextBox colorTextbox; - private TreeView treeView1; - private TreeView treeView2; - private MetroFramework.Controls.MetroLabel metroLabel1; + private TreeView colorTreeView; + private TreeView waterTreeView; + private TreeView fogTreeView; + private TreeView underwaterTreeView; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.MenuStrip menuStrip; private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; @@ -321,13 +418,21 @@ namespace PckStudio.Forms.Editor private MetroFramework.Controls.MetroLabel greenLabel; private MetroFramework.Controls.MetroLabel redLabel; private MetroFramework.Controls.MetroLabel alphaLabel; - private System.Windows.Forms.NumericUpDown blueUpDown; - private System.Windows.Forms.NumericUpDown greenUpDown; - private System.Windows.Forms.NumericUpDown redUpDown; private System.Windows.Forms.NumericUpDown alphaUpDown; private TabPage waterTab; private TabPage colorsTab; private MetroFramework.Controls.MetroTabControl tabControl; private MetroFramework.Controls.MetroButton setColorBtn; - } + private TabPage underwaterTab; + private TabPage fogTab; + private NumericUpDown blueUpDown; + private NumericUpDown greenUpDown; + private NumericUpDown redUpDown; + private MetroFramework.Controls.MetroTextBox colorTextbox; + private MetroFramework.Controls.MetroLabel metroLabel1; + private MetroFramework.Controls.MetroContextMenu ColorContextMenu; + private ToolStripMenuItem restoreOriginalColorToolStripMenuItem; + private MetroFramework.Controls.MetroTextBox metroTextBox1; + private MetroFramework.Controls.MetroLabel metroLabel2; + } } \ No newline at end of file diff --git a/PCK-Studio/Forms/Editor/COLEditor.cs b/PCK-Studio/Forms/Editor/COLEditor.cs index b91546a7..e6afa9a0 100644 --- a/PCK-Studio/Forms/Editor/COLEditor.cs +++ b/PCK-Studio/Forms/Editor/COLEditor.cs @@ -16,10 +16,16 @@ namespace PckStudio.Forms.Editor { public partial class COLEditor : MetroForm { - COLFile colurfile; + COLFile default_colourfile; + COLFile colourfile; private readonly PCKFile.FileData _file; + List colorCache = new List(); + List waterCache = new List(); + List underwaterCache = new List(); + List fogCache = new List(); + public COLEditor(PCKFile.FileData file) { InitializeComponent(); @@ -27,45 +33,86 @@ namespace PckStudio.Forms.Editor using(var stream = new MemoryStream(file.data)) { - colurfile = COLFileReader.Read(stream); + colourfile = COLFileReader.Read(stream); } - foreach (var obj in colurfile.entries) + using (var stream = new MemoryStream(Properties.Resources.colours)) { - TreeNode tn = new TreeNode(obj.name); - tn.Tag = obj; - treeView1.Nodes.Add(tn); + default_colourfile = COLFileReader.Read(stream); } - foreach (var obj in colurfile.waterEntries) + + SetUpDefaultTable(); + } + + void SetUpDefaultTable() + { + foreach (var obj in default_colourfile.entries) { + COLFile.ColorEntry entry = colourfile.entries.Find(color => color.name == obj.name); TreeNode tn = new TreeNode(obj.name); - tn.Tag = obj; - treeView2.Nodes.Add(tn); + tn.Tag = entry != null ? entry : obj; + colorTreeView.Nodes.Add(tn); + colorCache.Add(tn); + } + foreach (var obj in default_colourfile.waterEntries) + { + COLFile.ExtendedColorEntry entry = colourfile.waterEntries.Find(color => color.name == obj.name); + TreeNode tn = new TreeNode(obj.name); + tn.Tag = entry != null ? entry : obj; + waterTreeView.Nodes.Add(tn); + waterCache.Add(tn); + TreeNode tnB = new TreeNode(obj.name); + tnB.Tag = entry != null ? entry : obj; + underwaterTreeView.Nodes.Add(tnB); + underwaterCache.Add(tnB); + TreeNode tnC = new TreeNode(obj.name); + tnC.Tag = entry != null ? entry : obj; + fogTreeView.Nodes.Add(tnC); + fogCache.Add(tnC); + } + } + + void SetUpValueChanged(bool add) + { + if(add) + { + //alphaUpDown.ValueChanged += color_ValueChanged; + redUpDown.ValueChanged += color_ValueChanged; + greenUpDown.ValueChanged += color_ValueChanged; + blueUpDown.ValueChanged += color_ValueChanged; + } + else + { + //alphaUpDown.ValueChanged -= color_ValueChanged; + redUpDown.ValueChanged -= color_ValueChanged; + greenUpDown.ValueChanged -= color_ValueChanged; + blueUpDown.ValueChanged -= color_ValueChanged; } } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { - if (treeView1.SelectedNode.Tag == null) + if (colorTreeView.SelectedNode.Tag == null) return; - - var colorEntry = (COLFile.ColorEntry)treeView1.SelectedNode.Tag; + var colorEntry = (COLFile.ColorEntry)colorTreeView.SelectedNode.Tag; + var color = colorEntry.color; + SetUpValueChanged(false); alphaUpDown.Visible = false; alphaLabel.Visible = false; - var color = colorEntry.color; redUpDown.Value = color >> 16 & 0xff; greenUpDown.Value = color >> 8 & 0xff; blueUpDown.Value = color & 0xff; pictureBox1.BackColor = Color.FromArgb(0xff << 24 | (int)color); - + SetUpValueChanged(true); } private void treeView2_AfterSelect(object sender, TreeViewEventArgs e) { - if (treeView2.SelectedNode.Tag == null) + if (waterTreeView.SelectedNode.Tag == null) return; - var colorEntry = (COLFile.ExtendedColorEntry)treeView2.SelectedNode.Tag; + var colorEntry = (COLFile.ExtendedColorEntry)waterTreeView.SelectedNode.Tag; int color = (int)colorEntry.color; + SetUpValueChanged(false); alphaUpDown.Enabled = true; alphaUpDown.Visible = true; alphaLabel.Visible = true; @@ -74,12 +121,70 @@ namespace PckStudio.Forms.Editor greenUpDown.Value = color >> 8 & 0xff; blueUpDown.Value = color & 0xff; pictureBox1.BackColor = Color.FromArgb(color); + SetUpValueChanged(true); } + + private void treeView3_AfterSelect(object sender, TreeViewEventArgs e) + { + if (underwaterTreeView.SelectedNode.Tag == null) + return; + var colorEntry = (COLFile.ExtendedColorEntry)underwaterTreeView.SelectedNode.Tag; + int color = (int)colorEntry.color_b; + SetUpValueChanged(false); + alphaUpDown.Visible = false; + alphaLabel.Visible = false; + redUpDown.Value = color >> 16 & 0xff; + greenUpDown.Value = color >> 8 & 0xff; + blueUpDown.Value = color & 0xff; + pictureBox1.BackColor = Color.FromArgb(255, Color.FromArgb(0xff << 24 | color)); + SetUpValueChanged(true); + } + + private void treeView4_AfterSelect(object sender, TreeViewEventArgs e) + { + if (fogTreeView.SelectedNode.Tag == null) + return; + var colorEntry = (COLFile.ExtendedColorEntry)fogTreeView.SelectedNode.Tag; + int color = (int)colorEntry.color_c; + SetUpValueChanged(false); + alphaUpDown.Visible = false; + alphaLabel.Visible = false; + redUpDown.Value = color >> 16 & 0xff; + greenUpDown.Value = color >> 8 & 0xff; + blueUpDown.Value = color & 0xff; + pictureBox1.BackColor = Color.FromArgb(255, Color.FromArgb(0xff << 24 | color)); + SetUpValueChanged(true); + } + private void saveToolStripMenuItem1_Click(object sender, EventArgs e) { + List PS4Biomes = new List(); + PS4Biomes.Add("bamboo_jungle"); + PS4Biomes.Add("bamboo_jungle_hills"); + PS4Biomes.Add("mesa_mutated"); + PS4Biomes.Add("mega_spruce_taiga_mutated"); + PS4Biomes.Add("mega_taiga_mutated"); + + if (colourfile.waterEntries.Find(e => PS4Biomes.Contains(e.name)) != null) + { + var result = MessageBox.Show(this, "Biomes exclusive to PS4 Edition v1.91 were found in the water section of this colour table. This will crash all other editions of the game and PS4 Edition v1.90 and below. Would you like to remove them?", "Potentially unsupported biomes found", MessageBoxButtons.YesNoCancel); + switch (result) + { + case DialogResult.Yes: + foreach (var col in colourfile.waterEntries.ToList()) + { + if(PS4Biomes.Contains(col.name)) colourfile.waterEntries.Remove(col); + } + break; + case DialogResult.No: + break; + default: + return; + } + } using (var stream = new MemoryStream()) { - COLFileWriter.Write(stream, colurfile); + COLFileWriter.Write(stream, colourfile); _file.SetData(stream.ToArray()); } DialogResult = DialogResult.OK; @@ -108,24 +213,40 @@ namespace PckStudio.Forms.Editor public void treeView1_KeyDown(object sender, KeyEventArgs e) { - var node = treeView1.SelectedNode; + var node = colorTreeView.SelectedNode; if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ColorEntry colorInfo) { - colurfile.entries.Remove(colorInfo); - if (treeView1.Nodes.Count > 0) treeView1.Nodes.Remove(node); - } + restoreOriginalColorToolStripMenuItem_Click(sender, e); + } } private void treeView2_KeyDown(object sender, KeyEventArgs e) { - var node = treeView2.SelectedNode; - if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry) + var node = waterTreeView.SelectedNode; + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry colorInfo) { - colurfile.waterEntries.Remove((COLFile.ExtendedColorEntry)node.Tag); - if (treeView2.Nodes.Count > 0) treeView2.Nodes.Remove(node); - } + restoreOriginalColorToolStripMenuItem_Click(sender, e); + } } + private void treeView3_KeyDown(object sender, KeyEventArgs e) + { + var node = underwaterTreeView.SelectedNode; + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry colorInfo) + { + restoreOriginalColorToolStripMenuItem_Click(sender, e); + } + } + + private void treeView4_KeyDown(object sender, KeyEventArgs e) + { + var node = fogTreeView.SelectedNode; + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry colorInfo) + { + restoreOriginalColorToolStripMenuItem_Click(sender, e); + } + } + private void colorBox_TextChanged(object sender, EventArgs e) { //TreeView tv = (TreeView)tabControl.SelectedTab.Controls[0]; @@ -153,52 +274,28 @@ namespace PckStudio.Forms.Editor private void color_ValueChanged(object sender, EventArgs e) { - //TreeView tv = (TreeView)tabControl.SelectedTab.Controls[0]; - //if (tv.SelectedNode == null) return; - //byte[] origHex = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString()); - //bool hasAlpha = tabControl.SelectedTab == waterTab; - //string hex = ""; - //if (((NumericUpDown)sender).Name == "numericUpDown2") - //{ - // hex += ((int)alphaUpDown.Value).ToString("X2"); - // hex += origHex[1].ToString("X2"); - // hex += origHex[2].ToString("X2"); - // hex += origHex[3].ToString("X2"); - //} - //else if (((NumericUpDown)sender).Name == "numericUpDown3") - //{ - // if (hasAlpha) hex += origHex[0].ToString("X2"); - // hex += ((int)redUpDown.Value).ToString("X2"); - // hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); - // hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); - //} - //else if (((NumericUpDown)sender).Name == "numericUpDown4") - //{ - // if (hasAlpha) hex += origHex[0].ToString("X2"); - // hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); - // hex += ((int)greenUpDown.Value).ToString("X2"); - // hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); - //} - //else if (((NumericUpDown)sender).Name == "numericUpDown5") - //{ - // if (hasAlpha) hex += origHex[0].ToString("X2"); - // hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); - // hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); - // hex += ((int)blueUpDown.Value).ToString("X2"); - //} - //else // just in case some weird thing happens i dunno - matt - //{ - // if (hasAlpha) hex += origHex[0].ToString("X2"); - // hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); - // hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); - // hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); - //} + Color fixed_color = new Color(); + if (tabControl.SelectedTab == colorsTab) + { + var colorEntry = (COLFile.ColorEntry)colorTreeView.SelectedNode.Tag; + fixed_color = Color.FromArgb(255, (int)redUpDown.Value, (int)greenUpDown.Value, (int)blueUpDown.Value); + colorEntry.color = (uint)(((255 << 24) | (fixed_color.R << 16) | (fixed_color.G << 8) | fixed_color.B) & 0xffffffffL); + } + else if (tabControl.SelectedTab != null) // just in case + { + var colorEntry = (COLFile.ExtendedColorEntry)waterTreeView.SelectedNode.Tag; + fixed_color = Color.FromArgb(tabControl.SelectedTab == waterTab ? (int)alphaUpDown.Value : 255, (int)redUpDown.Value, (int)greenUpDown.Value, (int)blueUpDown.Value); + uint value = (uint)(((fixed_color.A << 24) | (fixed_color.R << 16) | (fixed_color.G << 8) | fixed_color.B) & 0xffffffffL); + if (tabControl.SelectedTab == waterTab) colorEntry.color = value; + else if (tabControl.SelectedTab == underwaterTab) colorEntry.color_b = value; + else colorEntry.color_c = value; + fixed_color = Color.FromArgb((int)value); + } - //Console.WriteLine(hex); - //colorTextbox.Text = hex; + pictureBox1.BackColor = fixed_color; } - private void setColorBtn_Click(object sender, EventArgs e) + private void setColorBtn_Click(object sender, EventArgs e) { ColorDialog colorPick = new ColorDialog(); colorPick.AllowFullOpen = true; @@ -206,19 +303,180 @@ namespace PckStudio.Forms.Editor colorPick.SolidColorOnly = tabControl.SelectedTab == colorsTab; if (colorPick.ShowDialog() != DialogResult.OK) return; pictureBox1.BackColor = colorPick.Color; - if (tabControl.SelectedTab == waterTab && treeView2.SelectedNode != null && - treeView2.SelectedNode.Tag != null && treeView2.SelectedNode.Tag is COLFile.ExtendedColorEntry) + if (tabControl.SelectedTab == waterTab && waterTreeView.SelectedNode != null && + waterTreeView.SelectedNode.Tag != null && waterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry) { - var colorEntry = ((COLFile.ExtendedColorEntry)treeView2.SelectedNode.Tag); - colorEntry.color = (uint)colorPick.Color.ToArgb(); + var colorEntry = ((COLFile.ExtendedColorEntry)waterTreeView.SelectedNode.Tag); + // preserves the alpha so the user can handle it since the color picker doesn't support alpha + Color fixed_color = Color.FromArgb(Color.FromArgb((int)colorEntry.color).A, colorPick.Color); + colorEntry.color = (uint)fixed_color.ToArgb(); + pictureBox1.BackColor = fixed_color; + redUpDown.Value = colorPick.Color.R; + greenUpDown.Value = colorPick.Color.G; + blueUpDown.Value = colorPick.Color.B; } - else if (tabControl.SelectedTab == colorsTab && treeView1.SelectedNode != null && - treeView1.SelectedNode.Tag != null && treeView1.SelectedNode.Tag is COLFile.ColorEntry) + else if (tabControl.SelectedTab == underwaterTab && underwaterTreeView.SelectedNode != null && + underwaterTreeView.SelectedNode.Tag != null && underwaterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry) { - var colorEntry = ((COLFile.ColorEntry)treeView1.SelectedNode.Tag); + var colorEntry = ((COLFile.ExtendedColorEntry)underwaterTreeView.SelectedNode.Tag); + // the game doesn't care about the alpha value for underwater colors + colorEntry.color_b = (uint)Color.FromArgb(0, colorPick.Color).ToArgb(); + redUpDown.Value = colorPick.Color.R; + greenUpDown.Value = colorPick.Color.G; + blueUpDown.Value = colorPick.Color.B; + } + else if (tabControl.SelectedTab == fogTab && fogTreeView.SelectedNode != null && + fogTreeView.SelectedNode.Tag != null && fogTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry) + { + var colorEntry = ((COLFile.ExtendedColorEntry)fogTreeView.SelectedNode.Tag); + // the game doesn't care about the alpha value for fog colors + colorEntry.color_c = (uint)Color.FromArgb(0, colorPick.Color).ToArgb(); + redUpDown.Value = colorPick.Color.R; + greenUpDown.Value = colorPick.Color.G; + blueUpDown.Value = colorPick.Color.B; + } + else if (tabControl.SelectedTab == colorsTab && colorTreeView.SelectedNode != null && + colorTreeView.SelectedNode.Tag != null && colorTreeView.SelectedNode.Tag is COLFile.ColorEntry) + { + var colorEntry = ((COLFile.ColorEntry)colorTreeView.SelectedNode.Tag); colorEntry.color = (uint)colorPick.Color.ToArgb() & 0xffffff; + redUpDown.Value = colorPick.Color.R; + greenUpDown.Value = colorPick.Color.G; + blueUpDown.Value = colorPick.Color.B; } colorPick.Dispose(); } - } + + private void alpha_ValueChanged(object sender, EventArgs e) + { + if (tabControl.SelectedTab == waterTab && waterTreeView.SelectedNode != null && + waterTreeView.SelectedNode.Tag != null && waterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry) + { + var colorEntry = ((COLFile.ExtendedColorEntry)waterTreeView.SelectedNode.Tag); + Color fixed_color = Color.FromArgb((int)alphaUpDown.Value, Color.FromArgb((int)colorEntry.color)); + colorEntry.color = (uint)fixed_color.ToArgb(); + pictureBox1.BackColor = fixed_color; + } + } + + private void restoreOriginalColorToolStripMenuItem_Click(object sender, EventArgs e) + { + SetUpValueChanged(false); + if (tabControl.SelectedTab == colorsTab && colorTreeView.SelectedNode != null && + colorTreeView.SelectedNode.Tag != null && colorTreeView.SelectedNode.Tag is COLFile.ColorEntry colorInfoD) + { + COLFile.ColorEntry entry = default_colourfile.entries.Find(color => color.name == colorTreeView.SelectedNode.Text); + colorInfoD.color = entry.color; + redUpDown.Value = colorInfoD.color >> 16 & 0xff; + greenUpDown.Value = colorInfoD.color >> 8 & 0xff; + blueUpDown.Value = colorInfoD.color & 0xff; + pictureBox1.BackColor = Color.FromArgb(0xff << 24 | (int)colorInfoD.color); + } + else if (tabControl.SelectedTab == waterTab && waterTreeView.SelectedNode != null && + waterTreeView.SelectedNode.Tag != null && waterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry colorInfo) + { + COLFile.ExtendedColorEntry entry = default_colourfile.waterEntries.Find(color => color.name == waterTreeView.SelectedNode.Text); + colorInfo.color = entry.color; + alphaUpDown.Value = colorInfo.color >> 24 & 0xff; + redUpDown.Value = colorInfo.color >> 16 & 0xff; + greenUpDown.Value = colorInfo.color >> 8 & 0xff; + blueUpDown.Value = colorInfo.color & 0xff; + pictureBox1.BackColor = Color.FromArgb((int)colorInfo.color); + } + else if (tabControl.SelectedTab == underwaterTab && underwaterTreeView.SelectedNode != null && + underwaterTreeView.SelectedNode.Tag != null && underwaterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry colorInfoB) + { + COLFile.ExtendedColorEntry entry = default_colourfile.waterEntries.Find(color => color.name == underwaterTreeView.SelectedNode.Text); + colorInfoB.color_b = entry.color_b; + alphaUpDown.Value = colorInfoB.color_b >> 24 & 0xff; + redUpDown.Value = colorInfoB.color_b >> 16 & 0xff; + greenUpDown.Value = colorInfoB.color_b >> 8 & 0xff; + blueUpDown.Value = colorInfoB.color_b & 0xff; + pictureBox1.BackColor = Color.FromArgb(0xff << 24 | (int)colorInfoB.color_b); + } + else if (tabControl.SelectedTab == fogTab && fogTreeView.SelectedNode != null && + fogTreeView.SelectedNode.Tag != null && fogTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry colorInfoC) + { + COLFile.ExtendedColorEntry entry = default_colourfile.waterEntries.Find(color => color.name == fogTreeView.SelectedNode.Text); + colorInfoC.color_c = entry.color_c; + alphaUpDown.Value = colorInfoC.color_c >> 24 & 0xff; + redUpDown.Value = colorInfoC.color_c >> 16 & 0xff; + greenUpDown.Value = colorInfoC.color_c >> 8 & 0xff; + blueUpDown.Value = colorInfoC.color_c & 0xff; + pictureBox1.BackColor = Color.FromArgb(0xff << 24 | (int)colorInfoC.color_c); + } + SetUpValueChanged(true); + } + + private void metroTextBox1_TextChanged(object sender, EventArgs e) + { + // Some code in this function is modified code from this StackOverflow answer - MattNL + //https://stackoverflow.com/questions/8260322/filter-a-treeview-with-a-textbox-in-a-c-sharp-winforms-app + + //blocks repainting tree until all objects loaded + colorTreeView.BeginUpdate(); + colorTreeView.Nodes.Clear(); + waterTreeView.BeginUpdate(); + waterTreeView.Nodes.Clear(); + underwaterTreeView.BeginUpdate(); + underwaterTreeView.Nodes.Clear(); + fogTreeView.BeginUpdate(); + fogTreeView.Nodes.Clear(); + if (!string.IsNullOrEmpty(metroTextBox1.Text)) + { + foreach (TreeNode _node in colorCache) + { + if (_node.Text.ToLower().Contains(metroTextBox1.Text.ToLower())) + { + colorTreeView.Nodes.Add((TreeNode)_node.Clone()); + } + } + foreach (TreeNode _node in waterCache) + { + if (_node.Text.ToLower().Contains(metroTextBox1.Text.ToLower())) + { + waterTreeView.Nodes.Add((TreeNode)_node.Clone()); + } + } + foreach (TreeNode _node in underwaterCache) + { + if (_node.Text.ToLower().Contains(metroTextBox1.Text.ToLower())) + { + underwaterTreeView.Nodes.Add((TreeNode)_node.Clone()); + } + } + foreach (TreeNode _node in fogCache) + { + if (_node.Text.ToLower().Contains(metroTextBox1.Text.ToLower())) + { + fogTreeView.Nodes.Add((TreeNode)_node.Clone()); + } + } + } + else + { + foreach (TreeNode _node in colorCache) + { + colorTreeView.Nodes.Add((TreeNode)_node.Clone()); + } + foreach (TreeNode _node in waterCache) + { + waterTreeView.Nodes.Add((TreeNode)_node.Clone()); + } + foreach (TreeNode _node in underwaterCache) + { + underwaterTreeView.Nodes.Add((TreeNode)_node.Clone()); + } + foreach (TreeNode _node in fogCache) + { + fogTreeView.Nodes.Add((TreeNode)_node.Clone()); + } + } + //enables redrawing tree after all objects have been added + colorTreeView.EndUpdate(); + waterTreeView.EndUpdate(); + underwaterTreeView.EndUpdate(); + fogTreeView.EndUpdate(); + } + } } diff --git a/PCK-Studio/Forms/Editor/COLEditor.resx b/PCK-Studio/Forms/Editor/COLEditor.resx index 04429f14..2a9bbf20 100644 --- a/PCK-Studio/Forms/Editor/COLEditor.resx +++ b/PCK-Studio/Forms/Editor/COLEditor.resx @@ -117,179 +117,74 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - setColorBtn - - - MetroFramework.Controls.MetroButton, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 2 - - - blueUpDown - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 3 - - - greenUpDown - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 4 - - - redUpDown - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 5 - - - alphaUpDown - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 6 - - - alphaLabel - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 7 - - - blueLabel - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 8 - - - greenLabel - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 9 - - - redLabel - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 10 - - - colorTextbox - - - MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 11 - - - metroLabel1 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 12 - - - pictureBox1 - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 13 - - - Fill + + - - 20, 60 + + 113, 1 - - 612, 523 + + 21, 21 - - 0 + + 1 - + + False + + + 101, 27 + + + 135, 23 + + + 24 + + + metroTextBox1 + + + MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + metroPanel1 - - MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - $this - - + 2 + + True + + + 62, 27 + + + 46, 19 + + + 23 + + + Filter: + + + metroLabel2 + + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 3 + - 343, 290 + 400, 290 125, 23 @@ -310,10 +205,10 @@ metroPanel1 - 2 + 4 - 343, 397 + 400, 397 125, 20 @@ -331,10 +226,10 @@ metroPanel1 - 3 + 5 - 343, 371 + 400, 371 125, 20 @@ -352,10 +247,10 @@ metroPanel1 - 4 + 6 - 343, 345 + 400, 345 125, 20 @@ -373,10 +268,10 @@ metroPanel1 - 5 + 7 - 343, 319 + 400, 319 125, 20 @@ -397,13 +292,13 @@ metroPanel1 - 6 + 8 True - 310, 320 + 367, 320 21, 19 @@ -427,13 +322,13 @@ metroPanel1 - 7 + 9 True - 311, 395 + 368, 395 20, 19 @@ -454,13 +349,13 @@ metroPanel1 - 8 + 10 True - 310, 371 + 367, 371 21, 19 @@ -481,13 +376,13 @@ metroPanel1 - 9 + 11 True - 311, 345 + 368, 345 20, 19 @@ -508,28 +403,28 @@ metroPanel1 - 10 + 12 - + NoControl - + 103, 1 - + 21, 21 - + 1 - + False - 343, 423 + 400, 423 125, 23 @@ -547,13 +442,13 @@ metroPanel1 - 11 + 13 True - 285, 423 + 342, 423 46, 19 @@ -574,10 +469,10 @@ metroPanel1 - 12 + 14 - 295, 92 + 378, 92 173, 173 @@ -595,7 +490,31 @@ metroPanel1 - 13 + 15 + + + Fill + + + 20, 60 + + + 612, 523 + + + 0 + + + metroPanel1 + + + MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + $this + + + 3 17, 17 @@ -603,6 +522,28 @@ False + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8 + QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C + y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga + QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN + 38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC + + + + 98, 22 + + + Save + + + 37, 20 + + + File + 20, 60 @@ -625,53 +566,64 @@ $this + 1 + + + 125, 17 + + + 186, 22 + + + Restore original color + + + 187, 26 + + + ColorContextMenu + + + MetroFramework.Controls.MetroContextMenu, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + Fill + + + 0, 0 + + + No + + + 320, 381 + + 0 - - 37, 20 + + waterTreeView - - File - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8 - QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C - y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga - QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN - 38gYasBfqDYE0K7dOn/Wvut/sfkdGYPUgJI9VNuAAwYGAGn6yvdevWgPAAAAAElFTkSuQmCC - - - - 98, 22 - - - Save - - - treeView2 - - + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + waterTab - + 0 4, 38 - 186, 458 + 320, 381 1 - Water Colors + Water waterTab @@ -683,58 +635,85 @@ tabControl - 1 + 2 - - Fill - - + 0, 0 - - No + + 320, 381 - - 186, 458 - - + 0 - - treeView2 + + underwaterTreeView - + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - waterTab + + underwaterTab - + 0 - - treeView1 + + 0, 0 - + + 320, 381 + + + 0 + + + fogTreeView + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + fogTab + + + 0 + + + Fill + + + 0, 0 + + + 320, 381 + + + 0 + + + colorTreeView + + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + colorsTab - + 0 4, 38 - 186, 458 + 320, 381 0 - Normal Colors + Everything colorsTab @@ -746,40 +725,64 @@ tabControl - 0 - - - Fill - - - 0, 0 - - - 186, 458 - - - 0 - - - treeView1 - - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - colorsTab - - - 0 + 1 Top, Bottom, Left + + 4, 38 + + + 320, 381 + + + 3 + + + Underwater Fog + + + fogTab + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl + + + 0 + + + 4, 38 + + + 320, 381 + + + 2 + + + Underwater + + + underwaterTab + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl + + + 3 + - 20, 83 + 23, 114 - 194, 500 + 328, 423 22 @@ -794,7 +797,7 @@ $this - 1 + 2 True @@ -3332,6 +3335,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + restoreOriginalColorToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + COLEditor diff --git a/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs b/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs index 6dfb3289..e5033f4f 100644 --- a/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs +++ b/PCK-Studio/Forms/Skins-And-Textures/generateModel.cs @@ -33,32 +33,32 @@ namespace PckStudio [Flags] enum eANIMFlags { - DisableArmSwinging = 1 << 0, - ZombieArms = 1 << 1, - LockFootAnimation = 1 << 2, - unk_BIT3 = 1 << 3, - unk_BIT4 = 1 << 4, - BothLegsSwingParallel = 1 << 5, - unk_BIT6 = 1 << 6, - MainArmUp = 1 << 7, - DisableArmor = 1 << 8, - unk_BIT9 = 1 << 9, - DisableHead = 1 << 10, - DisableLeftArm = 1 << 11, - DisableRightArm = 1 << 12, - DiableBody = 1 << 13, - DiableRightLeg = 1 << 14, - DiableLeftLeg = 1 << 15, - R2D2Sneak = 1 << 16, - DisableHeadOverlay = 1 << 17, - Is64x64 = 1 << 18, - HasSlimArms = 1 << 19, - DisableLeftArmOverlay = 1 << 20, - DisableRightArmOverlay = 1 << 21, - DisableLeftLegOverlay = 1 << 22, - DisableRightLegOverlay = 1 << 23, - DisableBodyOverlay = 1 << 24, - RenderUpSideDown = 1 << 31, + DisableArmSwinging = 1 << 0, + ZombieArms = 1 << 1, + LockFootAnimation = 1 << 2, + SitWhileIdle = 1 << 3, + unk_BIT4 = 1 << 4, + BothLegsSwingParallel = 1 << 5, + BothArmsSwingParallel = 1 << 6, + MainArmUp = 1 << 7, + DisableArmor = 1 << 8, + DisableBobbing = 1 << 9, + DisableHead = 1 << 10, + DisableLeftArm = 1 << 11, + DisableRightArm = 1 << 12, + DiableBody = 1 << 13, + DiableRightLeg = 1 << 14, + DiableLeftLeg = 1 << 15, + BackwardsSneak = 1 << 16, + DisableHeadOverlay = 1 << 17, + Is64x64 = 1 << 18, + HasSlimArms = 1 << 19, + DisableLeftArmOverlay = 1 << 20, + DisableRightArmOverlay = 1 << 21, + DisableLeftLegOverlay = 1 << 22, + DisableRightLegOverlay = 1 << 23, + DisableBodyOverlay = 1 << 24, + RenderUpSideDown = 1 << 31, } eANIMFlags ANIM = 0; @@ -74,7 +74,7 @@ namespace PckStudio ValueTuple ToProperty() { - return new ValueTuple("ANIM", "0x"+ANIM.ToString("x8")); + return new ValueTuple("ANIM", "0x" + ANIM.ToString("x8")); } @@ -182,8 +182,6 @@ namespace PckStudio InitializeComponent(); boxes = skinProperties; skinPreview = preview; - buttonIMPORT.Enabled = false; - buttonEXPORT.Enabled = false; if (texturePreview.Image == null) texturePreview.Image = new Bitmap(64, 64); loadData(); @@ -275,7 +273,7 @@ namespace PckStudio { ANIM = (eANIMFlags)int.Parse(property.Item2, System.Globalization.NumberStyles.HexNumber); } - catch(Exception ex) + catch (Exception ex) { Console.WriteLine(ex.Message); } @@ -307,8 +305,8 @@ namespace PckStudio // makes sure it reders/draws the full pixel in top left corner graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; int headbodyY = (displayBox.Height / 2) + 25; // 25 - int armY = (displayBox.Height / 2) + 35; // -60; - int legY = (displayBox.Height / 2) + 85; // -80; + int armY = (displayBox.Height / 2) + 35; // -60; + int legY = (displayBox.Height / 2) + 85; // -80; int groundLevel = (displayBox.Height / 2) + 145; graphics.DrawLine(Pens.White, 0, groundLevel, displayBox.Width, groundLevel); // Chooses Render settings based on current direction @@ -509,11 +507,11 @@ namespace PckStudio case "ARM1": y = armY + int.Parse(offsetArms.Text) * 5; break; - + case "LEG0": y = legY + int.Parse(offsetLegs.Text) * 5; break; - + case "LEG1": y = legY + int.Parse(offsetLegs.Text) * 5; break; @@ -753,76 +751,76 @@ namespace PckStudio } while (checkedItems < listViewBoxes.Items.Count); } else if (direction == eViewDirection.right) + { + int checkedItems = 0; + do { - int checkedItems = 0; - do + foreach (ListViewItem listViewItem1 in listViewBoxes.Items) { - foreach (ListViewItem listViewItem1 in listViewBoxes.Items) + if (listViewItem1.SubItems[listViewItem1.SubItems.Count - 1].Text == "unchecked") { - if (listViewItem1.SubItems[listViewItem1.SubItems.Count - 1].Text == "unchecked") + int x = 0; + if (listViewItem1.Tag.ToString() == "HEAD") + x = displayBox.Width / 2; + else if (listViewItem1.Tag.ToString() == "BODY") + x = displayBox.Width / 2; + else if (listViewItem1.Tag.ToString() == "ARM0") + x = 178; + else if (listViewItem1.Tag.ToString() == "ARM1") + x = 228; + else if (listViewItem1.Tag.ToString() == "LEG0") + x = 193; + else if (listViewItem1.Tag.ToString() == "LEG1") + x = 213; + bool flag = false; + int index = listViewItem1.Index; + foreach (ListViewItem listViewItem2 in listViewBoxes.Items) { - int x = 0; - if (listViewItem1.Tag.ToString() == "HEAD") - x = displayBox.Width / 2; - else if (listViewItem1.Tag.ToString() == "BODY") - x = displayBox.Width / 2; - else if (listViewItem1.Tag.ToString() == "ARM0") - x = 178; - else if (listViewItem1.Tag.ToString() == "ARM1") - x = 228; - else if (listViewItem1.Tag.ToString() == "LEG0") - x = 193; - else if (listViewItem1.Tag.ToString() == "LEG1") - x = 213; - bool flag = false; - int index = listViewItem1.Index; - foreach (ListViewItem listViewItem2 in listViewBoxes.Items) + if (listViewItem2.SubItems[9].Text == "unchecked") { - if (listViewItem2.SubItems[9].Text == "unchecked") + int y = 0; + if (listViewItem2.Tag.ToString() == "HEAD") + y = displayBox.Width / 2; + else if (listViewItem2.Tag.ToString() == "BODY") + y = displayBox.Width / 2; + else if (listViewItem2.Tag.ToString() == "ARM0") + y = 178; + else if (listViewItem2.Tag.ToString() == "ARM1") + y = 228; + else if (listViewItem2.Tag.ToString() == "LEG0") + y = 193; + else if (listViewItem2.Tag.ToString() == "LEG1") + y = 213; + if ((int)double.Parse(listViewItem1.SubItems[1].Text) + (int)double.Parse(listViewItem1.SubItems[4].Text) - x > (int)double.Parse(listViewItem2.SubItems[1].Text) + (int)double.Parse(listViewItem2.SubItems[4].Text) + y && listViewItem2.Index + 1 < this.listViewBoxes.Items.Count + 1) { - int y = 0; - if (listViewItem2.Tag.ToString() == "HEAD") - y = displayBox.Width / 2; - else if (listViewItem2.Tag.ToString() == "BODY") - y = displayBox.Width / 2; - else if (listViewItem2.Tag.ToString() == "ARM0") - y = 178; - else if (listViewItem2.Tag.ToString() == "ARM1") - y = 228; - else if (listViewItem2.Tag.ToString() == "LEG0") - y = 193; - else if (listViewItem2.Tag.ToString() == "LEG1") - y = 213; - if ((int)double.Parse(listViewItem1.SubItems[1].Text) + (int)double.Parse(listViewItem1.SubItems[4].Text) - x > (int)double.Parse(listViewItem2.SubItems[1].Text) + (int)double.Parse(listViewItem2.SubItems[4].Text) + y && listViewItem2.Index + 1 < this.listViewBoxes.Items.Count + 1) - { - index = listViewItem2.Index + 1; - flag = true; - } + index = listViewItem2.Index + 1; + flag = true; } } - listViewItem1.SubItems[9].Text = "checked"; - checkedItems += 1; - if (flag == true) - { - ListViewItem listViewItem2 = (ListViewItem)listViewItem1.Clone(); - listViewBoxes.Items.Insert(index, listViewItem2); - if (listViewBoxes.SelectedItems.Count != 0) - { - //if (selected.Index == listViewItem1.Index) - //{ - // selected = listViewItem2; - //} - } - listViewItem1.Remove(); - } } - else + listViewItem1.SubItems[9].Text = "checked"; + checkedItems += 1; + if (flag == true) { - checkedItems += 1; + ListViewItem listViewItem2 = (ListViewItem)listViewItem1.Clone(); + listViewBoxes.Items.Insert(index, listViewItem2); + if (listViewBoxes.SelectedItems.Count != 0) + { + //if (selected.Index == listViewItem1.Index) + //{ + // selected = listViewItem2; + //} + } + listViewItem1.Remove(); } } - } while (checkedItems < listViewBoxes.Items.Count); - } + else + { + checkedItems += 1; + } + } + } while (checkedItems < listViewBoxes.Items.Count); + } } private void DrawGuideLines(Graphics g) @@ -834,14 +832,14 @@ namespace PckStudio bool isSide = direction == eViewDirection.left || direction == eViewDirection.right; if (!isSide) { - g.DrawLine(Pens.Red, 0, headbodyY + float.Parse(offsetHead.Text) * 5, displayBox.Width, headbodyY + float.Parse(offsetHead.Text) * 5); - g.DrawLine(Pens.Green, 0, headbodyY + float.Parse(offsetBody.Text) * 5, displayBox.Width, headbodyY + float.Parse(offsetBody.Text) * 5); - g.DrawLine(Pens.Blue, 0, headbodyY + float.Parse(offsetArms.Text) * 5, displayBox.Width, headbodyY + float.Parse(offsetArms.Text) * 5); - g.DrawLine(Pens.Purple, 0, legY + float.Parse(offsetLegs.Text) * 5, displayBox.Width, legY + float.Parse(offsetLegs.Text) * 5); + g.DrawLine(Pens.Red, 0, headbodyY + float.Parse(offsetHead.Text) * 5, displayBox.Width, headbodyY + float.Parse(offsetHead.Text) * 5); + g.DrawLine(Pens.Green, 0, headbodyY + float.Parse(offsetBody.Text) * 5, displayBox.Width, headbodyY + float.Parse(offsetBody.Text) * 5); + g.DrawLine(Pens.Blue, 0, headbodyY + float.Parse(offsetArms.Text) * 5, displayBox.Width, headbodyY + float.Parse(offsetArms.Text) * 5); + g.DrawLine(Pens.Purple, 0, legY + float.Parse(offsetLegs.Text) * 5, displayBox.Width, legY + float.Parse(offsetLegs.Text) * 5); } - g.DrawLine(Pens.Red, centerWidthPoint, 0, centerWidthPoint, displayBox.Height); - g.DrawLine(Pens.Blue, centerWidthPoint + 30, 0, centerWidthPoint + 30, displayBox.Height); - g.DrawLine(Pens.Blue, centerWidthPoint - 30, 0, centerWidthPoint - 30, displayBox.Height); + g.DrawLine(Pens.Red, centerWidthPoint, 0, centerWidthPoint, displayBox.Height); + g.DrawLine(Pens.Blue, centerWidthPoint + 30, 0, centerWidthPoint + 30, displayBox.Height); + g.DrawLine(Pens.Blue, centerWidthPoint - 30, 0, centerWidthPoint - 30, displayBox.Height); g.DrawLine(Pens.Purple, centerWidthPoint - 10, 0, centerWidthPoint - 10, displayBox.Height); g.DrawLine(Pens.Purple, centerWidthPoint + 10, 0, centerWidthPoint + 10, displayBox.Height); } @@ -880,7 +878,7 @@ namespace PckStudio //Loads Columns private void generateModel_Load(object sender, EventArgs e) { - if (Screen.PrimaryScreen.Bounds.Height >= 780 && Screen.PrimaryScreen.Bounds.Width >= 1080){ + if (Screen.PrimaryScreen.Bounds.Height >= 780 && Screen.PrimaryScreen.Bounds.Width >= 1080) { return; } render(); @@ -956,7 +954,7 @@ namespace PckStudio private void SizeYUpDown_ValueChanged(object sender, EventArgs e) { - if (listViewBoxes.SelectedItems.Count != 0 && + if (listViewBoxes.SelectedItems.Count != 0 && listViewBoxes.SelectedItems[0].Tag is ModelPart) { var part = listViewBoxes.SelectedItems[0].Tag as ModelPart; @@ -980,7 +978,7 @@ namespace PckStudio private void PosXUpDown_ValueChanged(object sender, EventArgs e) { - if (listViewBoxes.SelectedItems.Count != 0 && + if (listViewBoxes.SelectedItems.Count != 0 && listViewBoxes.SelectedItems[0].Tag is ModelPart) { var part = listViewBoxes.SelectedItems[0].Tag as ModelPart; @@ -993,7 +991,7 @@ namespace PckStudio private void PosYUpDown_ValueChanged(object sender, EventArgs e) { - if (listViewBoxes.SelectedItems.Count != 0 && + if (listViewBoxes.SelectedItems.Count != 0 && listViewBoxes.SelectedItems[0].Tag is ModelPart) { var part = listViewBoxes.SelectedItems[0].Tag as ModelPart; @@ -1124,6 +1122,7 @@ namespace PckStudio graphics.InterpolationMode = InterpolationMode.NearestNeighbor; } skinPreview.Image = bitmap1; + texturePreview.Image.Save(Application.StartupPath + "\\temp.png"); Close(); } @@ -1223,71 +1222,36 @@ namespace PckStudio { listViewBoxes.Items.Clear(); string str1 = File.ReadAllText(openFileDialog.FileName); - int x = 0; - foreach (string str2 in str1.Split("\n\r".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)) - ++x; - int y = x / 11; - ListView listView = new ListView(); - int num3 = 0; - do + + modelParts.Clear(); + List lines = str1.Split(new[] { "\n\r", "\n" }, StringSplitOptions.None).ToList(); + if (string.IsNullOrEmpty(lines[lines.Count - 1])) + lines.RemoveAt(lines.Count - 1); + int currentLine = 0; + int passedlines = 0; + for (int i = 0; i < lines.Count;) { - listView.Items.Add("BOX"); - ++num3; - } - while (num3 < y); - IEnumerator enumerator = listView.Items.GetEnumerator(); - try - { - label_33: - if (enumerator.MoveNext()) - { - ListViewItem current = (ListViewItem)enumerator.Current; - ListViewItem listViewItem = new ListViewItem(); - int num4 = 0; - do - { - foreach (string text in str1.Split("\n\r".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)) - { - ++num4; - if (num4 == 1 + 11 * current.Index) - listViewItem.Text = text; - else if (num4 == 2 + 11 * current.Index) - listViewItem.Tag = text; - else if (num4 == 4 + 11 * current.Index) - listViewItem.SubItems.Add(text); - else if (num4 == 5 + 11 * current.Index) - listViewItem.SubItems.Add(text); - else if (num4 == 6 + 11 * current.Index) - listViewItem.SubItems.Add(text); - else if (num4 == 7 + 11 * current.Index) - listViewItem.SubItems.Add(text); - else if (num4 == 8 + 11 * current.Index) - listViewItem.SubItems.Add(text); - else if (num4 == 9 + 11 * current.Index) - listViewItem.SubItems.Add(text); - else if (num4 == 10 + 11 * current.Index) - listViewItem.SubItems.Add(text); - else if (num4 == 11 + 11 * current.Index) - { - listViewItem.SubItems.Add(text); - listViewBoxes.Items.Add(listViewItem); - } - } - } - while (num4 < x); - goto label_33; - } - } - finally - { - IDisposable disposable = enumerator as IDisposable; - if (disposable != null) - disposable.Dispose(); + string name = lines[0 + passedlines]; + string parent = lines[1 + passedlines]; + float PosX = float.Parse(lines[3 + passedlines]); + float PosY = float.Parse(lines[4 + passedlines]); + float PosZ = float.Parse(lines[5 + passedlines]); + float SizeX = float.Parse(lines[6 + passedlines]); + float SizeY = float.Parse(lines[7 + passedlines]); + float SizeZ = float.Parse(lines[8 + passedlines]); + int UvX = int.Parse(lines[9 + passedlines]); + int UvY = int.Parse(lines[10 + passedlines]); + passedlines += 11; + i += 11; + modelParts.Add(new ModelPart(parent, PosX, PosY, PosZ, SizeX, SizeY, SizeZ, UvX, UvY)); } } + comboParent.Enabled = true; + updateListView(); render(); } + //Clones Item private void cloneToolStripMenuItem_Click(object sender, EventArgs e) { diff --git a/PCK-Studio/Forms/Skins-And-Textures/generateModel.resx b/PCK-Studio/Forms/Skins-And-Textures/generateModel.resx index e07040e4..25d00a81 100644 --- a/PCK-Studio/Forms/Skins-And-Textures/generateModel.resx +++ b/PCK-Studio/Forms/Skins-And-Textures/generateModel.resx @@ -610,7 +610,7 @@ myTablePanel2 - PckStudio.Forms.MyTablePanel, PCK Studio, Version=5.3.0.0, Culture=neutral, PublicKeyToken=null + PckStudio.Forms.MyTablePanel, PCK-Studio, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null tabPage1 @@ -825,9 +825,6 @@ 30 - - False - Flat @@ -888,9 +885,6 @@ 25 - - False - Flat diff --git a/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs b/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs index a681590f..7d206485 100644 --- a/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs +++ b/PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs @@ -28,707 +28,707 @@ /// private void InitializeComponent() { - this.closeButton = new MetroFramework.Controls.MetroButton(); - this.effectsGroup = new System.Windows.Forms.GroupBox(); - this.rightLegOCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.headOCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.leftLegOCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.leftArmOCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.bodyOCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.rightLegCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.slimCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.headCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.leftLegCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.rightArmCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.leftArmCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.bodyCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.classicCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.rightArmOCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.effectsGroup2 = new System.Windows.Forms.GroupBox(); - this.rightLeggingCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.helmetCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.leftLeggingCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.rightArmorCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.leftArmorCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.chestplateCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.unknownCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.crouchCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.dinnerboneCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.noArmorCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.bobbingCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.santaCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.syncLegsCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.staticArmsCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.syncArmsCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.statueCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.zombieCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.staticLegsCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.copyButton = new MetroFramework.Controls.MetroButton(); - this.importButton = new MetroFramework.Controls.MetroButton(); - this.exportButton = new MetroFramework.Controls.MetroButton(); - this.animValue = new MetroFramework.Controls.MetroLabel(); - this.uncheckButton = new MetroFramework.Controls.MetroButton(); - this.checkButton = new MetroFramework.Controls.MetroButton(); - this.toolTip = new MetroFramework.Components.MetroToolTip(); - this.resetButton = new MetroFramework.Controls.MetroButton(); - this.templateButton = new MetroFramework.Controls.MetroButton(); - this.effectsGroup.SuspendLayout(); - this.effectsGroup2.SuspendLayout(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // closeButton - // - this.closeButton.Location = new System.Drawing.Point(250, 514); - this.closeButton.Name = "closeButton"; - this.closeButton.Size = new System.Drawing.Size(126, 23); - this.closeButton.TabIndex = 1; - this.closeButton.Text = "Save"; - this.closeButton.Theme = MetroFramework.MetroThemeStyle.Dark; - this.closeButton.UseSelectable = true; - this.closeButton.Click += new System.EventHandler(this.closeButton_Click); - // - // effectsGroup - // - this.effectsGroup.Controls.Add(this.rightLegOCheckBox); - this.effectsGroup.Controls.Add(this.headOCheckBox); - this.effectsGroup.Controls.Add(this.leftLegOCheckBox); - this.effectsGroup.Controls.Add(this.leftArmOCheckBox); - this.effectsGroup.Controls.Add(this.bodyOCheckBox); - this.effectsGroup.Controls.Add(this.rightLegCheckBox); - this.effectsGroup.Controls.Add(this.slimCheckBox); - this.effectsGroup.Controls.Add(this.headCheckBox); - this.effectsGroup.Controls.Add(this.leftLegCheckBox); - this.effectsGroup.Controls.Add(this.rightArmCheckBox); - this.effectsGroup.Controls.Add(this.leftArmCheckBox); - this.effectsGroup.Controls.Add(this.bodyCheckBox); - this.effectsGroup.Controls.Add(this.classicCheckBox); - this.effectsGroup.Controls.Add(this.rightArmOCheckBox); - this.effectsGroup.ForeColor = System.Drawing.SystemColors.Window; - this.effectsGroup.Location = new System.Drawing.Point(22, 148); - this.effectsGroup.Name = "effectsGroup"; - this.effectsGroup.Size = new System.Drawing.Size(393, 238); - this.effectsGroup.TabIndex = 2; - this.effectsGroup.TabStop = false; - this.effectsGroup.Text = "Skin Flags"; - // - // rightLegOCheckBox - // - this.rightLegOCheckBox.AutoSize = true; - this.rightLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.rightLegOCheckBox.Location = new System.Drawing.Point(180, 208); - this.rightLegOCheckBox.Name = "rightLegOCheckBox"; - this.rightLegOCheckBox.Size = new System.Drawing.Size(199, 19); - this.rightLegOCheckBox.TabIndex = 13; - this.rightLegOCheckBox.Text = "Remove Right Leg Layer Box"; - this.rightLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.rightLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.closeButton = new MetroFramework.Controls.MetroButton(); + this.effectsGroup = new System.Windows.Forms.GroupBox(); + this.rightLegOCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.headOCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.leftLegOCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.leftArmOCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.bodyOCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.rightLegCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.slimCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.headCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.leftLegCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.rightArmCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.leftArmCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.bodyCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.classicCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.rightArmOCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.effectsGroup2 = new System.Windows.Forms.GroupBox(); + this.rightLeggingCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.helmetCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.leftLeggingCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.rightArmorCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.leftArmorCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.chestplateCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.unknownCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.crouchCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.dinnerboneCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.noArmorCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.bobbingCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.santaCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.syncLegsCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.staticArmsCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.syncArmsCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.statueCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.zombieCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.staticLegsCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.copyButton = new MetroFramework.Controls.MetroButton(); + this.importButton = new MetroFramework.Controls.MetroButton(); + this.exportButton = new MetroFramework.Controls.MetroButton(); + this.animValue = new MetroFramework.Controls.MetroLabel(); + this.uncheckButton = new MetroFramework.Controls.MetroButton(); + this.checkButton = new MetroFramework.Controls.MetroButton(); + this.toolTip = new MetroFramework.Components.MetroToolTip(); + this.resetButton = new MetroFramework.Controls.MetroButton(); + this.templateButton = new MetroFramework.Controls.MetroButton(); + this.effectsGroup.SuspendLayout(); + this.effectsGroup2.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // closeButton + // + this.closeButton.Location = new System.Drawing.Point(250, 514); + this.closeButton.Name = "closeButton"; + this.closeButton.Size = new System.Drawing.Size(126, 23); + this.closeButton.TabIndex = 1; + this.closeButton.Text = "Save"; + this.closeButton.Theme = MetroFramework.MetroThemeStyle.Dark; + this.closeButton.UseSelectable = true; + this.closeButton.Click += new System.EventHandler(this.closeButton_Click); + // + // effectsGroup + // + this.effectsGroup.Controls.Add(this.rightLegOCheckBox); + this.effectsGroup.Controls.Add(this.headOCheckBox); + this.effectsGroup.Controls.Add(this.leftLegOCheckBox); + this.effectsGroup.Controls.Add(this.leftArmOCheckBox); + this.effectsGroup.Controls.Add(this.bodyOCheckBox); + this.effectsGroup.Controls.Add(this.rightLegCheckBox); + this.effectsGroup.Controls.Add(this.slimCheckBox); + this.effectsGroup.Controls.Add(this.headCheckBox); + this.effectsGroup.Controls.Add(this.leftLegCheckBox); + this.effectsGroup.Controls.Add(this.rightArmCheckBox); + this.effectsGroup.Controls.Add(this.leftArmCheckBox); + this.effectsGroup.Controls.Add(this.bodyCheckBox); + this.effectsGroup.Controls.Add(this.classicCheckBox); + this.effectsGroup.Controls.Add(this.rightArmOCheckBox); + this.effectsGroup.ForeColor = System.Drawing.SystemColors.Window; + this.effectsGroup.Location = new System.Drawing.Point(22, 148); + this.effectsGroup.Name = "effectsGroup"; + this.effectsGroup.Size = new System.Drawing.Size(393, 238); + this.effectsGroup.TabIndex = 2; + this.effectsGroup.TabStop = false; + this.effectsGroup.Text = "Skin Flags"; + // + // rightLegOCheckBox + // + this.rightLegOCheckBox.AutoSize = true; + this.rightLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rightLegOCheckBox.Location = new System.Drawing.Point(180, 208); + this.rightLegOCheckBox.Name = "rightLegOCheckBox"; + this.rightLegOCheckBox.Size = new System.Drawing.Size(199, 19); + this.rightLegOCheckBox.TabIndex = 13; + this.rightLegOCheckBox.Text = "Remove Right Leg Layer Box"; + this.rightLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.rightLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.rightLegOCheckBox.UseSelectable = true; - // - // headOCheckBox - // - this.headOCheckBox.AutoSize = true; - this.headOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.headOCheckBox.Location = new System.Drawing.Point(180, 50); - this.headOCheckBox.Name = "headOCheckBox"; - this.headOCheckBox.Size = new System.Drawing.Size(173, 19); - this.headOCheckBox.TabIndex = 12; - this.headOCheckBox.Text = "Remove Head Layer Box"; - this.headOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.headOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.rightLegOCheckBox.UseSelectable = true; + // + // headOCheckBox + // + this.headOCheckBox.AutoSize = true; + this.headOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.headOCheckBox.Location = new System.Drawing.Point(180, 50); + this.headOCheckBox.Name = "headOCheckBox"; + this.headOCheckBox.Size = new System.Drawing.Size(173, 19); + this.headOCheckBox.TabIndex = 12; + this.headOCheckBox.Text = "Remove Head Layer Box"; + this.headOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.headOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.headOCheckBox.UseSelectable = true; - // - // leftLegOCheckBox - // - this.leftLegOCheckBox.AutoSize = true; - this.leftLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.leftLegOCheckBox.Location = new System.Drawing.Point(180, 174); - this.leftLegOCheckBox.Name = "leftLegOCheckBox"; - this.leftLegOCheckBox.Size = new System.Drawing.Size(190, 19); - this.leftLegOCheckBox.TabIndex = 11; - this.leftLegOCheckBox.Text = "Remove Left Leg Layer Box"; - this.leftLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.leftLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.headOCheckBox.UseSelectable = true; + // + // leftLegOCheckBox + // + this.leftLegOCheckBox.AutoSize = true; + this.leftLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.leftLegOCheckBox.Location = new System.Drawing.Point(180, 174); + this.leftLegOCheckBox.Name = "leftLegOCheckBox"; + this.leftLegOCheckBox.Size = new System.Drawing.Size(190, 19); + this.leftLegOCheckBox.TabIndex = 11; + this.leftLegOCheckBox.Text = "Remove Left Leg Layer Box"; + this.leftLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.leftLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.leftLegOCheckBox.UseSelectable = true; - // - // leftArmOCheckBox - // - this.leftArmOCheckBox.AutoSize = true; - this.leftArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.leftArmOCheckBox.Location = new System.Drawing.Point(180, 112); - this.leftArmOCheckBox.Name = "leftArmOCheckBox"; - this.leftArmOCheckBox.Size = new System.Drawing.Size(194, 19); - this.leftArmOCheckBox.TabIndex = 9; - this.leftArmOCheckBox.Text = "Remove Left Arm Layer Box"; - this.leftArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.leftArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.leftLegOCheckBox.UseSelectable = true; + // + // leftArmOCheckBox + // + this.leftArmOCheckBox.AutoSize = true; + this.leftArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.leftArmOCheckBox.Location = new System.Drawing.Point(180, 112); + this.leftArmOCheckBox.Name = "leftArmOCheckBox"; + this.leftArmOCheckBox.Size = new System.Drawing.Size(194, 19); + this.leftArmOCheckBox.TabIndex = 9; + this.leftArmOCheckBox.Text = "Remove Left Arm Layer Box"; + this.leftArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.leftArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.leftArmOCheckBox.UseSelectable = true; - // - // bodyOCheckBox - // - this.bodyOCheckBox.AutoSize = true; - this.bodyOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.bodyOCheckBox.Location = new System.Drawing.Point(180, 81); - this.bodyOCheckBox.Name = "bodyOCheckBox"; - this.bodyOCheckBox.Size = new System.Drawing.Size(172, 19); - this.bodyOCheckBox.TabIndex = 8; - this.bodyOCheckBox.Text = "Remove Body Layer Box"; - this.bodyOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.bodyOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.leftArmOCheckBox.UseSelectable = true; + // + // bodyOCheckBox + // + this.bodyOCheckBox.AutoSize = true; + this.bodyOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.bodyOCheckBox.Location = new System.Drawing.Point(180, 81); + this.bodyOCheckBox.Name = "bodyOCheckBox"; + this.bodyOCheckBox.Size = new System.Drawing.Size(172, 19); + this.bodyOCheckBox.TabIndex = 8; + this.bodyOCheckBox.Text = "Remove Body Layer Box"; + this.bodyOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.bodyOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.bodyOCheckBox.UseSelectable = true; - // - // rightLegCheckBox - // - this.rightLegCheckBox.AutoSize = true; - this.rightLegCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.rightLegCheckBox.Location = new System.Drawing.Point(6, 208); - this.rightLegCheckBox.Name = "rightLegCheckBox"; - this.rightLegCheckBox.Size = new System.Drawing.Size(162, 19); - this.rightLegCheckBox.TabIndex = 7; - this.rightLegCheckBox.Text = "Remove Right Leg Box"; - this.rightLegCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.rightLegCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.bodyOCheckBox.UseSelectable = true; + // + // rightLegCheckBox + // + this.rightLegCheckBox.AutoSize = true; + this.rightLegCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rightLegCheckBox.Location = new System.Drawing.Point(6, 208); + this.rightLegCheckBox.Name = "rightLegCheckBox"; + this.rightLegCheckBox.Size = new System.Drawing.Size(162, 19); + this.rightLegCheckBox.TabIndex = 7; + this.rightLegCheckBox.Text = "Remove Right Leg Box"; + this.rightLegCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.rightLegCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.rightLegCheckBox.UseSelectable = true; - // - // slimCheckBox - // - this.slimCheckBox.AutoSize = true; - this.slimCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.slimCheckBox.Location = new System.Drawing.Point(180, 19); - this.slimCheckBox.Name = "slimCheckBox"; - this.slimCheckBox.Size = new System.Drawing.Size(151, 19); - this.slimCheckBox.TabIndex = 6; - this.slimCheckBox.Text = "64x64 Alex/Slim Skin"; - this.slimCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.slimCheckBox, " The 1.8 style skin type with slim arms, overlays for each part, and sep" + + this.rightLegCheckBox.UseSelectable = true; + // + // slimCheckBox + // + this.slimCheckBox.AutoSize = true; + this.slimCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.slimCheckBox.Location = new System.Drawing.Point(180, 19); + this.slimCheckBox.Name = "slimCheckBox"; + this.slimCheckBox.Size = new System.Drawing.Size(151, 19); + this.slimCheckBox.TabIndex = 6; + this.slimCheckBox.Text = "64x64 Alex/Slim Skin"; + this.slimCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.slimCheckBox, " The 1.8 style skin type with slim arms, overlays for each part, and sep" + "arate textures for right and left limbs. Resolution is also set to 64x64. " + " "); - this.slimCheckBox.UseSelectable = true; - // - // headCheckBox - // - this.headCheckBox.AutoSize = true; - this.headCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.headCheckBox.Location = new System.Drawing.Point(6, 50); - this.headCheckBox.Name = "headCheckBox"; - this.headCheckBox.Size = new System.Drawing.Size(136, 19); - this.headCheckBox.TabIndex = 5; - this.headCheckBox.Text = "Remove Head Box"; - this.headCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.headCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.slimCheckBox.UseSelectable = true; + // + // headCheckBox + // + this.headCheckBox.AutoSize = true; + this.headCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.headCheckBox.Location = new System.Drawing.Point(6, 50); + this.headCheckBox.Name = "headCheckBox"; + this.headCheckBox.Size = new System.Drawing.Size(136, 19); + this.headCheckBox.TabIndex = 5; + this.headCheckBox.Text = "Remove Head Box"; + this.headCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.headCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.headCheckBox.UseSelectable = true; - // - // leftLegCheckBox - // - this.leftLegCheckBox.AutoSize = true; - this.leftLegCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.leftLegCheckBox.Location = new System.Drawing.Point(6, 174); - this.leftLegCheckBox.Name = "leftLegCheckBox"; - this.leftLegCheckBox.Size = new System.Drawing.Size(153, 19); - this.leftLegCheckBox.TabIndex = 4; - this.leftLegCheckBox.Text = "Remove Left Leg Box"; - this.leftLegCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.leftLegCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.headCheckBox.UseSelectable = true; + // + // leftLegCheckBox + // + this.leftLegCheckBox.AutoSize = true; + this.leftLegCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.leftLegCheckBox.Location = new System.Drawing.Point(6, 174); + this.leftLegCheckBox.Name = "leftLegCheckBox"; + this.leftLegCheckBox.Size = new System.Drawing.Size(153, 19); + this.leftLegCheckBox.TabIndex = 4; + this.leftLegCheckBox.Text = "Remove Left Leg Box"; + this.leftLegCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.leftLegCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.leftLegCheckBox.UseSelectable = true; - // - // rightArmCheckBox - // - this.rightArmCheckBox.AutoSize = true; - this.rightArmCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.rightArmCheckBox.Location = new System.Drawing.Point(6, 143); - this.rightArmCheckBox.Name = "rightArmCheckBox"; - this.rightArmCheckBox.Size = new System.Drawing.Size(166, 19); - this.rightArmCheckBox.TabIndex = 3; - this.rightArmCheckBox.Text = "Remove Right Arm Box"; - this.rightArmCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.rightArmCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.leftLegCheckBox.UseSelectable = true; + // + // rightArmCheckBox + // + this.rightArmCheckBox.AutoSize = true; + this.rightArmCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rightArmCheckBox.Location = new System.Drawing.Point(6, 143); + this.rightArmCheckBox.Name = "rightArmCheckBox"; + this.rightArmCheckBox.Size = new System.Drawing.Size(166, 19); + this.rightArmCheckBox.TabIndex = 3; + this.rightArmCheckBox.Text = "Remove Right Arm Box"; + this.rightArmCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.rightArmCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.rightArmCheckBox.UseSelectable = true; - // - // leftArmCheckBox - // - this.leftArmCheckBox.AutoSize = true; - this.leftArmCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.leftArmCheckBox.Location = new System.Drawing.Point(6, 112); - this.leftArmCheckBox.Name = "leftArmCheckBox"; - this.leftArmCheckBox.Size = new System.Drawing.Size(157, 19); - this.leftArmCheckBox.TabIndex = 2; - this.leftArmCheckBox.Text = "Remove Left Arm Box"; - this.leftArmCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.leftArmCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.rightArmCheckBox.UseSelectable = true; + // + // leftArmCheckBox + // + this.leftArmCheckBox.AutoSize = true; + this.leftArmCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.leftArmCheckBox.Location = new System.Drawing.Point(6, 112); + this.leftArmCheckBox.Name = "leftArmCheckBox"; + this.leftArmCheckBox.Size = new System.Drawing.Size(157, 19); + this.leftArmCheckBox.TabIndex = 2; + this.leftArmCheckBox.Text = "Remove Left Arm Box"; + this.leftArmCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.leftArmCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.leftArmCheckBox.UseSelectable = true; - // - // bodyCheckBox - // - this.bodyCheckBox.AutoSize = true; - this.bodyCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.bodyCheckBox.Location = new System.Drawing.Point(6, 81); - this.bodyCheckBox.Name = "bodyCheckBox"; - this.bodyCheckBox.Size = new System.Drawing.Size(135, 19); - this.bodyCheckBox.TabIndex = 1; - this.bodyCheckBox.Text = "Remove Body Box"; - this.bodyCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.bodyCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.leftArmCheckBox.UseSelectable = true; + // + // bodyCheckBox + // + this.bodyCheckBox.AutoSize = true; + this.bodyCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.bodyCheckBox.Location = new System.Drawing.Point(6, 81); + this.bodyCheckBox.Name = "bodyCheckBox"; + this.bodyCheckBox.Size = new System.Drawing.Size(135, 19); + this.bodyCheckBox.TabIndex = 1; + this.bodyCheckBox.Text = "Remove Body Box"; + this.bodyCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.bodyCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.bodyCheckBox.UseSelectable = true; - // - // classicCheckBox - // - this.classicCheckBox.AutoSize = true; - this.classicCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.classicCheckBox.Location = new System.Drawing.Point(6, 19); - this.classicCheckBox.Name = "classicCheckBox"; - this.classicCheckBox.Size = new System.Drawing.Size(136, 19); - this.classicCheckBox.TabIndex = 0; - this.classicCheckBox.Text = "64x64 Classic Skin"; - this.classicCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.classicCheckBox, " The 1.8 style skin type with overlays for each part and separate textur" + + this.bodyCheckBox.UseSelectable = true; + // + // classicCheckBox + // + this.classicCheckBox.AutoSize = true; + this.classicCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.classicCheckBox.Location = new System.Drawing.Point(6, 19); + this.classicCheckBox.Name = "classicCheckBox"; + this.classicCheckBox.Size = new System.Drawing.Size(136, 19); + this.classicCheckBox.TabIndex = 0; + this.classicCheckBox.Text = "64x64 Classic Skin"; + this.classicCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.classicCheckBox, " The 1.8 style skin type with overlays for each part and separate textur" + "es for right and left limbs. Resolution is also set to 64x64. "); - this.classicCheckBox.UseSelectable = true; - // - // rightArmOCheckBox - // - this.rightArmOCheckBox.AutoSize = true; - this.rightArmOCheckBox.BackColor = System.Drawing.Color.Transparent; - this.rightArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.rightArmOCheckBox.Location = new System.Drawing.Point(180, 143); - this.rightArmOCheckBox.Name = "rightArmOCheckBox"; - this.rightArmOCheckBox.Size = new System.Drawing.Size(203, 19); - this.rightArmOCheckBox.TabIndex = 10; - this.rightArmOCheckBox.Text = "Remove Right Arm Layer Box"; - this.rightArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.rightArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + + this.classicCheckBox.UseSelectable = true; + // + // rightArmOCheckBox + // + this.rightArmOCheckBox.AutoSize = true; + this.rightArmOCheckBox.BackColor = System.Drawing.Color.Transparent; + this.rightArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rightArmOCheckBox.Location = new System.Drawing.Point(180, 143); + this.rightArmOCheckBox.Name = "rightArmOCheckBox"; + this.rightArmOCheckBox.Size = new System.Drawing.Size(203, 19); + this.rightArmOCheckBox.TabIndex = 10; + this.rightArmOCheckBox.Text = "Remove Right Arm Layer Box"; + this.rightArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.rightArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" + "or this part. Armor will be disabled for this part, but can be rendered again wi" + "th the armor flags. "); - this.rightArmOCheckBox.UseSelectable = true; - // - // effectsGroup2 - // - this.effectsGroup2.Controls.Add(this.rightLeggingCheckBox); - this.effectsGroup2.Controls.Add(this.helmetCheckBox); - this.effectsGroup2.Controls.Add(this.leftLeggingCheckBox); - this.effectsGroup2.Controls.Add(this.rightArmorCheckBox); - this.effectsGroup2.Controls.Add(this.leftArmorCheckBox); - this.effectsGroup2.Controls.Add(this.chestplateCheckBox); - this.effectsGroup2.ForeColor = System.Drawing.SystemColors.Window; - this.effectsGroup2.Location = new System.Drawing.Point(421, 183); - this.effectsGroup2.Name = "effectsGroup2"; - this.effectsGroup2.Size = new System.Drawing.Size(188, 203); - this.effectsGroup2.TabIndex = 14; - this.effectsGroup2.TabStop = false; - this.effectsGroup2.Text = "Armor Flags"; - // - // rightLeggingCheckBox - // - this.rightLeggingCheckBox.AutoSize = true; - this.rightLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.rightLeggingCheckBox.Location = new System.Drawing.Point(6, 174); - this.rightLeggingCheckBox.Name = "rightLeggingCheckBox"; - this.rightLeggingCheckBox.Size = new System.Drawing.Size(173, 19); - this.rightLeggingCheckBox.TabIndex = 7; - this.rightLeggingCheckBox.Text = "Render Right Leg Armor"; - this.rightLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.rightLeggingCheckBox, " Forcefully enables the specified armor piece."); - this.rightLeggingCheckBox.UseSelectable = true; - // - // helmetCheckBox - // - this.helmetCheckBox.AutoSize = true; - this.helmetCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.helmetCheckBox.Location = new System.Drawing.Point(6, 19); - this.helmetCheckBox.Name = "helmetCheckBox"; - this.helmetCheckBox.Size = new System.Drawing.Size(147, 19); - this.helmetCheckBox.TabIndex = 5; - this.helmetCheckBox.Text = "Render Head Armor"; - this.helmetCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.helmetCheckBox, " Forcefully enables the specified armor piece."); - this.helmetCheckBox.UseSelectable = true; - // - // leftLeggingCheckBox - // - this.leftLeggingCheckBox.AutoSize = true; - this.leftLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.leftLeggingCheckBox.Location = new System.Drawing.Point(6, 143); - this.leftLeggingCheckBox.Name = "leftLeggingCheckBox"; - this.leftLeggingCheckBox.Size = new System.Drawing.Size(164, 19); - this.leftLeggingCheckBox.TabIndex = 4; - this.leftLeggingCheckBox.Text = "Render Left Leg Armor"; - this.leftLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.leftLeggingCheckBox, " Forcefully enables the specified armor piece."); - this.leftLeggingCheckBox.UseSelectable = true; - // - // rightArmorCheckBox - // - this.rightArmorCheckBox.AutoSize = true; - this.rightArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.rightArmorCheckBox.Location = new System.Drawing.Point(6, 112); - this.rightArmorCheckBox.Name = "rightArmorCheckBox"; - this.rightArmorCheckBox.Size = new System.Drawing.Size(177, 19); - this.rightArmorCheckBox.TabIndex = 3; - this.rightArmorCheckBox.Text = "Render Right Arm Armor"; - this.rightArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.rightArmorCheckBox, " Forcefully enables the specified armor piece."); - this.rightArmorCheckBox.UseSelectable = true; - // - // leftArmorCheckBox - // - this.leftArmorCheckBox.AutoSize = true; - this.leftArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.leftArmorCheckBox.Location = new System.Drawing.Point(6, 81); - this.leftArmorCheckBox.Name = "leftArmorCheckBox"; - this.leftArmorCheckBox.Size = new System.Drawing.Size(168, 19); - this.leftArmorCheckBox.TabIndex = 2; - this.leftArmorCheckBox.Text = "Render Left Arm Armor"; - this.leftArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.leftArmorCheckBox, " Forcefully enables the specified armor piece."); - this.leftArmorCheckBox.UseSelectable = true; - // - // chestplateCheckBox - // - this.chestplateCheckBox.AutoSize = true; - this.chestplateCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.chestplateCheckBox.Location = new System.Drawing.Point(6, 50); - this.chestplateCheckBox.Name = "chestplateCheckBox"; - this.chestplateCheckBox.Size = new System.Drawing.Size(146, 19); - this.chestplateCheckBox.TabIndex = 1; - this.chestplateCheckBox.Text = "Render Body Armor"; - this.chestplateCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.chestplateCheckBox, " Forcefully enables the specified armor piece."); - this.chestplateCheckBox.UseSelectable = true; - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.unknownCheckBox); - this.groupBox1.Controls.Add(this.crouchCheckBox); - this.groupBox1.Controls.Add(this.dinnerboneCheckBox); - this.groupBox1.Controls.Add(this.noArmorCheckBox); - this.groupBox1.Controls.Add(this.bobbingCheckBox); - this.groupBox1.Controls.Add(this.santaCheckBox); - this.groupBox1.Controls.Add(this.syncLegsCheckBox); - this.groupBox1.Controls.Add(this.staticArmsCheckBox); - this.groupBox1.Controls.Add(this.syncArmsCheckBox); - this.groupBox1.Controls.Add(this.statueCheckBox); - this.groupBox1.Controls.Add(this.zombieCheckBox); - this.groupBox1.Controls.Add(this.staticLegsCheckBox); - this.groupBox1.ForeColor = System.Drawing.SystemColors.Window; - this.groupBox1.Location = new System.Drawing.Point(22, 388); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(587, 115); - this.groupBox1.TabIndex = 15; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Special Animations"; - // - // unknownCheckBox - // - this.unknownCheckBox.AutoSize = true; - this.unknownCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.unknownCheckBox.Location = new System.Drawing.Point(126, 81); - this.unknownCheckBox.Name = "unknownCheckBox"; - this.unknownCheckBox.Size = new System.Drawing.Size(84, 19); - this.unknownCheckBox.TabIndex = 13; - this.unknownCheckBox.Text = "Unknown"; - this.unknownCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.unknownCheckBox, " If you figure out what this is. Please reach out to MNL#8935 on Discord. (: " + + this.rightArmOCheckBox.UseSelectable = true; + // + // effectsGroup2 + // + this.effectsGroup2.Controls.Add(this.rightLeggingCheckBox); + this.effectsGroup2.Controls.Add(this.helmetCheckBox); + this.effectsGroup2.Controls.Add(this.leftLeggingCheckBox); + this.effectsGroup2.Controls.Add(this.rightArmorCheckBox); + this.effectsGroup2.Controls.Add(this.leftArmorCheckBox); + this.effectsGroup2.Controls.Add(this.chestplateCheckBox); + this.effectsGroup2.ForeColor = System.Drawing.SystemColors.Window; + this.effectsGroup2.Location = new System.Drawing.Point(421, 183); + this.effectsGroup2.Name = "effectsGroup2"; + this.effectsGroup2.Size = new System.Drawing.Size(188, 203); + this.effectsGroup2.TabIndex = 14; + this.effectsGroup2.TabStop = false; + this.effectsGroup2.Text = "Armor Flags"; + // + // rightLeggingCheckBox + // + this.rightLeggingCheckBox.AutoSize = true; + this.rightLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rightLeggingCheckBox.Location = new System.Drawing.Point(6, 174); + this.rightLeggingCheckBox.Name = "rightLeggingCheckBox"; + this.rightLeggingCheckBox.Size = new System.Drawing.Size(173, 19); + this.rightLeggingCheckBox.TabIndex = 7; + this.rightLeggingCheckBox.Text = "Render Right Leg Armor"; + this.rightLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.rightLeggingCheckBox, " Forcefully enables the specified armor piece."); + this.rightLeggingCheckBox.UseSelectable = true; + // + // helmetCheckBox + // + this.helmetCheckBox.AutoSize = true; + this.helmetCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.helmetCheckBox.Location = new System.Drawing.Point(6, 19); + this.helmetCheckBox.Name = "helmetCheckBox"; + this.helmetCheckBox.Size = new System.Drawing.Size(147, 19); + this.helmetCheckBox.TabIndex = 5; + this.helmetCheckBox.Text = "Render Head Armor"; + this.helmetCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.helmetCheckBox, " Forcefully enables the specified armor piece."); + this.helmetCheckBox.UseSelectable = true; + // + // leftLeggingCheckBox + // + this.leftLeggingCheckBox.AutoSize = true; + this.leftLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.leftLeggingCheckBox.Location = new System.Drawing.Point(6, 143); + this.leftLeggingCheckBox.Name = "leftLeggingCheckBox"; + this.leftLeggingCheckBox.Size = new System.Drawing.Size(164, 19); + this.leftLeggingCheckBox.TabIndex = 4; + this.leftLeggingCheckBox.Text = "Render Left Leg Armor"; + this.leftLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.leftLeggingCheckBox, " Forcefully enables the specified armor piece."); + this.leftLeggingCheckBox.UseSelectable = true; + // + // rightArmorCheckBox + // + this.rightArmorCheckBox.AutoSize = true; + this.rightArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.rightArmorCheckBox.Location = new System.Drawing.Point(6, 112); + this.rightArmorCheckBox.Name = "rightArmorCheckBox"; + this.rightArmorCheckBox.Size = new System.Drawing.Size(177, 19); + this.rightArmorCheckBox.TabIndex = 3; + this.rightArmorCheckBox.Text = "Render Right Arm Armor"; + this.rightArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.rightArmorCheckBox, " Forcefully enables the specified armor piece."); + this.rightArmorCheckBox.UseSelectable = true; + // + // leftArmorCheckBox + // + this.leftArmorCheckBox.AutoSize = true; + this.leftArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.leftArmorCheckBox.Location = new System.Drawing.Point(6, 81); + this.leftArmorCheckBox.Name = "leftArmorCheckBox"; + this.leftArmorCheckBox.Size = new System.Drawing.Size(168, 19); + this.leftArmorCheckBox.TabIndex = 2; + this.leftArmorCheckBox.Text = "Render Left Arm Armor"; + this.leftArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.leftArmorCheckBox, " Forcefully enables the specified armor piece."); + this.leftArmorCheckBox.UseSelectable = true; + // + // chestplateCheckBox + // + this.chestplateCheckBox.AutoSize = true; + this.chestplateCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.chestplateCheckBox.Location = new System.Drawing.Point(6, 50); + this.chestplateCheckBox.Name = "chestplateCheckBox"; + this.chestplateCheckBox.Size = new System.Drawing.Size(146, 19); + this.chestplateCheckBox.TabIndex = 1; + this.chestplateCheckBox.Text = "Render Body Armor"; + this.chestplateCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.chestplateCheckBox, " Forcefully enables the specified armor piece."); + this.chestplateCheckBox.UseSelectable = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.unknownCheckBox); + this.groupBox1.Controls.Add(this.crouchCheckBox); + this.groupBox1.Controls.Add(this.dinnerboneCheckBox); + this.groupBox1.Controls.Add(this.noArmorCheckBox); + this.groupBox1.Controls.Add(this.bobbingCheckBox); + this.groupBox1.Controls.Add(this.santaCheckBox); + this.groupBox1.Controls.Add(this.syncLegsCheckBox); + this.groupBox1.Controls.Add(this.staticArmsCheckBox); + this.groupBox1.Controls.Add(this.syncArmsCheckBox); + this.groupBox1.Controls.Add(this.statueCheckBox); + this.groupBox1.Controls.Add(this.zombieCheckBox); + this.groupBox1.Controls.Add(this.staticLegsCheckBox); + this.groupBox1.ForeColor = System.Drawing.SystemColors.Window; + this.groupBox1.Location = new System.Drawing.Point(22, 388); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(587, 115); + this.groupBox1.TabIndex = 15; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Special Animations"; + // + // unknownCheckBox + // + this.unknownCheckBox.AutoSize = true; + this.unknownCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.unknownCheckBox.Location = new System.Drawing.Point(126, 81); + this.unknownCheckBox.Name = "unknownCheckBox"; + this.unknownCheckBox.Size = new System.Drawing.Size(84, 19); + this.unknownCheckBox.TabIndex = 13; + this.unknownCheckBox.Text = "Unknown"; + this.unknownCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.unknownCheckBox, " If you figure out what this is. Please reach out to MNL#8935 on Discord. (: " + ""); - this.unknownCheckBox.UseSelectable = true; - // - // crouchCheckBox - // - this.crouchCheckBox.AutoSize = true; - this.crouchCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.crouchCheckBox.Location = new System.Drawing.Point(126, 50); - this.crouchCheckBox.Name = "crouchCheckBox"; - this.crouchCheckBox.Size = new System.Drawing.Size(137, 19); - this.crouchCheckBox.TabIndex = 12; - this.crouchCheckBox.Text = "Backwards Crouch"; - this.crouchCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.crouchCheckBox, " The crouch animation is reversed so that the arms and body lean back. Usefu" + + this.unknownCheckBox.UseSelectable = true; + // + // crouchCheckBox + // + this.crouchCheckBox.AutoSize = true; + this.crouchCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.crouchCheckBox.Location = new System.Drawing.Point(126, 50); + this.crouchCheckBox.Name = "crouchCheckBox"; + this.crouchCheckBox.Size = new System.Drawing.Size(137, 19); + this.crouchCheckBox.TabIndex = 12; + this.crouchCheckBox.Text = "Backwards Crouch"; + this.crouchCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.crouchCheckBox, " The crouch animation is reversed so that the arms and body lean back. Usefu" + "l for small skins. "); - this.crouchCheckBox.UseSelectable = true; - // - // dinnerboneCheckBox - // - this.dinnerboneCheckBox.AutoSize = true; - this.dinnerboneCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.dinnerboneCheckBox.Location = new System.Drawing.Point(126, 19); - this.dinnerboneCheckBox.Name = "dinnerboneCheckBox"; - this.dinnerboneCheckBox.Size = new System.Drawing.Size(97, 19); - this.dinnerboneCheckBox.TabIndex = 11; - this.dinnerboneCheckBox.Text = "Dinnerbone"; - this.dinnerboneCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.dinnerboneCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.dinnerboneCheckBox, " Flips the skin upside down like Dinnerbone\'s skin, a Minecraft developer. "); - this.dinnerboneCheckBox.UseSelectable = true; - // - // noArmorCheckBox - // - this.noArmorCheckBox.AutoSize = true; - this.noArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.noArmorCheckBox.Location = new System.Drawing.Point(420, 81); - this.noArmorCheckBox.Name = "noArmorCheckBox"; - this.noArmorCheckBox.Size = new System.Drawing.Size(131, 19); - this.noArmorCheckBox.TabIndex = 10; - this.noArmorCheckBox.Text = "Disable All Armor"; - this.noArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.noArmorCheckBox, " Disables all armor desptie the armor flags. "); - this.noArmorCheckBox.UseSelectable = true; - // - // bobbingCheckBox - // - this.bobbingCheckBox.AutoSize = true; - this.bobbingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.bobbingCheckBox.Location = new System.Drawing.Point(272, 50); - this.bobbingCheckBox.Name = "bobbingCheckBox"; - this.bobbingCheckBox.Size = new System.Drawing.Size(124, 19); - this.bobbingCheckBox.TabIndex = 9; - this.bobbingCheckBox.Text = "Disable Bobbing"; - this.bobbingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.bobbingCheckBox, " Disables the bobbing effect in first person."); - this.bobbingCheckBox.UseSelectable = true; - // - // santaCheckBox - // - this.santaCheckBox.AutoSize = true; - this.santaCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.santaCheckBox.Location = new System.Drawing.Point(420, 50); - this.santaCheckBox.Name = "santaCheckBox"; - this.santaCheckBox.Size = new System.Drawing.Size(86, 19); - this.santaCheckBox.TabIndex = 8; - this.santaCheckBox.Text = "Bad Santa"; - this.santaCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.santaCheckBox, " The skin sits down after about 10 seconds of no controller input. Made for" + + this.crouchCheckBox.UseSelectable = true; + // + // dinnerboneCheckBox + // + this.dinnerboneCheckBox.AutoSize = true; + this.dinnerboneCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.dinnerboneCheckBox.Location = new System.Drawing.Point(126, 19); + this.dinnerboneCheckBox.Name = "dinnerboneCheckBox"; + this.dinnerboneCheckBox.Size = new System.Drawing.Size(97, 19); + this.dinnerboneCheckBox.TabIndex = 11; + this.dinnerboneCheckBox.Text = "Dinnerbone"; + this.dinnerboneCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.dinnerboneCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.dinnerboneCheckBox, " Flips the skin upside down like Dinnerbone\'s skin, a Minecraft developer. "); + this.dinnerboneCheckBox.UseSelectable = true; + // + // noArmorCheckBox + // + this.noArmorCheckBox.AutoSize = true; + this.noArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.noArmorCheckBox.Location = new System.Drawing.Point(420, 81); + this.noArmorCheckBox.Name = "noArmorCheckBox"; + this.noArmorCheckBox.Size = new System.Drawing.Size(131, 19); + this.noArmorCheckBox.TabIndex = 10; + this.noArmorCheckBox.Text = "Disable All Armor"; + this.noArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.noArmorCheckBox, " Disables all armor desptie the armor flags. "); + this.noArmorCheckBox.UseSelectable = true; + // + // bobbingCheckBox + // + this.bobbingCheckBox.AutoSize = true; + this.bobbingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.bobbingCheckBox.Location = new System.Drawing.Point(272, 50); + this.bobbingCheckBox.Name = "bobbingCheckBox"; + this.bobbingCheckBox.Size = new System.Drawing.Size(124, 19); + this.bobbingCheckBox.TabIndex = 9; + this.bobbingCheckBox.Text = "Disable Bobbing"; + this.bobbingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.bobbingCheckBox, " Disables the bobbing effect in first person."); + this.bobbingCheckBox.UseSelectable = true; + // + // santaCheckBox + // + this.santaCheckBox.AutoSize = true; + this.santaCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.santaCheckBox.Location = new System.Drawing.Point(420, 50); + this.santaCheckBox.Name = "santaCheckBox"; + this.santaCheckBox.Size = new System.Drawing.Size(86, 19); + this.santaCheckBox.TabIndex = 8; + this.santaCheckBox.Text = "Bad Santa"; + this.santaCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.santaCheckBox, " The skin sits down after about 10 seconds of no controller input. Made for" + " Bad Santa in the \"Festive\" skin pack. "); - this.santaCheckBox.UseSelectable = true; - // - // syncLegsCheckBox - // - this.syncLegsCheckBox.AutoSize = true; - this.syncLegsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.syncLegsCheckBox.Location = new System.Drawing.Point(272, 19); - this.syncLegsCheckBox.Name = "syncLegsCheckBox"; - this.syncLegsCheckBox.Size = new System.Drawing.Size(136, 19); - this.syncLegsCheckBox.TabIndex = 7; - this.syncLegsCheckBox.Text = "Synchronous Legs"; - this.syncLegsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.syncLegsCheckBox, " These parts will move at the same time and angle as each other. "); - this.syncLegsCheckBox.UseSelectable = true; - // - // staticArmsCheckBox - // - this.staticArmsCheckBox.AutoSize = true; - this.staticArmsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.staticArmsCheckBox.Location = new System.Drawing.Point(6, 19); - this.staticArmsCheckBox.Name = "staticArmsCheckBox"; - this.staticArmsCheckBox.Size = new System.Drawing.Size(94, 19); - this.staticArmsCheckBox.TabIndex = 5; - this.staticArmsCheckBox.Text = "Static Arms"; - this.staticArmsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.staticArmsCheckBox, " These parts will not move in most animations. "); - this.staticArmsCheckBox.UseSelectable = true; - // - // syncArmsCheckBox - // - this.syncArmsCheckBox.AutoSize = true; - this.syncArmsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.syncArmsCheckBox.Location = new System.Drawing.Point(420, 19); - this.syncArmsCheckBox.Name = "syncArmsCheckBox"; - this.syncArmsCheckBox.Size = new System.Drawing.Size(140, 19); - this.syncArmsCheckBox.TabIndex = 4; - this.syncArmsCheckBox.Text = "Synchronous Arms"; - this.syncArmsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.syncArmsCheckBox, " These parts will move at the same time and angle as each other. "); - this.syncArmsCheckBox.UseSelectable = true; - // - // statueCheckBox - // - this.statueCheckBox.AutoSize = true; - this.statueCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.statueCheckBox.Location = new System.Drawing.Point(272, 81); - this.statueCheckBox.Name = "statueCheckBox"; - this.statueCheckBox.Size = new System.Drawing.Size(126, 19); - this.statueCheckBox.TabIndex = 3; - this.statueCheckBox.Text = "Statue of Liberty"; - this.statueCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.statueCheckBox, " The right arm is lifted likt the Statue of Liberty. Made for Angel of Libe" + + this.santaCheckBox.UseSelectable = true; + // + // syncLegsCheckBox + // + this.syncLegsCheckBox.AutoSize = true; + this.syncLegsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.syncLegsCheckBox.Location = new System.Drawing.Point(272, 19); + this.syncLegsCheckBox.Name = "syncLegsCheckBox"; + this.syncLegsCheckBox.Size = new System.Drawing.Size(136, 19); + this.syncLegsCheckBox.TabIndex = 7; + this.syncLegsCheckBox.Text = "Synchronous Legs"; + this.syncLegsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.syncLegsCheckBox, " These parts will move at the same time and angle as each other. "); + this.syncLegsCheckBox.UseSelectable = true; + // + // staticArmsCheckBox + // + this.staticArmsCheckBox.AutoSize = true; + this.staticArmsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.staticArmsCheckBox.Location = new System.Drawing.Point(6, 19); + this.staticArmsCheckBox.Name = "staticArmsCheckBox"; + this.staticArmsCheckBox.Size = new System.Drawing.Size(94, 19); + this.staticArmsCheckBox.TabIndex = 5; + this.staticArmsCheckBox.Text = "Static Arms"; + this.staticArmsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.staticArmsCheckBox, " These parts will not move in most animations. "); + this.staticArmsCheckBox.UseSelectable = true; + // + // syncArmsCheckBox + // + this.syncArmsCheckBox.AutoSize = true; + this.syncArmsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.syncArmsCheckBox.Location = new System.Drawing.Point(420, 19); + this.syncArmsCheckBox.Name = "syncArmsCheckBox"; + this.syncArmsCheckBox.Size = new System.Drawing.Size(140, 19); + this.syncArmsCheckBox.TabIndex = 4; + this.syncArmsCheckBox.Text = "Synchronous Arms"; + this.syncArmsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.syncArmsCheckBox, " These parts will move at the same time and angle as each other. "); + this.syncArmsCheckBox.UseSelectable = true; + // + // statueCheckBox + // + this.statueCheckBox.AutoSize = true; + this.statueCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.statueCheckBox.Location = new System.Drawing.Point(272, 81); + this.statueCheckBox.Name = "statueCheckBox"; + this.statueCheckBox.Size = new System.Drawing.Size(126, 19); + this.statueCheckBox.TabIndex = 3; + this.statueCheckBox.Text = "Statue of Liberty"; + this.statueCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.statueCheckBox, " The right arm is lifted like the Statue of Liberty. Made for Angel of Libe" + "rty in the \"Doctor Who Volume I\" skin pack. "); - this.statueCheckBox.UseSelectable = true; - // - // zombieCheckBox - // - this.zombieCheckBox.AutoSize = true; - this.zombieCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.zombieCheckBox.Location = new System.Drawing.Point(6, 81); - this.zombieCheckBox.Name = "zombieCheckBox"; - this.zombieCheckBox.Size = new System.Drawing.Size(107, 19); - this.zombieCheckBox.TabIndex = 2; - this.zombieCheckBox.Text = "Zombie Arms"; - this.zombieCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.zombieCheckBox, " Both arms will stick up like a Zombie. "); - this.zombieCheckBox.UseSelectable = true; - // - // staticLegsCheckBox - // - this.staticLegsCheckBox.AutoSize = true; - this.staticLegsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; - this.staticLegsCheckBox.Location = new System.Drawing.Point(6, 50); - this.staticLegsCheckBox.Name = "staticLegsCheckBox"; - this.staticLegsCheckBox.Size = new System.Drawing.Size(90, 19); - this.staticLegsCheckBox.TabIndex = 1; - this.staticLegsCheckBox.Text = "Static Legs"; - this.staticLegsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.toolTip.SetToolTip(this.staticLegsCheckBox, " These parts will not move in most animations. "); - this.staticLegsCheckBox.UseSelectable = true; - // - // copyButton - // - this.copyButton.Location = new System.Drawing.Point(425, 119); - this.copyButton.Name = "copyButton"; - this.copyButton.Size = new System.Drawing.Size(173, 23); - this.copyButton.TabIndex = 22; - this.copyButton.Text = "Copy ANIM Value"; - this.copyButton.Theme = MetroFramework.MetroThemeStyle.Dark; - this.copyButton.UseSelectable = true; - this.copyButton.Click += new System.EventHandler(this.copyButton_Click); - // - // importButton - // - this.importButton.Location = new System.Drawing.Point(32, 119); - this.importButton.Name = "importButton"; - this.importButton.Size = new System.Drawing.Size(186, 23); - this.importButton.TabIndex = 23; - this.importButton.Text = "Import ANIM"; - this.importButton.Theme = MetroFramework.MetroThemeStyle.Dark; - this.importButton.UseSelectable = true; - this.importButton.Click += new System.EventHandler(this.importButton_Click); - // - // exportButton - // - this.exportButton.Location = new System.Drawing.Point(229, 119); - this.exportButton.Name = "exportButton"; - this.exportButton.Size = new System.Drawing.Size(186, 23); - this.exportButton.TabIndex = 24; - this.exportButton.Text = "Export Template Texture"; - this.exportButton.Theme = MetroFramework.MetroThemeStyle.Dark; - this.exportButton.UseSelectable = true; - this.exportButton.Click += new System.EventHandler(this.exportButton_Click); - // - // animValue - // - this.animValue.AutoSize = true; - this.animValue.FontSize = MetroFramework.MetroLabelSize.Tall; - this.animValue.FontWeight = MetroFramework.MetroLabelWeight.Regular; - this.animValue.Location = new System.Drawing.Point(260, 60); - this.animValue.Name = "animValue"; - this.animValue.Size = new System.Drawing.Size(110, 25); - this.animValue.TabIndex = 25; - this.animValue.Text = "0x00000000"; - this.animValue.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.animValue.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // uncheckButton - // - this.uncheckButton.Location = new System.Drawing.Point(229, 90); - this.uncheckButton.Name = "uncheckButton"; - this.uncheckButton.Size = new System.Drawing.Size(186, 23); - this.uncheckButton.TabIndex = 26; - this.uncheckButton.Text = "Uncheck All"; - this.uncheckButton.Theme = MetroFramework.MetroThemeStyle.Dark; - this.uncheckButton.UseSelectable = true; - this.uncheckButton.Click += new System.EventHandler(this.uncheckButton_Click); - // - // checkButton - // - this.checkButton.Location = new System.Drawing.Point(32, 90); - this.checkButton.Name = "checkButton"; - this.checkButton.Size = new System.Drawing.Size(186, 23); - this.checkButton.TabIndex = 27; - this.checkButton.Text = "Check All"; - this.checkButton.Theme = MetroFramework.MetroThemeStyle.Dark; - this.checkButton.UseSelectable = true; - this.checkButton.Click += new System.EventHandler(this.checkButton_Click); - // - // toolTip - // - this.toolTip.StripAmpersands = true; - this.toolTip.Style = MetroFramework.MetroColorStyle.Blue; - this.toolTip.StyleManager = null; - this.toolTip.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // resetButton - // - this.resetButton.Location = new System.Drawing.Point(425, 90); - this.resetButton.Name = "resetButton"; - this.resetButton.Size = new System.Drawing.Size(173, 23); - this.resetButton.TabIndex = 28; - this.resetButton.Text = "Restore ANIM"; - this.resetButton.Theme = MetroFramework.MetroThemeStyle.Dark; - this.resetButton.UseSelectable = true; - this.resetButton.Click += new System.EventHandler(this.resetButton_Click); - // - // templateButton - // - this.templateButton.Location = new System.Drawing.Point(425, 154); - this.templateButton.Name = "templateButton"; - this.templateButton.Size = new System.Drawing.Size(173, 23); - this.templateButton.TabIndex = 29; - this.templateButton.Text = "Skin Presets"; - this.templateButton.Theme = MetroFramework.MetroThemeStyle.Dark; - this.templateButton.UseSelectable = true; - this.templateButton.Click += new System.EventHandler(this.templateButton_Click); - // - // ANIMEditor - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(630, 554); - this.Controls.Add(this.templateButton); - this.Controls.Add(this.effectsGroup); - this.Controls.Add(this.resetButton); - this.Controls.Add(this.checkButton); - this.Controls.Add(this.uncheckButton); - this.Controls.Add(this.animValue); - this.Controls.Add(this.exportButton); - this.Controls.Add(this.importButton); - this.Controls.Add(this.copyButton); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.effectsGroup2); - this.Controls.Add(this.closeButton); - this.MaximumSize = new System.Drawing.Size(630, 554); - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(630, 554); - this.Name = "ANIMEditor"; - this.Style = MetroFramework.MetroColorStyle.Silver; - this.Text = "ANIM Editor"; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.effectsGroup.ResumeLayout(false); - this.effectsGroup.PerformLayout(); - this.effectsGroup2.ResumeLayout(false); - this.effectsGroup2.PerformLayout(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); + this.statueCheckBox.UseSelectable = true; + // + // zombieCheckBox + // + this.zombieCheckBox.AutoSize = true; + this.zombieCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.zombieCheckBox.Location = new System.Drawing.Point(6, 81); + this.zombieCheckBox.Name = "zombieCheckBox"; + this.zombieCheckBox.Size = new System.Drawing.Size(107, 19); + this.zombieCheckBox.TabIndex = 2; + this.zombieCheckBox.Text = "Zombie Arms"; + this.zombieCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.zombieCheckBox, " Both arms will stick up like a Zombie. "); + this.zombieCheckBox.UseSelectable = true; + // + // staticLegsCheckBox + // + this.staticLegsCheckBox.AutoSize = true; + this.staticLegsCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium; + this.staticLegsCheckBox.Location = new System.Drawing.Point(6, 50); + this.staticLegsCheckBox.Name = "staticLegsCheckBox"; + this.staticLegsCheckBox.Size = new System.Drawing.Size(90, 19); + this.staticLegsCheckBox.TabIndex = 1; + this.staticLegsCheckBox.Text = "Static Legs"; + this.staticLegsCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.toolTip.SetToolTip(this.staticLegsCheckBox, " These parts will not move in most animations. "); + this.staticLegsCheckBox.UseSelectable = true; + // + // copyButton + // + this.copyButton.Location = new System.Drawing.Point(425, 119); + this.copyButton.Name = "copyButton"; + this.copyButton.Size = new System.Drawing.Size(173, 23); + this.copyButton.TabIndex = 22; + this.copyButton.Text = "Copy ANIM Value"; + this.copyButton.Theme = MetroFramework.MetroThemeStyle.Dark; + this.copyButton.UseSelectable = true; + this.copyButton.Click += new System.EventHandler(this.copyButton_Click); + // + // importButton + // + this.importButton.Location = new System.Drawing.Point(32, 119); + this.importButton.Name = "importButton"; + this.importButton.Size = new System.Drawing.Size(186, 23); + this.importButton.TabIndex = 23; + this.importButton.Text = "Import ANIM"; + this.importButton.Theme = MetroFramework.MetroThemeStyle.Dark; + this.importButton.UseSelectable = true; + this.importButton.Click += new System.EventHandler(this.importButton_Click); + // + // exportButton + // + this.exportButton.Location = new System.Drawing.Point(229, 119); + this.exportButton.Name = "exportButton"; + this.exportButton.Size = new System.Drawing.Size(186, 23); + this.exportButton.TabIndex = 24; + this.exportButton.Text = "Export Template Texture"; + this.exportButton.Theme = MetroFramework.MetroThemeStyle.Dark; + this.exportButton.UseSelectable = true; + this.exportButton.Click += new System.EventHandler(this.exportButton_Click); + // + // animValue + // + this.animValue.AutoSize = true; + this.animValue.FontSize = MetroFramework.MetroLabelSize.Tall; + this.animValue.FontWeight = MetroFramework.MetroLabelWeight.Regular; + this.animValue.Location = new System.Drawing.Point(260, 60); + this.animValue.Name = "animValue"; + this.animValue.Size = new System.Drawing.Size(110, 25); + this.animValue.TabIndex = 25; + this.animValue.Text = "0x00000000"; + this.animValue.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.animValue.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // uncheckButton + // + this.uncheckButton.Location = new System.Drawing.Point(229, 90); + this.uncheckButton.Name = "uncheckButton"; + this.uncheckButton.Size = new System.Drawing.Size(186, 23); + this.uncheckButton.TabIndex = 26; + this.uncheckButton.Text = "Uncheck All"; + this.uncheckButton.Theme = MetroFramework.MetroThemeStyle.Dark; + this.uncheckButton.UseSelectable = true; + this.uncheckButton.Click += new System.EventHandler(this.uncheckButton_Click); + // + // checkButton + // + this.checkButton.Location = new System.Drawing.Point(32, 90); + this.checkButton.Name = "checkButton"; + this.checkButton.Size = new System.Drawing.Size(186, 23); + this.checkButton.TabIndex = 27; + this.checkButton.Text = "Check All"; + this.checkButton.Theme = MetroFramework.MetroThemeStyle.Dark; + this.checkButton.UseSelectable = true; + this.checkButton.Click += new System.EventHandler(this.checkButton_Click); + // + // toolTip + // + this.toolTip.StripAmpersands = true; + this.toolTip.Style = MetroFramework.MetroColorStyle.Blue; + this.toolTip.StyleManager = null; + this.toolTip.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // resetButton + // + this.resetButton.Location = new System.Drawing.Point(425, 90); + this.resetButton.Name = "resetButton"; + this.resetButton.Size = new System.Drawing.Size(173, 23); + this.resetButton.TabIndex = 28; + this.resetButton.Text = "Restore ANIM"; + this.resetButton.Theme = MetroFramework.MetroThemeStyle.Dark; + this.resetButton.UseSelectable = true; + this.resetButton.Click += new System.EventHandler(this.resetButton_Click); + // + // templateButton + // + this.templateButton.Location = new System.Drawing.Point(425, 154); + this.templateButton.Name = "templateButton"; + this.templateButton.Size = new System.Drawing.Size(173, 23); + this.templateButton.TabIndex = 29; + this.templateButton.Text = "Skin Presets"; + this.templateButton.Theme = MetroFramework.MetroThemeStyle.Dark; + this.templateButton.UseSelectable = true; + this.templateButton.Click += new System.EventHandler(this.templateButton_Click); + // + // ANIMEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(630, 554); + this.Controls.Add(this.templateButton); + this.Controls.Add(this.effectsGroup); + this.Controls.Add(this.resetButton); + this.Controls.Add(this.checkButton); + this.Controls.Add(this.uncheckButton); + this.Controls.Add(this.animValue); + this.Controls.Add(this.exportButton); + this.Controls.Add(this.importButton); + this.Controls.Add(this.copyButton); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.effectsGroup2); + this.Controls.Add(this.closeButton); + this.MaximumSize = new System.Drawing.Size(630, 554); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(630, 554); + this.Name = "ANIMEditor"; + this.Style = MetroFramework.MetroColorStyle.Silver; + this.Text = "ANIM Editor"; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.effectsGroup.ResumeLayout(false); + this.effectsGroup.PerformLayout(); + this.effectsGroup2.ResumeLayout(false); + this.effectsGroup2.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); } diff --git a/PCK-Studio/MainForm.Designer.cs b/PCK-Studio/MainForm.Designer.cs index c506a372..017c8daf 100644 --- a/PCK-Studio/MainForm.Designer.cs +++ b/PCK-Studio/MainForm.Designer.cs @@ -28,127 +28,128 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.contextMenuPCKEntries = new System.Windows.Forms.ContextMenuStrip(this.components); - this.createToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.folderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.skinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.createAnimatedTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.audiopckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importSkinsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importSkinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importExtractedSkinsFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.as3DSTextureFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.setFileTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.skinToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.capeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.textureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.languagesFileLOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.gameRulesFileGRFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.audioPCKFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.coloursCOLFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.gameRulesHeaderGRHToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.skinsPCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.modelsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.behavioursFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.entityMaterialsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.extractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.cloneFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.renameFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.viewFileInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.generateMipMapTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.menuStrip = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.skinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.texturePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.mashUpPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.extractToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addPasswordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.metaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertPCTextrurePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.advancedMetaAddingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertToBedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.programInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.binkaConversionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.videosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToMakeABasicSkinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToMakeACustomSkinModelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToMakeCustomSkinModelsbedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToMakeCustomMusicToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howToInstallPcksDirectlyToWiiUToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pCKCenterReleaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.howPCKsWorkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.installationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fAQToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.donateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toNobledezJackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toPhoenixARCDeveloperToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.forMattNLContributorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.administrativeToolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.storeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.wiiUPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.PS3PCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.VitaPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.joinDevelopmentDiscordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.contextMenuMetaTree = new System.Windows.Forms.ContextMenuStrip(this.components); - this.addPresetToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.addEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.tabControl = new MetroFramework.Controls.MetroTabControl(); - this.openTab = new MetroFramework.Controls.MetroTabPage(); - this.pckOpen = new System.Windows.Forms.PictureBox(); - this.label5 = new MetroFramework.Controls.MetroLabel(); - this.labelVersion = new MetroFramework.Controls.MetroLabel(); - this.ChangelogRichTextBox = new System.Windows.Forms.RichTextBox(); - this.editorTab = new MetroFramework.Controls.MetroTabPage(); - this.labelImageSize = new MetroFramework.Controls.MetroLabel(); - this.fileEntryCountLabel = new MetroFramework.Controls.MetroLabel(); - this.PropertiesTabControl = new MetroFramework.Controls.MetroTabControl(); - this.MetaTab = new MetroFramework.Controls.MetroTabPage(); - this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); - this.treeMeta = new System.Windows.Forms.TreeView(); - this.entryTypeTextBox = new MetroFramework.Controls.MetroTextBox(); - this.entryDataTextBox = new MetroFramework.Controls.MetroTextBox(); - this.buttonEdit = new MetroFramework.Controls.MetroButton(); - this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); - this.label11 = new MetroFramework.Controls.MetroLabel(); - this.treeViewMain = new System.Windows.Forms.TreeView(); - this.imageList = new System.Windows.Forms.ImageList(this.components); - this.pictureBoxImagePreview = new PckStudio.PictureBoxWithInterpolationMode(); - this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.contextMenuPCKEntries.SuspendLayout(); - this.menuStrip.SuspendLayout(); - this.contextMenuMetaTree.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - this.tabControl.SuspendLayout(); - this.openTab.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).BeginInit(); - this.editorTab.SuspendLayout(); - this.PropertiesTabControl.SuspendLayout(); - this.MetaTab.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImagePreview)).BeginInit(); - this.SuspendLayout(); - // - // contextMenuPCKEntries - // - this.contextMenuPCKEntries.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.contextMenuPCKEntries = new System.Windows.Forms.ContextMenuStrip(this.components); + this.createToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.folderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.skinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.createAnimatedTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.audiopckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.colourscolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.importSkinsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.importSkinToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.importExtractedSkinsFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.addTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.setFileTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.skinToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.capeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.textureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.languagesFileLOCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.gameRulesFileGRFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.audioPCKFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.coloursCOLFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.gameRulesHeaderGRHToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.skinsPCKToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.modelsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.behavioursFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.entityMaterialsFileBINToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.extractToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.cloneFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.renameFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.replaceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.viewFileInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.generateMipMapTextureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.as3DSTextureFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.skinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.texturePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.mashUpPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.extractToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.addPasswordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.metaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.convertPCTextrurePackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.advancedMetaAddingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.convertToBedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.programInfoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.binkaConversionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.videosToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToMakeABasicSkinPackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToMakeACustomSkinModelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToMakeCustomSkinModelsbedrockToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToMakeCustomMusicToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howToInstallPcksDirectlyToWiiUToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pCKCenterReleaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.howPCKsWorkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.installationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.fAQToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.donateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toNobledezJackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toPhoenixARCDeveloperToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.forMattNLContributorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.administrativeToolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.storeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.wiiUPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.PS3PCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.VitaPCKInstallerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.joinDevelopmentDiscordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.contextMenuMetaTree = new System.Windows.Forms.ContextMenuStrip(this.components); + this.addPresetToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.addEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteEntryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.tabControl = new MetroFramework.Controls.MetroTabControl(); + this.openTab = new MetroFramework.Controls.MetroTabPage(); + this.pckOpen = new System.Windows.Forms.PictureBox(); + this.label5 = new MetroFramework.Controls.MetroLabel(); + this.labelVersion = new MetroFramework.Controls.MetroLabel(); + this.ChangelogRichTextBox = new System.Windows.Forms.RichTextBox(); + this.editorTab = new MetroFramework.Controls.MetroTabPage(); + this.labelImageSize = new MetroFramework.Controls.MetroLabel(); + this.fileEntryCountLabel = new MetroFramework.Controls.MetroLabel(); + this.PropertiesTabControl = new MetroFramework.Controls.MetroTabControl(); + this.MetaTab = new MetroFramework.Controls.MetroTabPage(); + this.metroLabel2 = new MetroFramework.Controls.MetroLabel(); + this.treeMeta = new System.Windows.Forms.TreeView(); + this.entryTypeTextBox = new MetroFramework.Controls.MetroTextBox(); + this.entryDataTextBox = new MetroFramework.Controls.MetroTextBox(); + this.buttonEdit = new MetroFramework.Controls.MetroButton(); + this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); + this.label11 = new MetroFramework.Controls.MetroLabel(); + this.treeViewMain = new System.Windows.Forms.TreeView(); + this.imageList = new System.Windows.Forms.ImageList(this.components); + this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox(); + this.pictureBoxImagePreview = new PckStudio.PictureBoxWithInterpolationMode(); + this.contextMenuPCKEntries.SuspendLayout(); + this.menuStrip.SuspendLayout(); + this.contextMenuMetaTree.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + this.tabControl.SuspendLayout(); + this.openTab.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).BeginInit(); + this.editorTab.SuspendLayout(); + this.PropertiesTabControl.SuspendLayout(); + this.MetaTab.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImagePreview)).BeginInit(); + this.SuspendLayout(); + // + // contextMenuPCKEntries + // + this.contextMenuPCKEntries.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.createToolStripMenuItem, this.importSkinsToolStripMenuItem, this.exportToolStripMenuItem, @@ -171,37 +172,44 @@ this.folderToolStripMenuItem, this.skinToolStripMenuItem, this.createAnimatedTextureToolStripMenuItem, - this.audiopckToolStripMenuItem}); - resources.ApplyResources(this.createToolStripMenuItem, "createToolStripMenuItem"); - this.createToolStripMenuItem.Name = "createToolStripMenuItem"; - // - // folderToolStripMenuItem - // - resources.ApplyResources(this.folderToolStripMenuItem, "folderToolStripMenuItem"); - this.folderToolStripMenuItem.Name = "folderToolStripMenuItem"; - this.folderToolStripMenuItem.Click += new System.EventHandler(this.folderToolStripMenuItem_Click); - // - // skinToolStripMenuItem - // - resources.ApplyResources(this.skinToolStripMenuItem, "skinToolStripMenuItem"); - this.skinToolStripMenuItem.Name = "skinToolStripMenuItem"; - this.skinToolStripMenuItem.Click += new System.EventHandler(this.createSkinToolStripMenuItem_Click); - // - // createAnimatedTextureToolStripMenuItem - // - resources.ApplyResources(this.createAnimatedTextureToolStripMenuItem, "createAnimatedTextureToolStripMenuItem"); - this.createAnimatedTextureToolStripMenuItem.Name = "createAnimatedTextureToolStripMenuItem"; - this.createAnimatedTextureToolStripMenuItem.Click += new System.EventHandler(this.createAnimatedTextureToolStripMenuItem_Click); - // - // audiopckToolStripMenuItem - // - resources.ApplyResources(this.audiopckToolStripMenuItem, "audiopckToolStripMenuItem"); - this.audiopckToolStripMenuItem.Name = "audiopckToolStripMenuItem"; - this.audiopckToolStripMenuItem.Click += new System.EventHandler(this.audiopckToolStripMenuItem_Click); - // - // importSkinsToolStripMenuItem - // - this.importSkinsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.audiopckToolStripMenuItem, + this.colourscolToolStripMenuItem}); + resources.ApplyResources(this.createToolStripMenuItem, "createToolStripMenuItem"); + this.createToolStripMenuItem.Name = "createToolStripMenuItem"; + // + // folderToolStripMenuItem + // + resources.ApplyResources(this.folderToolStripMenuItem, "folderToolStripMenuItem"); + this.folderToolStripMenuItem.Name = "folderToolStripMenuItem"; + this.folderToolStripMenuItem.Click += new System.EventHandler(this.folderToolStripMenuItem_Click); + // + // skinToolStripMenuItem + // + resources.ApplyResources(this.skinToolStripMenuItem, "skinToolStripMenuItem"); + this.skinToolStripMenuItem.Name = "skinToolStripMenuItem"; + this.skinToolStripMenuItem.Click += new System.EventHandler(this.createSkinToolStripMenuItem_Click); + // + // createAnimatedTextureToolStripMenuItem + // + resources.ApplyResources(this.createAnimatedTextureToolStripMenuItem, "createAnimatedTextureToolStripMenuItem"); + this.createAnimatedTextureToolStripMenuItem.Name = "createAnimatedTextureToolStripMenuItem"; + this.createAnimatedTextureToolStripMenuItem.Click += new System.EventHandler(this.createAnimatedTextureToolStripMenuItem_Click); + // + // audiopckToolStripMenuItem + // + resources.ApplyResources(this.audiopckToolStripMenuItem, "audiopckToolStripMenuItem"); + this.audiopckToolStripMenuItem.Name = "audiopckToolStripMenuItem"; + this.audiopckToolStripMenuItem.Click += new System.EventHandler(this.audiopckToolStripMenuItem_Click); + // + // colourscolToolStripMenuItem + // + this.colourscolToolStripMenuItem.Name = "colourscolToolStripMenuItem"; + resources.ApplyResources(this.colourscolToolStripMenuItem, "colourscolToolStripMenuItem"); + this.colourscolToolStripMenuItem.Click += new System.EventHandler(this.colourscolToolStripMenuItem_Click); + // + // importSkinsToolStripMenuItem + // + this.importSkinsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.importSkinToolStripMenuItem, this.importExtractedSkinsFolderToolStripMenuItem, this.addTextureToolStripMenuItem}); @@ -255,128 +263,128 @@ this.modelsFileBINToolStripMenuItem, this.behavioursFileBINToolStripMenuItem, this.entityMaterialsFileBINToolStripMenuItem}); - this.setFileTypeToolStripMenuItem.Name = "setFileTypeToolStripMenuItem"; - resources.ApplyResources(this.setFileTypeToolStripMenuItem, "setFileTypeToolStripMenuItem"); - // - // skinToolStripMenuItem1 - // - this.skinToolStripMenuItem1.Name = "skinToolStripMenuItem1"; - resources.ApplyResources(this.skinToolStripMenuItem1, "skinToolStripMenuItem1"); - // - // capeToolStripMenuItem - // - this.capeToolStripMenuItem.Name = "capeToolStripMenuItem"; - resources.ApplyResources(this.capeToolStripMenuItem, "capeToolStripMenuItem"); - // - // textureToolStripMenuItem - // - this.textureToolStripMenuItem.Name = "textureToolStripMenuItem"; - resources.ApplyResources(this.textureToolStripMenuItem, "textureToolStripMenuItem"); - // - // languagesFileLOCToolStripMenuItem - // - this.languagesFileLOCToolStripMenuItem.Name = "languagesFileLOCToolStripMenuItem"; - resources.ApplyResources(this.languagesFileLOCToolStripMenuItem, "languagesFileLOCToolStripMenuItem"); - // - // gameRulesFileGRFToolStripMenuItem - // - this.gameRulesFileGRFToolStripMenuItem.Name = "gameRulesFileGRFToolStripMenuItem"; - resources.ApplyResources(this.gameRulesFileGRFToolStripMenuItem, "gameRulesFileGRFToolStripMenuItem"); - // - // audioPCKFileToolStripMenuItem - // - this.audioPCKFileToolStripMenuItem.Name = "audioPCKFileToolStripMenuItem"; - resources.ApplyResources(this.audioPCKFileToolStripMenuItem, "audioPCKFileToolStripMenuItem"); - // - // coloursCOLFileToolStripMenuItem - // - this.coloursCOLFileToolStripMenuItem.Name = "coloursCOLFileToolStripMenuItem"; - resources.ApplyResources(this.coloursCOLFileToolStripMenuItem, "coloursCOLFileToolStripMenuItem"); - // - // gameRulesHeaderGRHToolStripMenuItem - // - this.gameRulesHeaderGRHToolStripMenuItem.Name = "gameRulesHeaderGRHToolStripMenuItem"; - resources.ApplyResources(this.gameRulesHeaderGRHToolStripMenuItem, "gameRulesHeaderGRHToolStripMenuItem"); - // - // skinsPCKToolStripMenuItem - // - this.skinsPCKToolStripMenuItem.Name = "skinsPCKToolStripMenuItem"; - resources.ApplyResources(this.skinsPCKToolStripMenuItem, "skinsPCKToolStripMenuItem"); - // - // modelsFileBINToolStripMenuItem - // - this.modelsFileBINToolStripMenuItem.Name = "modelsFileBINToolStripMenuItem"; - resources.ApplyResources(this.modelsFileBINToolStripMenuItem, "modelsFileBINToolStripMenuItem"); - // - // behavioursFileBINToolStripMenuItem - // - this.behavioursFileBINToolStripMenuItem.Name = "behavioursFileBINToolStripMenuItem"; - resources.ApplyResources(this.behavioursFileBINToolStripMenuItem, "behavioursFileBINToolStripMenuItem"); - // - // entityMaterialsFileBINToolStripMenuItem - // - this.entityMaterialsFileBINToolStripMenuItem.Name = "entityMaterialsFileBINToolStripMenuItem"; - resources.ApplyResources(this.entityMaterialsFileBINToolStripMenuItem, "entityMaterialsFileBINToolStripMenuItem"); - // - // extractToolStripMenuItem - // - resources.ApplyResources(this.extractToolStripMenuItem, "extractToolStripMenuItem"); - this.extractToolStripMenuItem.Name = "extractToolStripMenuItem"; - this.extractToolStripMenuItem.Click += new System.EventHandler(this.extractToolStripMenuItem_Click); - // - // cloneFileToolStripMenuItem - // - this.cloneFileToolStripMenuItem.Name = "cloneFileToolStripMenuItem"; - resources.ApplyResources(this.cloneFileToolStripMenuItem, "cloneFileToolStripMenuItem"); - this.cloneFileToolStripMenuItem.Click += new System.EventHandler(this.cloneFileToolStripMenuItem_Click); - // - // renameFileToolStripMenuItem - // - resources.ApplyResources(this.renameFileToolStripMenuItem, "renameFileToolStripMenuItem"); - this.renameFileToolStripMenuItem.Name = "renameFileToolStripMenuItem"; - this.renameFileToolStripMenuItem.Click += new System.EventHandler(this.renameFileToolStripMenuItem_Click); - // - // replaceToolStripMenuItem - // - resources.ApplyResources(this.replaceToolStripMenuItem, "replaceToolStripMenuItem"); - this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem"; - this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click); - // - // moveUpToolStripMenuItem - // - resources.ApplyResources(this.moveUpToolStripMenuItem, "moveUpToolStripMenuItem"); - this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem"; - this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click); - // - // deleteFileToolStripMenuItem - // - resources.ApplyResources(this.deleteFileToolStripMenuItem, "deleteFileToolStripMenuItem"); - this.deleteFileToolStripMenuItem.Name = "deleteFileToolStripMenuItem"; - this.deleteFileToolStripMenuItem.Click += new System.EventHandler(this.deleteFileToolStripMenuItem_Click); - // - // moveDownToolStripMenuItem - // - resources.ApplyResources(this.moveDownToolStripMenuItem, "moveDownToolStripMenuItem"); - this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem"; - this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click); - // - // viewFileInfoToolStripMenuItem - // - this.viewFileInfoToolStripMenuItem.Name = "viewFileInfoToolStripMenuItem"; - resources.ApplyResources(this.viewFileInfoToolStripMenuItem, "viewFileInfoToolStripMenuItem"); - this.viewFileInfoToolStripMenuItem.Click += new System.EventHandler(this.viewFileInfoToolStripMenuItem_Click); - // - // generateMipMapTextureToolStripMenuItem - // - this.generateMipMapTextureToolStripMenuItem.Name = "generateMipMapTextureToolStripMenuItem"; - resources.ApplyResources(this.generateMipMapTextureToolStripMenuItem, "generateMipMapTextureToolStripMenuItem"); - this.generateMipMapTextureToolStripMenuItem.Click += new System.EventHandler(this.generateMipMapTextureToolStripMenuItem_Click); - // - // menuStrip - // - resources.ApplyResources(this.menuStrip, "menuStrip"); - this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); - this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.setFileTypeToolStripMenuItem.Name = "setFileTypeToolStripMenuItem"; + resources.ApplyResources(this.setFileTypeToolStripMenuItem, "setFileTypeToolStripMenuItem"); + // + // skinToolStripMenuItem1 + // + this.skinToolStripMenuItem1.Name = "skinToolStripMenuItem1"; + resources.ApplyResources(this.skinToolStripMenuItem1, "skinToolStripMenuItem1"); + // + // capeToolStripMenuItem + // + this.capeToolStripMenuItem.Name = "capeToolStripMenuItem"; + resources.ApplyResources(this.capeToolStripMenuItem, "capeToolStripMenuItem"); + // + // textureToolStripMenuItem + // + this.textureToolStripMenuItem.Name = "textureToolStripMenuItem"; + resources.ApplyResources(this.textureToolStripMenuItem, "textureToolStripMenuItem"); + // + // languagesFileLOCToolStripMenuItem + // + this.languagesFileLOCToolStripMenuItem.Name = "languagesFileLOCToolStripMenuItem"; + resources.ApplyResources(this.languagesFileLOCToolStripMenuItem, "languagesFileLOCToolStripMenuItem"); + // + // gameRulesFileGRFToolStripMenuItem + // + this.gameRulesFileGRFToolStripMenuItem.Name = "gameRulesFileGRFToolStripMenuItem"; + resources.ApplyResources(this.gameRulesFileGRFToolStripMenuItem, "gameRulesFileGRFToolStripMenuItem"); + // + // audioPCKFileToolStripMenuItem + // + this.audioPCKFileToolStripMenuItem.Name = "audioPCKFileToolStripMenuItem"; + resources.ApplyResources(this.audioPCKFileToolStripMenuItem, "audioPCKFileToolStripMenuItem"); + // + // coloursCOLFileToolStripMenuItem + // + this.coloursCOLFileToolStripMenuItem.Name = "coloursCOLFileToolStripMenuItem"; + resources.ApplyResources(this.coloursCOLFileToolStripMenuItem, "coloursCOLFileToolStripMenuItem"); + // + // gameRulesHeaderGRHToolStripMenuItem + // + this.gameRulesHeaderGRHToolStripMenuItem.Name = "gameRulesHeaderGRHToolStripMenuItem"; + resources.ApplyResources(this.gameRulesHeaderGRHToolStripMenuItem, "gameRulesHeaderGRHToolStripMenuItem"); + // + // skinsPCKToolStripMenuItem + // + this.skinsPCKToolStripMenuItem.Name = "skinsPCKToolStripMenuItem"; + resources.ApplyResources(this.skinsPCKToolStripMenuItem, "skinsPCKToolStripMenuItem"); + // + // modelsFileBINToolStripMenuItem + // + this.modelsFileBINToolStripMenuItem.Name = "modelsFileBINToolStripMenuItem"; + resources.ApplyResources(this.modelsFileBINToolStripMenuItem, "modelsFileBINToolStripMenuItem"); + // + // behavioursFileBINToolStripMenuItem + // + this.behavioursFileBINToolStripMenuItem.Name = "behavioursFileBINToolStripMenuItem"; + resources.ApplyResources(this.behavioursFileBINToolStripMenuItem, "behavioursFileBINToolStripMenuItem"); + // + // entityMaterialsFileBINToolStripMenuItem + // + this.entityMaterialsFileBINToolStripMenuItem.Name = "entityMaterialsFileBINToolStripMenuItem"; + resources.ApplyResources(this.entityMaterialsFileBINToolStripMenuItem, "entityMaterialsFileBINToolStripMenuItem"); + // + // extractToolStripMenuItem + // + resources.ApplyResources(this.extractToolStripMenuItem, "extractToolStripMenuItem"); + this.extractToolStripMenuItem.Name = "extractToolStripMenuItem"; + this.extractToolStripMenuItem.Click += new System.EventHandler(this.extractToolStripMenuItem_Click); + // + // cloneFileToolStripMenuItem + // + this.cloneFileToolStripMenuItem.Name = "cloneFileToolStripMenuItem"; + resources.ApplyResources(this.cloneFileToolStripMenuItem, "cloneFileToolStripMenuItem"); + this.cloneFileToolStripMenuItem.Click += new System.EventHandler(this.cloneFileToolStripMenuItem_Click); + // + // renameFileToolStripMenuItem + // + resources.ApplyResources(this.renameFileToolStripMenuItem, "renameFileToolStripMenuItem"); + this.renameFileToolStripMenuItem.Name = "renameFileToolStripMenuItem"; + this.renameFileToolStripMenuItem.Click += new System.EventHandler(this.renameFileToolStripMenuItem_Click); + // + // replaceToolStripMenuItem + // + resources.ApplyResources(this.replaceToolStripMenuItem, "replaceToolStripMenuItem"); + this.replaceToolStripMenuItem.Name = "replaceToolStripMenuItem"; + this.replaceToolStripMenuItem.Click += new System.EventHandler(this.replaceToolStripMenuItem_Click); + // + // moveUpToolStripMenuItem + // + resources.ApplyResources(this.moveUpToolStripMenuItem, "moveUpToolStripMenuItem"); + this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem"; + this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click); + // + // deleteFileToolStripMenuItem + // + resources.ApplyResources(this.deleteFileToolStripMenuItem, "deleteFileToolStripMenuItem"); + this.deleteFileToolStripMenuItem.Name = "deleteFileToolStripMenuItem"; + this.deleteFileToolStripMenuItem.Click += new System.EventHandler(this.deleteFileToolStripMenuItem_Click); + // + // moveDownToolStripMenuItem + // + resources.ApplyResources(this.moveDownToolStripMenuItem, "moveDownToolStripMenuItem"); + this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem"; + this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click); + // + // viewFileInfoToolStripMenuItem + // + this.viewFileInfoToolStripMenuItem.Name = "viewFileInfoToolStripMenuItem"; + resources.ApplyResources(this.viewFileInfoToolStripMenuItem, "viewFileInfoToolStripMenuItem"); + this.viewFileInfoToolStripMenuItem.Click += new System.EventHandler(this.viewFileInfoToolStripMenuItem_Click); + // + // generateMipMapTextureToolStripMenuItem + // + this.generateMipMapTextureToolStripMenuItem.Name = "generateMipMapTextureToolStripMenuItem"; + resources.ApplyResources(this.generateMipMapTextureToolStripMenuItem, "generateMipMapTextureToolStripMenuItem"); + this.generateMipMapTextureToolStripMenuItem.Click += new System.EventHandler(this.generateMipMapTextureToolStripMenuItem_Click); + // + // menuStrip + // + resources.ApplyResources(this.menuStrip, "menuStrip"); + this.menuStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem, this.editToolStripMenuItem, this.helpToolStripMenuItem, @@ -677,339 +685,338 @@ this.addPresetToolStripMenuItem1, this.addEntryToolStripMenuItem, this.deleteEntryToolStripMenuItem}); - this.contextMenuMetaTree.Name = "contextMenuStrip1"; - resources.ApplyResources(this.contextMenuMetaTree, "contextMenuMetaTree"); - // - // addPresetToolStripMenuItem1 - // - resources.ApplyResources(this.addPresetToolStripMenuItem1, "addPresetToolStripMenuItem1"); - this.addPresetToolStripMenuItem1.Name = "addPresetToolStripMenuItem1"; - // - // addEntryToolStripMenuItem - // - resources.ApplyResources(this.addEntryToolStripMenuItem, "addEntryToolStripMenuItem"); - this.addEntryToolStripMenuItem.Name = "addEntryToolStripMenuItem"; - this.addEntryToolStripMenuItem.Click += new System.EventHandler(this.addEntryToolStripMenuItem_Click_1); - // - // deleteEntryToolStripMenuItem - // - resources.ApplyResources(this.deleteEntryToolStripMenuItem, "deleteEntryToolStripMenuItem"); - this.deleteEntryToolStripMenuItem.Name = "deleteEntryToolStripMenuItem"; - this.deleteEntryToolStripMenuItem.Click += new System.EventHandler(this.deleteEntryToolStripMenuItem_Click); - // - // pictureBox2 - // - resources.ApplyResources(this.pictureBox2, "pictureBox2"); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.TabStop = false; - // - // tabControl - // - this.tabControl.Controls.Add(this.openTab); - this.tabControl.Controls.Add(this.editorTab); - resources.ApplyResources(this.tabControl, "tabControl"); - this.tabControl.Name = "tabControl"; - this.tabControl.SelectedIndex = 0; - this.tabControl.Style = MetroFramework.MetroColorStyle.Silver; - this.tabControl.TabStop = false; - this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark; - this.tabControl.UseSelectable = true; - // - // openTab - // - this.openTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); - this.openTab.Controls.Add(this.pckOpen); - this.openTab.Controls.Add(this.label5); - this.openTab.Controls.Add(this.labelVersion); - this.openTab.Controls.Add(this.ChangelogRichTextBox); - this.openTab.ForeColor = System.Drawing.Color.Transparent; - this.openTab.HorizontalScrollbarBarColor = true; - this.openTab.HorizontalScrollbarHighlightOnWheel = false; - this.openTab.HorizontalScrollbarSize = 10; - resources.ApplyResources(this.openTab, "openTab"); - this.openTab.Name = "openTab"; - this.openTab.Style = MetroFramework.MetroColorStyle.Black; - this.openTab.Theme = MetroFramework.MetroThemeStyle.Dark; - this.openTab.UseStyleColors = true; - this.openTab.VerticalScrollbarBarColor = false; - this.openTab.VerticalScrollbarHighlightOnWheel = false; - this.openTab.VerticalScrollbarSize = 10; - // - // pckOpen - // - this.pckOpen.BackColor = System.Drawing.Color.Transparent; - resources.ApplyResources(this.pckOpen, "pckOpen"); - this.pckOpen.Image = global::PckStudio.Properties.Resources.pckClosed; - this.pckOpen.Name = "pckOpen"; - this.pckOpen.TabStop = false; - this.pckOpen.Click += new System.EventHandler(this.OpenPck_Click); - this.pckOpen.DragDrop += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragDrop); - this.pckOpen.DragEnter += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragEnter); - this.pckOpen.DragLeave += new System.EventHandler(this.OpenPck_DragLeave); - this.pckOpen.MouseEnter += new System.EventHandler(this.OpenPck_MouseEnter); - this.pckOpen.MouseLeave += new System.EventHandler(this.OpenPck_MouseLeave); - // - // label5 - // - resources.ApplyResources(this.label5, "label5"); - this.label5.BackColor = System.Drawing.Color.Transparent; - this.label5.ForeColor = System.Drawing.Color.White; - this.label5.Name = "label5"; - this.label5.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // labelVersion - // - resources.ApplyResources(this.labelVersion, "labelVersion"); - this.labelVersion.ForeColor = System.Drawing.Color.White; - this.labelVersion.Name = "labelVersion"; - this.labelVersion.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // ChangelogRichTextBox - // - this.ChangelogRichTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); - this.ChangelogRichTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - resources.ApplyResources(this.ChangelogRichTextBox, "ChangelogRichTextBox"); - this.ChangelogRichTextBox.ForeColor = System.Drawing.Color.White; - this.ChangelogRichTextBox.Name = "ChangelogRichTextBox"; - this.ChangelogRichTextBox.ReadOnly = true; - // - // editorTab - // - this.editorTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); - resources.ApplyResources(this.editorTab, "editorTab"); - this.editorTab.Controls.Add(this.labelImageSize); - this.editorTab.Controls.Add(this.fileEntryCountLabel); - this.editorTab.Controls.Add(this.PropertiesTabControl); - this.editorTab.Controls.Add(this.label11); - this.editorTab.Controls.Add(this.treeViewMain); - this.editorTab.Controls.Add(this.pictureBox2); - this.editorTab.Controls.Add(this.pictureBoxImagePreview); - this.editorTab.ForeColor = System.Drawing.Color.Transparent; - this.editorTab.HorizontalScrollbarBarColor = true; - this.editorTab.HorizontalScrollbarHighlightOnWheel = false; - this.editorTab.HorizontalScrollbarSize = 0; - this.editorTab.Name = "editorTab"; - this.editorTab.Style = MetroFramework.MetroColorStyle.White; - this.editorTab.Theme = MetroFramework.MetroThemeStyle.Dark; - this.editorTab.VerticalScrollbarBarColor = true; - this.editorTab.VerticalScrollbarHighlightOnWheel = false; - this.editorTab.VerticalScrollbarSize = 0; - // - // labelImageSize - // - resources.ApplyResources(this.labelImageSize, "labelImageSize"); - this.labelImageSize.Name = "labelImageSize"; - this.labelImageSize.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // fileEntryCountLabel - // - resources.ApplyResources(this.fileEntryCountLabel, "fileEntryCountLabel"); - this.fileEntryCountLabel.Name = "fileEntryCountLabel"; - this.fileEntryCountLabel.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // PropertiesTabControl - // - resources.ApplyResources(this.PropertiesTabControl, "PropertiesTabControl"); - this.PropertiesTabControl.Controls.Add(this.MetaTab); - this.PropertiesTabControl.Name = "PropertiesTabControl"; - this.PropertiesTabControl.SelectedIndex = 0; - this.PropertiesTabControl.Style = MetroFramework.MetroColorStyle.Silver; - this.PropertiesTabControl.Theme = MetroFramework.MetroThemeStyle.Dark; - this.PropertiesTabControl.UseSelectable = true; - // - // MetaTab - // - this.MetaTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.MetaTab.Controls.Add(this.metroLabel2); - this.MetaTab.Controls.Add(this.treeMeta); - this.MetaTab.Controls.Add(this.entryTypeTextBox); - this.MetaTab.Controls.Add(this.entryDataTextBox); - this.MetaTab.Controls.Add(this.buttonEdit); - this.MetaTab.Controls.Add(this.metroLabel1); - this.MetaTab.HorizontalScrollbarBarColor = true; - this.MetaTab.HorizontalScrollbarHighlightOnWheel = false; - this.MetaTab.HorizontalScrollbarSize = 10; - resources.ApplyResources(this.MetaTab, "MetaTab"); - this.MetaTab.Name = "MetaTab"; - this.MetaTab.Theme = MetroFramework.MetroThemeStyle.Dark; - this.MetaTab.VerticalScrollbarBarColor = true; - this.MetaTab.VerticalScrollbarHighlightOnWheel = false; - this.MetaTab.VerticalScrollbarSize = 10; - // - // metroLabel2 - // - resources.ApplyResources(this.metroLabel2, "metroLabel2"); - this.metroLabel2.Name = "metroLabel2"; - this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // treeMeta - // - this.treeMeta.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); - this.treeMeta.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.treeMeta.ContextMenuStrip = this.contextMenuMetaTree; - resources.ApplyResources(this.treeMeta, "treeMeta"); - this.treeMeta.ForeColor = System.Drawing.SystemColors.Window; - this.treeMeta.Name = "treeMeta"; - this.treeMeta.PathSeparator = "/"; - this.treeMeta.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeMeta_AfterSelect); - this.treeMeta.DoubleClick += new System.EventHandler(this.treeMeta_DoubleClick); - this.treeMeta.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeMeta_KeyDown); - // - // entryTypeTextBox - // - resources.ApplyResources(this.entryTypeTextBox, "entryTypeTextBox"); - // - // - // - this.entryTypeTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); - this.entryTypeTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); - this.entryTypeTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); - this.entryTypeTextBox.CustomButton.Name = ""; - this.entryTypeTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); - this.entryTypeTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.entryTypeTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); - this.entryTypeTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.entryTypeTextBox.CustomButton.UseSelectable = true; - this.entryTypeTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); - this.entryTypeTextBox.Lines = new string[0]; - this.entryTypeTextBox.MaxLength = 32767; - this.entryTypeTextBox.Name = "entryTypeTextBox"; - this.entryTypeTextBox.PasswordChar = '\0'; - this.entryTypeTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.entryTypeTextBox.SelectedText = ""; - this.entryTypeTextBox.SelectionLength = 0; - this.entryTypeTextBox.SelectionStart = 0; - this.entryTypeTextBox.ShortcutsEnabled = true; - this.entryTypeTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.entryTypeTextBox.UseSelectable = true; - this.entryTypeTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.entryTypeTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // entryDataTextBox - // - resources.ApplyResources(this.entryDataTextBox, "entryDataTextBox"); - // - // - // - this.entryDataTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1"))); - this.entryDataTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1"))); - this.entryDataTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1"))); - this.entryDataTextBox.CustomButton.Name = ""; - this.entryDataTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1"))); - this.entryDataTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.entryDataTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1"))); - this.entryDataTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.entryDataTextBox.CustomButton.UseSelectable = true; - this.entryDataTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1"))); - this.entryDataTextBox.Lines = new string[0]; - this.entryDataTextBox.MaxLength = 32767; - this.entryDataTextBox.Name = "entryDataTextBox"; - this.entryDataTextBox.PasswordChar = '\0'; - this.entryDataTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.entryDataTextBox.SelectedText = ""; - this.entryDataTextBox.SelectionLength = 0; - this.entryDataTextBox.SelectionStart = 0; - this.entryDataTextBox.ShortcutsEnabled = true; - this.entryDataTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.entryDataTextBox.UseSelectable = true; - this.entryDataTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.entryDataTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - // - // buttonEdit - // - resources.ApplyResources(this.buttonEdit, "buttonEdit"); - this.buttonEdit.Name = "buttonEdit"; - this.buttonEdit.Theme = MetroFramework.MetroThemeStyle.Dark; - this.buttonEdit.UseSelectable = true; - this.buttonEdit.Click += new System.EventHandler(this.treeViewMain_DoubleClick); - // - // metroLabel1 - // - resources.ApplyResources(this.metroLabel1, "metroLabel1"); - this.metroLabel1.Name = "metroLabel1"; - this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; - // - // label11 - // - resources.ApplyResources(this.label11, "label11"); - this.label11.Name = "label11"; - // - // treeViewMain - // - this.treeViewMain.AllowDrop = true; - resources.ApplyResources(this.treeViewMain, "treeViewMain"); - this.treeViewMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(12)))), ((int)(((byte)(12))))); - this.treeViewMain.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.treeViewMain.ContextMenuStrip = this.contextMenuPCKEntries; - this.treeViewMain.ForeColor = System.Drawing.Color.White; - this.treeViewMain.ImageList = this.imageList; - this.treeViewMain.LabelEdit = true; - this.treeViewMain.Name = "treeViewMain"; - this.treeViewMain.PathSeparator = "/"; - this.treeViewMain.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.treeViewMain_BeforeLabelEdit); - this.treeViewMain.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.selectNode); - this.treeViewMain.DoubleClick += new System.EventHandler(this.treeViewMain_DoubleClick); - this.treeViewMain.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeViewMain_KeyDown); - // - // imageList - // - this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; - resources.ApplyResources(this.imageList, "imageList"); - this.imageList.TransparentColor = System.Drawing.Color.Transparent; - // - // pictureBoxImagePreview - // - resources.ApplyResources(this.pictureBoxImagePreview, "pictureBoxImagePreview"); - this.pictureBoxImagePreview.BackColor = System.Drawing.Color.Transparent; - this.pictureBoxImagePreview.Image = global::PckStudio.Properties.Resources.NoImageFound; - this.pictureBoxImagePreview.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; - this.pictureBoxImagePreview.Name = "pictureBoxImagePreview"; - this.pictureBoxImagePreview.TabStop = false; - // - // LittleEndianCheckBox - // - resources.ApplyResources(this.LittleEndianCheckBox, "LittleEndianCheckBox"); - this.LittleEndianCheckBox.BackColor = System.Drawing.Color.Transparent; - this.LittleEndianCheckBox.Name = "LittleEndianCheckBox"; - this.LittleEndianCheckBox.Style = MetroFramework.MetroColorStyle.White; - this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.LittleEndianCheckBox.UseSelectable = true; - // - // MainForm - // - this.ApplyImageInvert = true; - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.LittleEndianCheckBox); - this.Controls.Add(this.menuStrip); - this.Controls.Add(this.tabControl); - this.DisplayHeader = false; - this.ForeColor = System.Drawing.Color.Silver; - this.MainMenuStrip = this.menuStrip; - this.Name = "MainForm"; - this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow; - this.Style = MetroFramework.MetroColorStyle.Black; - this.Theme = MetroFramework.MetroThemeStyle.Dark; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing); - this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormMain_FormClosed); - this.Load += new System.EventHandler(this.Form1_Load); - this.contextMenuPCKEntries.ResumeLayout(false); - this.menuStrip.ResumeLayout(false); - this.menuStrip.PerformLayout(); - this.contextMenuMetaTree.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - this.tabControl.ResumeLayout(false); - this.openTab.ResumeLayout(false); - this.openTab.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).EndInit(); - this.editorTab.ResumeLayout(false); - this.editorTab.PerformLayout(); - this.PropertiesTabControl.ResumeLayout(false); - this.MetaTab.ResumeLayout(false); - this.MetaTab.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImagePreview)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); + this.contextMenuMetaTree.Name = "contextMenuStrip1"; + resources.ApplyResources(this.contextMenuMetaTree, "contextMenuMetaTree"); + // + // addPresetToolStripMenuItem1 + // + resources.ApplyResources(this.addPresetToolStripMenuItem1, "addPresetToolStripMenuItem1"); + this.addPresetToolStripMenuItem1.Name = "addPresetToolStripMenuItem1"; + // + // addEntryToolStripMenuItem + // + resources.ApplyResources(this.addEntryToolStripMenuItem, "addEntryToolStripMenuItem"); + this.addEntryToolStripMenuItem.Name = "addEntryToolStripMenuItem"; + this.addEntryToolStripMenuItem.Click += new System.EventHandler(this.addEntryToolStripMenuItem_Click_1); + // + // deleteEntryToolStripMenuItem + // + resources.ApplyResources(this.deleteEntryToolStripMenuItem, "deleteEntryToolStripMenuItem"); + this.deleteEntryToolStripMenuItem.Name = "deleteEntryToolStripMenuItem"; + this.deleteEntryToolStripMenuItem.Click += new System.EventHandler(this.deleteEntryToolStripMenuItem_Click); + // + // pictureBox2 + // + resources.ApplyResources(this.pictureBox2, "pictureBox2"); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.TabStop = false; + // + // tabControl + // + this.tabControl.Controls.Add(this.openTab); + this.tabControl.Controls.Add(this.editorTab); + resources.ApplyResources(this.tabControl, "tabControl"); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Style = MetroFramework.MetroColorStyle.Silver; + this.tabControl.TabStop = false; + this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark; + this.tabControl.UseSelectable = true; + this.tabControl.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabControl_Selecting); + // + // openTab + // + this.openTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.openTab.Controls.Add(this.pckOpen); + this.openTab.Controls.Add(this.label5); + this.openTab.Controls.Add(this.labelVersion); + this.openTab.Controls.Add(this.ChangelogRichTextBox); + this.openTab.ForeColor = System.Drawing.Color.Transparent; + this.openTab.HorizontalScrollbarBarColor = true; + this.openTab.HorizontalScrollbarHighlightOnWheel = false; + this.openTab.HorizontalScrollbarSize = 10; + resources.ApplyResources(this.openTab, "openTab"); + this.openTab.Name = "openTab"; + this.openTab.Style = MetroFramework.MetroColorStyle.Black; + this.openTab.Theme = MetroFramework.MetroThemeStyle.Dark; + this.openTab.UseStyleColors = true; + this.openTab.VerticalScrollbarBarColor = false; + this.openTab.VerticalScrollbarHighlightOnWheel = false; + this.openTab.VerticalScrollbarSize = 10; + // + // pckOpen + // + this.pckOpen.BackColor = System.Drawing.Color.Transparent; + resources.ApplyResources(this.pckOpen, "pckOpen"); + this.pckOpen.Name = "pckOpen"; + this.pckOpen.TabStop = false; + this.pckOpen.Click += new System.EventHandler(this.OpenPck_Click); + this.pckOpen.DragDrop += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragDrop); + this.pckOpen.DragEnter += new System.Windows.Forms.DragEventHandler(this.OpenPck_DragEnter); + this.pckOpen.DragLeave += new System.EventHandler(this.OpenPck_DragLeave); + this.pckOpen.MouseEnter += new System.EventHandler(this.OpenPck_MouseEnter); + this.pckOpen.MouseLeave += new System.EventHandler(this.OpenPck_MouseLeave); + // + // label5 + // + resources.ApplyResources(this.label5, "label5"); + this.label5.BackColor = System.Drawing.Color.Transparent; + this.label5.ForeColor = System.Drawing.Color.White; + this.label5.Name = "label5"; + this.label5.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // labelVersion + // + resources.ApplyResources(this.labelVersion, "labelVersion"); + this.labelVersion.ForeColor = System.Drawing.Color.White; + this.labelVersion.Name = "labelVersion"; + this.labelVersion.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // ChangelogRichTextBox + // + this.ChangelogRichTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); + this.ChangelogRichTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + resources.ApplyResources(this.ChangelogRichTextBox, "ChangelogRichTextBox"); + this.ChangelogRichTextBox.ForeColor = System.Drawing.Color.White; + this.ChangelogRichTextBox.Name = "ChangelogRichTextBox"; + this.ChangelogRichTextBox.ReadOnly = true; + // + // editorTab + // + this.editorTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + resources.ApplyResources(this.editorTab, "editorTab"); + this.editorTab.Controls.Add(this.labelImageSize); + this.editorTab.Controls.Add(this.fileEntryCountLabel); + this.editorTab.Controls.Add(this.PropertiesTabControl); + this.editorTab.Controls.Add(this.label11); + this.editorTab.Controls.Add(this.treeViewMain); + this.editorTab.Controls.Add(this.pictureBox2); + this.editorTab.Controls.Add(this.pictureBoxImagePreview); + this.editorTab.ForeColor = System.Drawing.Color.Transparent; + this.editorTab.HorizontalScrollbarBarColor = true; + this.editorTab.HorizontalScrollbarHighlightOnWheel = false; + this.editorTab.HorizontalScrollbarSize = 0; + this.editorTab.Name = "editorTab"; + this.editorTab.Style = MetroFramework.MetroColorStyle.White; + this.editorTab.Theme = MetroFramework.MetroThemeStyle.Dark; + this.editorTab.VerticalScrollbarBarColor = true; + this.editorTab.VerticalScrollbarHighlightOnWheel = false; + this.editorTab.VerticalScrollbarSize = 0; + // + // labelImageSize + // + resources.ApplyResources(this.labelImageSize, "labelImageSize"); + this.labelImageSize.Name = "labelImageSize"; + this.labelImageSize.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // fileEntryCountLabel + // + resources.ApplyResources(this.fileEntryCountLabel, "fileEntryCountLabel"); + this.fileEntryCountLabel.Name = "fileEntryCountLabel"; + this.fileEntryCountLabel.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // PropertiesTabControl + // + resources.ApplyResources(this.PropertiesTabControl, "PropertiesTabControl"); + this.PropertiesTabControl.Controls.Add(this.MetaTab); + this.PropertiesTabControl.Name = "PropertiesTabControl"; + this.PropertiesTabControl.SelectedIndex = 0; + this.PropertiesTabControl.Style = MetroFramework.MetroColorStyle.Silver; + this.PropertiesTabControl.Theme = MetroFramework.MetroThemeStyle.Dark; + this.PropertiesTabControl.UseSelectable = true; + // + // MetaTab + // + this.MetaTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.MetaTab.Controls.Add(this.metroLabel2); + this.MetaTab.Controls.Add(this.treeMeta); + this.MetaTab.Controls.Add(this.entryTypeTextBox); + this.MetaTab.Controls.Add(this.entryDataTextBox); + this.MetaTab.Controls.Add(this.buttonEdit); + this.MetaTab.Controls.Add(this.metroLabel1); + this.MetaTab.HorizontalScrollbarBarColor = true; + this.MetaTab.HorizontalScrollbarHighlightOnWheel = false; + this.MetaTab.HorizontalScrollbarSize = 10; + resources.ApplyResources(this.MetaTab, "MetaTab"); + this.MetaTab.Name = "MetaTab"; + this.MetaTab.Theme = MetroFramework.MetroThemeStyle.Dark; + this.MetaTab.VerticalScrollbarBarColor = true; + this.MetaTab.VerticalScrollbarHighlightOnWheel = false; + this.MetaTab.VerticalScrollbarSize = 10; + // + // metroLabel2 + // + resources.ApplyResources(this.metroLabel2, "metroLabel2"); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // treeMeta + // + this.treeMeta.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(13)))), ((int)(((byte)(13)))), ((int)(((byte)(13))))); + this.treeMeta.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.treeMeta.ContextMenuStrip = this.contextMenuMetaTree; + resources.ApplyResources(this.treeMeta, "treeMeta"); + this.treeMeta.ForeColor = System.Drawing.SystemColors.Window; + this.treeMeta.Name = "treeMeta"; + this.treeMeta.PathSeparator = "/"; + this.treeMeta.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeMeta_AfterSelect); + this.treeMeta.DoubleClick += new System.EventHandler(this.treeMeta_DoubleClick); + this.treeMeta.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeMeta_KeyDown); + // + // entryTypeTextBox + // + resources.ApplyResources(this.entryTypeTextBox, "entryTypeTextBox"); + // + // + // + this.entryTypeTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); + this.entryTypeTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); + this.entryTypeTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); + this.entryTypeTextBox.CustomButton.Name = ""; + this.entryTypeTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); + this.entryTypeTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.entryTypeTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); + this.entryTypeTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.entryTypeTextBox.CustomButton.UseSelectable = true; + this.entryTypeTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); + this.entryTypeTextBox.Lines = new string[0]; + this.entryTypeTextBox.MaxLength = 32767; + this.entryTypeTextBox.Name = "entryTypeTextBox"; + this.entryTypeTextBox.PasswordChar = '\0'; + this.entryTypeTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.entryTypeTextBox.SelectedText = ""; + this.entryTypeTextBox.SelectionLength = 0; + this.entryTypeTextBox.SelectionStart = 0; + this.entryTypeTextBox.ShortcutsEnabled = true; + this.entryTypeTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.entryTypeTextBox.UseSelectable = true; + this.entryTypeTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.entryTypeTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // entryDataTextBox + // + resources.ApplyResources(this.entryDataTextBox, "entryDataTextBox"); + // + // + // + this.entryDataTextBox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image1"))); + this.entryDataTextBox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode1"))); + this.entryDataTextBox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location1"))); + this.entryDataTextBox.CustomButton.Name = ""; + this.entryDataTextBox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size1"))); + this.entryDataTextBox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.entryDataTextBox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex1"))); + this.entryDataTextBox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.entryDataTextBox.CustomButton.UseSelectable = true; + this.entryDataTextBox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible1"))); + this.entryDataTextBox.Lines = new string[0]; + this.entryDataTextBox.MaxLength = 32767; + this.entryDataTextBox.Name = "entryDataTextBox"; + this.entryDataTextBox.PasswordChar = '\0'; + this.entryDataTextBox.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.entryDataTextBox.SelectedText = ""; + this.entryDataTextBox.SelectionLength = 0; + this.entryDataTextBox.SelectionStart = 0; + this.entryDataTextBox.ShortcutsEnabled = true; + this.entryDataTextBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.entryDataTextBox.UseSelectable = true; + this.entryDataTextBox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.entryDataTextBox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + // + // buttonEdit + // + resources.ApplyResources(this.buttonEdit, "buttonEdit"); + this.buttonEdit.Name = "buttonEdit"; + this.buttonEdit.Theme = MetroFramework.MetroThemeStyle.Dark; + this.buttonEdit.UseSelectable = true; + this.buttonEdit.Click += new System.EventHandler(this.treeViewMain_DoubleClick); + // + // metroLabel1 + // + resources.ApplyResources(this.metroLabel1, "metroLabel1"); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark; + // + // label11 + // + resources.ApplyResources(this.label11, "label11"); + this.label11.Name = "label11"; + // + // treeViewMain + // + this.treeViewMain.AllowDrop = true; + resources.ApplyResources(this.treeViewMain, "treeViewMain"); + this.treeViewMain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(12)))), ((int)(((byte)(12))))); + this.treeViewMain.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.treeViewMain.ContextMenuStrip = this.contextMenuPCKEntries; + this.treeViewMain.ForeColor = System.Drawing.Color.White; + this.treeViewMain.ImageList = this.imageList; + this.treeViewMain.LabelEdit = true; + this.treeViewMain.Name = "treeViewMain"; + this.treeViewMain.PathSeparator = "/"; + this.treeViewMain.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.treeViewMain_BeforeLabelEdit); + this.treeViewMain.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.selectNode); + this.treeViewMain.DoubleClick += new System.EventHandler(this.treeViewMain_DoubleClick); + this.treeViewMain.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeViewMain_KeyDown); + // + // imageList + // + this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; + resources.ApplyResources(this.imageList, "imageList"); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + // + // LittleEndianCheckBox + // + resources.ApplyResources(this.LittleEndianCheckBox, "LittleEndianCheckBox"); + this.LittleEndianCheckBox.BackColor = System.Drawing.Color.Transparent; + this.LittleEndianCheckBox.Name = "LittleEndianCheckBox"; + this.LittleEndianCheckBox.Style = MetroFramework.MetroColorStyle.White; + this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.LittleEndianCheckBox.UseSelectable = true; + // + // pictureBoxImagePreview + // + resources.ApplyResources(this.pictureBoxImagePreview, "pictureBoxImagePreview"); + this.pictureBoxImagePreview.BackColor = System.Drawing.Color.Transparent; + this.pictureBoxImagePreview.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; + this.pictureBoxImagePreview.Name = "pictureBoxImagePreview"; + this.pictureBoxImagePreview.TabStop = false; + // + // MainForm + // + this.ApplyImageInvert = true; + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.LittleEndianCheckBox); + this.Controls.Add(this.menuStrip); + this.Controls.Add(this.tabControl); + this.DisplayHeader = false; + this.ForeColor = System.Drawing.Color.Silver; + this.MainMenuStrip = this.menuStrip; + this.Name = "MainForm"; + this.ShadowType = MetroFramework.Forms.MetroFormShadowType.DropShadow; + this.Style = MetroFramework.MetroColorStyle.Black; + this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormMain_FormClosed); + this.Load += new System.EventHandler(this.Form1_Load); + this.contextMenuPCKEntries.ResumeLayout(false); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.contextMenuMetaTree.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + this.tabControl.ResumeLayout(false); + this.openTab.ResumeLayout(false); + this.openTab.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pckOpen)).EndInit(); + this.editorTab.ResumeLayout(false); + this.editorTab.PerformLayout(); + this.PropertiesTabControl.ResumeLayout(false); + this.MetaTab.ResumeLayout(false); + this.MetaTab.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImagePreview)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -1039,6 +1046,7 @@ private System.Windows.Forms.ToolStripMenuItem extractToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem importSkinsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem importSkinToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exportToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem importExtractedSkinsFolderToolStripMenuItem; private System.Windows.Forms.PictureBox pictureBox2; private System.Windows.Forms.ToolStripMenuItem createToolStripMenuItem; @@ -1109,14 +1117,14 @@ private System.Windows.Forms.ToolStripMenuItem entityMaterialsFileBINToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem addTextureToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem viewFileInfoToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem as3DSTextureFileToolStripMenuItem; private MetroFramework.Controls.MetroTabPage openTab; private System.Windows.Forms.PictureBox pckOpen; private MetroFramework.Controls.MetroLabel label5; private MetroFramework.Controls.MetroLabel labelVersion; private System.Windows.Forms.RichTextBox ChangelogRichTextBox; private System.Windows.Forms.ToolStripMenuItem generateMipMapTextureToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exportToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem as3DSTextureFileToolStripMenuItem; - } + private System.Windows.Forms.ToolStripMenuItem colourscolToolStripMenuItem; + } } diff --git a/PCK-Studio/MainForm.cs b/PCK-Studio/MainForm.cs index 72433847..8491d81c 100644 --- a/PCK-Studio/MainForm.cs +++ b/PCK-Studio/MainForm.cs @@ -29,6 +29,7 @@ namespace PckStudio bool needsUpdate = false; bool saved = true; bool isTemplateFile = false; + bool isSelectingTab = false; readonly Dictionary> pckFileTypeHandler; @@ -50,6 +51,7 @@ namespace PckStudio imageList.Images.Add(Resources.SKIN_ICON); // Icon for Skin files (*.png) imageList.Images.Add(Resources.CAPE_ICON); // Icon for Cape files (*.png) imageList.Images.Add(Resources.TEXTURE_ICON); // Icon for Texture files (*.png;*.tga) + imageList.Images.Add(Resources.BEHAVIOURS_ICON); // Icon for Behaviour files (behaviours.bin) pckOpen.AllowDrop = true; tabControl.SelectTab(0); labelVersion.Text = "PCK Studio: " + Application.ProductVersion; @@ -185,7 +187,9 @@ namespace PckStudio advancedMetaAddingToolStripMenuItem.Enabled = true; convertToBedrockToolStripMenuItem.Enabled = true; BuildMainTreeView(); + isSelectingTab = true; tabControl.SelectTab(1); + isSelectingTab = false; if (TryGetLocFile(out LOCFile locfile) && locfile.HasLocEntry("IDS_DISPLAY_NAME") && locfile.Languages.Contains("en-EN")) @@ -194,7 +198,9 @@ namespace PckStudio private void CloseEditorTab() { + isSelectingTab = true; tabControl.SelectTab(0); + isSelectingTab = false; currentPCK = null; saved = true; isTemplateFile = false; @@ -250,8 +256,9 @@ namespace PckStudio { foreach (var file in pckFile.Files) { - // Replace backward slashes('\') with forward slashes('/') since some filepath use backward slashes - TreeNode node = BuildNodeTreeBySeperator(root, file.filepath.Replace('\\', '/'), '/'); + // Replace backward slashes('\') with forward slashes('/') since some filepath use backward slashes + file.filepath = file.filepath.Replace('\\', '/'); // fix any file paths that may be incorrect + TreeNode node = BuildNodeTreeBySeperator(root, file.filepath, '/'); node.Tag = file; switch (file.filetype) { @@ -402,32 +409,40 @@ namespace PckStudio if (node is TreeNode t && t.Tag is PCKFile.FileData file) { viewFileInfoToolStripMenuItem.Visible = true; - if (file.properties.HasProperty("BOX")) - { - buttonEdit.Text = "EDIT BOXES"; - buttonEdit.Visible = true; - } - else if (file.properties.HasProperty("ANIM") && - (file.properties.GetPropertyValue("ANIM") == "0x40000" || - file.properties.GetPropertyValue("ANIM") == "0x80000")) - { - buttonEdit.Text = "View Skin"; - buttonEdit.Visible = true; - } + if (file.properties.HasProperty("BOX")) + { + buttonEdit.Text = "EDIT BOXES"; + buttonEdit.Visible = true; + } + else if (file.properties.HasProperty("ANIM") && + (file.properties.GetPropertyValue("ANIM") == "0x40000" || + file.properties.GetPropertyValue("ANIM") == "0x80000")) + { + buttonEdit.Text = "View Skin"; + buttonEdit.Visible = true; + } - switch (file.filetype) - { - case PCKFile.FileData.FileType.SkinFile: - case PCKFile.FileData.FileType.CapeFile: - case PCKFile.FileData.FileType.TextureFile: - // TODO: Add tga support - if (Path.GetExtension(file.filepath) == ".tga") break; - using (MemoryStream png = new MemoryStream(file.data)) - { - Image skinPicture = Image.FromStream(png); - pictureBoxImagePreview.Image = skinPicture; - labelImageSize.Text = $"{skinPicture.Size.Width}x{skinPicture.Size.Height}"; - } + switch (file.filetype) + { + case PCKFile.FileData.FileType.SkinFile: + case PCKFile.FileData.FileType.CapeFile: + case PCKFile.FileData.FileType.TextureFile: + // TODO: Add tga support + if (Path.GetExtension(file.filepath) == ".tga") break; + using (MemoryStream png = new MemoryStream(file.data)) + { + try + { + pictureBoxImagePreview.Image = Image.FromStream(png); + labelImageSize.Text = $"{pictureBoxImagePreview.Image.Size.Width}x{pictureBoxImagePreview.Image.Size.Height}"; + } + catch (Exception ex) + { + labelImageSize.Text = ""; + pictureBoxImagePreview.Image = Resources.NoImageFound; + Console.WriteLine("Not a supported image format. Setting back to default"); + } + } if ((file.filepath.StartsWith("res/textures/blocks/") || file.filepath.StartsWith("res/textures/items/")) && !file.filepath.EndsWith("clock.png") && !file.filepath.EndsWith("compass.png") && @@ -437,28 +452,28 @@ namespace PckStudio buttonEdit.Text = "EDIT TEXTURE ANIMATION"; buttonEdit.Visible = true; } - break; + break; - case PCKFile.FileData.FileType.LocalisationFile: - buttonEdit.Text = "EDIT LOC"; - buttonEdit.Visible = true; - break; + case PCKFile.FileData.FileType.LocalisationFile: + buttonEdit.Text = "EDIT LOC"; + buttonEdit.Visible = true; + break; - case PCKFile.FileData.FileType.AudioFile when file.filepath == "audio.pck": - buttonEdit.Text = "EDIT MUSIC CUES"; - buttonEdit.Visible = true; - break; + case PCKFile.FileData.FileType.AudioFile when file.filepath == "audio.pck": + buttonEdit.Text = "EDIT MUSIC CUES"; + buttonEdit.Visible = true; + break; - case PCKFile.FileData.FileType.ColourTableFile when file.filepath == "colours.col": - buttonEdit.Text = "EDIT COLORS"; - buttonEdit.Visible = true; - break; - default: - buttonEdit.Visible = false; - break; + case PCKFile.FileData.FileType.ColourTableFile when file.filepath == "colours.col": + buttonEdit.Text = "EDIT COLORS"; + buttonEdit.Visible = true; + break; + default: + buttonEdit.Visible = false; + break; + } } } - } private void extractToolStripMenuItem_Click(object sender, EventArgs e) { @@ -519,9 +534,26 @@ namespace PckStudio private void Save(string FilePath) { + bool isSkinsPCK = false; + PCKFile.FileData InfoFile; + if (!currentPCK.TryGetFile("0", PCKFile.FileData.FileType.InfoFile, out InfoFile)) + { + switch(MessageBox.Show(this, "The info file, \"0\", was not detected. Would you like to save as a Skins.pck archive?", "Save as Skins archive?", MessageBoxButtons.YesNoCancel)) + { + case DialogResult.Yes: + isSkinsPCK = true; + break; + case DialogResult.No: + isSkinsPCK = false; + break; + case DialogResult.Cancel: + default: + return; // Cancel operation + } + } using (var fs = File.OpenWrite(FilePath)) { - PCKFileWriter.Write(fs, currentPCK, LittleEndianCheckBox.Checked); + PCKFileWriter.Write(fs, currentPCK, LittleEndianCheckBox.Checked, isSkinsPCK); } saved = true; MessageBox.Show("Saved Pck file", "File Saved"); @@ -1112,7 +1144,7 @@ namespace PckStudio metaData += $"{entry.Item1}: {entry.Item2}{Environment.NewLine}"; } - File.WriteAllText(sfd.SelectedPath + @"\" + Path.GetFileNameWithoutExtension(file.filepath) + ".txt", metaData); + File.WriteAllText(sfd.SelectedPath + @"\" + file.filepath + ".txt", metaData); } } } @@ -2619,6 +2651,10 @@ namespace PckStudio node.ImageIndex = 14; node.SelectedImageIndex = 14; break; + case PCKFile.FileData.FileType.BehavioursFile: + node.ImageIndex = 15; + node.SelectedImageIndex = 15; + break; default: // unknown file format node.ImageIndex = 5; node.SelectedImageIndex = 5; @@ -2711,13 +2747,32 @@ namespace PckStudio mippedTexture.Save(texStream, ImageFormat.Png); MipMappedFile.SetData(texStream.ToArray()); - currentPCK.Files.Add(MipMappedFile); - BuildMainTreeView(); + currentPCK.Files.Insert(currentPCK.Files.IndexOf(file) + i - 1, MipMappedFile); } + BuildMainTreeView(); } } } + private void colourscolToolStripMenuItem_Click(object sender, EventArgs e) + { + PCKFile.FileData NewColorFile; + if (currentPCK.TryGetFile("colours.col", PCKFile.FileData.FileType.ColourTableFile, out NewColorFile)) + { + MessageBox.Show("A color table file already exists in this PCK and a new one cannot be created.", "Operation aborted"); + return; + } + NewColorFile = new PCKFile.FileData("colours.col", PCKFile.FileData.FileType.ColourTableFile); + NewColorFile.SetData(Resources.colours); + currentPCK.Files.Add(NewColorFile); + BuildMainTreeView(); + } + + private void tabControl_Selecting(object sender, TabControlCancelEventArgs e) + { + if (!isSelectingTab) e.Cancel = true; + } + private void as3DSTextureFileToolStripMenuItem_Click(object sender, EventArgs e) { if (treeViewMain.SelectedNode is TreeNode node && diff --git a/PCK-Studio/MainForm.resx b/PCK-Studio/MainForm.resx index 08a6fa98..ce11116c 100644 --- a/PCK-Studio/MainForm.resx +++ b/PCK-Studio/MainForm.resx @@ -130,7 +130,7 @@ - 167, 22 + 180, 22 Folder @@ -152,7 +152,7 @@ - 167, 22 + 180, 22 Skin @@ -174,7 +174,7 @@ - 167, 22 + 180, 22 Animated Texture @@ -188,11 +188,17 @@ - 167, 22 + 180, 22 Audio.pck + + 180, 22 + + + Colours.col + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -29297,6 +29303,987 @@ Left + + + iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAA5JlJREFUeF7sfQeYFFX2Pf/9re6uuusaEFHXiJIUEAQkhyGnIecsMIDDkEGCIlHJ + AiKIRAExK6hEJaOgKDkniQYUMGDcZf7nvKrXU9NTPdPdMyDgOd93prqrX913333v1dxTMZMgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCIIg + CIIgCIIgCIIgCIIgCIIgCIIgCIIgCIJwEeD//QG80PDzIRpGAz87qTE98LOXFv9o+PmUHkYLP1vni5HC + z0ZajBR+NtJiJPDb/nwzI+FnPzVmNPzqiJaCIAiCIAjCRQSbpP3F5f/9gbQ+kOlNIL3be+361Rst0/LV + uz7a+tOqw8L7e7R1kcH1ZTT8/IzW13AYbnuCffKzdb4Y7KPXT++69Pj2R9URzPTYzwja+oP9TA3ectH6 + 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 + dDGdfAIAAC6XV96cl96f/Vv0f96k/s24JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS + JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEkaR1dd9d+KresQDLQgcAAAAABJRU5ErkJggg== + + NoControl @@ -32496,6 +33483,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + colourscolToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + importSkinsToolStripMenuItem diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index 2ffde934..001f58c0 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -138,6 +138,9 @@ + + + @@ -145,6 +148,10 @@ + + + + @@ -196,7 +203,7 @@ - + Form @@ -319,12 +326,6 @@ generateModel.cs - - Form - - - goodbye.cs - Form @@ -367,12 +368,6 @@ installWiiU.cs - - Form - - - Job.cs - Form @@ -526,12 +521,6 @@ generateModel.cs - - goodbye.cs - - - goodbye.cs - SkinPreview.cs @@ -557,9 +546,6 @@ installWiiU.cs - - Job.cs - meta.cs @@ -633,6 +619,7 @@ + @@ -676,6 +663,7 @@ + diff --git a/PCK-Studio/Program.cs b/PCK-Studio/Program.cs index aea6afa6..e09bb7a9 100644 --- a/PCK-Studio/Program.cs +++ b/PCK-Studio/Program.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics; using System.IO; using System.Windows.Forms; @@ -6,18 +7,21 @@ namespace PckStudio { static class Program { - public static string BaseAPIUrl = "http://api.pckstudio.xyz/api/pck"; - public static string BackUpAPIUrl = "https://raw.githubusercontent.com/PhoenixARC/pckstudio.tk/main/studio/PCK/api/"; - public static string AppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PCK-Studio"); - public static string AppDataCache = Path.Combine(AppData, "cache"); + public static readonly string BaseAPIUrl = "http://api.pckstudio.xyz/api/pck"; + public static readonly string BackUpAPIUrl = "https://raw.githubusercontent.com/PhoenixARC/pckstudio.tk/main/studio/PCK/api/"; + public static readonly string AppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PCK-Studio"); + public static readonly string AppDataCache = Path.Combine(AppData, "cache"); /// /// The main entry point for the application. /// [STAThread] static void Main(string[] args) { +#if DEBUG + Debug.Listeners.Add(new TextWriterTraceListener(Console.Out)); +#endif var f = new MainForm(); - if (args.Length > 0 && args[0].EndsWith(".pck")) + if (args.Length > 0 && File.Exists(args[0]) && args[0].EndsWith(".pck")) f.LoadFromPath(args[0]); Application.Run(f); } diff --git a/PCK-Studio/Properties/Resources.Designer.cs b/PCK-Studio/Properties/Resources.Designer.cs index 1a174f47..f1953c7d 100644 --- a/PCK-Studio/Properties/Resources.Designer.cs +++ b/PCK-Studio/Properties/Resources.Designer.cs @@ -90,6 +90,16 @@ namespace PckStudio.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap BEHAVIOURS_ICON { + get { + object obj = ResourceManager.GetObject("BEHAVIOURS_ICON", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -199,6 +209,16 @@ namespace PckStudio.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] colours { + get { + object obj = ResourceManager.GetObject("colours", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/PCK-Studio/Properties/Resources.resx b/PCK-Studio/Properties/Resources.resx index 20198303..9b83af55 100644 --- a/PCK-Studio/Properties/Resources.resx +++ b/PCK-Studio/Properties/Resources.resx @@ -271,6 +271,12 @@ ..\Resources\iconImageList\SKINS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\fileTemplates\colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\iconImageList\BEHAVIOURS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\AddTexture.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/PCK-Studio/Resources/fileTemplates/colours.col b/PCK-Studio/Resources/fileTemplates/colours.col new file mode 100644 index 00000000..bd65c21a Binary files /dev/null and b/PCK-Studio/Resources/fileTemplates/colours.col differ diff --git a/PCK-Studio/Resources/iconImageList/BEHAVIOURS ICON.png b/PCK-Studio/Resources/iconImageList/BEHAVIOURS ICON.png new file mode 100644 index 00000000..7264126b Binary files /dev/null and b/PCK-Studio/Resources/iconImageList/BEHAVIOURS ICON.png differ diff --git a/PCK-Studio/Resources/iconImageList/COL ICON.png b/PCK-Studio/Resources/iconImageList/COL ICON.png index 00fdba2a..9037a51c 100644 Binary files a/PCK-Studio/Resources/iconImageList/COL ICON.png and b/PCK-Studio/Resources/iconImageList/COL ICON.png differ diff --git a/PCK-Studio/Resources/items.png b/PCK-Studio/Resources/items.png index a39f3d3d..9e57f97f 100644 Binary files a/PCK-Studio/Resources/items.png and b/PCK-Studio/Resources/items.png differ diff --git a/PCK-Studio/Resources/terrain.png b/PCK-Studio/Resources/terrain.png index 1688c5bb..9b6d1791 100644 Binary files a/PCK-Studio/Resources/terrain.png and b/PCK-Studio/Resources/terrain.png differ diff --git a/PCK-Studio/Resources/tileData.json b/PCK-Studio/Resources/tileData.json index e183ac85..32173d57 100644 --- a/PCK-Studio/Resources/tileData.json +++ b/PCK-Studio/Resources/tileData.json @@ -22,17 +22,17 @@ { "bedrock": "Bedrock" }, { "sand": "Sand" }, { "gravel": "Gravel" }, - { "log_oak": "Oak Log (Side)" }, - { "log_oak_top": "Oak Log (Top)" }, - { "iron_block": "Iron Block" }, - { "gold_block": "Gold Block" }, - { "diamond_block": "Diamond Block" }, - { "emerald_block": "Emerald Block" }, - { "redstone_block": "Redstone Block" }, + { "log_oak": "Oak Wood (Side)" }, + { "log_oak_top": "Oak Wood (Top)" }, + { "iron_block": "Block of Iron" }, + { "gold_block": "Block of Gold" }, + { "diamond_block": "Block of Diamond" }, + { "emerald_block": "Block of Emerald" }, + { "redstone_block": "Block of Redstone" }, { "dropper_front_horizontal": "Dropper (Front)" }, - { "mushroom_red": "Red Mushroom" }, - { "mushroom_brown": "Brown Mushroom" }, - { "sapling_jungle": "Jungle Sapling" }, + { "mushroom_red": "Mushroom (Red)" }, + { "mushroom_brown": "Mushroom (Brown)" }, + { "sapling_jungle": "Jungle Tree Sapling" }, { "fire_0": "Fire (Layer 1)" }, { "gold_ore": "Gold Ore" }, { "iron_ore": "Iron Ore" }, @@ -47,7 +47,7 @@ { "dropper_front_vertical": "Dropper (Vertical) (Front)" }, { "workbench_top": "Crafting Table (Top)" }, { "furnace_front": "Furnace (Front)" }, - { "furnace_side": "Furnace (Side)" }, + { "furnace_side": "Furnace/Dispenser/Dropper (Side)" }, { "dispenser_front": "Dispenser (Front)" }, { "fire_1": "Fire (Layer 2)" }, { "sponge": "Sponge" }, @@ -57,20 +57,20 @@ { "leaves": "Oak Leaves" }, { "leaves_opaque": "Oak Leaves (Opaque)" }, { "stonebrick": "Stone Bricks" }, - { "deadbush": "Dead Bush" }, + { "deadbush": "Dead Bush/Shrub" }, { "fern": "Fern" }, { "daylight_detector_top": "Daylight Sensor (Top)" }, { "daylight_detector_side": "Daylight Sensor (Side)" }, { "workbench_side": "Crafting Table (Side)" }, { "workbench_front": "Crafting Table (Front)" }, { "furnace_front_lit": "Furnace (Lit) (Front)" }, - { "furnace_top": "Furnace (Top)" }, + { "furnace_top": "Furnace/Dispenser/Dropper (Top)" }, { "sapling_spruce": "Spruce Sapling" }, { "wool_colored_white": "White Wool" }, { "mob_spawner": "Monster Spawner" }, { "snow": "Snow" }, { "ice": "Ice" }, - { "snow_side": "Grass Block (Snow) (Side)" }, + { "snow_side": "Grass Block (Snowy) (Side)" }, { "cactus_top": "Cactus (Top)" }, { "cactus_side": "Cactus (Side)" }, { "cactus_bottom": "Cactus (Bottom)" }, @@ -108,7 +108,7 @@ { "netherrack": "Netherrack" }, { "soul_sand": "Soul Sand" }, { "glowstone": "Glowstone" }, - { "piston_top_sticky": "Stick Piston (Top)" }, + { "piston_top_sticky": "Sticky Piston (Top)" }, { "piston_top": "Piston (Top)" }, { "piston_side": "Piston (Side)" }, { "piston_bottom": "Piston (Bottom)" }, @@ -118,17 +118,17 @@ { "wool_colored_black": "Black Wool" }, { "wool_colored_gray": "Gray Wool" }, { "redstone_torch_off": "Redstone Torch (Off)" }, - { "log_spruce": "Spruce Log (Side)" }, - { "log_birch": "Birch Log (Side)" }, + { "log_spruce": "Spruce Wood (Side)" }, + { "log_birch": "Birch Wood (Side)" }, { "pumpkin_side": "Pumpkin (Side)" }, - { "pumpkin_face_off": "Carved Pumpkin (Front)" }, - { "pumpkin_face_on": "Jack o'Lantern (Front)" }, + { "pumpkin_face_off": "Carved Pumpkin" }, + { "pumpkin_face_on": "Jack-O-Lantern" }, { "cake_top": "Cake (Top)" }, { "cake_side": "Cake (Side)" }, { "cake_inner": "Cake (Inside)" }, { "cake_bottom": "Cake (Bottom)" }, - { "mushroom_block_skin_red": "Mushroom Block (Red)" }, - { "mushroom_block_skin_brown": "Mushroom Block (Brown)" }, + { "mushroom_block_skin_red": "Mushroom (Red Block)" }, + { "mushroom_block_skin_brown": "Mushroom (Brown Block)" }, { "stem_bent": "Stem (Attached)" }, { "rail_normal": "Rail" }, { "wool_colored_red": "Red Wool" }, @@ -137,15 +137,15 @@ { "leaves_spruce": "Spruce Leaves" }, { "leaves_spruce_opaque": "Spruce Leaves (Opaque)" }, { "conduit_top": "Conduit (Break Particles)" }, - { "turtle_egg_hatch_0": "Turtle Egg (Stage 1)" }, + { "turtle_egg_hatch_0": "Sea Turtle Egg (Stage 1)" }, { "melon_side": "Melon (Side)" }, { "melon_top": "Melon (Top)" }, { "cauldron_top": "Cauldron (Top)" }, { "cauldron_inner": "Cauldron (Inside)" }, - { "sponge_wet": "Sponge (Wet)" }, - { "mushroom_block_skin_stem": "Mushroom Block (Stem)" }, - { "mushroom_block_inside": "Mushroom Block (Inside)" }, - { "vine": "Vine" }, + { "sponge_wet": "Wet Sponge" }, + { "mushroom_block_skin_stem": "Mushroom (Stem Block)" }, + { "mushroom_block_inside": "Mushroom (Inside Block)" }, + { "vine": "Vines" }, { "lapis_block": "Lapis Lazuli Block" }, { "wool_colored_green": "Green Wool" }, { "wool_colored_lime": "Lime Wool" }, @@ -153,9 +153,9 @@ { "glass_pane_top": "Glass Pane (Top)" }, { "chest_top": "Chest (Break Particles)" }, { "ender_chest_top": "Ender Chest (Break Particles)" }, - { "turtle_egg_hatch_1": "Turtle Egg (Stage 2)" }, - { "turtle_egg_hatch_2": "Turtle Egg (Stage 3)" }, - { "log_jungle": "Jungle Log (Side)" }, + { "turtle_egg_hatch_1": "Sea Turtle Egg (Stage 2)" }, + { "turtle_egg_hatch_2": "Sea Turtle Egg (Stage 3)" }, + { "log_jungle": "Jungle Wood (Side)" }, { "cauldron_side": "Cauldron (Side)" }, { "cauldron_bottom": "Cauldron (Bottom)" }, { "brewing_stand_base": "Brewing Stand (Base)" }, @@ -193,7 +193,7 @@ { "comparator_on": "Redstone Comparator (On)" }, { "rail_activator": "Activator Rail" }, { "rail_activator_powered": "Activator Rail (On)" }, - { "quartz_ore": "Quartz Ore" }, + { "quartz_ore": "Nether Quartz Ore" }, { "sandstone_side": "Sandstone (Side)" }, { "wool_colored_purple": "Purple Wool" }, { "wool_colored_magenta": "Magenta Wool" }, @@ -221,7 +221,7 @@ { "anvil_top_damaged_1": "Anvil (Slightly Damaged) (Top)" }, { "quartz_block_chiseled_top": "Chiseled Quartz Block (Top)" }, { "quartz_block_lines_top": "Pillar Quartz Block (Top)" }, - { "quartz_block_top": "Quartz Block (Top)" }, + { "quartz_block_top": "Block of Quartz (Top)" }, { "hopper_outside": "Hopper (Side)" }, { "detectorRail_on": "Detector Rail (On)" }, { "": "" }, @@ -237,7 +237,7 @@ { "anvil_top_damaged_2": "Anvil (Very Damaged) (Top)" }, { "quartz_block_chiseled": "Chiseled Quartz Block (Side)" }, { "quartz_block_lines": "Pillar Quartz Block (Side)" }, - { "quartz_block_side": "Quartz Block (Side)" }, + { "quartz_block_side": "Block of Quartz (Side)" }, { "hopper_inside": "Hopper (Inside)" }, { "lava": "Lava" }, { "lava_flow": "Flowing Lava" }, @@ -252,28 +252,28 @@ { "destroy_7": "Destroy (Stage 8)" }, { "destroy_8": "Destroy (Stage 9)" }, { "destroy_9": "Destroy (Stage 10)" }, - { "hay_block_side": "Hay Block (Side)" }, + { "hay_block_side": "Hay Bale (Side)" }, { "quartz_block_bottom": "Quartz Block (Bottom)" }, { "hopper_top": "Hopper (Top)" }, - { "hay_block_top": "Hay Block (Top)" }, + { "hay_block_top": "Hay Bale (Top)" }, { "": "" }, { "": "" }, - { "coal_block": "Coal Block" }, + { "coal_block": "Block of Coal" }, { "hardened_clay": "Terracotta" }, { "noteblock": "Note Block" }, { "stone_andesite": "Andesite" }, - { "stone_andesite_smooth": "Smooth Andesite" }, + { "stone_andesite_smooth": "Polished Andesite" }, { "stone_diorite": "Diorite" }, - { "stone_diorite_smooth": "Smooth Diorite" }, + { "stone_diorite_smooth": "Polished Diorite" }, { "stone_granite": "Granite" }, - { "stone_granite_smooth": "Smooth Granite" }, + { "stone_granite_smooth": "Polished Granite" }, { "potatoes_stage_0": "Potatoes (Stage 1)" }, { "potatoes_stage_1": "Potatoes (Stage 2)" }, { "potatoes_stage_2": "Potatoes (Stage 3)" }, { "potatoes_stage_3": "Potatoes (Stage 4)" }, - { "log_spruce_top": "Spruce Log (Top)" }, - { "log_jungle_top": "Jungle Log (Top)" }, - { "log_birch_top": "Birch Log (Top)" }, + { "log_spruce_top": "Spruce Wood (Top)" }, + { "log_jungle_top": "Jungle Wood (Top)" }, + { "log_birch_top": "Birch Wood (Top)" }, { "hardened_clay_stained_black": "Black Terracotta" }, { "hardened_clay_stained_blue": "Blue Terracotta" }, { "hardened_clay_stained_brown": "Brown Terracotta" }, @@ -330,8 +330,8 @@ { "flower_tulip_orange": "Orange Tulip" }, { "double_plant_sunflower_top": "Sunflower (Top)" }, { "double_plant_sunflower_front": "Sunflower (Front)" }, - { "log_acacia": "Acacia Log (Side)" }, - { "log_acacia_top": "Acacia Log (Top)" }, + { "log_acacia": "Acacia Wood (Side)" }, + { "log_acacia_top": "Acacia Wood (Top)" }, { "planks_acacia": "Acacia Planks" }, { "leaves_acacia": "Acacia Leaves" }, { "leaves_acacia_fast": "Acacia Leaves (Opaque)" }, @@ -346,8 +346,8 @@ { "flower_tulip_pink": "Pink Tulip" }, { "double_plant_sunflower_bottom": "Sunflower (Bottom)" }, { "double_plant_sunflower_back": "Sunflower (Back)" }, - { "log_big_oak": "Dark Oak Log (Side)" }, - { "log_big_oak_top": "Dark Oak Log (Top)" }, + { "log_big_oak": "Dark Oak Wood (Side)" }, + { "log_big_oak_top": "Dark Oak Wood (Top)" }, { "planks_big_oak": "Dark Oak Planks" }, { "leaves_big_oak": "Dark Oak Leaves" }, { "leaves_big_oak_fast": "Dark Oak Leaves (Opaque)" }, @@ -378,7 +378,7 @@ { "chorus_flower": "Chorus Flower" }, { "chorus_flower_dead": "Chorus Flower (Dead)" }, { "chorus_flower_plant": "Chorus Plant" }, - { "end_bricks": "End Bricks" }, + { "end_bricks": "End Stone Bricks" }, { "grass_path_side": "Grass Path (Side)" }, { "grass_path_top": "Grass Path (Top)" }, { "barrier": "Barrier" }, @@ -388,7 +388,7 @@ { "iron_trapdoor": "Iron Trapdoor" }, { "door_acacia_lower": "Acacia Door (Lower)" }, { "door_birch_lower": "Birch Door (Lower)" }, - { "door_dark_oak_lower": "Dark Door (Lower)" }, + { "door_dark_oak_lower": "Dark Oak Door (Lower)" }, { "door_jungle_lower": "Jungle Door (Lower)" }, { "door_spruce_lower": "Spruce Door (Lower)" }, { "purpur_block": "Purpur Block" }, @@ -426,7 +426,7 @@ { "observer_side": "Observer (Side)" }, { "observer_back": "Observer (Back)" }, { "observer_back_lit": "Observer (On) (Back)" }, - { "observer_top": "Observer (Top)" }, + { "observer_top": "Observer (Top and Bottom)" }, { "goldRing": "Gold Score Ring" }, { "emeraldRing": "Emerald Score Ring" }, { "structure_block": "Structure Block" }, @@ -482,7 +482,7 @@ { "glazed_terracotta_silver": "Light Gray Glazed Terracotta" }, { "glazed_terracotta_white": "White Glazed Terracotta" }, { "glazed_terracotta_yellow": "Yellow Glazed Terracotta" }, - { "shulker_top": "Shulker (Break Particles)" }, + { "shulker_top": "Shulker Box (Break Particles)" }, { "": "" }, { "cauldron_water": "Cauldron Water" }, { "seagrass_doubletall_top": "Double Tall Seagrass (Top)" }, @@ -502,19 +502,19 @@ { "dried_kelp_side": "Dried Kelp Block (Side)" }, { "seagrass_carried": "Seagrass (Item)" }, { "seagrass_doubletall_bottom": "Double Tall Seagrass (Bottom)" }, - { "coral_blue_dead": "Tube Coral" }, - { "coral_purple_dead": "Bubble Coral" }, - { "coral_pink_dead": "Brain Coral" }, - { "coral_red_dead": "Fire Coral" }, - { "coral_yellow_dead": "Horn Coral" }, + { "coral_blue_dead": "Dead Tube Coral Block" }, + { "coral_purple_dead": "Dead Bubble Coral Block" }, + { "coral_pink_dead": "Dead Brain Coral Block" }, + { "coral_red_dead": "Dead Fire Coral Block" }, + { "coral_yellow_dead": "Dead Horn Coral Block" }, { "coral_fan_blue": "Tube Coral Fan" }, { "coral_fan_purple": "Bubble Coral Fan" }, { "coral_fan_pink": "Brain Coral Fan" }, { "coral_fan_red": "Fire Coral Fan" }, { "coral_fan_yellow": "Horn Coral Fan" }, - { "coral_layered_top_red": "Fire Coral (Overlay)" }, - { "coral_layered_top_yellow": "Horn Coral (Overlay)" }, - { "kelp_a": "Kelp Plant (Bottom)" }, + { "bamboo_stem": "Bamboo (Stem) [PS4 ONLY]" }, + { "bamboo_leaf_small": "Bamboo (Small Leaves) [PS4 ONLY]" }, + { "kelp_a": "Kelp (Bottom)" }, { "": "" }, { "": "" }, { "": "" }, @@ -523,12 +523,12 @@ { "": "" }, { "": "" }, { "seagrass": "Seagrass" }, - { "coral_fan_blue_dead": "Tube Coral Fan (Dead)" }, - { "coral_fan_purple_dead": "Bubble Coral Fan (Dead)" }, - { "coral_fan_pink_dead": "Brain Coral Fan (Dead)" }, - { "coral_fan_red_dead": "Red Coral Fan (Dead)" }, - { "coral_fan_yellow_dead": "Horn Coral Fan (Dead)" }, - { "": "" }, + { "coral_fan_blue_dead": "Dead Tube Coral Fan" }, + { "coral_fan_purple_dead": "Dead Bubble Coral Fan" }, + { "coral_fan_pink_dead": "Dead Brain Coral Fan" }, + { "coral_fan_red_dead": "Dead Fire Coral Fan" }, + { "coral_fan_yellow_dead": "Dead Horn Coral Fan" }, + { "bamboo_leaf": "Bamboo (Leaves) [PS4 ONLY]" }, { "spruce_trapdoor": "Spruce Trapdoor" }, { "stripped_log_oak": "Stripped Oak Log (Side)" }, { "stripped_log_oak_top": "Stripped Oak Log (Top)" }, @@ -545,10 +545,90 @@ { "acacia_trapdoor": "Acacia Trapdoor" }, { "birch_trapdoor": "Birch Trapdoor" }, { "dark_oak_trapdoor": "Dark Oak Trapdoor" }, - { "jungle_trapdoor": "Jungle Trapdoor" } + { "jungle_trapdoor": "Jungle Trapdoor" }, + { "bamboo_sapling": "Bamboo Sapling [PS4 ONLY]" }, + { "bamboo_singleleaf": "Bamboo (Single Leaf) [PS4 ONLY]" }, + { "flower_lily_of_the_valley": "Lily of the Valley [PS4 ONLY]" }, + { "flower_cornflower": "Cornflower [PS4 ONLY]" }, + { "": "" }, + { "berry_bush_sapling": "Sweet Berry Bush (Stage 1) [PS4 ONLY]" }, + { "berry_bush_no_berries": "Sweet Berry Bush (Stage 2) [PS4 ONLY]" }, + { "berry_bush_some_berries": "Sweet Berry Bush (Stage 3) [PS4 ONLY]" }, + { "berry_bush_full_berries": "Sweet Berry Bush (Stage 4) [PS4 ONLY]" }, + { "campfire_log": "Campfire (Log) [PS4 ONLY]" }, + { "campfire_log_lit": "Campfire (Log) (Lit) [PS4 ONLY]" }, + { "campfire_smoke": "Campfire (Smoke) [PS4 ONLY]" }, + { "campfire": "Campfire (Flame) [PS4 ONLY]" }, + { "scaffolding_side": "Scaffolding (Side) [PS4 ONLY]" }, + { "scaffolding_bottom": "Scaffolding (Bottom) [PS4 ONLY]" }, + { "scaffolding_top": "Scaffolding (Top) [PS4 ONLY]" }, + { "barrel_side": "Barrel (Side) [PS4 ONLY]" }, + { "barrel_top": "Barrel (Top) [PS4 ONLY]" }, + { "barrel_bottom": "Barrel (Bottom) [PS4 ONLY]" }, + { "bell_side": "Bell (Side) [PS4 ONLY]" }, + { "bell_top": "Bell (Top) [PS4 ONLY]" }, + { "bell_bottom": "Bell (Bottom) [PS4 ONLY]" }, + { "lantern": "Lantern [PS4 ONLY]" }, + { "jigsaw_side": "Jigsaw (Side) [PS4 ONLY]" }, + { "jigsaw_top": "Jigsaw (Top) [PS4 ONLY]" }, + { "blast_furnace_front": "Blast Furnace (Front) [PS4 ONLY]" }, + { "blast_furnace_front_on": "Blast Furnace (Front) (Lit) [PS4 ONLY]" }, + { "blast_furnace_side": "Blast Furnace (Side) [PS4 ONLY]" }, + { "blast_furnace_top": "Blast Furnace (Top) [PS4 ONLY]" }, + { "grindstone_side": "Grindstone (Side) [PS4 ONLY]" }, + { "grindstone_round": "Grindstone (Round) [PS4 ONLY]" }, + { "grindstone_pivot": "Grindstone (Pivot) [PS4 ONLY]" }, + { "cartography_table_side1": "Cartography Table (Back) [PS4 ONLY]" }, + { "cartography_table_side2": "Cartography Table (Right Side) [PS4 ONLY]" }, + { "cartography_table_side3": "Cartography Table (Front and Left Side) [PS4 ONLY]" }, + { "cartography_table_top": "Cartography Table (Top) [PS4 ONLY]" }, + { "lectern_sides": "Lectern (Side) [PS4 ONLY]" }, + { "lectern_front": "Lectern (Front) [PS4 ONLY]" }, + { "lectern_base": "Lectern (Base) [PS4 ONLY]" }, + { "lectern_top": "Lectern (Top) [PS4 ONLY]" }, + { "loom_side": "Loom (Side) [PS4 ONLY]" }, + { "loom_front": "Loom (Front) [PS4 ONLY]" }, + { "loom_top": "Loom (Top) [PS4 ONLY]" }, + { "loom_bottom": "Loom (Bottom) [PS4 ONLY]" }, + { "smithing_table_side": "Smithing Table (Side) [PS4 ONLY]" }, + { "smithing_table_front": "Smithing Table (Front) [PS4 ONLY]" }, + { "smithing_table_top": "Smithing Table (Top) [PS4 ONLY]" }, + { "composter_top": "Composter (Top) [PS4 ONLY]" }, + { "fletcher_table_side2": "Fletching Table (Front and Back) [PS4 ONLY]" }, + { "fletcher_table_side1": "Fletching Table (Side) [PS4 ONLY]" }, + { "fletcher_table_top": "Fletching Table (Top) [PS4 ONLY]" }, + { "stonecutter2_saw": "Stonecutter (Saw) [PS4 ONLY]" }, + { "stonecutter2_side": "Stonecutter (Side) [PS4 ONLY]" }, + { "stonecutter2_top": "Stonecutter (Top) [PS4 ONLY]" }, + { "stonecutter2_bottom": "Stonecutter (Bottom) [PS4 ONLY]" }, + { "smoker_side": "Smoker (Side) [PS4 ONLY]" }, + { "smoker_front": "Smoker (Front) [PS4 ONLY]" }, + { "smoker_front_on": "Smoker (Front) (Lit) [PS4 ONLY]" }, + { "smoker_top": "Smoker (Top) [PS4 ONLY]" }, + { "smoker_bottom": "Smoker (Bottom) [PS4 ONLY]" }, + { "compost": "Compost [PS4 ONLY]" }, + { "compost_ready": "Compost (Ready) [PS4 ONLY]" }, + { "composter_bottom": "Composter (Bottom) [PS4 ONLY]" }, + { "composter_side": "Composter (Side) [PS4 ONLY]" }, + { "barrel_top_open": "Barrel (Top) (Open) [PS4 ONLY]" }, + { "smithing_table_bottom": "Smithing Table (Bottom) [PS4 ONLY]" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" }, + { "": "" } ], "items": [ - { "helmetCloth": "Leather Helmet" }, + { "helmetCloth": "Leather Cap" }, { "helmetChain": "Chain Helmet" }, { "helmetIron": "Iron Helmet" }, { "helmetDiamond": "Diamond Helmet" }, @@ -564,7 +644,7 @@ { "sugar": "Sugar" }, { "snowball": "Snowball" }, { "elytra": "Elytra" }, - { "chestplateCloth": "Leather Chestplate" }, + { "chestplateCloth": "Leather Tunic" }, { "chestplateChain": "Chain Chestplate" }, { "chestplateIron": "Iron Chestplate" }, { "chestplateDiamond": "Diamond Chestplate" }, @@ -580,7 +660,7 @@ { "cake": "Cake" }, { "slimeball": "Slimeball" }, { "broken_elytra": "Elytra (Broken)" }, - { "leggingsCloth": "Leather Leggings" }, + { "leggingsCloth": "Leather Pants" }, { "leggingsChain": "Chain Leggings" }, { "leggingsIron": "Iron Leggings" }, { "leggingsDiamond": "Diamond Leggings" }, @@ -590,11 +670,11 @@ { "ingotGold": "Gold Ingot" }, { "sulphur": "Gunpowder" }, { "bread": "Bread" }, - { "sign": "Sign" }, + { "sign": "Oak Sign" }, { "doorWood": "Oak Door" }, { "doorIron": "Iron Door" }, { "bed": "Bed" }, - { "fireball": "Fireball" }, + { "fireball": "Fire Charge" }, { "chorus_fruit": "Chorus Fruit" }, { "bootsCloth": "Leather Boots" }, { "bootsChain": "Chain Boots" }, @@ -611,7 +691,7 @@ { "map": "Map" }, { "seeds_pumpkin": "Pumpkin Seeds" }, { "seeds_melon": "Melon Seeds" }, - { "chorus_fruit_popped": "Chorus Fruit (Popped)" }, + { "chorus_fruit_popped": "Popped Chorus Fruit" }, { "swordWood": "Wooden Sword" }, { "swordStone": "Stone Sword" }, { "swordIron": "Iron Sword" }, @@ -625,7 +705,7 @@ { "bucket": "Bucket" }, { "bucketWater": "Water Bucket" }, { "bucketLava": "Lava Bucket" }, - { "milk": "Milk" }, + { "milk": "Milk Bucket" }, { "dyePowder_black": "Ink Sac" }, { "dyePowder_gray": "Gray Dye" }, { "shovelWood": "Wooden Shovel" }, @@ -654,10 +734,10 @@ { "leather": "Leather" }, { "saddle": "Saddle" }, { "beefRaw": "Raw Beef" }, - { "beefCooked": "Cooked Beef" }, + { "beefCooked": "Steak" }, { "enderPearl": "Ender Pearl" }, { "blazeRod": "Blaze Rod" }, - { "melon": "Melon" }, + { "melon": "Melon Slice" }, { "dyePowder_green": "Cactus Green" }, { "dyePowder_lime": "Lime Dye" }, { "hatchetWood": "Wooden Axe" }, @@ -674,8 +754,8 @@ { "ghastTear": "Ghast Tear" }, { "goldNugget": "Gold Nugget" }, { "netherStalkSeeds": "Nether Wart" }, - { "dyePowder_brown": "Brown Dye" }, - { "dyePowder_yellow": "Yellow Dye" }, + { "dyePowder_brown": "Cocoa Beans" }, + { "dyePowder_yellow": "Dandelion Yellow" }, { "hoeWood": "Wooden Hoe" }, { "hoeStone": "Stone Hoe" }, { "hoeIron": "Iron Hoe" }, @@ -684,15 +764,15 @@ { "bow_pull_2": "Bow (Pulling Stage 3)" }, { "potatoPoisonous": "Poisonous Potato" }, { "minecart": "Minecart" }, - { "boat": "Boat" }, - { "speckledMelon": "Speckled Melon" }, + { "boat": "Oak Boat" }, + { "speckledMelon": "Glistering Melon" }, { "fermentedSpiderEye": "Fermented Spider Eye" }, { "spiderEye": "Spider Eye" }, { "glassBottle": "Glass Bottle" }, { "potion_contents": "Potion (Overlay)" }, { "dyePowder_blue": "Lapis Lazuli" }, { "dyePowder_light_blue": "Light Blue Dye" }, - { "helmetCloth_overlay": "Leather Helmet (Overlay)" }, + { "helmetCloth_overlay": "Leather Cap (Overlay)" }, { "spectral_arrow": "Spectral Arrow" }, { "iron_horse_armor": "Iron Horse Armor" }, { "diamond_horse_armor": "Diamond Horse Armor" }, @@ -708,23 +788,23 @@ { "blazePowder": "Blaze Powder" }, { "dyePowder_purple": "Purple Dye" }, { "dyePowder_magenta": "Magenta Dye" }, - { "chestplateCloth_overlay": "Leather Chestplate (Overlay)" }, + { "chestplateCloth_overlay": "Leather Tunic (Overlay)" }, { "tipped_arrow_base": "Tipped Arrow" }, { "dragon_breath": "Dragon's Breath" }, { "name_tag": "Name Tag" }, { "lead": "Lead" }, { "netherbrick": "Nether Brick" }, - { "fish_clownfish_raw": "Clownfish" }, + { "fish_clownfish_raw": "Tropical Fish" }, { "minecart_furnace": "Minecart with Furnace" }, { "charcoal": "Charcoal" }, { "monsterPlacer_overlay": "Spawn Egg (Overlay)" }, { "bed_overlay": "Bed (Overlay)" }, - { "expBottle": "Experience Bottle" }, + { "expBottle": "Bottle o'Enchanting" }, { "brewingStand": "Brewing Stand" }, { "magmaCream": "Magma Cream" }, { "dyePowder_cyan": "Cyan Dye" }, { "dyePowder_orange": "Orange Dye" }, - { "leggingsCloth_overlay": "Leather Leggings (Overlay)" }, + { "leggingsCloth_overlay": "Leather Pants (Overlay)" }, { "tipped_arrow_head": "Tipped Arrow (Overlay)" }, { "potion_bottle_lingering": "Lingering Potion" }, { "": "" }, @@ -739,7 +819,7 @@ { "writtenBook": "Written Book" }, { "flowerPot": "Flower Pot" }, { "dyePowder_silver": "Light Gray Dye" }, - { "dyePowder_white": "White Dye" }, + { "dyePowder_white": "Bone Meal" }, { "bootsCloth_overlay": "Leather Boots (Overlay)" }, { "beetroot": "Beetroot" }, { "beetroot_seeds": "Beetroot Seeds" }, @@ -777,7 +857,7 @@ { "totem": "Totem of Undying" }, { "shulker_shell": "Shulker Shell" }, { "iron_nugget": "Iron Nugget" }, - { "rabbit_foot": "Rabbit Foot" }, + { "rabbit_foot": "Rabbit's Foot" }, { "rabbit_hide": "Rabbit Hide" }, { "compassP0": "" }, { "compassP1": "" }, @@ -805,20 +885,36 @@ { "bucketPuffer": "Bucket of Pufferfish" }, { "bucketTropical": "Bucket of Tropical Fish" }, { "leather_horse_armor_detail": "Leather Horse Armor (Overlay)" }, - { "": "" }, - { "": "" }, - { "": "" }, - { "": "" }, - { "": "" }, - { "": "" }, + { "dyePowder_black1": "Black Dye [PS4 ONLY]" }, + { "dyePowder_blue1": "Blue Dye [PS4 ONLY]" }, + { "dyePowder_brown1": "Brown Dye [PS4 ONLY]" }, + { "dyePowder_white1": "White Dye [PS4 ONLY]" }, + { "bamboo": "Bamboo" }, + { "lantern_carried": "Lantern" }, { "kelp": "Kelp" }, { "dried_kelp": "Dried Kelp" }, { "sea_pickle": "Sea Pickle" }, { "nautilus": "Nautilus Shell" }, { "nautilus_core": "Heart of the Sea" }, - { "turtle_helmet": "Turtle Helmet" }, + { "turtle_helmet": "Turtle Shell" }, { "turtle_shell_piece": "Scute" }, { "trident": "Trident" }, - { "phantom_membrane": "Phantom Membrane" } + { "phantom_membrane": "Phantom Membrane" }, + { "acacia_sign": "Acacia Sign [PS4 ONLY]" }, + { "birch_sign": "Birch Sign [PS4 ONLY]" }, + { "dark_oak_sign": "Dark Oak Sign [PS4 ONLY]" }, + { "jungle_sign": "Jungle Sign [PS4 ONLY]" }, + { "spruce_sign": "Spruce Sign [PS4 ONLY]" }, + { "crossbow": "Crossbow [PS4 ONLY]" }, + { "crossbow_pull_0": "Crossbow (Pulling Stage 1) [PS4 ONLY]" }, + { "crossbow_pull_1": "Crossbow (Pulling Stage 2) [PS4 ONLY]" }, + { "crossbow_pull_2": "Crossbow (Pulling Stage 3) [PS4 ONLY]" }, + { "crossbow_arrow": "Crossbow (Loaded) [PS4 ONLY]" }, + { "crossbow_firework": "Crossbow (Loaded) (Firework) [PS4 ONLY]" }, + { "sweet_berries": "Sweet Berries [PS4 ONLY]" }, + { "banner_pattern": "Banner Pattern [PS4 ONLY]" }, + { "bell": "Bell [PS4 ONLY]" }, + { "campfire_carried": "Campfire [PS4 ONLY]" }, + { "": "" } ] } diff --git a/README.md b/README.md index c0c720cb..7818aaac 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,14 @@ Modify .PCK archives as you please! * PNG previewing * And much more!\ -## Supported File format +## Supported File formats -| Name | file extentions | +| Name | Extention | |:-:|:-:| | Localization files | **.loc** | | Game Rule files | **.grh/.grf** | -| Audio.pck |**audio.pck** | -| Colour file | **.col** | - +| Music Cues file |**audio.pck** | +| Color/Colour Table file | **.col** | ### Known Issues - `.resx been flagged by windows(when downloading source.zip)` @@ -49,14 +48,16 @@ $ cd "-PCK-Studio" * Forms will not load in viewer until the solution is build _at least_ once -## Contributers: +## Active Dev Team: * [PhoenixARC](https://github.com/PhoenixARC) -* [MNL](https://github.com/MattN-L) +* [MattNL](https://github.com/MattN-L) * [Miku-666](https://github.com/NessieHax) + +## Legacy PCK Studio Devs and contributors: * [Nobledez](https://github.com/Nobledez) * [XxModZxXWiiPlaza](https://github.com/XxModZxXWiiPlaza) * [SlothWiiPlaza](https://github.com/Kashiiera) * [jam1garner](https://github.com/jam1garner) -### Credits -* [yaboiFoxx]() for Improved UI concept +### Other Credits +* [yaboiFoxx](https://github.com/yaboiFoxx) for Improved UI concept diff --git a/SFGraphics b/SFGraphics new file mode 160000 index 00000000..ec1c5f07 --- /dev/null +++ b/SFGraphics @@ -0,0 +1 @@ +Subproject commit ec1c5f0741722cf6bea29fbe03c6f9226cc4d928