Resolved merge conflicts

This commit is contained in:
miku-666
2022-11-02 13:53:16 +01:00
58 changed files with 4865 additions and 3681 deletions

View File

@@ -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

View File

@@ -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<RiderPositionOverride> overrides { get; } = new List<RiderPositionOverride>();
public struct RiderPositionOverride
{
public string name;
public List<PositionOverride> overrides { get; }
public RiderPositionOverride(string name) : this()
{
this.name = name;
overrides = new List<PositionOverride>();
}
public struct PositionOverride
{
public bool _1;
public bool _2;
public float x, y, z;
}
}
}
}

View File

@@ -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")]

View File

@@ -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<ColorEntry> entries = new List<ColorEntry>();
public List<ExtendedColorEntry> waterEntries = new List<ExtendedColorEntry>();
}

View File

@@ -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<CSMBPart> Parts = new List<CSMBPart>();
public List<CSMBOffset> Offsets = new List<CSMBOffset>();
}
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,
}
}

View File

@@ -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<Model> Models { get; } = new List<Model>();
public void AddModel(Model model)
{
Models.Add(model);
}
bool Contains(string name) => Models.FindIndex(m => m.name == name) > -1;
/// <exception cref="ModelNotFoundException"></exception>
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<Part> parts { get; } = new List<Part>();
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<Box> Boxes { get; } = new List<Box>();
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);
}
}
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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;

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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<string>(name_count);
for (int i = 0; i < name_count; i++)
int tableSize = ReadInt(stream);
StringLookUpTable = new List<string>(tableSize);
for (int i = 0; i < tableSize; i++)
{
string s = ReadString(stream);
StringLookUpTable.Add(s);

View File

@@ -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)

View File

@@ -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);
}
}
}

View File

@@ -11,7 +11,6 @@ namespace PckStudio.Classes.IO
private PCKFile _file;
private List<string> 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)

View File

@@ -11,17 +11,16 @@ namespace PckStudio.Classes.IO
private PCKFile _pckfile;
private List<string> LUT = new List<string>();
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
}
}
}
}
}

View File

@@ -10,15 +10,15 @@ namespace PckStudio.Classes.IO.Sounds
{
public class SoundIO
{
public Dictionary<string, Type> Read(string Filepath)
public Dictionary<string, SoundInfo> Read(string Filepath)
{
var jObj = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(File.ReadAllText(Filepath));
var dict = JsonConvert.DeserializeObject<Dictionary<string, Type>>(jObj.ToString());
var dict = JsonConvert.DeserializeObject<Dictionary<string, SoundInfo>>(jObj.ToString());
return dict;
}
public string Serialize(Dictionary<string, Type> input)
public string Serialize(Dictionary<string, SoundInfo> input)
{
return JsonConvert.SerializeObject(input, Formatting.Indented);
}

View File

@@ -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<Sound> sounds = new List<Sound>();

View File

@@ -28,180 +28,169 @@
/// </summary>
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;

View File

@@ -29,147 +29,148 @@ namespace PckStudio.Forms.Additional_Popups.Animation
/// </summary>
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;
}
}

View File

@@ -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)

View File

@@ -117,4 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="TextureIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -1,103 +0,0 @@

namespace PckStudio.Forms
{
partial class Job
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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;
}
}

View File

@@ -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();
}
}
}

View File

@@ -1,135 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="label1.Text" xml:space="preserve">
<value>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)</value>
</data>
</root>

View File

@@ -1,83 +0,0 @@
namespace PckStudio.Forms
{
partial class goodbye
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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;
}
}

View File

@@ -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");
}
}
}

View File

@@ -1,158 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>411, 280</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>こんにちはユーザー、
これらのツールの開発は、現在も維持されています。
面白くて楽しい、そしてWiiUの登場とともに
エディションが成長しているので、開発に分岐したいと思っています
WiiUとXbox360のエディションもあり、現在
ゲーム内で開発者GUIを有効にする方法を研究しています。
開発に貢献したい場合
これらのツールのうち、お気軽に寄付してください
以下のCashappへの選択Paypalは私が偽物だと思っています
何らかの理由で人... マジ!?
-フェリックスPhoenixARC</value>
</data>
<data name="buttonDonate.Location" type="System.Drawing.Point, System.Drawing">
<value>200, 384</value>
</data>
<data name="buttonDonate.Text" xml:space="preserve">
<value>寄付</value>
</data>
<data name="buttonClose.Location" type="System.Drawing.Point, System.Drawing">
<value>314, 384</value>
</data>
<data name="buttonClose.Text" xml:space="preserve">
<value>閉じる</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>457, 456</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>寄付することを忘れないでください</value>
</data>
</root>

