mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-24 12:45:33 +00:00
Updated OMI submodule
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{ }
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
2
Vendor/OMI-Lib
vendored
Submodule Vendor/OMI-Lib updated: dae99efef9...c4ea1bdd85
Reference in New Issue
Block a user