mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-29 12:15:54 +00:00
GRFFile - Rename eCompressionType enum values and SubRules to ChildRules
This commit is contained in:
@@ -91,18 +91,18 @@ namespace PckStudio.Classes.FileTypes
|
||||
|
||||
public int Crc => _crc;
|
||||
public bool IsWorld => _isWorld;
|
||||
public eCompressionType CompressionLevel => _compressionLevel;
|
||||
public CompressionType CompressionLevel => _compressionLevel;
|
||||
|
||||
private int _crc = 0;
|
||||
private bool _isWorld = false;
|
||||
private eCompressionType _compressionLevel = eCompressionType.None;
|
||||
private CompressionType _compressionLevel = CompressionType.None;
|
||||
|
||||
public enum eCompressionType : byte
|
||||
public enum CompressionType : byte
|
||||
{
|
||||
None = 0,
|
||||
Zlib = 1,
|
||||
ZlibRle = 2,
|
||||
ZlibRleCrc = 3,
|
||||
None = 0,
|
||||
Compressed = 1,
|
||||
CompressedRle = 2,
|
||||
CompressedRleCrc = 3,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -111,9 +111,9 @@ namespace PckStudio.Classes.FileTypes
|
||||
public GRFFile() : this(-1, false)
|
||||
{}
|
||||
|
||||
public GRFFile(int crc, bool isWolrd) : this(crc, isWolrd, eCompressionType.None)
|
||||
public GRFFile(int crc, bool isWolrd) : this(crc, isWolrd, CompressionType.None)
|
||||
{}
|
||||
public GRFFile(int crc, bool isWolrd, eCompressionType compressionLevel)
|
||||
public GRFFile(int crc, bool isWolrd, CompressionType compressionLevel)
|
||||
{
|
||||
Root = new GameRule("__ROOT__", null);
|
||||
_compressionLevel = compressionLevel;
|
||||
@@ -236,7 +236,7 @@ namespace PckStudio.Classes.FileTypes
|
||||
|
||||
public GameRule Parent { get; } = null;
|
||||
public Dictionary<string, string> Parameters { get; } = new Dictionary<string, string>();
|
||||
public List<GameRule> SubRules { get; } = new List<GameRule>();
|
||||
public List<GameRule> ChildRules { get; } = new List<GameRule>();
|
||||
|
||||
public GameRule(string name, GameRule parent)
|
||||
{
|
||||
@@ -254,7 +254,7 @@ namespace PckStudio.Classes.FileTypes
|
||||
{
|
||||
if (validate && !ValidGameRules.Contains(gameRuleName)) return null;
|
||||
var tag = new GameRule(gameRuleName, this);
|
||||
SubRules.Add(tag);
|
||||
ChildRules.Add(tag);
|
||||
return tag;
|
||||
}
|
||||
|
||||
@@ -269,7 +269,7 @@ namespace PckStudio.Classes.FileTypes
|
||||
}
|
||||
}
|
||||
|
||||
public void AddGameRules(IEnumerable<GameRule> gameRules) => Root.SubRules.AddRange(gameRules);
|
||||
public void AddGameRules(IEnumerable<GameRule> gameRules) => Root.ChildRules.AddRange(gameRules);
|
||||
|
||||
public GameRule AddRule(string gameRuleName)
|
||||
=> AddRule(gameRuleName, false);
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace PckStudio.Classes.IO.GRF
|
||||
return stream;
|
||||
}
|
||||
|
||||
GRFFile.eCompressionType compression_type = (GRFFile.eCompressionType)stream.ReadByte();
|
||||
GRFFile.CompressionType compression_type = (GRFFile.CompressionType)stream.ReadByte();
|
||||
int crc = ReadInt(stream);
|
||||
int byte1 = stream.ReadByte();
|
||||
int byte2 = stream.ReadByte();
|
||||
@@ -48,11 +48,11 @@ namespace PckStudio.Classes.IO.GRF
|
||||
int byte4 = stream.ReadByte();
|
||||
if (byte4 > 0)
|
||||
{
|
||||
compression_type = (GRFFile.eCompressionType)byte4;
|
||||
compression_type = (GRFFile.CompressionType)byte4;
|
||||
}
|
||||
_file = new GRFFile(crc, byte4 > 0, compression_type);
|
||||
|
||||
if (compression_type == GRFFile.eCompressionType.None && byte4 == 0)
|
||||
if (compression_type == GRFFile.CompressionType.None && byte4 == 0)
|
||||
return stream;
|
||||
|
||||
int buf_size = ReadInt(stream);
|
||||
@@ -68,7 +68,7 @@ namespace PckStudio.Classes.IO.GRF
|
||||
}
|
||||
var decompressed_stream = DecompressZLX(new_stream);
|
||||
new_stream.Dispose();
|
||||
if (compression_type > GRFFile.eCompressionType.Zlib)
|
||||
if (compression_type > GRFFile.CompressionType.Compressed)
|
||||
{
|
||||
byte[] data = ReadBytes(decompressed_stream, buf_size);
|
||||
byte[] decoded_data = RLE<byte>.Decode(data).ToArray();
|
||||
|
||||
@@ -15,14 +15,14 @@ namespace PckStudio.Classes.IO.GRF
|
||||
private readonly GRFFile _grfFile;
|
||||
private List<string> StringLookUpTable;
|
||||
|
||||
private GRFFile.eCompressionType _compressionType;
|
||||
private GRFFile.CompressionType _compressionType;
|
||||
|
||||
public static void Write(in Stream stream, GRFFile grfFile, GRFFile.eCompressionType compressionType)
|
||||
public static void Write(in Stream stream, GRFFile grfFile, GRFFile.CompressionType compressionType)
|
||||
{
|
||||
new GRFFileWriter(grfFile, compressionType).WriteToStream(stream);
|
||||
}
|
||||
|
||||
private GRFFileWriter(GRFFile grfFile, GRFFile.eCompressionType compressionType) : base(false)
|
||||
private GRFFileWriter(GRFFile grfFile, GRFFile.CompressionType compressionType) : base(false)
|
||||
{
|
||||
_compressionType = compressionType;
|
||||
if (grfFile.IsWorld)
|
||||
@@ -35,7 +35,7 @@ namespace PckStudio.Classes.IO.GRF
|
||||
private void PrepareLookUpTable(GRFFile.GameRule rule, List<string> LUT)
|
||||
{
|
||||
if (!LUT.Contains(rule.Name)) LUT.Add(rule.Name);
|
||||
rule.SubRules.ForEach(subRule => PrepareLookUpTable(subRule, LUT));
|
||||
rule.ChildRules.ForEach(subRule => PrepareLookUpTable(subRule, LUT));
|
||||
foreach (var param in rule.Parameters)
|
||||
if (!LUT.Contains(param.Key)) LUT.Add(param.Key);
|
||||
}
|
||||
@@ -55,15 +55,15 @@ namespace PckStudio.Classes.IO.GRF
|
||||
byte[] _buffer = sourceStream.ToArray();
|
||||
int _original_length = _buffer.Length;
|
||||
|
||||
if (_compressionType >= GRFFile.eCompressionType.ZlibRle)
|
||||
if (_compressionType >= GRFFile.CompressionType.CompressedRle)
|
||||
_buffer = CompressRle(_buffer);
|
||||
if (_compressionType >= GRFFile.eCompressionType.Zlib)
|
||||
if (_compressionType >= GRFFile.CompressionType.Compressed)
|
||||
{
|
||||
_buffer = CompressZib(_buffer);
|
||||
WriteInt(destinationStream, _original_length);
|
||||
WriteInt(destinationStream, _buffer.Length);
|
||||
}
|
||||
if (_compressionType >= GRFFile.eCompressionType.ZlibRleCrc)
|
||||
if (_compressionType >= GRFFile.CompressionType.CompressedRleCrc)
|
||||
MakeAndWriteCrc(destinationStream, _buffer);
|
||||
WriteBytes(destinationStream, _buffer);
|
||||
return;
|
||||
@@ -100,8 +100,8 @@ namespace PckStudio.Classes.IO.GRF
|
||||
private void WriteHeader(Stream stream)
|
||||
{
|
||||
WriteShort(stream, 1);
|
||||
if (_compressionType < GRFFile.eCompressionType.None ||
|
||||
_compressionType > GRFFile.eCompressionType.ZlibRleCrc)
|
||||
if (_compressionType < GRFFile.CompressionType.None ||
|
||||
_compressionType > GRFFile.CompressionType.CompressedRleCrc)
|
||||
throw new ArgumentException(nameof(_compressionType));
|
||||
stream.WriteByte((byte)_compressionType);
|
||||
WriteInt(stream, _grfFile.Crc);
|
||||
@@ -115,7 +115,7 @@ namespace PckStudio.Classes.IO.GRF
|
||||
{
|
||||
WriteTagLookUpTable(stream);
|
||||
SetString(stream, _grfFile.Root.Name);
|
||||
WriteInt(stream, _grfFile.Root.SubRules.Count);
|
||||
WriteInt(stream, _grfFile.Root.ChildRules.Count);
|
||||
WriteGameRuleHierarchy(stream, _grfFile.Root);
|
||||
}
|
||||
|
||||
@@ -127,12 +127,12 @@ namespace PckStudio.Classes.IO.GRF
|
||||
|
||||
private void WriteGameRuleHierarchy(Stream stream, GRFFile.GameRule rule)
|
||||
{
|
||||
foreach (var subRule in rule.SubRules)
|
||||
foreach (var subRule in rule.ChildRules)
|
||||
{
|
||||
SetString(stream, subRule.Name);
|
||||
WriteInt(stream, subRule.Parameters.Count);
|
||||
foreach (var param in subRule.Parameters) WriteParameter(stream, param);
|
||||
WriteInt(stream, subRule.SubRules.Count);
|
||||
WriteInt(stream, subRule.ChildRules.Count);
|
||||
WriteGameRuleHierarchy(stream, subRule);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
private void loadGRFTreeView(TreeNodeCollection root, GRFFile.GameRule parentRule)
|
||||
{
|
||||
foreach (var rule in parentRule.SubRules)
|
||||
foreach (var rule in parentRule.ChildRules)
|
||||
{
|
||||
TreeNode node = new TreeNode(rule.Name);
|
||||
node.Tag = rule;
|
||||
@@ -171,9 +171,9 @@ namespace PckStudio.Forms.Editor
|
||||
private bool removeTag(GRFFile.GameRule rule)
|
||||
{
|
||||
_ = rule.Parent ?? throw new ArgumentNullException(nameof(rule.Parent));
|
||||
foreach (var subTag in rule.SubRules.ToList())
|
||||
foreach (var subTag in rule.ChildRules.ToList())
|
||||
return removeTag(subTag);
|
||||
return rule.Parent.SubRules.Remove(rule);
|
||||
return rule.Parent.ChildRules.Remove(rule);
|
||||
}
|
||||
|
||||
private void GrfTreeView_KeyDown(object sender, KeyEventArgs e)
|
||||
@@ -193,7 +193,7 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
try
|
||||
{
|
||||
GRFFileWriter.Write(stream, _file, (GRFFile.eCompressionType)toolStripComboBox1.SelectedIndex/*GRFFile.eCompressionType.ZlibRleCrc*/);
|
||||
GRFFileWriter.Write(stream, _file, (GRFFile.CompressionType)toolStripComboBox1.SelectedIndex/*GRFFile.eCompressionType.ZlibRleCrc*/);
|
||||
_pckfile?.SetData(stream.ToArray());
|
||||
MessageBox.Show("Saved!");
|
||||
}
|
||||
|
||||
@@ -1273,7 +1273,7 @@ namespace PckStudio
|
||||
);
|
||||
using (var stream = new MemoryStream())
|
||||
{
|
||||
GRFFileWriter.Write(stream, grfFile, GRFFile.eCompressionType.ZlibRleCrc);
|
||||
GRFFileWriter.Write(stream, grfFile, GRFFile.CompressionType.None);
|
||||
gameRuleFile.SetData(stream.ToArray());
|
||||
}
|
||||
return newPck;
|
||||
|
||||
Reference in New Issue
Block a user