View File

@@ -1,244 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label1.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 12pt</value>
</data>
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>23, 72</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>428, 280</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>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)</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonDonate.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>Flat</value>
</data>
<data name="buttonDonate.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 12pt</value>
</data>
<data name="buttonDonate.Location" type="System.Drawing.Point, System.Drawing">
<value>198, 377</value>
</data>
<data name="buttonDonate.Size" type="System.Drawing.Size, System.Drawing">
<value>103, 38</value>
</data>
<data name="buttonDonate.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="buttonDonate.Text" xml:space="preserve">
<value>Donate</value>
</data>
<data name="&gt;&gt;buttonDonate.Name" xml:space="preserve">
<value>buttonDonate</value>
</data>
<data name="&gt;&gt;buttonDonate.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonDonate.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;buttonDonate.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="buttonClose.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>Flat</value>
</data>
<data name="buttonClose.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 12pt</value>
</data>
<data name="buttonClose.Location" type="System.Drawing.Point, System.Drawing">
<value>312, 377</value>
</data>
<data name="buttonClose.Size" type="System.Drawing.Size, System.Drawing">
<value>103, 38</value>
</data>
<data name="buttonClose.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="buttonClose.Text" xml:space="preserve">
<value>Close</value>
</data>
<data name="&gt;&gt;buttonClose.Name" xml:space="preserve">
<value>buttonClose</value>
</data>
<data name="&gt;&gt;buttonClose.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonClose.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;buttonClose.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>468, 443</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Don't forget to donate</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>goodbye</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>MetroFramework.Forms.MetroForm, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
</root>

View File

@@ -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;
}
}

View File

@@ -143,6 +143,11 @@ namespace PckStudio.Forms.Editor
return frames;
}
public List<Image> 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;
}
}
}

View File

@@ -120,6 +120,9 @@
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>125, 17</value>
</metadata>
<metadata name="TextureIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>280, 17</value>
</metadata>
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>

View File

@@ -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");

View File

@@ -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()));
}
}
}
}

View File

