Updated OMI submodule

This commit is contained in:
miku-666
2023-08-28 21:36:11 +02:00
parent 16d6664442
commit 68705baa49
20 changed files with 218 additions and 218 deletions

View File

@@ -18,11 +18,11 @@ namespace PckStudio.Extensions
private static Image EmptyImage = new Bitmap(1, 1, PixelFormat.Format32bppArgb);
internal static Image GetTexture(this PckFile.FileData file)
internal static Image GetTexture(this PckFileData file)
{
if (file.Filetype != PckFile.FileData.FileType.SkinFile &&
file.Filetype != PckFile.FileData.FileType.CapeFile &&
file.Filetype != PckFile.FileData.FileType.TextureFile)
if (file.Filetype != PckFileType.SkinFile &&
file.Filetype != PckFileType.CapeFile &&
file.Filetype != PckFileType.TextureFile)
{
throw new Exception("File is not suitable to contain image data.");
}
@@ -41,7 +41,7 @@ namespace PckStudio.Extensions
}
}
internal static void SetData(this PckFile.FileData file, IDataFormatWriter writer)
internal static void SetData(this PckFileData file, IDataFormatWriter writer)
{
using (var stream = new MemoryStream())
{
@@ -50,11 +50,11 @@ namespace PckStudio.Extensions
}
}
internal static void SetData(this PckFile.FileData file, Image image, ImageFormat imageFormat)
internal static void SetData(this PckFileData file, Image image, ImageFormat imageFormat)
{
if (file.Filetype != PckFile.FileData.FileType.SkinFile &&
file.Filetype != PckFile.FileData.FileType.CapeFile &&
file.Filetype != PckFile.FileData.FileType.TextureFile)
if (file.Filetype != PckFileType.SkinFile &&
file.Filetype != PckFileType.CapeFile &&
file.Filetype != PckFileType.TextureFile)
{
throw new Exception("File is not suitable to contain image data.");
}
@@ -66,7 +66,7 @@ namespace PckStudio.Extensions
}
}
internal static bool IsMipmappedFile(this PckFile.FileData file)
internal static bool IsMipmappedFile(this PckFileData file)
{
// We only want to test the file name itself. ex: "terrainMipMapLevel2"
string name = Path.GetFileNameWithoutExtension(file.Filename);
@@ -81,7 +81,7 @@ namespace PckStudio.Extensions
return true;
}
internal static string GetNormalPath(this PckFile.FileData file)
internal static string GetNormalPath(this PckFileData file)
{
if (!file.IsMipmappedFile())
return file.Filename;

View File

@@ -11,7 +11,7 @@ namespace PckStudio.Extensions
{
internal static class PckFileExtensions
{
internal static PckFile.FileData CreateNewFileIf(this PckFile pck, bool condition, string filename, PckFile.FileData.FileType filetype, IDataFormatWriter writer)
internal static PckFileData CreateNewFileIf(this PckFile pck, bool condition, string filename, PckFileType filetype, IDataFormatWriter writer)
{
if (condition)
{
@@ -20,7 +20,7 @@ namespace PckStudio.Extensions
return null;
}
internal static PckFile.FileData CreateNewFile(this PckFile pck, string filename, PckFile.FileData.FileType filetype, IDataFormatWriter writer)
internal static PckFileData CreateNewFile(this PckFile pck, string filename, PckFileType filetype, IDataFormatWriter writer)
{
var file = pck.CreateNewFile(filename, filetype);
file.SetData(writer);

View File

@@ -236,7 +236,7 @@ namespace PckStudio.Features
var reader = new PckFileReader();
currentPCK = reader.FromFile(filepath);
if (currentPCK is null) return string.Empty;
return currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out var file)
return currentPCK.TryGetFile("0", PckFileType.InfoFile, out var file)
? file.Properties.GetPropertyValue("PACKID")
: string.Empty;
}

View File

@@ -12,7 +12,7 @@ namespace PckStudio.Popups
/// otherwise <see cref="string.Empty"/>
/// </summary>
public string Filepath => DialogResult == DialogResult.OK ? InputTextBox.Text : string.Empty;
public PckFile.FileData.FileType Filetype => (PckFile.FileData.FileType)FileTypeComboBox.SelectedIndex;
public PckFileType Filetype => (PckFileType)FileTypeComboBox.SelectedIndex;
public AddFilePrompt(string initialText) : this(initialText, -1)
{ }

View File

@@ -29,7 +29,7 @@ namespace PckStudio.Forms.Editor
{
public string defaultType = "yes";
PckAudioFile audioFile = null;
PckFile.FileData audioPCK;
PckFileData audioPCK;
bool _isLittleEndian = false;
MainForm parent = null;
@@ -63,7 +63,7 @@ namespace PckStudio.Forms.Editor
return (PckAudioFile.AudioCategory.EAudioType)Categories.IndexOf(category);
}
public AudioEditor(PckFile.FileData file, bool isLittleEndian)
public AudioEditor(PckFileData file, bool isLittleEndian)
{
InitializeComponent();

View File

@@ -20,7 +20,7 @@ namespace PckStudio.Forms.Editor
public partial class BehaviourEditor : MetroForm
{
// Behaviours File Format research by Miku and MattNL
private readonly PckFile.FileData _file;
private readonly PckFileData _file;
BehaviourFile behaviourFile;
private readonly JObject EntityJSONData = JObject.Parse(Properties.Resources.entityData);
@@ -61,7 +61,7 @@ namespace PckStudio.Forms.Editor
treeView1.EndUpdate();
}
public BehaviourEditor(PckFile.FileData file)
public BehaviourEditor(PckFileData file)
{
InitializeComponent();

View File

@@ -19,14 +19,14 @@ namespace PckStudio.Forms.Editor
ColorContainer colourfile;
ColorContainer.Color clipboard_color;
private readonly PckFile.FileData _file;
private readonly PckFileData _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)
public COLEditor(PckFileData file)
{
InitializeComponent();

View File

@@ -36,7 +36,7 @@ namespace PckStudio.Forms.Editor
{
public partial class GameRuleFileEditor : MetroFramework.Forms.MetroForm
{
private PckFile.FileData _pckfile;
private PckFileData _pckfile;
private GameRuleFile _file;
private GameRuleFile.CompressionType compressionType;
private GameRuleFile.CompressionLevel compressionLevel;
@@ -69,7 +69,7 @@ namespace PckStudio.Forms.Editor
}
}
public GameRuleFileEditor(PckFile.FileData file) : this()
public GameRuleFileEditor(PckFileData file) : this()
{
_pckfile = file;
using (var stream = new MemoryStream(file.Data))

View File

@@ -19,9 +19,9 @@ namespace PckStudio.Forms.Editor
{
DataTable tbl;
LOCFile currentLoc;
PckFile.FileData _file;
PckFileData _file;
public LOCEditor(PckFile.FileData file)
public LOCEditor(PckFileData file)
{
InitializeComponent();
_file = file;

View File

@@ -18,7 +18,7 @@ namespace PckStudio.Forms.Editor
public partial class MaterialsEditor : MetroForm
{
// Materials File Format research by PhoenixARC
private readonly PckFile.FileData _file;
private readonly PckFileData _file;
MaterialContainer materialFile;
private readonly JObject EntityJSONData = JObject.Parse(Properties.Resources.entityData);
@@ -50,7 +50,7 @@ namespace PckStudio.Forms.Editor
treeView1.EndUpdate();
}
public MaterialsEditor(PckFile.FileData file)
public MaterialsEditor(PckFileData file)
{
InitializeComponent();
_file = file;

View File

@@ -107,7 +107,7 @@ namespace PckStudio.Forms.Editor
private bool AcquireColorTable(PckFile pckFile)
{
if (pckFile.TryGetFile("colours.col", PckFile.FileData.FileType.ColourTableFile, out var colFile) &&
if (pckFile.TryGetFile("colours.col", PckFileType.ColourTableFile, out var colFile) &&
colFile.Size > 0)
{
using var ms = new MemoryStream(colFile.Data);
@@ -148,7 +148,7 @@ namespace PckStudio.Forms.Editor
selectTilePictureBox.UseBlendColor = applyColorMaskToolStripMenuItem.Checked;
bool hasAnimation =
_pckFile.Files.TryGetValue($"res/textures/{_atlasType}/{_selectedTile.Tile.InternalName}.png", PckFile.FileData.FileType.TextureFile, out var animationFile);
_pckFile.Files.TryGetValue($"res/textures/{_atlasType}/{_selectedTile.Tile.InternalName}.png", PckFileType.TextureFile, out var animationFile);
animationButton.Text = hasAnimation ? "Edit Animation" : "Create Animation";
replaceButton.Enabled = !hasAnimation;
@@ -397,10 +397,10 @@ namespace PckStudio.Forms.Editor
bool isNewFile;
if (isNewFile = !_pckFile.Files.TryGetValue(
$"res/textures/{_atlasType}/{_selectedTile.Tile.InternalName}.png",
PckFile.FileData.FileType.TextureFile, out var file
PckFileType.TextureFile, out var file
))
{
file = new PckFile.FileData($"res/textures/{_atlasType}/{_selectedTile.Tile.InternalName}.png", PckFile.FileData.FileType.TextureFile);
file = new PckFileData($"res/textures/{_atlasType}/{_selectedTile.Tile.InternalName}.png", PckFileType.TextureFile);
}
var animation = AnimationHelper.GetAnimationFromFile(file);

View File

@@ -17,13 +17,13 @@ namespace PckStudio.Popups
{
public partial class AddNewSkin : MetroFramework.Forms.MetroForm
{
public PckFile.FileData SkinFile => skin;
public PckFile.FileData CapeFile => cape;
public PckFileData SkinFile => skin;
public PckFileData CapeFile => cape;
public bool HasCape => cape is not null;
private LOCFile currentLoc;
private PckFile.FileData skin = new PckFile.FileData("dlcskinXYXYXYXY", PckFile.FileData.FileType.SkinFile);
private PckFile.FileData cape;
private PckFileData skin = new PckFileData("dlcskinXYXYXYXY", PckFileType.SkinFile);
private PckFileData cape;
private SkinANIM anim = new SkinANIM();
private Random rng = new Random();
@@ -224,7 +224,7 @@ namespace PckStudio.Popups
return;
}
capePictureBox.Image = Image.FromFile(ofd.FileName);
cape ??= new PckFile.FileData("dlccapeXYXYXYXY", PckFile.FileData.FileType.CapeFile);
cape ??= new PckFileData("dlccapeXYXYXYXY", PckFileType.CapeFile);
cape.SetData(File.ReadAllBytes(ofd.FileName));
contextMenuCape.Items[0].Text = "Replace";
capeLabel.Visible = false;

View File

@@ -46,10 +46,10 @@ namespace PckStudio.Popups
private void applyBulkProperties(FileCollection files, int index)
{
foreach (PckFile.FileData file in files)
foreach (PckFileData file in files)
{
if (file.Filetype == PckFile.FileData.FileType.TexturePackInfoFile ||
file.Filetype == PckFile.FileData.FileType.SkinDataFile)
if (file.Filetype == PckFileType.TexturePackInfoFile ||
file.Filetype == PckFileType.SkinDataFile)
{
try
{
@@ -65,15 +65,15 @@ namespace PckStudio.Popups
}
}
if (index == -1 || (Enum.IsDefined(typeof(PckFile.FileData.FileType), index) && (int)file.Filetype == index))
if (index == -1 || (Enum.IsDefined(typeof(PckFileType), index) && (int)file.Filetype == index))
{
file.Properties.Add(propertyKeyTextBox.Text, propertyValueTextBox.Text);
}
}
if (Enum.IsDefined(typeof(PckFile.FileData.FileType), index))
if (Enum.IsDefined(typeof(PckFileType), index))
{
MessageBox.Show($"Data added to {(PckFile.FileData.FileType)index} entries");
MessageBox.Show($"Data added to {(PckFileType)index} entries");
return;
}
MessageBox.Show("Data added to all entries");

View File

@@ -39,7 +39,7 @@ namespace PckStudio.Forms
left,
}
private PckFile.FileData _file;
private PckFileData _file;
private SkinANIM _ANIM;
private static Color _backgroundColor = Color.FromArgb(0xff, 0x50, 0x50, 0x50);
@@ -126,7 +126,7 @@ namespace PckStudio.Forms
}
}
public generateModel(PckFile.FileData file)
public generateModel(PckFileData file)
{
MessageBox.Show(this, "This feature is now considered deprecated and will no longer recieve updates. A better alternative is currently under development. Use at your own risk.", "Deprecated Feature", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
InitializeComponent();
@@ -149,7 +149,7 @@ namespace PckStudio.Forms
return sWhitespace.Replace(input, replacement);
}
private void LoadData(PckFile.PCKProperties properties)
private void LoadData(PckFileProperties properties)
{
comboParent.Enabled = properties.GetProperties("BOX").All(kv => {
var box = SkinBOX.FromString(kv.Value);

View File

@@ -314,13 +314,13 @@ namespace PckStudio.Forms.Utilities
switch (tn.Text)
{
case ("terrain.png"):
Terrain = Image.FromStream(new MemoryStream(((PckFile.FileData)(tn.Tag)).Data));
Terrain = Image.FromStream(new MemoryStream(((PckFileData)(tn.Tag)).Data));
break;
case ("items.png"):
Items = Image.FromStream(new MemoryStream(((PckFile.FileData)(tn.Tag)).Data));
Items = Image.FromStream(new MemoryStream(((PckFileData)(tn.Tag)).Data));
break;
case ("art"):
painting = Image.FromStream(new MemoryStream(((PckFile.FileData)(tn.Nodes[0].Tag)).Data));
painting = Image.FromStream(new MemoryStream(((PckFileData)(tn.Nodes[0].Tag)).Data));
break;
case ("mob"):
EntityNode = tn;
@@ -426,7 +426,7 @@ namespace PckStudio.Forms.Utilities
string Outpath = "assets\\minecraft\\textures\\";
foreach (PckFile.FileData mf in Pck.Files)
foreach (PckFileData mf in Pck.Files)
{
FileInfo file = new FileInfo(Environment.CurrentDirectory + "\\Temp\\" + @"\" + mf.Filename);
file.Directory.Create(); // If the directory already exists, this method does nothing.
@@ -451,7 +451,7 @@ namespace PckStudio.Forms.Utilities
string Outpath = "assets\\minecraft\\textures\\";
foreach (PckFile.FileData mf in Pck.Files)
foreach (PckFileData mf in Pck.Files)
{
FileInfo file = new FileInfo(Environment.CurrentDirectory + "\\Temp\\" + @"\" + mf.Filename);
file.Directory.Create(); // If the directory already exists, this method does nothing.
@@ -476,7 +476,7 @@ namespace PckStudio.Forms.Utilities
string Outpath = "assets\\minecraft\\textures\\";
foreach (PckFile.FileData mf in Pck.Files)
foreach (PckFileData mf in Pck.Files)
{
FileInfo file = new FileInfo(Environment.CurrentDirectory + "\\Temp\\" + @"\" + mf.Filename);
file.Directory.Create(); // If the directory already exists, this method does nothing.

View File

@@ -137,11 +137,11 @@ namespace PckStudio.Forms
//MessageBox.Show(root);//debug thingy to make sure filepath is correct
//add all skins to a list
List<PckFile.FileData> skinsList = new List<PckFile.FileData>();
List<PckFile.FileData> capesList = new List<PckFile.FileData>();
List<PckFileData> skinsList = new List<PckFileData>();
List<PckFileData> capesList = new List<PckFileData>();
var reader = new PckFileReader();
PckFile currentPCK = reader.FromFile(Program.AppData + "/PCK-Center/myPcks/" + mod + ".pck");
foreach (PckFile.FileData skin in currentPCK.Files)
foreach (PckFileData skin in currentPCK.Files)
{
if (skin.Filename.Count() == 19)
{
@@ -175,7 +175,7 @@ namespace PckStudio.Forms
writeSkins.WriteLine(" \"skins\": [");
int skinAmount = 0;
foreach (PckFile.FileData newSkin in skinsList)
foreach (PckFileData newSkin in skinsList)
{
skinAmount += 1;
string skinName = "skinName";
@@ -232,7 +232,7 @@ namespace PckStudio.Forms
{
writeSkins.WriteLine("{");
int newSkinCount = 0;
foreach (PckFile.FileData newSkin in skinsList)
foreach (PckFileData newSkin in skinsList)
{
newSkinCount += 1;
@@ -1020,7 +1020,7 @@ namespace PckStudio.Forms
}
//adds skin textures
foreach (PckFile.FileData skinTexture in skinsList)
foreach (PckFileData skinTexture in skinsList)
{
var ms = new MemoryStream(skinTexture.Data);
Bitmap saveSkin = new Bitmap(Image.FromStream(ms));
@@ -1049,7 +1049,7 @@ namespace PckStudio.Forms
}
//adds cape textures
foreach (PckFile.FileData capeTexture in capesList)
foreach (PckFileData capeTexture in capesList)
{
File.WriteAllBytes(root + "/" + capeTexture.Filename, capeTexture.Data);
}

View File

@@ -15,7 +15,7 @@ namespace PckStudio.Helper
{
internal static class AnimationHelper
{
internal static void SaveAnimationToFile(PckFile.FileData file, Animation animation)
internal static void SaveAnimationToFile(PckFileData file, Animation animation)
{
string anim = animation.BuildAnim();
file.Properties.SetProperty("ANIM", anim);
@@ -23,7 +23,7 @@ namespace PckStudio.Helper
file.SetData(texture, ImageFormat.Png);
}
internal static Animation GetAnimationFromFile(PckFile.FileData file)
internal static Animation GetAnimationFromFile(PckFileData file)
{
_ = file ?? throw new ArgumentNullException(nameof(file));
if (file.Size > 0)

View File

@@ -15,8 +15,8 @@ namespace PckStudio.Internal
private bool CheckForSkinAndCapeFiles(TreeNode node)
{
return node.TryGetTagData(out PckFile.FileData file) &&
(file.Filetype == PckFile.FileData.FileType.SkinFile || file.Filetype == PckFile.FileData.FileType.CapeFile);
return node.TryGetTagData(out PckFileData file) &&
(file.Filetype == PckFileType.SkinFile || file.Filetype == PckFileType.CapeFile);
}
public int Compare(object x, object y)
@@ -29,7 +29,7 @@ namespace PckStudio.Internal
public int Compare(TreeNode x, TreeNode y)
{
int result = InternalCompare(x, y);
Debug.WriteLine(result);
//Debug.WriteLine(result);
if (Descending && result != 0)
{
result = 2 % result + 1;
@@ -39,9 +39,9 @@ namespace PckStudio.Internal
private int InternalCompare(TreeNode first, TreeNode second)
{
if (first.IsTagOfType<PckFile.FileData>() && !second.IsTagOfType<PckFile.FileData>())
if (first.IsTagOfType<PckFileData>() && !second.IsTagOfType<PckFileData>())
return -1;
if (!first.IsTagOfType<PckFile.FileData>() && second.IsTagOfType<PckFile.FileData>())
if (!first.IsTagOfType<PckFileData>() && second.IsTagOfType<PckFileData>())
return 1;
if (CheckForSkinAndCapeFiles(first))

View File

@@ -45,24 +45,24 @@ namespace PckStudio
bool isSelectingTab = false;
readonly Dictionary<PckFile.FileData.FileType, Action<PckFile.FileData>> pckFileTypeHandler;
readonly Dictionary<PckFileType, Action<PckFileData>> pckFileTypeHandler;
public MainForm()
{
InitializeComponent();
skinToolStripMenuItem1.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.SkinFile);
capeToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.CapeFile);
textureToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.TextureFile);
languagesFileLOCToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.LocalisationFile);
gameRulesFileGRFToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.GameRulesFile);
audioPCKFileToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.AudioFile);
coloursCOLFileToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.ColourTableFile);
gameRulesHeaderGRHToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.GameRulesHeader);
skinsPCKToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.SkinDataFile);
modelsFileBINToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.ModelsFile);
behavioursFileBINToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.BehavioursFile);
entityMaterialsFileBINToolStripMenuItem.Click += (sender, e) => SetFileType(PckFile.FileData.FileType.MaterialFile);
skinToolStripMenuItem1.Click += (sender, e) => SetFileType(PckFileType.SkinFile);
capeToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.CapeFile);
textureToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.TextureFile);
languagesFileLOCToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.LocalisationFile);
gameRulesFileGRFToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.GameRulesFile);
audioPCKFileToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.AudioFile);
coloursCOLFileToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.ColourTableFile);
gameRulesHeaderGRHToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.GameRulesHeader);
skinsPCKToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.SkinDataFile);
modelsFileBINToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.ModelsFile);
behavioursFileBINToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.BehavioursFile);
entityMaterialsFileBINToolStripMenuItem.Click += (sender, e) => SetFileType(PckFileType.MaterialFile);
treeViewMain.TreeViewNodeSorter = new PckNodeSorter();
@@ -73,23 +73,23 @@ namespace PckStudio
labelVersion.Text = $"{Application.ProductName}: {Application.ProductVersion}";
ChangelogRichTextBox.Text = Resources.CHANGELOG;
pckFileTypeHandler = new Dictionary<PckFile.FileData.FileType, Action<PckFile.FileData>>(15)
pckFileTypeHandler = new Dictionary<PckFileType, Action<PckFileData>>(15)
{
[PckFile.FileData.FileType.SkinFile] = HandleSkinFile,
[PckFile.FileData.FileType.CapeFile] = null,
[PckFile.FileData.FileType.TextureFile] = HandleTextureFile,
[PckFile.FileData.FileType.UIDataFile] = _ => throw new NotSupportedException("unused in-game"),
[PckFile.FileData.FileType.InfoFile] = null,
[PckFile.FileData.FileType.TexturePackInfoFile] = null,
[PckFile.FileData.FileType.LocalisationFile] = HandleLocalisationFile,
[PckFile.FileData.FileType.GameRulesFile] = HandleGameRuleFile,
[PckFile.FileData.FileType.AudioFile] = HandleAudioFile,
[PckFile.FileData.FileType.ColourTableFile] = HandleColourFile,
[PckFile.FileData.FileType.GameRulesHeader] = HandleGameRuleFile,
[PckFile.FileData.FileType.SkinDataFile] = null,
[PckFile.FileData.FileType.ModelsFile] = HandleModelsFile,
[PckFile.FileData.FileType.BehavioursFile] = HandleBehavioursFile,
[PckFile.FileData.FileType.MaterialFile] = HandleMaterialFile,
[PckFileType.SkinFile] = HandleSkinFile,
[PckFileType.CapeFile] = null,
[PckFileType.TextureFile] = HandleTextureFile,
[PckFileType.UIDataFile] = _ => throw new NotSupportedException("unused in-game"),
[PckFileType.InfoFile] = null,
[PckFileType.TexturePackInfoFile] = null,
[PckFileType.LocalisationFile] = HandleLocalisationFile,
[PckFileType.GameRulesFile] = HandleGameRuleFile,
[PckFileType.AudioFile] = HandleAudioFile,
[PckFileType.ColourTableFile] = HandleColourFile,
[PckFileType.GameRulesHeader] = HandleGameRuleFile,
[PckFileType.SkinDataFile] = null,
[PckFileType.ModelsFile] = HandleModelsFile,
[PckFileType.BehavioursFile] = HandleBehavioursFile,
[PckFileType.MaterialFile] = HandleMaterialFile,
};
}
@@ -195,7 +195,7 @@ namespace PckStudio
private void CheckForPasswordAndRemove()
{
if (currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out PckFile.FileData file))
if (currentPCK.TryGetFile("0", PckFileType.InfoFile, out PckFileData file))
{
file.Properties.RemoveAll(t => t.Key.Equals("LOCK"));
}
@@ -306,7 +306,7 @@ namespace PckStudio
TreeNode node = BuildNodeTreeBySeperator(root, file.Filename, '/');
node.Tag = file;
if (Settings.Default.LoadSubPcks &&
(file.Filetype == PckFile.FileData.FileType.SkinDataFile || file.Filetype == PckFile.FileData.FileType.TexturePackInfoFile) &&
(file.Filetype == PckFileType.SkinDataFile || file.Filetype == PckFileType.TexturePackInfoFile) &&
file.Size > 0)
{
using (var stream = new MemoryStream(file.Data))
@@ -340,7 +340,7 @@ namespace PckStudio
treeViewMain.Nodes.Clear();
BuildPckTreeView(treeViewMain.Nodes, currentPCK);
if (isTemplateFile && currentPCK.HasFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile))
if (isTemplateFile && currentPCK.HasFile("Skins.pck", PckFileType.SkinDataFile))
{
TreeNode skinsNode = treeViewMain.Nodes.Find("Skins.pck", false).FirstOrDefault();
TreeNode folderNode = CreateNode("Skins");
@@ -359,9 +359,9 @@ namespace PckStudio
}
}
private void HandleTextureFile(PckFile.FileData file)
private void HandleTextureFile(PckFileData file)
{
_ = file.IsMipmappedFile() && currentPCK.Files.TryGetValue(file.GetNormalPath(), PckFile.FileData.FileType.TextureFile, out file);
_ = file.IsMipmappedFile() && currentPCK.Files.TryGetValue(file.GetNormalPath(), PckFileType.TextureFile, out file);
if (file.Size <= 0)
{
@@ -398,33 +398,33 @@ namespace PckStudio
}
}
private void HandleGameRuleFile(PckFile.FileData file)
private void HandleGameRuleFile(PckFileData file)
{
using GameRuleFileEditor grfEditor = new GameRuleFileEditor(file);
wasModified = grfEditor.ShowDialog(this) == DialogResult.OK;
UpdateRichPresence();
}
private void HandleAudioFile(PckFile.FileData file)
private void HandleAudioFile(PckFileData file)
{
using AudioEditor audioEditor = new AudioEditor(file, LittleEndianCheckBox.Checked);
wasModified = audioEditor.ShowDialog(this) == DialogResult.OK;
}
private void HandleLocalisationFile(PckFile.FileData file)
private void HandleLocalisationFile(PckFileData file)
{
using LOCEditor locedit = new LOCEditor(file);
wasModified = locedit.ShowDialog(this) == DialogResult.OK;
UpdateRichPresence();
}
private void HandleColourFile(PckFile.FileData file)
private void HandleColourFile(PckFileData file)
{
using COLEditor diag = new COLEditor(file);
wasModified = diag.ShowDialog(this) == DialogResult.OK;
}
public void HandleSkinFile(PckFile.FileData file)
public void HandleSkinFile(PckFileData file)
{
if (file.Properties.HasProperty("BOX"))
{
@@ -443,18 +443,18 @@ namespace PckStudio
skinViewer.ShowDialog(this);
}
public void HandleModelsFile(PckFile.FileData file)
public void HandleModelsFile(PckFileData file)
{
MessageBox.Show("Models.bin support has not been implemented. You can use the Spark Editor for the time being to edit these files.", "Not implemented yet.");
}
public void HandleBehavioursFile(PckFile.FileData file)
public void HandleBehavioursFile(PckFileData file)
{
using BehaviourEditor edit = new BehaviourEditor(file);
wasModified = edit.ShowDialog(this) == DialogResult.OK;
}
public void HandleMaterialFile(PckFile.FileData file)
public void HandleMaterialFile(PckFileData file)
{
using MaterialsEditor edit = new MaterialsEditor(file);
wasModified = edit.ShowDialog(this) == DialogResult.OK;
@@ -467,7 +467,7 @@ namespace PckStudio
buttonEdit.Visible = false;
previewPictureBox.Image = Resources.NoImageFound;
viewFileInfoToolStripMenuItem.Visible = false;
if (e.Node.TryGetTagData(out PckFile.FileData file))
if (e.Node.TryGetTagData(out PckFileData file))
{
viewFileInfoToolStripMenuItem.Visible = true;
if (file.Properties.HasProperty("BOX"))
@@ -484,9 +484,9 @@ namespace PckStudio
switch (file.Filetype)
{
case PckFile.FileData.FileType.SkinFile:
case PckFile.FileData.FileType.CapeFile:
case PckFile.FileData.FileType.TextureFile:
case PckFileType.SkinFile:
case PckFileType.CapeFile:
case PckFileType.TextureFile:
{
// TODO: Add tga support
if (Path.GetExtension(file.Filename) == ".tga") break;
@@ -514,7 +514,7 @@ namespace PckStudio
if ((file.Filename.StartsWith("res/textures/blocks/") || file.Filename.StartsWith("res/textures/items/")) &&
file.Filetype == PckFile.FileData.FileType.TextureFile
file.Filetype == PckFileType.TextureFile
&& !file.IsMipmappedFile())
{
buttonEdit.Text = "EDIT TILE ANIMATION";
@@ -523,22 +523,22 @@ namespace PckStudio
}
break;
case PckFile.FileData.FileType.LocalisationFile:
case PckFileType.LocalisationFile:
buttonEdit.Text = "EDIT LOC";
buttonEdit.Visible = true;
break;
case PckFile.FileData.FileType.AudioFile:
case PckFileType.AudioFile:
buttonEdit.Text = "EDIT MUSIC CUES";
buttonEdit.Visible = true;
break;
case PckFile.FileData.FileType.ColourTableFile when file.Filename == "colours.col":
case PckFileType.ColourTableFile when file.Filename == "colours.col":
buttonEdit.Text = "EDIT COLORS";
buttonEdit.Visible = true;
break;
case PckFile.FileData.FileType.BehavioursFile when file.Filename == "behaviours.bin":
case PckFileType.BehavioursFile when file.Filename == "behaviours.bin":
buttonEdit.Text = "EDIT BEHAVIOURS";
buttonEdit.Visible = true;
break;
@@ -554,7 +554,7 @@ namespace PckStudio
var node = treeViewMain.SelectedNode;
if (node == null)
return;
if (node.TryGetTagData(out PckFile.FileData file))
if (node.TryGetTagData(out PckFileData file))
{
using SaveFileDialog exFile = new SaveFileDialog();
exFile.FileName = Path.GetFileName(file.Filename);
@@ -586,7 +586,7 @@ namespace PckStudio
{
GetAllChildNodes(node.Nodes).ForEach(fileNode =>
{
if (fileNode.TryGetTagData(out PckFile.FileData file))
if (fileNode.TryGetTagData(out PckFileData file))
{
Directory.CreateDirectory($"{extractPath}/{Path.GetDirectoryName(file.Filename)}");
File.WriteAllBytes($"{extractPath}/{file.Filename}", file.Data);
@@ -643,7 +643,7 @@ namespace PckStudio
private void replaceToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.Tag is PckFile.FileData file)
if (treeViewMain.SelectedNode.Tag is PckFileData file)
{
using var ofd = new OpenFileDialog();
// Suddenly, and randomly, this started throwing an exception because it wasn't formatted correctly? So now it's formatted correctly and now displays the file type name in the dialog.
@@ -652,7 +652,7 @@ namespace PckStudio
switch (file.Filetype)
{
case PckFile.FileData.FileType.TextureFile:
case PckFileType.TextureFile:
if (Path.GetExtension(file.Filename) == ".png") extra_extensions = ";*.tga";
else if (Path.GetExtension(file.Filename) == ".tga") extra_extensions = ";*.png";
break;
@@ -680,12 +680,12 @@ namespace PckStudio
/// </summary>
/// <param name="file">File to remove</param>
/// <returns>True if the remove should be canceled, otherwise False</returns>
private bool BeforeFileRemove(PckFile.FileData file)
private bool BeforeFileRemove(PckFileData file)
{
string itemPath = "res/textures/items/";
// warn the user about deleting compass.png and clock.png
if (file.Filetype == PckFile.FileData.FileType.TextureFile &&
if (file.Filetype == PckFileType.TextureFile &&
(file.Filename == itemPath + "compass.png" || file.Filename == itemPath + "clock.png"))
{
if (MessageBox.Show("Are you sure want to delete this file? If \"compass.png\" or \"clock.png\" are missing, your game will crash upon loading this pack.", "Warning",
@@ -694,7 +694,7 @@ namespace PckStudio
}
// remove loc key if its a skin/cape
if (file.Filetype == PckFile.FileData.FileType.SkinFile || file.Filetype == PckFile.FileData.FileType.CapeFile)
if (file.Filetype == PckFileType.SkinFile || file.Filetype == PckFileType.CapeFile)
{
if (TryGetLocFile(out LOCFile locFile))
{
@@ -714,7 +714,7 @@ namespace PckStudio
string path = node.FullPath;
if (node.TryGetTagData(out PckFile.FileData file))
if (node.TryGetTagData(out PckFileData file))
{
if (!BeforeFileRemove(file) && currentPCK.Files.Remove(file))
{
@@ -743,7 +743,7 @@ namespace PckStudio
if (diag.ShowDialog(this) == DialogResult.OK)
{
if (node.Tag is PckFile.FileData file)
if (node.Tag is PckFileData file)
{
file.Filename = diag.NewText;
}
@@ -752,7 +752,7 @@ namespace PckStudio
node.Text = diag.NewText;
foreach (var childNode in GetAllChildNodes(node.Nodes))
{
if (childNode.Tag is PckFile.FileData folderFile)
if (childNode.Tag is PckFileData folderFile)
{
folderFile.Filename = childNode.FullPath;
}
@@ -775,14 +775,14 @@ namespace PckStudio
if (add.ShowDialog() == DialogResult.OK)
{
if (currentPCK.HasFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile)) // Prioritize Skins.pck
if (currentPCK.HasFile("Skins.pck", PckFileType.SkinDataFile)) // Prioritize Skins.pck
{
TreeNode subPCK = treeViewMain.Nodes.Find("Skins.pck", false).FirstOrDefault();
if (subPCK.Nodes.ContainsKey("Skins")) add.SkinFile.Filename = add.SkinFile.Filename.Insert(0, "Skins/");
add.SkinFile.Filename = add.SkinFile.Filename.Insert(0, "Skins.pck/");
TreeNode newNode = new TreeNode(Path.GetFileName(add.SkinFile.Filename));
newNode.Tag = add.SkinFile;
SetNodeIcon(newNode, PckFile.FileData.FileType.SkinFile);
SetNodeIcon(newNode, PckFileType.SkinFile);
subPCK.Nodes.Add(newNode);
RebuildSubPCK(newNode.FullPath);
}
@@ -793,14 +793,14 @@ namespace PckStudio
}
if (add.HasCape)
{
if (currentPCK.HasFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile)) // Prioritize Skins.pck
if (currentPCK.HasFile("Skins.pck", PckFileType.SkinDataFile)) // Prioritize Skins.pck
{
TreeNode subPCK = treeViewMain.Nodes.Find("Skins.pck", false).FirstOrDefault();
if (subPCK.Nodes.ContainsKey("Skins")) add.CapeFile.Filename = add.CapeFile.Filename.Insert(0, "Skins/");
add.CapeFile.Filename = add.CapeFile.Filename.Insert(0, "Skins.pck/");
TreeNode newNode = new TreeNode(Path.GetFileName(add.CapeFile.Filename));
newNode.Tag = add.CapeFile;
SetNodeIcon(newNode, PckFile.FileData.FileType.SkinFile);
SetNodeIcon(newNode, PckFileType.SkinFile);
subPCK.Nodes.Add(newNode);
RebuildSubPCK(newNode.FullPath);
}
@@ -817,20 +817,20 @@ namespace PckStudio
}
}
private static PckFile.FileData CreateNewAudioFile(bool isLittle)
private static PckFileData CreateNewAudioFile(bool isLittle)
{
PckAudioFile audioPck = new PckAudioFile();
audioPck.AddCategory(PckAudioFile.AudioCategory.EAudioType.Overworld);
audioPck.AddCategory(PckAudioFile.AudioCategory.EAudioType.Nether);
audioPck.AddCategory(PckAudioFile.AudioCategory.EAudioType.End);
PckFile.FileData pckFileData = new PckFile.FileData("audio.pck", PckFile.FileData.FileType.AudioFile);
PckFileData pckFileData = new PckFileData("audio.pck", PckFileType.AudioFile);
pckFileData .SetData(new PckAudioFileWriter(audioPck, isLittle ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian));
return pckFileData;
}
private void audiopckToolStripMenuItem_Click(object sender, EventArgs e)
{
if (currentPCK.Files.Contains("audio.pck", PckFile.FileData.FileType.AudioFile))
if (currentPCK.Files.Contains("audio.pck", PckFileType.AudioFile))
{
// the chance of this happening is really really slim but just in case
MessageBox.Show("There is already a file in this PCK named \"audio.pck\"!", "Can't create audio.pck");
@@ -858,9 +858,9 @@ namespace PckStudio
if (diag.ShowDialog(this) != DialogResult.OK)
return;
var file = new PckFile.FileData(
var file = new PckFileData(
$"res/textures/{Animation.GetCategoryName(diag.Category)}/{diag.SelectedTile}.png",
PckFile.FileData.FileType.TextureFile);
PckFileType.TextureFile);
var animation = AnimationHelper.GetAnimationFromFile(file);
@@ -912,9 +912,9 @@ namespace PckStudio
foreach (var node in s)
{
TreeNode parent = treeViewMain.Nodes.Find(node, true)[0];
if (parent.TryGetTagData(out PckFile.FileData f) &&
(f.Filetype is PckFile.FileData.FileType.TexturePackInfoFile ||
f.Filetype is PckFile.FileData.FileType.SkinDataFile))
if (parent.TryGetTagData(out PckFileData f) &&
(f.Filetype is PckFileType.TexturePackInfoFile ||
f.Filetype is PckFileType.SkinDataFile))
return parent;
}
@@ -931,17 +931,17 @@ namespace PckStudio
Debug.WriteLine(parent.Name);
if (parent == null) return;
PckFile.FileData parent_file = parent.Tag as PckFile.FileData;
if (parent_file.Filetype is PckFile.FileData.FileType.TexturePackInfoFile || parent_file.Filetype is PckFile.FileData.FileType.SkinDataFile)
PckFileData parent_file = parent.Tag as PckFileData;
if (parent_file.Filetype is PckFileType.TexturePackInfoFile || parent_file.Filetype is PckFileType.SkinDataFile)
{
Debug.WriteLine("Rebuilding " + parent_file.Filename);
PckFile newPCKFile = new PckFile(3, parent_file.Filetype is PckFile.FileData.FileType.SkinDataFile);
PckFile newPCKFile = new PckFile(3, parent_file.Filetype is PckFileType.SkinDataFile);
foreach (TreeNode node in GetAllChildNodes(parent.Nodes))
{
if (node.Tag is PckFile.FileData node_file)
if (node.Tag is PckFileData node_file)
{
PckFile.FileData new_file = newPCKFile.CreateNewFile(node_file.Filename.Replace(parent_file.Filename + "/", String.Empty), node_file.Filetype);
PckFileData new_file = newPCKFile.CreateNewFile(node_file.Filename.Replace(parent_file.Filename + "/", String.Empty), node_file.Filetype);
foreach (var prop in node_file.Properties) new_file.Properties.Add(prop);
new_file.SetData(node_file.Data);
}
@@ -956,7 +956,7 @@ namespace PckStudio
private void treeViewMain_DoubleClick(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.TryGetTagData(out PckFile.FileData file))
if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file))
{
if (file.Size <= 0)
{
@@ -979,14 +979,14 @@ namespace PckStudio
private void treeMeta_DoubleClick(object sender, EventArgs e)
{
if (treeMeta.SelectedNode is TreeNode subnode && subnode.Tag is KeyValuePair<string, string> property &&
treeViewMain.SelectedNode is TreeNode node && node.Tag is PckFile.FileData file)
treeViewMain.SelectedNode is TreeNode node && node.Tag is PckFileData file)
{
int i = file.Properties.IndexOf(property);
if (i != -1)
{
switch (property.Key)
{
case "ANIM" when file.Filetype == PckFile.FileData.FileType.SkinFile:
case "ANIM" when file.Filetype == PckFileType.SkinFile:
try
{
using ANIMEditor diag = new ANIMEditor(property.Value);
@@ -1007,7 +1007,7 @@ namespace PckStudio
}
break;
case "BOX" when file.Filetype == PckFile.FileData.FileType.SkinFile:
case "BOX" when file.Filetype == PckFileType.SkinFile:
try
{
using BoxEditor diag = new BoxEditor(property.Value, IsSubPCKNode(treeViewMain.SelectedNode.FullPath));
@@ -1059,11 +1059,11 @@ namespace PckStudio
if (diag.ShowDialog(this) == DialogResult.OK)
{
if (node.Tag is PckFile.FileData file)
if (node.Tag is PckFileData file)
{
TreeNode newNode = new TreeNode();
newNode.Text = Path.GetFileName(diag.NewText);
var newFile = new PckFile.FileData(diag.NewText, file.Filetype);
var newFile = new PckFileData(diag.NewText, file.Filetype);
file.Properties.ForEach(newFile.Properties.Add);
newFile.SetData(file.Data);
newFile.Filename = diag.NewText;
@@ -1095,7 +1095,7 @@ namespace PckStudio
private void deleteEntryToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeMeta.SelectedNode is TreeNode t && t.Tag is KeyValuePair<string, string> property &&
treeViewMain.SelectedNode is TreeNode main && main.Tag is PckFile.FileData file &&
treeViewMain.SelectedNode is TreeNode main && main.Tag is PckFileData file &&
file.Properties.Remove(property))
{
treeMeta.SelectedNode.Remove();
@@ -1108,7 +1108,7 @@ namespace PckStudio
{
treeMeta.Nodes.Clear();
if (treeViewMain.SelectedNode is TreeNode node &&
node.Tag is PckFile.FileData file)
node.Tag is PckFileData file)
{
foreach (var property in file.Properties)
{
@@ -1120,7 +1120,7 @@ namespace PckStudio
private void addEntryToolStripMenuItem_Click_1(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode is TreeNode t &&
t.Tag is PckFile.FileData file)
t.Tag is PckFileData file)
{
using AddPropertyPrompt addProperty = new AddPropertyPrompt();
if (addProperty.ShowDialog() == DialogResult.OK)
@@ -1168,15 +1168,15 @@ namespace PckStudio
{
var pack = new PckFile(3);
var zeroFile = pack.CreateNewFile("0", PckFile.FileData.FileType.InfoFile);
var zeroFile = pack.CreateNewFile("0", PckFileType.InfoFile);
zeroFile.Properties.Add("PACKID", packId.ToString());
zeroFile.Properties.Add("PACKVERSION", packVersion.ToString());
var locFile = new LOCFile();
locFile.InitializeDefault(packName);
pack.CreateNewFile("localisation.loc", PckFile.FileData.FileType.LocalisationFile, new LOCFileWriter(locFile, 2));
pack.CreateNewFile("localisation.loc", PckFileType.LocalisationFile, new LOCFileWriter(locFile, 2));
pack.CreateNewFileIf(createSkinsPCK, "Skins.pck", PckFile.FileData.FileType.SkinDataFile, new PckFileWriter(new PckFile(3, true),
pack.CreateNewFileIf(createSkinsPCK, "Skins.pck", PckFileType.SkinDataFile, new PckFileWriter(new PckFile(3, true),
LittleEndianCheckBox.Checked
? OMI.Endianness.LittleEndian
: OMI.Endianness.BigEndian));
@@ -1190,13 +1190,13 @@ namespace PckStudio
PckFile infoPCK = new PckFile(3);
var icon = infoPCK.CreateNewFile("icon.png", PckFile.FileData.FileType.TextureFile);
var icon = infoPCK.CreateNewFile("icon.png", PckFileType.TextureFile);
icon.SetData(Resources.TexturePackIcon, ImageFormat.Png);
var comparison = infoPCK.CreateNewFile("comparison.png", PckFile.FileData.FileType.TextureFile);
var comparison = infoPCK.CreateNewFile("comparison.png", PckFileType.TextureFile);
comparison.SetData(Resources.Comparison, ImageFormat.Png);
var texturepackInfo = pack.CreateNewFile($"{res}/{res}Info.pck", PckFile.FileData.FileType.TexturePackInfoFile);
var texturepackInfo = pack.CreateNewFile($"{res}/{res}Info.pck", PckFileType.TexturePackInfoFile);
texturepackInfo.Properties.Add("PACKID", "0");
texturepackInfo.Properties.Add("DATAPATH", $"{res}Data.pck");
@@ -1209,7 +1209,7 @@ namespace PckStudio
private PckFile InitializeMashUpPack(int packId, int packVersion, string packName, string res)
{
var pack = InitializeTexturePack(packId, packVersion, packName, res, true);
var gameRuleFile = pack.CreateNewFile("GameRules.grf", PckFile.FileData.FileType.GameRulesFile);
var gameRuleFile = pack.CreateNewFile("GameRules.grf", PckFileType.GameRulesFile);
var grfFile = new GameRuleFile();
grfFile.AddRule("MapOptions",
new KeyValuePair<string, string>("seed", "0"),
@@ -1299,12 +1299,12 @@ namespace PckStudio
switch (e.KeyCode)
{
case Keys.Delete:
deleteFileToolStripMenuItem_Click(sender, e);
deleteFileToolStripMenuItem_Click(sender, e);
break;
case Keys.F2:
renameFileToolStripMenuItem_Click(sender, e);
break;
}
}
}
private void treeViewMain_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
@@ -1345,7 +1345,7 @@ namespace PckStudio
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
foreach (PckFile.FileData file in pckfile.Files)
foreach (PckFileData file in pckfile.Files)
{
string filepath = $"{sfd.SelectedPath}/{file.Filename}";
FileInfo fileinfo = new FileInfo(filepath);
@@ -1409,19 +1409,19 @@ namespace PckStudio
return;
}
// creates variable to indicate wether current pck skin structure is mashup or regular skin
bool hasSkinsPck = currentPCK.HasFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile);
bool hasSkinsPck = currentPCK.HasFile("Skins.pck", PckFileType.SkinDataFile);
foreach (var fullfilename in Directory.GetFiles(contents.SelectedPath, "*.png"))
{
string filename = Path.GetFileNameWithoutExtension(fullfilename);
// sets file type based on wether its a cape or skin
PckFile.FileData.FileType pckfiletype = filename.StartsWith("dlccape", StringComparison.OrdinalIgnoreCase)
? PckFile.FileData.FileType.CapeFile
: PckFile.FileData.FileType.SkinFile;
PckFileType pckfiletype = filename.StartsWith("dlccape", StringComparison.OrdinalIgnoreCase)
? PckFileType.CapeFile
: PckFileType.SkinFile;
string pckfilepath = (hasSkinsPck ? "Skins/" : string.Empty) + filename + ".png";
PckFile.FileData newFile = new PckFile.FileData(pckfilepath, pckfiletype);
PckFileData newFile = new PckFileData(pckfilepath, pckfiletype);
byte[] filedata = File.ReadAllBytes(fullfilename);
newFile.SetData(filedata);
@@ -1455,7 +1455,7 @@ namespace PckStudio
}
if (hasSkinsPck)
{
var skinsfile = currentPCK.GetFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile);
var skinsfile = currentPCK.GetFile("Skins.pck", PckFileType.SkinDataFile);
using (var ms = new MemoryStream(skinsfile.Data))
{
var reader = new PckFileReader(LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian);
@@ -1478,8 +1478,8 @@ namespace PckStudio
private bool TryGetLocFile(out LOCFile locFile)
{
if (!currentPCK.TryGetFile("localisation.loc", PckFile.FileData.FileType.LocalisationFile, out PckFile.FileData locdata) &&
!currentPCK.TryGetFile("languages.loc", PckFile.FileData.FileType.LocalisationFile, out locdata))
if (!currentPCK.TryGetFile("localisation.loc", PckFileType.LocalisationFile, out PckFileData locdata) &&
!currentPCK.TryGetFile("languages.loc", PckFileType.LocalisationFile, out locdata))
{
locFile = null;
return false;
@@ -1504,8 +1504,8 @@ namespace PckStudio
private bool TrySetLocFile(in LOCFile locFile)
{
if (!currentPCK.TryGetFile("localisation.loc", PckFile.FileData.FileType.LocalisationFile, out PckFile.FileData locdata) &&
!currentPCK.TryGetFile("languages.loc", PckFile.FileData.FileType.LocalisationFile, out locdata))
if (!currentPCK.TryGetFile("localisation.loc", PckFileType.LocalisationFile, out PckFileData locdata) &&
!currentPCK.TryGetFile("languages.loc", PckFileType.LocalisationFile, out locdata))
{
return false;
}
@@ -1535,7 +1535,7 @@ namespace PckStudio
{
string skinNameImport = Path.GetFileName(contents.FileName);
byte[] data = File.ReadAllBytes(contents.FileName);
PckFile.FileData mfNew = currentPCK.CreateNewFile(skinNameImport, PckFile.FileData.FileType.SkinFile);
PckFileData mfNew = currentPCK.CreateNewFile(skinNameImport, PckFileType.SkinFile);
mfNew.SetData(data);
string propertyFile = Path.GetFileNameWithoutExtension(contents.FileName) + ".txt";
if (File.Exists(propertyFile))
@@ -1593,9 +1593,9 @@ namespace PckStudio
TreeNodeCollection nodeCollection = treeViewMain.Nodes;
if (treeViewMain.SelectedNode is TreeNode node)
{
if (node.Tag is PckFile.FileData fd &&
(fd.Filetype != PckFile.FileData.FileType.TexturePackInfoFile &&
fd.Filetype != PckFile.FileData.FileType.SkinDataFile))
if (node.Tag is PckFileData fd &&
(fd.Filetype != PckFileType.TexturePackInfoFile &&
fd.Filetype != PckFileType.SkinDataFile))
{
if (node.Parent is TreeNode parentNode)
{
@@ -1749,63 +1749,63 @@ namespace PckStudio
SaveTemplate();
}
private void SetNodeIcon(TreeNode node, PckFile.FileData.FileType type)
private void SetNodeIcon(TreeNode node, PckFileType type)
{
switch (type)
{
case PckFile.FileData.FileType.AudioFile:
case PckFileType.AudioFile:
node.ImageIndex = 1;
node.SelectedImageIndex = 1;
break;
case PckFile.FileData.FileType.LocalisationFile:
case PckFileType.LocalisationFile:
node.ImageIndex = 3;
node.SelectedImageIndex = 3;
break;
case PckFile.FileData.FileType.TexturePackInfoFile:
case PckFileType.TexturePackInfoFile:
node.ImageIndex = 4;
node.SelectedImageIndex = 4;
break;
case PckFile.FileData.FileType.ColourTableFile:
case PckFileType.ColourTableFile:
node.ImageIndex = 6;
node.SelectedImageIndex = 6;
break;
case PckFile.FileData.FileType.ModelsFile:
case PckFileType.ModelsFile:
node.ImageIndex = 8;
node.SelectedImageIndex = 8;
break;
case PckFile.FileData.FileType.SkinDataFile:
case PckFileType.SkinDataFile:
node.ImageIndex = 7;
node.SelectedImageIndex = 7;
break;
case PckFile.FileData.FileType.GameRulesFile:
case PckFileType.GameRulesFile:
node.ImageIndex = 9;
node.SelectedImageIndex = 9;
break;
case PckFile.FileData.FileType.GameRulesHeader:
case PckFileType.GameRulesHeader:
node.ImageIndex = 10;
node.SelectedImageIndex = 10;
break;
case PckFile.FileData.FileType.InfoFile:
case PckFileType.InfoFile:
node.ImageIndex = 11;
node.SelectedImageIndex = 11;
break;
case PckFile.FileData.FileType.SkinFile:
case PckFileType.SkinFile:
node.ImageIndex = 12;
node.SelectedImageIndex = 12;
break;
case PckFile.FileData.FileType.CapeFile:
case PckFileType.CapeFile:
node.ImageIndex = 13;
node.SelectedImageIndex = 13;
break;
case PckFile.FileData.FileType.TextureFile:
case PckFileType.TextureFile:
node.ImageIndex = 14;
node.SelectedImageIndex = 14;
break;
case PckFile.FileData.FileType.BehavioursFile:
case PckFileType.BehavioursFile:
node.ImageIndex = 15;
node.SelectedImageIndex = 15;
break;
case PckFile.FileData.FileType.MaterialFile:
case PckFileType.MaterialFile:
node.ImageIndex = 16;
node.SelectedImageIndex = 16;
break;
@@ -1816,9 +1816,9 @@ namespace PckStudio
}
}
private void SetFileType(PckFile.FileData.FileType type)
private void SetFileType(PckFileType type)
{
if (treeViewMain.SelectedNode.TryGetTagData(out PckFile.FileData file))
if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file))
{
Debug.WriteLine($"Setting {file.Filetype} to {type}");
file.Filetype = type;
@@ -1837,7 +1837,7 @@ namespace PckStudio
renamePrompt.LabelText = "Path";
if (renamePrompt.ShowDialog() == DialogResult.OK && !string.IsNullOrEmpty(renamePrompt.NewText))
{
var file = currentPCK.CreateNewFile(renamePrompt.NewText, PckFile.FileData.FileType.TextureFile);
var file = currentPCK.CreateNewFile(renamePrompt.NewText, PckFileType.TextureFile);
file.SetData(File.ReadAllBytes(fileDialog.FileName));
BuildMainTreeView();
wasModified = true;
@@ -1847,7 +1847,7 @@ namespace PckStudio
private void viewFileInfoToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.Tag is PckFile.FileData file)
if (treeViewMain.SelectedNode.Tag is PckFileData file)
{
MessageBox.Show(
"File path: " + file.Filename +
@@ -1860,7 +1860,7 @@ namespace PckStudio
private void generateMipMapTextureToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.Tag is PckFile.FileData file && file.Filetype == PckFile.FileData.FileType.TextureFile)
if (treeViewMain.SelectedNode.Tag is PckFileData file && file.Filetype == PckFileType.TextureFile)
{
string textureDirectory = Path.GetDirectoryName(file.Filename);
string textureName = Path.GetFileNameWithoutExtension(file.Filename);
@@ -1886,9 +1886,9 @@ namespace PckStudio
{
string mippedPath = $"{textureDirectory}/{textureName}MipMapLevel{i}{textureExtension}";
Debug.WriteLine(mippedPath);
if (currentPCK.HasFile(mippedPath, PckFile.FileData.FileType.TextureFile))
currentPCK.Files.Remove(currentPCK.GetFile(mippedPath, PckFile.FileData.FileType.TextureFile));
PckFile.FileData MipMappedFile = new PckFile.FileData(mippedPath, PckFile.FileData.FileType.TextureFile);
if (currentPCK.HasFile(mippedPath, PckFileType.TextureFile))
currentPCK.Files.Remove(currentPCK.GetFile(mippedPath, PckFileType.TextureFile));
PckFileData MipMappedFile = new PckFileData(mippedPath, PckFileType.TextureFile);
Image originalTexture = Image.FromStream(new MemoryStream(file.Data));
@@ -1916,12 +1916,12 @@ namespace PckStudio
private void colourscolToolStripMenuItem_Click(object sender, EventArgs e)
{
if (currentPCK.TryGetFile("colours.col", PckFile.FileData.FileType.ColourTableFile, out _))
if (currentPCK.TryGetFile("colours.col", PckFileType.ColourTableFile, out _))
{
MessageBox.Show("A color table file already exists in this PCK and a new one cannot be created.", "Operation aborted");
return;
}
var newColorFile = currentPCK.CreateNewFile("colours.col", PckFile.FileData.FileType.ColourTableFile);
var newColorFile = currentPCK.CreateNewFile("colours.col", PckFileType.ColourTableFile);
newColorFile.SetData(Resources.tu69colours);
BuildMainTreeView();
}
@@ -1933,8 +1933,8 @@ namespace PckStudio
private void as3DSTextureFileToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.TryGetTagData(out PckFile.FileData file) &&
file.Filetype == PckFile.FileData.FileType.SkinFile)
if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file) &&
file.Filetype == PckFileType.SkinFile)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "3DS Texture|*.3dst";
@@ -1953,7 +1953,7 @@ namespace PckStudio
private void addMultipleEntriesToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.TryGetTagData(out PckFile.FileData file))
if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file))
{
using (var input = new MultiTextPrompt())
{
@@ -1976,8 +1976,8 @@ namespace PckStudio
private void correctSkinDecimalsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.TryGetTagData(out PckFile.FileData file) &&
file.Filetype == PckFile.FileData.FileType.SkinFile)
if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file) &&
file.Filetype == PckFileType.SkinFile)
{
foreach(var p in file.Properties.FindAll(s => s.Key == "BOX" || s.Key == "OFFSET"))
{
@@ -2009,7 +2009,7 @@ namespace PckStudio
switch (prompt)
{
case DialogResult.Yes:
if (!currentPCK.TryGetFile("0", PckFile.FileData.FileType.InfoFile, out PckFile.FileData file) ||
if (!currentPCK.TryGetFile("0", PckFileType.InfoFile, out PckFileData file) ||
string.IsNullOrEmpty(file.Properties.GetPropertyValue("PACKID")))
{
MessageBox.Show(this,
@@ -2076,13 +2076,13 @@ namespace PckStudio
private void CreateSkinsPCKToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (currentPCK.TryGetFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile, out _))
if (currentPCK.TryGetFile("Skins.pck", PckFileType.SkinDataFile, out _))
{
MessageBox.Show("A Skins.pck file already exists in this PCK and a new one cannot be created.", "Operation aborted");
return;
}
currentPCK.CreateNewFile("Skins.pck", PckFile.FileData.FileType.SkinDataFile, new PckFileWriter(new PckFile(3, true),
currentPCK.CreateNewFile("Skins.pck", PckFileType.SkinDataFile, new PckFileWriter(new PckFile(3, true),
LittleEndianCheckBox.Checked ? OMI.Endianness.LittleEndian : OMI.Endianness.BigEndian));
BuildMainTreeView();
@@ -2096,7 +2096,7 @@ namespace PckStudio
private void editAllEntriesToolStripMenuItem_Click(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.TryGetTagData(out PckFile.FileData file))
if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file))
{
var props = file.Properties.Select(p => p.Key + " " + p.Value);
using (var input = new MultiTextPrompt(props.ToArray()))
@@ -2131,7 +2131,7 @@ namespace PckStudio
using AddFilePrompt diag = new AddFilePrompt("res/" + Path.GetFileName(ofd.FileName));
if (diag.ShowDialog(this) == DialogResult.OK)
{
PckFile.FileData file = currentPCK.CreateNewFile(
PckFileData file = currentPCK.CreateNewFile(
diag.Filepath,
diag.Filetype,
() => File.ReadAllBytes(ofd.FileName));
@@ -2148,24 +2148,24 @@ namespace PckStudio
private void behavioursbinToolStripMenuItem_Click(object sender, EventArgs e)
{
if (currentPCK.TryGetFile("behaviours.bin", PckFile.FileData.FileType.BehavioursFile, out _))
if (currentPCK.TryGetFile("behaviours.bin", PckFileType.BehavioursFile, out _))
{
MessageBox.Show("A behaviours file already exists in this PCK and a new one cannot be created.", "Operation aborted");
return;
}
currentPCK.CreateNewFile("behaviours.bin", PckFile.FileData.FileType.BehavioursFile, BehaviourResources.BehaviourFileInitializer);
currentPCK.CreateNewFile("behaviours.bin", PckFileType.BehavioursFile, BehaviourResources.BehaviourFileInitializer);
BuildMainTreeView();
}
private void entityMaterialsbinToolStripMenuItem_Click(object sender, EventArgs e)
{
if (currentPCK.TryGetFile("entityMaterials.bin", PckFile.FileData.FileType.MaterialFile, out _))
if (currentPCK.TryGetFile("entityMaterials.bin", PckFileType.MaterialFile, out _))
{
MessageBox.Show("A behaviours file already exists in this PCK and a new one cannot be created.", "Operation aborted");
return;
}
currentPCK.CreateNewFile("entityMaterials.bin", PckFile.FileData.FileType.MaterialFile, MaterialResources.MaterialsFileInitializer);
currentPCK.CreateNewFile("entityMaterials.bin", PckFileType.MaterialFile, MaterialResources.MaterialsFileInitializer);
BuildMainTreeView();
}
@@ -2232,7 +2232,7 @@ namespace PckStudio
private void addBOXEntryToolStripMenuItem1_Click(object sender, EventArgs e)
{
if(treeViewMain.SelectedNode is TreeNode t && t.Tag is PckFile.FileData file)
if(treeViewMain.SelectedNode is TreeNode t && t.Tag is PckFileData file)
{
using BoxEditor diag = new BoxEditor(SkinBOX.Empty, IsSubPCKNode(treeViewMain.SelectedNode.FullPath));
if (diag.ShowDialog(this) == DialogResult.OK)
@@ -2248,7 +2248,7 @@ namespace PckStudio
private void addANIMEntryToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (treeViewMain.SelectedNode.TryGetTagData(out PckFile.FileData file))
if (treeViewMain.SelectedNode.TryGetTagData(out PckFileData file))
{
using ANIMEditor diag = new ANIMEditor(SkinANIM.Empty);
if (diag.ShowDialog(this) == DialogResult.OK)

2
Vendor/OMI-Lib vendored