mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-01 08:05:29 +00:00
Add setting to set Compression Level on grf files
This commit is contained in:
@@ -88,11 +88,14 @@ namespace PckStudio.Classes.FileTypes
|
||||
};
|
||||
|
||||
public readonly GameRule Root = null;
|
||||
|
||||
public int Crc => _crc;
|
||||
public bool IsWorld => _isWorld;
|
||||
public eCompressionType CompressionLevel => _compressionLevel;
|
||||
|
||||
private int _crc = 0;
|
||||
private bool _isWorld = false;
|
||||
private eCompressionType _compressionLevel = eCompressionType.None;
|
||||
|
||||
public enum eCompressionType : byte
|
||||
{
|
||||
@@ -108,9 +111,12 @@ namespace PckStudio.Classes.FileTypes
|
||||
public GRFFile() : this(-1, false)
|
||||
{}
|
||||
|
||||
public GRFFile(int crc, bool isWolrd)
|
||||
public GRFFile(int crc, bool isWolrd) : this(crc, isWolrd, eCompressionType.None)
|
||||
{}
|
||||
public GRFFile(int crc, bool isWolrd, eCompressionType compressionLevel)
|
||||
{
|
||||
Root = new GameRule("__ROOT__", null);
|
||||
_compressionLevel = compressionLevel;
|
||||
_crc = crc;
|
||||
_isWorld = isWolrd;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace PckStudio.Classes.IO.GRF
|
||||
{
|
||||
compression_type = (GRFFile.eCompressionType)byte4;
|
||||
}
|
||||
_file = new GRFFile(crc, byte4 > 0);
|
||||
_file = new GRFFile(crc, byte4 > 0, compression_type);
|
||||
|
||||
if (compression_type == GRFFile.eCompressionType.None && byte4 == 0)
|
||||
return stream;
|
||||
|
||||
31
PCK-Studio/Forms/Editor/GRFEditor.Designer.cs
generated
31
PCK-Studio/Forms/Editor/GRFEditor.Designer.cs
generated
@@ -45,6 +45,8 @@
|
||||
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.metroPanel1 = new MetroFramework.Controls.MetroPanel();
|
||||
this.compressionLvlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripComboBox1 = new System.Windows.Forms.ToolStripComboBox();
|
||||
this.MessageContextMenu.SuspendLayout();
|
||||
this.DetailContextMenu.SuspendLayout();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
@@ -150,7 +152,8 @@
|
||||
//
|
||||
this.menuStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.fileToolStripMenuItem});
|
||||
this.fileToolStripMenuItem,
|
||||
this.compressionLvlToolStripMenuItem});
|
||||
this.menuStrip1.Location = new System.Drawing.Point(25, 60);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(450, 24);
|
||||
@@ -171,14 +174,14 @@
|
||||
//
|
||||
this.openToolStripMenuItem.Enabled = false;
|
||||
this.openToolStripMenuItem.Name = "openToolStripMenuItem";
|
||||
this.openToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
|
||||
this.openToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.openToolStripMenuItem.Text = "Open";
|
||||
//
|
||||
// saveToolStripMenuItem
|
||||
//
|
||||
this.saveToolStripMenuItem.BackColor = System.Drawing.Color.Transparent;
|
||||
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
|
||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.saveToolStripMenuItem.Text = "Save";
|
||||
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
|
||||
//
|
||||
@@ -202,6 +205,26 @@
|
||||
this.metroPanel1.VerticalScrollbarSize = 10;
|
||||
this.metroPanel1.Resize += new System.EventHandler(this.metroPanel1_Resize);
|
||||
//
|
||||
// compressionLvlToolStripMenuItem
|
||||
//
|
||||
this.compressionLvlToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripComboBox1});
|
||||
this.compressionLvlToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Menu;
|
||||
this.compressionLvlToolStripMenuItem.Name = "compressionLvlToolStripMenuItem";
|
||||
this.compressionLvlToolStripMenuItem.Size = new System.Drawing.Size(106, 20);
|
||||
this.compressionLvlToolStripMenuItem.Text = "Compression Lvl";
|
||||
//
|
||||
// toolStripComboBox1
|
||||
//
|
||||
this.toolStripComboBox1.Items.AddRange(new object[] {
|
||||
"None",
|
||||
"Compressed",
|
||||
"Compressed + RLE",
|
||||
"Compressed + RLE + CRC"});
|
||||
this.toolStripComboBox1.Name = "toolStripComboBox1";
|
||||
this.toolStripComboBox1.Size = new System.Drawing.Size(121, 23);
|
||||
this.toolStripComboBox1.Text = "Zlib";
|
||||
//
|
||||
// GRFEditor
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
@@ -249,5 +272,7 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem;
|
||||
private MetroFramework.Controls.MetroPanel metroPanel1;
|
||||
private System.Windows.Forms.ToolStripMenuItem compressionLvlToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripComboBox toolStripComboBox1;
|
||||
}
|
||||
}
|
||||
@@ -55,6 +55,7 @@ namespace PckStudio.Forms.Editor
|
||||
private void OnLoad(object sender, EventArgs e)
|
||||
{
|
||||
RPC.SetPresence("GRF Editor", "Editing a GRF File");
|
||||
toolStripComboBox1.SelectedIndex = (int)_file.CompressionLevel;
|
||||
loadGRFTreeView(GrfTreeView.Nodes, _file.Root);
|
||||
}
|
||||
|
||||
@@ -192,7 +193,7 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
try
|
||||
{
|
||||
GRFFileWriter.Write(stream, _file, GRFFile.eCompressionType.ZlibRleCrc);
|
||||
GRFFileWriter.Write(stream, _file, (GRFFile.eCompressionType)toolStripComboBox1.SelectedIndex/*GRFFile.eCompressionType.ZlibRleCrc*/);
|
||||
_pckfile?.SetData(stream.ToArray());
|
||||
MessageBox.Show("Saved!");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user