@@ -125,6 +125,26 @@
<value>127, 8</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="addCategoryStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="addCategoryStripMenuItem.Text" xml:space="preserve">
<value>Add Category</value>
</data>
<data name="removeCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="removeCategoryStripMenuItem.Text" xml:space="preserve">
<value>Remove Category</value>
</data>
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>169, 48</value>
</data>
@@ -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 @@
<data name="&gt;&gt;treeView1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="addCategoryStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="addCategoryStripMenuItem.Text" xml:space="preserve">
<value>Add Category</value>
</data>
<data name="removeCategoryStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 22</value>
</data>
<data name="removeCategoryStripMenuItem.Text" xml:space="preserve">
<value>Remove Category</value>
</data>
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>19, 8</value>
</metadata>
<data name="menuStrip.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="saveToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>98, 22</value>
</data>
<data name="saveToolStripMenuItem1.Text" xml:space="preserve">
<value>Save</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>File</value>
</data>
<data name="creditsEditorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="creditsEditorToolStripMenuItem.Text" xml:space="preserve">
<value>Credits Editor</value>
</data>
<data name="deleteUnusedBINKAsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="deleteUnusedBINKAsToolStripMenuItem.Text" xml:space="preserve">
<value>Delete Unused BINKAs</value>
</data>
<data name="openDataFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="openDataFolderToolStripMenuItem.Text" xml:space="preserve">
<value>Open Data Folder</value>
</data>
<data name="bulkReplaceExistingTracksToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="bulkReplaceExistingTracksToolStripMenuItem.Text" xml:space="preserve">
<value>Bulk Replace Existing Tracks</value>
</data>
<data name="toolsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 20</value>
</data>
@@ -423,19 +463,19 @@
<value>Tools</value>
</data>
<data name="howToAddSongsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>245, 22</value>
<value>243, 22</value>
</data>
<data name="howToAddSongsToolStripMenuItem.Text" xml:space="preserve">
<value>How to add songs</value>
</data>
<data name="whatIsEachCategoryToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>245, 22</value>
<value>243, 22</value>
</data>
<data name="whatIsEachCategoryToolStripMenuItem.Text" xml:space="preserve">
<value>What is each category?</value>
</data>
<data name="howToEditCreditsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>245, 22</value>
<value>243, 22</value>
</data>
<data name="howToEditCreditsToolStripMenuItem.Text" xml:space="preserve">
<value>How to edit credits</value>
@@ -447,7 +487,7 @@
<value>How to optimize the Data folder</value>
</data>
<data name="bINKACompressionToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>245, 22</value>
<value>243, 22</value>
</data>
<data name="bINKACompressionToolStripMenuItem.Text" xml:space="preserve">
<value>BINKA Compression</value>
@@ -482,48 +522,40 @@
<data name="&gt;&gt;menuStrip.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="saveToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
</data>
<data name="saveToolStripMenuItem1.Text" xml:space="preserve">
<value>Save</value>
</data>
<data name="creditsEditorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="creditsEditorToolStripMenuItem.Text" xml:space="preserve">
<value>Credits Editor</value>
</data>
<data name="deleteUnusedBINKAsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="deleteUnusedBINKAsToolStripMenuItem.Text" xml:space="preserve">
<value>Delete Unused BINKAs</value>
</data>
<data name="openDataFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="openDataFolderToolStripMenuItem.Text" xml:space="preserve">
<value>Open Data Folder</value>
</data>
<data name="treeView2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<metadata name="contextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>282, 8</value>
</metadata>
<data name="addEntryMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
</data>
<data name="addEntryMenuItem.Text" xml:space="preserve">
<value>Add Entry</value>
</data>
<data name="removeEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
</data>
<data name="removeEntryMenuItem.Text" xml:space="preserve">
<value>Remove Entry</value>
</data>
<data name="verifyFileLocationToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>180, 22</value>
</data>
<data name="verifyFileLocationToolStripMenuItem.Text" xml:space="preserve">
<value>Verify File Location</value>
</data>
<data name="contextMenuStrip2.Size" type="System.Drawing.Size, System.Drawing">
<value>174, 70</value>
<value>181, 92</value>
</data>
<data name="&gt;&gt;contextMenuStrip2.Name" xml:space="preserve">
<value>contextMenuStrip2</value>
@@ -552,32 +584,6 @@
<data name="&gt;&gt;treeView2.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="addEntryMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABSSURBVDhP5c0x
DsAgDENRxt7/wmkNSpRGf0CCCZAegxNMM7MlGMp3dIU6dxhKf/QMNxRogeQC8ivw5Vn7C0heJlFA+kL5
jWAohxRkde4wnGftBS90axNmphIGAAAAAElFTkSuQmCC
</value>
</data>
<data name="addEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 22</value>
</data>
<data name="addEntryMenuItem.Text" xml:space="preserve">
<value>Add Entry</value>
</data>
<data name="removeEntryMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 22</value>
</data>
<data name="removeEntryMenuItem.Text" xml:space="preserve">
<value>Remove Entry</value>
</data>
<data name="verifyFileLocationToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 22</value>
</data>
<data name="verifyFileLocationToolStripMenuItem.Text" xml:space="preserve">
<value>Verify File Location</value>
</data>
<data name="playOverworldInCreative.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@@ -653,12 +659,6 @@
<data name="&gt;&gt;metroLabel1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="bulkReplaceExistingTracksToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>220, 22</value>
</data>
<data name="bulkReplaceExistingTracksToolStripMenuItem.Text" xml:space="preserve">
<value>Bulk Replace Existing Tracks</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -731,6 +731,12 @@
<data name="&gt;&gt;openDataFolderToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;bulkReplaceExistingTracksToolStripMenuItem.Name" xml:space="preserve">
<value>bulkReplaceExistingTracksToolStripMenuItem</value>
</data>
<data name="&gt;&gt;bulkReplaceExistingTracksToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;helpToolStripMenuItem.Name" xml:space="preserve">
<value>helpToolStripMenuItem</value>
</data>
@@ -785,12 +791,6 @@
<data name="&gt;&gt;verifyFileLocationToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;bulkReplaceExistingTracksToolStripMenuItem.Name" xml:space="preserve">
<value>bulkReplaceExistingTracksToolStripMenuItem</value>
</data>
<data name="&gt;&gt;bulkReplaceExistingTracksToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>AudioEditor</value>
</data>

View File

@@ -31,288 +31,385 @@ namespace PckStudio.Forms.Editor
/// </summary>
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;
}
}

View File

@@ -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<TreeNode> colorCache = new List<TreeNode>();
List<TreeNode> waterCache = new List<TreeNode>();
List<TreeNode> underwaterCache = new List<TreeNode>();
List<TreeNode> fogCache = new List<TreeNode>();
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<string> PS4Biomes = new List<string>();
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();
}
}
}

View File

