mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-10-01 14:00:54 +00:00
Remove meta_data from PCKFile and updated PCKFile reader/writer
This commit is contained in:
@@ -7,8 +7,7 @@ namespace PckStudio.Classes.FileTypes
|
||||
public class PCKFile
|
||||
{
|
||||
public int type { get; }
|
||||
public List<string> meta_data { get; } = new List<string>();
|
||||
public List<FileData> file_entries { get; } = new List<FileData>();
|
||||
public List<FileData> Files { get; } = new List<FileData>();
|
||||
|
||||
public class FileData
|
||||
{
|
||||
@@ -20,12 +19,12 @@ namespace PckStudio.Classes.FileTypes
|
||||
DLCTextureFile = 2, // *.png
|
||||
DLCUIDataFile = 3, // *.fui ????
|
||||
// DLCInfoFile = 4, // "0" file
|
||||
// DLCTexturePackInfoFile = 5, // x16Info.pck
|
||||
// DLCTexturePackInfoFile = 5, // (x16|x32|...)Info.pck
|
||||
DLCLocalisationFile = 6, // languages.loc/localisation.loc
|
||||
DLCGameRulesFile = 7, // *.grf
|
||||
DLCGameRulesFile = 7, // GameRiles.grf
|
||||
DLCAudioFile = 8, // audio.pck
|
||||
DLCColourTableFile = 9, // colours.col
|
||||
DLCGameRulesHeader = 10, // *.grh
|
||||
DLCGameRulesHeader = 10, // GameRiles.grh
|
||||
DLCSkinDataFile = 11, // *.pck made up name -Miku
|
||||
DLCModelsFile = 12, // models.bin
|
||||
DLCBehavioursFile = 13, // behaviours.bin
|
||||
@@ -74,16 +73,16 @@ namespace PckStudio.Classes.FileTypes
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void ValidateMeta()
|
||||
public List<string> GatherMetaTags()
|
||||
{
|
||||
file_entries.ForEach(file =>
|
||||
{
|
||||
file.properties.ForEach(pair =>
|
||||
var LUT = new List<string>();
|
||||
Files.ForEach(file => file.properties.ForEach(pair =>
|
||||
{
|
||||
if (!meta_data.Contains(pair.Item1))
|
||||
meta_data.Add(pair.Item1);
|
||||
});
|
||||
});
|
||||
if (!LUT.Contains(pair.Item1))
|
||||
LUT.Add(pair.Item1);
|
||||
})
|
||||
);
|
||||
return LUT;
|
||||
}
|
||||
|
||||
public bool HasFile(string name, int type)
|
||||
@@ -93,7 +92,7 @@ namespace PckStudio.Classes.FileTypes
|
||||
|
||||
public FileData GetFile(string name, int type)
|
||||
{
|
||||
foreach (var file in file_entries)
|
||||
foreach (var file in Files)
|
||||
{
|
||||
if (file.name == name && file.type == type)
|
||||
return file;
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace PckStudio.Classes.IO
|
||||
internal class PCKFileReader : StreamDataReader
|
||||
{
|
||||
internal PCKFile _file;
|
||||
internal List<string> LUT;
|
||||
|
||||
public static PCKFile Read(Stream stream, bool isLittleEndian)
|
||||
{
|
||||
@@ -24,22 +25,23 @@ namespace PckStudio.Classes.IO
|
||||
private PCKFile ReadFileFromStream(Stream stream)
|
||||
{
|
||||
_file = new PCKFile(ReadInt(stream));
|
||||
ReadMetaData(stream);
|
||||
ReadLookUpTabel(stream);
|
||||
ReadFileEntries(stream);
|
||||
ReadFileContents(stream);
|
||||
return _file;
|
||||
}
|
||||
|
||||
internal void ReadMetaData(Stream stream)
|
||||
internal void ReadLookUpTabel(Stream stream)
|
||||
{
|
||||
int meta_entry_count = ReadInt(stream);
|
||||
_file.meta_data.Capacity = meta_entry_count;
|
||||
for (; 0 < meta_entry_count; meta_entry_count--)
|
||||
int count = ReadInt(stream);
|
||||
LUT = new List<string>(count);
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
int index = ReadInt(stream);
|
||||
string value = ReadString(stream);
|
||||
_file.meta_data.Insert(index, value);
|
||||
LUT.Insert(index, value);
|
||||
}
|
||||
if (_file.meta_data.Contains("XMLVERSION"))
|
||||
if (LUT.Contains("XMLVERSION"))
|
||||
Console.WriteLine(ReadInt(stream)); // xml version num ??
|
||||
}
|
||||
|
||||
@@ -52,21 +54,21 @@ namespace PckStudio.Classes.IO
|
||||
int file_type = ReadInt(stream);
|
||||
string name = ReadString(stream);
|
||||
var entry = new PCKFile.FileData(name, file_type, file_size);
|
||||
_file.file_entries.Add(entry);
|
||||
_file.Files.Add(entry);
|
||||
}
|
||||
foreach (var file_entry in _file.file_entries)
|
||||
{
|
||||
}
|
||||
internal void ReadFileContents(Stream stream)
|
||||
{
|
||||
_file.Files.ForEach( file => {
|
||||
int property_count = ReadInt(stream);
|
||||
for (; 0 < property_count; property_count--)
|
||||
{
|
||||
int index = ReadInt(stream);
|
||||
string key = _file.meta_data[index];
|
||||
string key = LUT[ReadInt(stream)];
|
||||
string value = ReadString(stream);
|
||||
file_entry.properties.Add(new ValueTuple<string, string>(key, value));
|
||||
file.properties.Add((key, value));
|
||||
}
|
||||
// file data buffer is only allocated when FileData is constructed with `dataSize`
|
||||
stream.Read(file_entry.data, 0, file_entry.size);
|
||||
}
|
||||
stream.Read(file.data, 0, file.size);
|
||||
});
|
||||
}
|
||||
internal string ReadString(Stream stream)
|
||||
{
|
||||
|
||||
@@ -11,7 +11,8 @@ namespace PckStudio.Classes.IO
|
||||
{
|
||||
internal class PCKFileWriter : StreamDataWriter
|
||||
{
|
||||
internal PCKFile _file;
|
||||
internal PCKFile _pckfile;
|
||||
internal List<string> LUT = new List<string>();
|
||||
|
||||
public static void Write(Stream stream, PCKFile file, bool isLittleEndian)
|
||||
{
|
||||
@@ -20,14 +21,16 @@ namespace PckStudio.Classes.IO
|
||||
|
||||
private PCKFileWriter(PCKFile file, bool isLittleEndian) : base(isLittleEndian)
|
||||
{
|
||||
_file = file;
|
||||
_pckfile = file;
|
||||
LUT = _pckfile.GatherMetaTags();
|
||||
}
|
||||
|
||||
private void WriteToStream(Stream stream)
|
||||
{
|
||||
WriteInt(stream, _file.type);
|
||||
WriteMetaEntries(stream);
|
||||
WriteInt(stream, _pckfile.type);
|
||||
WriteLookUpTable(stream);
|
||||
WriteFileEntries(stream);
|
||||
WriteFileContents(stream);
|
||||
}
|
||||
|
||||
internal void WriteString(Stream stream, string s)
|
||||
@@ -37,40 +40,43 @@ namespace PckStudio.Classes.IO
|
||||
WriteInt(stream, 0); // padding
|
||||
}
|
||||
|
||||
internal void WriteMetaEntries(Stream stream)
|
||||
internal void WriteLookUpTable(Stream stream)
|
||||
{
|
||||
WriteInt(stream, _file.meta_data.Count);
|
||||
_file.meta_data.ForEach(entry =>
|
||||
WriteInt(stream, LUT.Count);
|
||||
LUT.ForEach(entry =>
|
||||
{
|
||||
WriteInt(stream, _file.meta_data.IndexOf(entry));
|
||||
WriteInt(stream, LUT.IndexOf(entry));
|
||||
WriteString(stream, entry);
|
||||
});
|
||||
if (_file.meta_data.Contains("XMLVERSION"))
|
||||
if (LUT.Contains("XMLVERSION"))
|
||||
WriteInt(stream, 0x1337); // :^)
|
||||
}
|
||||
|
||||
internal void WriteFileEntries(Stream stream)
|
||||
{
|
||||
WriteInt(stream, _file.file_entries.Count);
|
||||
foreach (var entry in _file.file_entries)
|
||||
WriteInt(stream, _pckfile.Files.Count);
|
||||
foreach (var file in _pckfile.Files)
|
||||
{
|
||||
WriteInt(stream, entry.size);
|
||||
WriteInt(stream, entry.type);
|
||||
WriteString(stream, entry.name);
|
||||
}
|
||||
foreach (var entry in _file.file_entries)
|
||||
{
|
||||
WriteInt(stream, entry.properties.Count);
|
||||
foreach (var property in entry.properties)
|
||||
{
|
||||
if (!_file.meta_data.Contains(property.Item1))
|
||||
throw new Exception("Tag not in Meta: " + property.Item1);
|
||||
WriteInt(stream, _file.meta_data.IndexOf(property.Item1));
|
||||
WriteString(stream, property.Item2);
|
||||
}
|
||||
stream.Write(entry.data, 0, entry.size);
|
||||
WriteInt(stream, file.size);
|
||||
WriteInt(stream, file.type);
|
||||
WriteString(stream, file.name);
|
||||
}
|
||||
}
|
||||
|
||||
internal void WriteFileContents(Stream stream)
|
||||
{
|
||||
foreach (var file in _pckfile.Files)
|
||||
{
|
||||
WriteInt(stream, file.properties.Count);
|
||||
foreach (var property in file.properties)
|
||||
{
|
||||
if (!LUT.Contains(property.Item1))
|
||||
throw new Exception("Tag not in Look Up Table: " + property.Item1);
|
||||
WriteInt(stream, LUT.IndexOf(property.Item1));
|
||||
WriteString(stream, property.Item2);
|
||||
}
|
||||
WriteBytes(stream, file.data, file.size);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace PckStudio.Forms.Editor
|
||||
private void LOCEditor_Load(object sender, EventArgs e)
|
||||
{
|
||||
RPC.SetPresence("LOC Editor", "Editing loc File.");
|
||||
foreach(string locKey in currentLoc.keys.Keys)
|
||||
foreach(string locKey in currentLoc.LocKeys.Keys)
|
||||
treeViewLocKeys.Nodes.Add(locKey);
|
||||
}
|
||||
|
||||
@@ -48,14 +48,14 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
var node = e.Node;
|
||||
if (node == null ||
|
||||
!currentLoc.keys.ContainsKey(node.Text))
|
||||
!currentLoc.LocKeys.ContainsKey(node.Text))
|
||||
{
|
||||
MessageBox.Show("Selected Node does not seem to be in the loc file");
|
||||
return;
|
||||
}
|
||||
tbl.Rows.Clear();
|
||||
buttonReplaceAll.Enabled = true;
|
||||
foreach (var l in currentLoc.keys[node.Text])
|
||||
foreach (var l in currentLoc.LocKeys[node.Text])
|
||||
tbl.Rows.Add(l.Key, l.Value);
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace PckStudio.Forms.Editor
|
||||
private void addDisplayIDToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (treeViewLocKeys.SelectedNode != null &&
|
||||
!currentLoc.keys.ContainsKey(treeViewLocKeys.SelectedNode.Text))
|
||||
!currentLoc.LocKeys.ContainsKey(treeViewLocKeys.SelectedNode.Text))
|
||||
using (RenamePrompt prompt = new RenamePrompt(""))
|
||||
{
|
||||
prompt.OKButton.Text = "Add";
|
||||
@@ -91,8 +91,8 @@ namespace PckStudio.Forms.Editor
|
||||
private void deleteDisplayIDToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if(treeViewLocKeys.SelectedNode != null &&
|
||||
currentLoc.keys.ContainsKey(treeViewLocKeys.SelectedNode.Text) &&
|
||||
currentLoc.keys.Remove(treeViewLocKeys.SelectedNode.Text))
|
||||
currentLoc.LocKeys.ContainsKey(treeViewLocKeys.SelectedNode.Text) &&
|
||||
currentLoc.LocKeys.Remove(treeViewLocKeys.SelectedNode.Text))
|
||||
{
|
||||
treeViewLocKeys.SelectedNode.Remove();
|
||||
wasModified = true;
|
||||
|
||||
@@ -20,13 +20,6 @@ namespace PckStudio
|
||||
{
|
||||
InitializeComponent();
|
||||
currentPCK = currentPCKIn;
|
||||
|
||||
FormBorderStyle = FormBorderStyle.None;
|
||||
}
|
||||
|
||||
private void AdvancedOptions_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void addEntryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
@@ -52,9 +45,9 @@ namespace PckStudio
|
||||
{
|
||||
foreach (TreeNode node in treeMeta.Nodes)
|
||||
{
|
||||
foreach (PCKFile.FileData mf in currentPCK.file_entries)
|
||||
foreach (PCKFile.FileData file in currentPCK.Files)
|
||||
{
|
||||
mf.properties.Add(new ValueTuple<string, string>(node.Text, node.Tag.ToString()));
|
||||
file.properties.Add((node.Text, node.Tag.ToString()));
|
||||
}
|
||||
}
|
||||
MessageBox.Show("Data Added to All Entries");
|
||||
@@ -65,7 +58,7 @@ namespace PckStudio
|
||||
int i = 0;
|
||||
do
|
||||
{
|
||||
foreach (PCKFile.FileData mf in currentPCK.file_entries)
|
||||
foreach (PCKFile.FileData mf in currentPCK.Files)
|
||||
{
|
||||
MemoryStream png = new MemoryStream(mf.data);
|
||||
if (Path.GetExtension(mf.name) == ".png")
|
||||
@@ -88,7 +81,7 @@ namespace PckStudio
|
||||
|
||||
do
|
||||
{
|
||||
foreach (PCKFile.FileData mf in currentPCK.file_entries)
|
||||
foreach (PCKFile.FileData mf in currentPCK.Files)
|
||||
{
|
||||
MemoryStream png = new MemoryStream(mf.data);
|
||||
if (Path.GetExtension(mf.name) == ".png")
|
||||
@@ -111,7 +104,7 @@ namespace PckStudio
|
||||
|
||||
do
|
||||
{
|
||||
foreach (PCKFile.FileData mf in currentPCK.file_entries)
|
||||
foreach (PCKFile.FileData mf in currentPCK.Files)
|
||||
{
|
||||
if (Path.GetExtension(mf.name) == ".png")
|
||||
{
|
||||
|
||||
@@ -449,7 +449,7 @@ namespace PckStudio.Forms.Utilities
|
||||
string Outpath = "assets\\minecraft\\textures\\";
|
||||
|
||||
|
||||
foreach (PCKFile.FileData mf in Pck.file_entries)
|
||||
foreach (PCKFile.FileData mf in Pck.Files)
|
||||
{
|
||||
System.IO.FileInfo file = new System.IO.FileInfo(Environment.CurrentDirectory + "\\Temp\\" + @"\" + mf.name);
|
||||
file.Directory.Create(); // If the directory already exists, this method does nothing.
|
||||
@@ -474,7 +474,7 @@ namespace PckStudio.Forms.Utilities
|
||||
string Outpath = "assets\\minecraft\\textures\\";
|
||||
|
||||
|
||||
foreach (PCKFile.FileData mf in Pck.file_entries)
|
||||
foreach (PCKFile.FileData mf in Pck.Files)
|
||||
{
|
||||
System.IO.FileInfo file = new System.IO.FileInfo(Environment.CurrentDirectory + "\\Temp\\" + @"\" + mf.name);
|
||||
file.Directory.Create(); // If the directory already exists, this method does nothing.
|
||||
@@ -499,9 +499,9 @@ namespace PckStudio.Forms.Utilities
|
||||
string Outpath = "assets\\minecraft\\textures\\";
|
||||
|
||||
|
||||
foreach (PCKFile.FileData mf in Pck.file_entries)
|
||||
foreach (PCKFile.FileData mf in Pck.Files)
|
||||
{
|
||||
System.IO.FileInfo file = new System.IO.FileInfo(Environment.CurrentDirectory + "\\Temp\\" + @"\" + mf.name);
|
||||
FileInfo file = new FileInfo(Environment.CurrentDirectory + "\\Temp\\" + @"\" + mf.name);
|
||||
file.Directory.Create(); // If the directory already exists, this method does nothing.
|
||||
File.WriteAllBytes(Environment.CurrentDirectory + "\\Temp\\" + @"\" + mf.name, mf.data); //writes minefile to file
|
||||
}
|
||||
|
||||
@@ -67,12 +67,8 @@ namespace PckStudio.Forms
|
||||
buttonDirect.Font = new Font("Segoe UI", 8, FontStyle.Bold);
|
||||
buttonDirect.ForeColor = Color.White;
|
||||
}
|
||||
buttonBedrock.Visible = false;
|
||||
buttonDelete.Visible = false;
|
||||
buttonExport.Visible = false;
|
||||
buttonInstallPs3.Visible = false;
|
||||
buttonInstallXbox.Visible = false;
|
||||
buttonInstallWiiU.Visible = false;
|
||||
buttonBedrock.Visible = buttonDelete.Visible = buttonExport.Visible = false;
|
||||
buttonInstallPs3.Visible = buttonInstallXbox.Visible = buttonInstallWiiU.Visible = false;
|
||||
}
|
||||
else if (mode==1)//My Collection Mode
|
||||
{
|
||||
@@ -143,7 +139,7 @@ namespace PckStudio.Forms
|
||||
pck = PCKFileReader.Read(stream, false); //sets opened pck
|
||||
}
|
||||
PCKFile currentPCK = pck; //sets opened pck
|
||||
foreach (PCKFile.FileData skin in currentPCK.file_entries)
|
||||
foreach (PCKFile.FileData skin in currentPCK.Files)
|
||||
{
|
||||
if (skin.name.Count() == 19)
|
||||
{
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace PckStudio
|
||||
currentPCK = openPck(ofd.FileName);
|
||||
if (checkForPassword())
|
||||
{
|
||||
fileEntryCountLabel.Text = "Files:" + currentPCK.file_entries.Count;
|
||||
fileEntryCountLabel.Text = "Files:" + currentPCK.Files.Count;
|
||||
treeViewMain.Enabled = true;
|
||||
treeMeta.Enabled = true;
|
||||
closeToolStripMenuItem.Visible = true;
|
||||
@@ -81,13 +81,13 @@ namespace PckStudio
|
||||
saveLocation = filePath;
|
||||
pck = PCKFileReader.Read(fileStream, LittleEndianCheckBox.Checked);
|
||||
}
|
||||
if (pck.type < 3) throw new Exception("Can't open pck file of type: " + pck.type.ToString());
|
||||
//if (pck.type < 3) throw new Exception("Can't open pck file of type: " + pck.type.ToString());
|
||||
return pck;
|
||||
}
|
||||
|
||||
private bool checkForPassword()
|
||||
{
|
||||
foreach (var file_entry in currentPCK.file_entries)
|
||||
foreach (var file_entry in currentPCK.Files)
|
||||
{
|
||||
if (file_entry.name != "0") continue;
|
||||
foreach (var pair in file_entry.properties)
|
||||
@@ -134,7 +134,7 @@ namespace PckStudio
|
||||
|
||||
private void BuildPckTreeView(TreeNodeCollection root, PCKFile pckFile)
|
||||
{
|
||||
foreach (var file_entry in pckFile.file_entries)
|
||||
foreach (var file_entry in pckFile.Files)
|
||||
{
|
||||
TreeNode node = BuildNodeTreeBySeperator(root, file_entry.name, '/');
|
||||
node.Tag = file_entry;
|
||||
@@ -310,7 +310,6 @@ namespace PckStudio
|
||||
|
||||
private void Save(string FilePath)
|
||||
{
|
||||
currentPCK.ValidateMeta();
|
||||
using (var fs = File.OpenWrite(FilePath))
|
||||
{
|
||||
PCKFileWriter.Write(fs, currentPCK, LittleEndianCheckBox.Checked);
|
||||
@@ -358,7 +357,7 @@ namespace PckStudio
|
||||
TrySetLocFile(locFile);
|
||||
}
|
||||
}
|
||||
currentPCK.file_entries.Remove(file);
|
||||
currentPCK.Files.Remove(file);
|
||||
node.Remove();
|
||||
saved = false;
|
||||
}
|
||||
@@ -376,7 +375,7 @@ namespace PckStudio
|
||||
{
|
||||
//removes minefile from minefile list
|
||||
PCKFile.FileData file = (PCKFile.FileData)item.Tag;
|
||||
currentPCK.file_entries.Remove(file);
|
||||
currentPCK.Files.Remove(file);
|
||||
item.Remove();
|
||||
}
|
||||
}
|
||||
@@ -411,10 +410,10 @@ namespace PckStudio
|
||||
if (add.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if (add.useCape)
|
||||
currentPCK.file_entries.Add(add.Cape);
|
||||
currentPCK.Files.Add(add.Cape);
|
||||
if (!(treeViewMain.SelectedNode.Tag is PCKFile.FileData))
|
||||
add.Skin.name = $"{treeViewMain.SelectedNode.FullPath}/{add.Skin.name}";
|
||||
currentPCK.file_entries.Add(add.Skin);
|
||||
currentPCK.Files.Add(add.Skin);
|
||||
TrySetLocFile(locFile);
|
||||
saved = false;
|
||||
BuildMainTreeView();
|
||||
@@ -616,7 +615,7 @@ namespace PckStudio
|
||||
|
||||
if (node.Parent == null) treeViewMain.Nodes.Insert(node.Index + 1, newNode); //adds generated minefile node
|
||||
else node.Parent.Nodes.Insert(node.Index + 1, newNode);//adds generated minefile node to selected folder
|
||||
currentPCK.file_entries.Insert(node.Index + 1, newNode.Tag as PCKFile.FileData);
|
||||
currentPCK.Files.Insert(node.Index + 1, newNode.Tag as PCKFile.FileData);
|
||||
}
|
||||
|
||||
private void deleteEntryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
@@ -670,8 +669,8 @@ namespace PckStudio
|
||||
//if (treeViewMain.SelectedNode.Tag is PCKFile.FileData)
|
||||
//{
|
||||
// PCKFile.FileData file = treeViewMain.SelectedNode.Tag as PCKFile.FileData;
|
||||
// int file_index = currentPCK.file_entries.IndexOf(file);
|
||||
// currentPCK.file_entries.Swap(file_index, file_index - 1);
|
||||
// int file_index = currentPCK.Files.IndexOf(file);
|
||||
// currentPCK.Files.Swap(file_index, file_index - 1);
|
||||
// saved = false;
|
||||
//}
|
||||
//return;
|
||||
@@ -702,8 +701,8 @@ namespace PckStudio
|
||||
//if (treeViewMain.SelectedNode.Tag is PCKFile.FileData)
|
||||
//{
|
||||
// PCKFile.FileData file = treeViewMain.SelectedNode.Tag as PCKFile.FileData;
|
||||
// int file_index = currentPCK.file_entries.IndexOf(file);
|
||||
// currentPCK.file_entries.Swap(file_index, file_index + 1);
|
||||
// int file_index = currentPCK.Files.IndexOf(file);
|
||||
// currentPCK.Files.Swap(file_index, file_index + 1);
|
||||
// saved = false;
|
||||
//}
|
||||
//return;
|
||||
@@ -803,8 +802,6 @@ namespace PckStudio
|
||||
private void InitializeSkinPack(int packId, int packVersion, string packName)
|
||||
{
|
||||
currentPCK = new PCKFile(3);
|
||||
currentPCK.meta_data.Add("PACKID");
|
||||
currentPCK.meta_data.Add("PACKVERSION");
|
||||
var zeroFile = new PCKFile.FileData("0", 4);
|
||||
zeroFile.properties.Add(("PACKID", packId.ToString()));
|
||||
zeroFile.properties.Add(("PACKVERSION", packVersion.ToString()));
|
||||
@@ -816,18 +813,17 @@ namespace PckStudio
|
||||
LOCFileWriter.Write(stream, locFile);
|
||||
loc.SetData(stream.ToArray());
|
||||
}
|
||||
currentPCK.file_entries.Add(zeroFile);
|
||||
currentPCK.file_entries.Add(loc);
|
||||
currentPCK.Files.Add(zeroFile);
|
||||
currentPCK.Files.Add(loc);
|
||||
}
|
||||
|
||||
private void InitializeTexturePack(int packId, int packVersion, string packName)
|
||||
{
|
||||
InitializeSkinPack(packId, packVersion, packName);
|
||||
currentPCK.meta_data.Add("DATAPATH");
|
||||
var texturepackInfo = new PCKFile.FileData("x16/x16Info.pck", 5);
|
||||
texturepackInfo.properties.Add(("PACKID", "0"));
|
||||
texturepackInfo.properties.Add(("DATAPATH", "x16Data.pck"));
|
||||
currentPCK.file_entries.Add(texturepackInfo);
|
||||
currentPCK.Files.Add(texturepackInfo);
|
||||
}
|
||||
|
||||
private void skinPackToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
@@ -944,7 +940,7 @@ namespace PckStudio
|
||||
{
|
||||
pckfile = PCKFileReader.Read(fs, LittleEndianCheckBox.Checked);
|
||||
}
|
||||
foreach (PCKFile.FileData mf in pckfile.file_entries)
|
||||
foreach (PCKFile.FileData mf in pckfile.Files)
|
||||
{
|
||||
foreach (var entry in mf.properties)
|
||||
{
|
||||
@@ -1034,7 +1030,7 @@ namespace PckStudio
|
||||
|
||||
TreeNode skin = new TreeNode(); //create template treenode for minefile
|
||||
|
||||
currentPCK.file_entries.Add(mfNew);//adds new minefile to minefile list for skin
|
||||
currentPCK.Files.Add(mfNew);//adds new minefile to minefile list for skin
|
||||
|
||||
//Sets minefile directory based on pcks structure/type
|
||||
if (mashupStructure == true)
|
||||
@@ -1337,7 +1333,7 @@ namespace PckStudio
|
||||
// //add all skins to a list
|
||||
// List<PCKFile.FileData> skinsList = new List<PCKFile.FileData>();
|
||||
// List<PCKFile.FileData> capesList = new List<PCKFile.FileData>();
|
||||
// foreach (PCKFile.FileData skin in currentPCK.file_entries)
|
||||
// foreach (PCKFile.FileData skin in currentPCK.Files)
|
||||
// {
|
||||
// if (skin.name.Count() == 19)
|
||||
// {
|
||||
@@ -2829,8 +2825,7 @@ namespace PckStudio
|
||||
TreeNode node = treeViewMain.SelectedNode;
|
||||
if (node == null || node.Tag == null || !(node.Tag is PCKFile.FileData)) return;
|
||||
var file = node.Tag as PCKFile.FileData;
|
||||
Console.WriteLine("Old type:" + file.type);
|
||||
Console.WriteLine("New type:" + type);
|
||||
Console.WriteLine("Setting {file.type} to {type}");
|
||||
file.type = type;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user