@@ -117,179 +117,74 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="&gt;&gt;setColorBtn.Name" xml:space="preserve">
<value>setColorBtn</value>
</data>
<data name="&gt;&gt;setColorBtn.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroButton, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;setColorBtn.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;setColorBtn.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;blueUpDown.Name" xml:space="preserve">
<value>blueUpDown</value>
</data>
<data name="&gt;&gt;blueUpDown.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;blueUpDown.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;blueUpDown.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;greenUpDown.Name" xml:space="preserve">
<value>greenUpDown</value>
</data>
<data name="&gt;&gt;greenUpDown.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;greenUpDown.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;greenUpDown.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="&gt;&gt;redUpDown.Name" xml:space="preserve">
<value>redUpDown</value>
</data>
<data name="&gt;&gt;redUpDown.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;redUpDown.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;redUpDown.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="&gt;&gt;alphaUpDown.Name" xml:space="preserve">
<value>alphaUpDown</value>
</data>
<data name="&gt;&gt;alphaUpDown.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;alphaUpDown.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;alphaUpDown.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="&gt;&gt;alphaLabel.Name" xml:space="preserve">
<value>alphaLabel</value>
</data>
<data name="&gt;&gt;alphaLabel.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;alphaLabel.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;alphaLabel.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="&gt;&gt;blueLabel.Name" xml:space="preserve">
<value>blueLabel</value>
</data>
<data name="&gt;&gt;blueLabel.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;blueLabel.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;blueLabel.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="&gt;&gt;greenLabel.Name" xml:space="preserve">
<value>greenLabel</value>
</data>
<data name="&gt;&gt;greenLabel.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;greenLabel.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;greenLabel.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="&gt;&gt;redLabel.Name" xml:space="preserve">
<value>redLabel</value>
</data>
<data name="&gt;&gt;redLabel.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;redLabel.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;redLabel.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="&gt;&gt;colorTextbox.Name" xml:space="preserve">
<value>colorTextbox</value>
</data>
<data name="&gt;&gt;colorTextbox.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;colorTextbox.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;colorTextbox.ZOrder" xml:space="preserve">
<value>11</value>
</data>
<data name="&gt;&gt;metroLabel1.Name" xml:space="preserve">
<value>metroLabel1</value>
</data>
<data name="&gt;&gt;metroLabel1.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;metroLabel1.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;metroLabel1.ZOrder" xml:space="preserve">
<value>12</value>
</data>
<data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
<value>pictureBox1</value>
</data>
<data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>13</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="metroPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
<data name="resource.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="metroPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 60</value>
<data name="resource.Location" type="System.Drawing.Point, System.Drawing">
<value>113, 1</value>
</data>
<data name="metroPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>612, 523</value>
<data name="resource.Size" type="System.Drawing.Size, System.Drawing">
<value>21, 21</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="metroPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
<data name="resource.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;metroPanel1.Name" xml:space="preserve">
<data name="resource.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="metroTextBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>101, 27</value>
</data>
<data name="metroTextBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>135, 23</value>
</data>
<data name="metroTextBox1.TabIndex" type="System.Int32, mscorlib">
<value>24</value>
</data>
<data name="&gt;&gt;metroTextBox1.Name" xml:space="preserve">
<value>metroTextBox1</value>
</data>
<data name="&gt;&gt;metroTextBox1.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;metroTextBox1.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;metroPanel1.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;metroPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;metroPanel1.ZOrder" xml:space="preserve">
<data name="&gt;&gt;metroTextBox1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="metroLabel2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="metroLabel2.Location" type="System.Drawing.Point, System.Drawing">
<value>62, 27</value>
</data>
<data name="metroLabel2.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 19</value>
</data>
<data name="metroLabel2.TabIndex" type="System.Int32, mscorlib">
<value>23</value>
</data>
<data name="metroLabel2.Text" xml:space="preserve">
<value>Filter: </value>
</data>
<data name="&gt;&gt;metroLabel2.Name" xml:space="preserve">
<value>metroLabel2</value>
</data>
<data name="&gt;&gt;metroLabel2.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;metroLabel2.Parent" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;metroLabel2.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="setColorBtn.Location" type="System.Drawing.Point, System.Drawing">
<value>343, 290</value>
<value>400, 290</value>
</data>
<data name="setColorBtn.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 23</value>
@@ -310,10 +205,10 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;setColorBtn.ZOrder" xml:space="preserve">
<value>2</value>
<value>4</value>
</data>
<data name="blueUpDown.Location" type="System.Drawing.Point, System.Drawing">
<value>343, 397</value>
<value>400, 397</value>
</data>
<data name="blueUpDown.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 20</value>
@@ -331,10 +226,10 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;blueUpDown.ZOrder" xml:space="preserve">
<value>3</value>
<value>5</value>
</data>
<data name="greenUpDown.Location" type="System.Drawing.Point, System.Drawing">
<value>343, 371</value>
<value>400, 371</value>
</data>
<data name="greenUpDown.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 20</value>
@@ -352,10 +247,10 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;greenUpDown.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</value>
</data>
<data name="redUpDown.Location" type="System.Drawing.Point, System.Drawing">
<value>343, 345</value>
<value>400, 345</value>
</data>
<data name="redUpDown.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 20</value>
@@ -373,10 +268,10 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;redUpDown.ZOrder" xml:space="preserve">
<value>5</value>
<value>7</value>
</data>
<data name="alphaUpDown.Location" type="System.Drawing.Point, System.Drawing">
<value>343, 319</value>
<value>400, 319</value>
</data>
<data name="alphaUpDown.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 20</value>
@@ -397,13 +292,13 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;alphaUpDown.ZOrder" xml:space="preserve">
<value>6</value>
<value>8</value>
</data>
<data name="alphaLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="alphaLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>310, 320</value>
<value>367, 320</value>
</data>
<data name="alphaLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>21, 19</value>
@@ -427,13 +322,13 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;alphaLabel.ZOrder" xml:space="preserve">
<value>7</value>
<value>9</value>
</data>
<data name="blueLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="blueLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>311, 395</value>
<value>368, 395</value>
</data>
<data name="blueLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>20, 19</value>
@@ -454,13 +349,13 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;blueLabel.ZOrder" xml:space="preserve">
<value>8</value>
<value>10</value>
</data>
<data name="greenLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="greenLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>310, 371</value>
<value>367, 371</value>
</data>
<data name="greenLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>21, 19</value>
@@ -481,13 +376,13 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;greenLabel.ZOrder" xml:space="preserve">
<value>9</value>
<value>11</value>
</data>
<data name="redLabel.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="redLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>311, 345</value>
<value>368, 345</value>
</data>
<data name="redLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>20, 19</value>
@@ -508,28 +403,28 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;redLabel.ZOrder" xml:space="preserve">
<value>10</value>
<value>12</value>
</data>
<data name="resource.Image" type="System.Resources.ResXNullRef, System.Windows.Forms">
<data name="resource.Image1" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="resource.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="resource.Location" type="System.Drawing.Point, System.Drawing">
<data name="resource.Location1" type="System.Drawing.Point, System.Drawing">
<value>103, 1</value>
</data>
<data name="resource.Size" type="System.Drawing.Size, System.Drawing">
<data name="resource.Size1" type="System.Drawing.Size, System.Drawing">
<value>21, 21</value>
</data>
<data name="resource.TabIndex" type="System.Int32, mscorlib">
<data name="resource.TabIndex1" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="resource.Visible" type="System.Boolean, mscorlib">
<data name="resource.Visible1" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="colorTextbox.Location" type="System.Drawing.Point, System.Drawing">
<value>343, 423</value>
<value>400, 423</value>
</data>
<data name="colorTextbox.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 23</value>
@@ -547,13 +442,13 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;colorTextbox.ZOrder" xml:space="preserve">
<value>11</value>
<value>13</value>
</data>
<data name="metroLabel1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="metroLabel1.Location" type="System.Drawing.Point, System.Drawing">
<value>285, 423</value>
<value>342, 423</value>
</data>
<data name="metroLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 19</value>
@@ -574,10 +469,10 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;metroLabel1.ZOrder" xml:space="preserve">
<value>12</value>
<value>14</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>295, 92</value>
<value>378, 92</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 173</value>
@@ -595,7 +490,31 @@
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
<value>13</value>
<value>15</value>
</data>
<data name="metroPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="metroPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 60</value>
</data>
<data name="metroPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>612, 523</value>
</data>
<data name="metroPanel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;metroPanel1.Name" xml:space="preserve">
<value>metroPanel1</value>
</data>
<data name="&gt;&gt;metroPanel1.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="&gt;&gt;metroPanel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;metroPanel1.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
@@ -603,6 +522,28 @@
<data name="menuStrip.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="saveToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>98, 22</value>
</data>
<data name="saveToolStripMenuItem1.Text" xml:space="preserve">
<value>Save</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>File</value>
</data>
<data name="menuStrip.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 60</value>
</data>
@@ -625,53 +566,64 @@
<value>$this</value>
</data>
<data name="&gt;&gt;menuStrip.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<metadata name="ColorContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>125, 17</value>
</metadata>
<data name="restoreOriginalColorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 22</value>
</data>
<data name="restoreOriginalColorToolStripMenuItem.Text" xml:space="preserve">
<value>Restore original color</value>
</data>
<data name="ColorContextMenu.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 26</value>
</data>
<data name="&gt;&gt;ColorContextMenu.Name" xml:space="preserve">
<value>ColorContextMenu</value>
</data>
<data name="&gt;&gt;ColorContextMenu.Type" xml:space="preserve">
<value>MetroFramework.Controls.MetroContextMenu, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
</data>
<data name="waterTreeView.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="waterTreeView.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="waterTreeView.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>No</value>
</data>
<data name="waterTreeView.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 381</value>
</data>
<data name="waterTreeView.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value>
<data name="&gt;&gt;waterTreeView.Name" xml:space="preserve">
<value>waterTreeView</value>
</data>
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
<value>File</value>
</data>
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="saveToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
<value>98, 22</value>
</data>
<data name="saveToolStripMenuItem1.Text" xml:space="preserve">
<value>Save</value>
</data>
<data name="&gt;&gt;treeView2.Name" xml:space="preserve">
<value>treeView2</value>
</data>
<data name="&gt;&gt;treeView2.Type" xml:space="preserve">
<data name="&gt;&gt;waterTreeView.Type" xml:space="preserve">
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;treeView2.Parent" xml:space="preserve">
<data name="&gt;&gt;waterTreeView.Parent" xml:space="preserve">
<value>waterTab</value>
</data>
<data name="&gt;&gt;treeView2.ZOrder" xml:space="preserve">
<data name="&gt;&gt;waterTreeView.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="waterTab.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 38</value>
</data>
<data name="waterTab.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 458</value>
<value>320, 381</value>
</data>
<data name="waterTab.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="waterTab.Text" xml:space="preserve">
<value>Water Colors</value>
<value>Water</value>
</data>
<data name="&gt;&gt;waterTab.Name" xml:space="preserve">
<value>waterTab</value>
@@ -683,58 +635,85 @@
<value>tabControl</value>
</data>
<data name="&gt;&gt;waterTab.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="treeView2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="treeView2.Location" type="System.Drawing.Point, System.Drawing">
<data name="underwaterTreeView.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="treeView2.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>No</value>
<data name="underwaterTreeView.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 381</value>
</data>
<data name="treeView2.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 458</value>
</data>
<data name="treeView2.TabIndex" type="System.Int32, mscorlib">
<data name="underwaterTreeView.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;treeView2.Name" xml:space="preserve">
<value>treeView2</value>
<data name="&gt;&gt;underwaterTreeView.Name" xml:space="preserve">
<value>underwaterTreeView</value>
</data>
<data name="&gt;&gt;treeView2.Type" xml:space="preserve">
<data name="&gt;&gt;underwaterTreeView.Type" xml:space="preserve">
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;treeView2.Parent" xml:space="preserve">
<value>waterTab</value>
<data name="&gt;&gt;underwaterTreeView.Parent" xml:space="preserve">
<value>underwaterTab</value>
</data>
<data name="&gt;&gt;treeView2.ZOrder" xml:space="preserve">
<data name="&gt;&gt;underwaterTreeView.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;treeView1.Name" xml:space="preserve">
<value>treeView1</value>
<data name="fogTreeView.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="&gt;&gt;treeView1.Type" xml:space="preserve">
<data name="fogTreeView.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 381</value>
</data>
<data name="fogTreeView.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;fogTreeView.Name" xml:space="preserve">
<value>fogTreeView</value>
</data>
<data name="&gt;&gt;fogTreeView.Type" xml:space="preserve">
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;treeView1.Parent" xml:space="preserve">
<data name="&gt;&gt;fogTreeView.Parent" xml:space="preserve">
<value>fogTab</value>
</data>
<data name="&gt;&gt;fogTreeView.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="colorTreeView.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="colorTreeView.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="colorTreeView.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 381</value>
</data>
<data name="colorTreeView.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;colorTreeView.Name" xml:space="preserve">
<value>colorTreeView</value>
</data>
<data name="&gt;&gt;colorTreeView.Type" xml:space="preserve">
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;colorTreeView.Parent" xml:space="preserve">
<value>colorsTab</value>
</data>
<data name="&gt;&gt;treeView1.ZOrder" xml:space="preserve">
<data name="&gt;&gt;colorTreeView.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="colorsTab.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 38</value>
</data>
<data name="colorsTab.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 458</value>
<value>320, 381</value>
</data>
<data name="colorsTab.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="colorsTab.Text" xml:space="preserve">
<value>Normal Colors</value>
<value>Everything</value>
</data>
<data name="&gt;&gt;colorsTab.Name" xml:space="preserve">
<value>colorsTab</value>
@@ -746,40 +725,64 @@
<value>tabControl</value>
</data>
<data name="&gt;&gt;colorsTab.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="treeView1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="treeView1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="treeView1.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 458</value>
</data>
<data name="treeView1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;treeView1.Name" xml:space="preserve">
<value>treeView1</value>
</data>
<data name="&gt;&gt;treeView1.Type" xml:space="preserve">
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;treeView1.Parent" xml:space="preserve">
<value>colorsTab</value>
</data>
<data name="&gt;&gt;treeView1.ZOrder" xml:space="preserve">
<value>0</value>
<value>1</value>
</data>
<data name="tabControl.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left</value>
</data>
<data name="fogTab.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 38</value>
</data>
<data name="fogTab.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 381</value>
</data>
<data name="fogTab.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="fogTab.Text" xml:space="preserve">
<value>Underwater Fog</value>
</data>
<data name="&gt;&gt;fogTab.Name" xml:space="preserve">
<value>fogTab</value>
</data>
<data name="&gt;&gt;fogTab.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;fogTab.Parent" xml:space="preserve">
<value>tabControl</value>
</data>
<data name="&gt;&gt;fogTab.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="underwaterTab.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 38</value>
</data>
<data name="underwaterTab.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 381</value>
</data>
<data name="underwaterTab.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="underwaterTab.Text" xml:space="preserve">
<value>Underwater</value>
</data>
<data name="&gt;&gt;underwaterTab.Name" xml:space="preserve">
<value>underwaterTab</value>
</data>
<data name="&gt;&gt;underwaterTab.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;underwaterTab.Parent" xml:space="preserve">
<value>tabControl</value>
</data>
<data name="&gt;&gt;underwaterTab.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="tabControl.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 83</value>
<value>23, 114</value>
</data>
<data name="tabControl.Size" type="System.Drawing.Size, System.Drawing">
<value>194, 500</value>
<value>328, 423</value>
</data>
<data name="tabControl.TabIndex" type="System.Int32, mscorlib">
<value>22</value>
@@ -794,7 +797,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;tabControl.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
@@ -3332,6 +3335,12 @@
<data name="&gt;&gt;saveToolStripMenuItem1.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;restoreOriginalColorToolStripMenuItem.Name" xml:space="preserve">
<value>restoreOriginalColorToolStripMenuItem</value>
</data>
<data name="&gt;&gt;restoreOriginalColorToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>COLEditor</value>
</data>

View File

@@ -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<string, string> ToProperty()
{
return new ValueTuple<string, string>("ANIM", "0x"+ANIM.ToString("x8"));
return new ValueTuple<string, string>("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<string> 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)
{

View File

@@ -610,7 +610,7 @@
<value>myTablePanel2</value>
</data>
<data name="&gt;&gt;myTablePanel2.Type" xml:space="preserve">
<value>PckStudio.Forms.MyTablePanel, PCK Studio, Version=5.3.0.0, Culture=neutral, PublicKeyToken=null</value>
<value>PckStudio.Forms.MyTablePanel, PCK-Studio, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;myTablePanel2.Parent" xml:space="preserve">
<value>tabPage1</value>
@@ -825,9 +825,6 @@
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>30</value>
</data>
<data name="buttonEXPORT.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="buttonEXPORT.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>Flat</value>
</data>
@@ -888,9 +885,6 @@
<data name="&gt;&gt;label7.ZOrder" xml:space="preserve">
<value>25</value>
</data>
<data name="buttonIMPORT.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="buttonIMPORT.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>Flat</value>
</data>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -29,6 +29,7 @@ namespace PckStudio
bool needsUpdate = false;
bool saved = true;
bool isTemplateFile = false;
bool isSelectingTab = false;
readonly Dictionary<PCKFile.FileData.FileType, Action<PCKFile.FileData>> 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 &&

File diff suppressed because it is too large Load Diff

View File

@@ -138,6 +138,9 @@
<Compile Include="Classes\API\PCKCenter\model\PCKCenterJSON.cs" />
<Compile Include="Classes\API\PCKCenter\SaveLocalJSON.cs" />
<Compile Include="Classes\FileTypes\ARCFile.cs" />
<Compile Include="Classes\FileTypes\BehaviourFile.cs" />
<Compile Include="Classes\FileTypes\CSMBFile.cs" />
<Compile Include="Classes\FileTypes\ModelFile.cs" />
<Compile Include="Classes\FileTypes\PCKAudioFile.cs" />
<Compile Include="Classes\FileTypes\Bink.cs" />
<Compile Include="Classes\FileTypes\COLFile.cs" />
@@ -145,6 +148,10 @@
<Compile Include="Classes\FileTypes\GRFFile.cs" />
<Compile Include="Classes\IO\ARC\ARCFileWriter.cs" />
<Compile Include="Classes\IO\ARC\ARCFileReader.cs" />
<Compile Include="Classes\IO\Behaviour\BehavioursReader.cs" />
<Compile Include="Classes\IO\CSMB\CSMBFileReader.cs" />
<Compile Include="Classes\IO\CSMB\CSMBFileWriter.cs" />
<Compile Include="Classes\IO\Model\ModelReader.cs" />
<Compile Include="Classes\IO\PCK\PCKAudioFileReader.cs" />
<Compile Include="Classes\IO\PCK\PCKAudioFileWriter.cs" />
<Compile Include="Classes\IO\COL\COLFileReader.cs" />
@@ -196,7 +203,7 @@
<Compile Include="Classes\Networking\PCKCollections.cs" />
<Compile Include="Classes\Misc\RichPresenceClient.cs" />
<Compile Include="Classes\Networking\Update.cs" />
<Compile Include="Classes\Utils\grf\CRC32.cs" />
<Compile Include="Classes\Utils\GRF\CRC32.cs" />
<Compile Include="Classes\Utils\RLE.cs" />
<Compile Include="Forms\Additional-Popups\Loc\AddLanguage.cs">
<SubType>Form</SubType>
@@ -319,12 +326,6 @@
<Compile Include="Forms\Skins-And-Textures\generateModel.Designer.cs">
<DependentUpon>generateModel.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\goodbye.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\goodbye.Designer.cs">
<DependentUpon>goodbye.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Skins-And-Textures\SkinPreview.cs">
<SubType>Form</SubType>
</Compile>
@@ -367,12 +368,6 @@
<Compile Include="Forms\Utilities\installWiiU.Designer.cs">
<DependentUpon>installWiiU.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\Job.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\Job.Designer.cs">
<DependentUpon>Job.cs</DependentUpon>
</Compile>
<Compile Include="Classes\Utils\ListUtils.cs" />
<Compile Include="Forms\Utilities\PCK Manager.cs">
<SubType>Form</SubType>
@@ -526,12 +521,6 @@
<EmbeddedResource Include="Forms\Skins-And-Textures\generateModel.resx">
<DependentUpon>generateModel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\goodbye.ja.resx">
<DependentUpon>goodbye.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\goodbye.resx">
<DependentUpon>goodbye.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\SkinPreview.resx">
<DependentUpon>SkinPreview.cs</DependentUpon>
</EmbeddedResource>
@@ -557,9 +546,6 @@
<EmbeddedResource Include="Forms\Utilities\installWiiU.resx">
<DependentUpon>installWiiU.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\Job.resx">
<DependentUpon>Job.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\meta.ja.resx">
<DependentUpon>meta.cs</DependentUpon>
</EmbeddedResource>
@@ -633,6 +619,7 @@
<ItemGroup>
<None Include="Resources\apps.zip" />
<None Include="Resources\binka\binkawin.asi" />
<None Include="Resources\fileTemplates\colours.col" />
<None Include="Resources\tileData.json" />
<None Include="Resources\Del.png" />
<None Include="Resources\ExportFile.png" />
@@ -676,6 +663,7 @@
<None Include="Resources\iconImageList\TEXTURE ICON.png" />
<None Include="Resources\iconImageList\SKINS ICON_new.png" />
<None Include="Resources\AddTexture.png" />
<None Include="Resources\iconImageList\BEHAVIOURS ICON.png" />
<Content Include="Resources\PCK-Studio_Logo.ico" />
<None Include="Resources\bg1.png" />
<Content Include="Resources\NoImageFound.png" />

View File

@@ -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");
/// <summary>
/// The main entry point for the application.
/// </summary>
[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);
}

View File

@@ -90,6 +90,16 @@ namespace PckStudio.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap BEHAVIOURS_ICON {
get {
object obj = ResourceManager.GetObject("BEHAVIOURS_ICON", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@@ -199,6 +209,16 @@ namespace PckStudio.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Byte[].
/// </summary>
public static byte[] colours {
get {
object obj = ResourceManager.GetObject("colours", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View File

@@ -271,6 +271,12 @@
<data name="SKINS_ICON" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\iconImageList\SKINS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="colours" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\fileTemplates\colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="BEHAVIOURS_ICON" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\iconImageList\BEHAVIOURS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AddTexture" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AddTexture.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 222 KiB

View File

@@ -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]" },
{ "": "" }
]
}

View File

@@ -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

1
SFGraphics Submodule

Submodule SFGraphics added at ec1c5f0741