mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-29 10:36:07 +00:00
Merge branch 'main' of https://github.com/PhoenixARC/-PCK-Studio into Animation-Editor-refactor
This commit is contained in:
Binary file not shown.
@@ -1,57 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>3.10</ProductVersion>
|
||||
<ProjectGuid>7ed78fd8-f3e6-475b-8979-fd5220545430</ProjectGuid>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputName>PckStudio.Installer</OutputName>
|
||||
<OutputType>Bundle</OutputType>
|
||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<OutputPath>bin\$(Configuration)\</OutputPath>
|
||||
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
||||
<DefineConstants>Debug</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<OutputPath>bin\$(Configuration)\</OutputPath>
|
||||
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Product.wxs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WixExtension Include="WixUtilExtension">
|
||||
<HintPath>$(WixExtDir)\WixUtilExtension.dll</HintPath>
|
||||
<Name>WixUtilExtension</Name>
|
||||
</WixExtension>
|
||||
<WixExtension Include="WixUIExtension">
|
||||
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
|
||||
<Name>WixUIExtension</Name>
|
||||
</WixExtension>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Bitmaps\Banner.png" />
|
||||
<Content Include="Bitmaps\Dialog.png" />
|
||||
<Content Include="License.rtf" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Bitmaps" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
|
||||
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
|
||||
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
|
||||
</Target>
|
||||
<!--
|
||||
To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Wix.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
@@ -20,6 +20,7 @@ namespace PckStudio.Classes.IO
|
||||
{
|
||||
_pckfile = file;
|
||||
LUT = _pckfile.GatherPropertiesList();
|
||||
if (!file.HasFile("localisation.loc", 6) && !LUT.Contains("XMLVERSION")) LUT.Insert(0, "XMLVERSION");
|
||||
}
|
||||
|
||||
private void WriteToStream(Stream stream)
|
||||
|
||||
@@ -87,9 +87,9 @@
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.ComboBox comboBox1;
|
||||
private System.Windows.Forms.Button cancelButton;
|
||||
public System.Windows.Forms.Label label2;
|
||||
public System.Windows.Forms.Button button1;
|
||||
}
|
||||
}
|
||||
108
PCK-Studio/Forms/Editor/AudioEditor.Designer.cs
generated
108
PCK-Studio/Forms/Editor/AudioEditor.Designer.cs
generated
@@ -41,17 +41,26 @@ namespace PckStudio.Forms.Editor
|
||||
this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.creditsEditorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.deleteUnusedBINKAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.howToAddSongsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.whatIsEachCategoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.howToEditCreditsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.optimizeDataFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.bINKACompressionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.treeView2 = new System.Windows.Forms.TreeView();
|
||||
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.addEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.removeEntryMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.verifyFileLocationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.playOverworldInCreative = new MetroFramework.Controls.MetroCheckBox();
|
||||
this.deleteUnusedBINKAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.compressionUpDown = new System.Windows.Forms.NumericUpDown();
|
||||
this.metroLabel1 = new MetroFramework.Controls.MetroLabel();
|
||||
this.openDataFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.contextMenuStrip1.SuspendLayout();
|
||||
this.menuStrip.SuspendLayout();
|
||||
this.contextMenuStrip2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.compressionUpDown)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// treeView1
|
||||
@@ -128,7 +137,8 @@ namespace PckStudio.Forms.Editor
|
||||
//
|
||||
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.creditsEditorToolStripMenuItem,
|
||||
this.deleteUnusedBINKAsToolStripMenuItem});
|
||||
this.deleteUnusedBINKAsToolStripMenuItem,
|
||||
this.openDataFolderToolStripMenuItem});
|
||||
this.toolsToolStripMenuItem.ForeColor = System.Drawing.Color.White;
|
||||
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
||||
resources.ApplyResources(this.toolsToolStripMenuItem, "toolsToolStripMenuItem");
|
||||
@@ -140,12 +150,54 @@ namespace PckStudio.Forms.Editor
|
||||
resources.ApplyResources(this.creditsEditorToolStripMenuItem, "creditsEditorToolStripMenuItem");
|
||||
this.creditsEditorToolStripMenuItem.Click += new System.EventHandler(this.creditsEditorToolStripMenuItem_Click);
|
||||
//
|
||||
// deleteUnusedBINKAsToolStripMenuItem
|
||||
//
|
||||
this.deleteUnusedBINKAsToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Del;
|
||||
this.deleteUnusedBINKAsToolStripMenuItem.Name = "deleteUnusedBINKAsToolStripMenuItem";
|
||||
resources.ApplyResources(this.deleteUnusedBINKAsToolStripMenuItem, "deleteUnusedBINKAsToolStripMenuItem");
|
||||
this.deleteUnusedBINKAsToolStripMenuItem.Click += new System.EventHandler(this.deleteUnusedBINKAsToolStripMenuItem_Click);
|
||||
//
|
||||
// helpToolStripMenuItem
|
||||
//
|
||||
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.howToAddSongsToolStripMenuItem,
|
||||
this.whatIsEachCategoryToolStripMenuItem,
|
||||
this.howToEditCreditsToolStripMenuItem,
|
||||
this.optimizeDataFolderToolStripMenuItem,
|
||||
this.bINKACompressionToolStripMenuItem});
|
||||
this.helpToolStripMenuItem.ForeColor = System.Drawing.Color.White;
|
||||
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
|
||||
resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
|
||||
this.helpToolStripMenuItem.Click += new System.EventHandler(this.helpToolStripMenuItem_Click);
|
||||
//
|
||||
// howToAddSongsToolStripMenuItem
|
||||
//
|
||||
this.howToAddSongsToolStripMenuItem.Name = "howToAddSongsToolStripMenuItem";
|
||||
resources.ApplyResources(this.howToAddSongsToolStripMenuItem, "howToAddSongsToolStripMenuItem");
|
||||
this.howToAddSongsToolStripMenuItem.Click += new System.EventHandler(this.howToAddSongsToolStripMenuItem_Click);
|
||||
//
|
||||
// whatIsEachCategoryToolStripMenuItem
|
||||
//
|
||||
this.whatIsEachCategoryToolStripMenuItem.Name = "whatIsEachCategoryToolStripMenuItem";
|
||||
resources.ApplyResources(this.whatIsEachCategoryToolStripMenuItem, "whatIsEachCategoryToolStripMenuItem");
|
||||
this.whatIsEachCategoryToolStripMenuItem.Click += new System.EventHandler(this.whatIsEachCategoryToolStripMenuItem_Click);
|
||||
//
|
||||
// howToEditCreditsToolStripMenuItem
|
||||
//
|
||||
this.howToEditCreditsToolStripMenuItem.Name = "howToEditCreditsToolStripMenuItem";
|
||||
resources.ApplyResources(this.howToEditCreditsToolStripMenuItem, "howToEditCreditsToolStripMenuItem");
|
||||
this.howToEditCreditsToolStripMenuItem.Click += new System.EventHandler(this.howToEditCreditsToolStripMenuItem_Click);
|
||||
//
|
||||
// optimizeDataFolderToolStripMenuItem
|
||||
//
|
||||
this.optimizeDataFolderToolStripMenuItem.Name = "optimizeDataFolderToolStripMenuItem";
|
||||
resources.ApplyResources(this.optimizeDataFolderToolStripMenuItem, "optimizeDataFolderToolStripMenuItem");
|
||||
this.optimizeDataFolderToolStripMenuItem.Click += new System.EventHandler(this.optimizeDataFolderToolStripMenuItem_Click);
|
||||
//
|
||||
// bINKACompressionToolStripMenuItem
|
||||
//
|
||||
this.bINKACompressionToolStripMenuItem.Name = "bINKACompressionToolStripMenuItem";
|
||||
resources.ApplyResources(this.bINKACompressionToolStripMenuItem, "bINKACompressionToolStripMenuItem");
|
||||
this.bINKACompressionToolStripMenuItem.Click += new System.EventHandler(this.BINKACompressionToolStripMenuItem_Click);
|
||||
//
|
||||
// treeView2
|
||||
//
|
||||
@@ -198,17 +250,47 @@ namespace PckStudio.Forms.Editor
|
||||
this.playOverworldInCreative.UseCustomForeColor = true;
|
||||
this.playOverworldInCreative.UseSelectable = true;
|
||||
//
|
||||
// deleteUnusedBINKAsToolStripMenuItem
|
||||
// compressionUpDown
|
||||
//
|
||||
this.deleteUnusedBINKAsToolStripMenuItem.Image = global::PckStudio.Properties.Resources.Del;
|
||||
this.deleteUnusedBINKAsToolStripMenuItem.Name = "deleteUnusedBINKAsToolStripMenuItem";
|
||||
resources.ApplyResources(this.deleteUnusedBINKAsToolStripMenuItem, "deleteUnusedBINKAsToolStripMenuItem");
|
||||
this.deleteUnusedBINKAsToolStripMenuItem.Click += new System.EventHandler(this.deleteUnusedBINKAsToolStripMenuItem_Click);
|
||||
this.compressionUpDown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.compressionUpDown.ForeColor = System.Drawing.SystemColors.Window;
|
||||
resources.ApplyResources(this.compressionUpDown, "compressionUpDown");
|
||||
this.compressionUpDown.Maximum = new decimal(new int[] {
|
||||
9,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.compressionUpDown.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.compressionUpDown.Name = "compressionUpDown";
|
||||
this.compressionUpDown.Value = new decimal(new int[] {
|
||||
4,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// metroLabel1
|
||||
//
|
||||
resources.ApplyResources(this.metroLabel1, "metroLabel1");
|
||||
this.metroLabel1.Name = "metroLabel1";
|
||||
this.metroLabel1.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
//
|
||||
// openDataFolderToolStripMenuItem
|
||||
//
|
||||
this.openDataFolderToolStripMenuItem.Image = global::PckStudio.Properties.Resources.ZZFolder;
|
||||
this.openDataFolderToolStripMenuItem.Name = "openDataFolderToolStripMenuItem";
|
||||
resources.ApplyResources(this.openDataFolderToolStripMenuItem, "openDataFolderToolStripMenuItem");
|
||||
this.openDataFolderToolStripMenuItem.Click += new System.EventHandler(this.openDataFolderToolStripMenuItem_Click);
|
||||
//
|
||||
// AudioEditor
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.metroLabel1);
|
||||
this.Controls.Add(this.compressionUpDown);
|
||||
this.Controls.Add(this.playOverworldInCreative);
|
||||
this.Controls.Add(this.treeView1);
|
||||
this.Controls.Add(this.treeView2);
|
||||
@@ -218,10 +300,12 @@ namespace PckStudio.Forms.Editor
|
||||
this.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.AudioEditor_FormClosing);
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AudioEditor_FormClosed);
|
||||
this.Shown += new System.EventHandler(this.AudioEditor_Shown);
|
||||
this.contextMenuStrip1.ResumeLayout(false);
|
||||
this.menuStrip.ResumeLayout(false);
|
||||
this.menuStrip.PerformLayout();
|
||||
this.contextMenuStrip2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.compressionUpDown)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -247,5 +331,13 @@ namespace PckStudio.Forms.Editor
|
||||
private System.Windows.Forms.ToolStripMenuItem verifyFileLocationToolStripMenuItem;
|
||||
private MetroFramework.Controls.MetroCheckBox playOverworldInCreative;
|
||||
private System.Windows.Forms.ToolStripMenuItem deleteUnusedBINKAsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem howToAddSongsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem whatIsEachCategoryToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem howToEditCreditsToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem optimizeDataFolderToolStripMenuItem;
|
||||
private System.Windows.Forms.NumericUpDown compressionUpDown;
|
||||
private System.Windows.Forms.ToolStripMenuItem bINKACompressionToolStripMenuItem;
|
||||
private MetroFramework.Controls.MetroLabel metroLabel1;
|
||||
private System.Windows.Forms.ToolStripMenuItem openDataFolderToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
@@ -21,12 +21,12 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
public bool saved = false;
|
||||
public string defaultType = "yes";
|
||||
private string DataDirectory = "";
|
||||
string tempDir = "";
|
||||
PCKAudioFile audioFile = null;
|
||||
PCKFile.FileData audioPCK;
|
||||
LOCFile loc;
|
||||
bool _isLittleEndian = false;
|
||||
MainForm parent = null;
|
||||
|
||||
public static readonly List<string> Categories = new List<string>
|
||||
{
|
||||
@@ -119,7 +119,6 @@ namespace PckStudio.Forms.Editor
|
||||
treeNode.Tag = category;
|
||||
treeView1.Nodes.Add(treeNode);
|
||||
}
|
||||
|
||||
playOverworldInCreative.Enabled = audioFile.HasCategory(PCKAudioFile.AudioCategory.EAudioType.Creative);
|
||||
}
|
||||
|
||||
@@ -139,13 +138,13 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
private void handleUtilFiles(bool extractFiles = true)
|
||||
{
|
||||
//string asiPath = Path.Combine(tempDir, "binkawin.asi");
|
||||
//string mssPath = Path.Combine(tempDir, "mss32.dll");
|
||||
string asiPath = Path.Combine(tempDir, "binkawin.asi");
|
||||
string mssPath = Path.Combine(tempDir, "mss32.dll");
|
||||
string encoderPath = Path.Combine(tempDir, "binka_encode.exe");
|
||||
|
||||
// Deletes files so that System.IO exceptions are avoided
|
||||
//if (File.Exists(asiPath)) File.Delete(asiPath);
|
||||
//if (File.Exists(mssPath)) File.Delete(mssPath);
|
||||
if (File.Exists(asiPath)) File.Delete(asiPath);
|
||||
if (File.Exists(mssPath)) File.Delete(mssPath);
|
||||
if (File.Exists(encoderPath)) File.Delete(encoderPath);
|
||||
if (Directory.Exists(tempDir)) Directory.Delete(tempDir);
|
||||
|
||||
@@ -153,8 +152,8 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
Directory.CreateDirectory(tempDir);
|
||||
ExtractResource("binka_encode", encoderPath);
|
||||
//ExtractResource("mss32", mssPath);
|
||||
//ExtractResource("binkawin", asiPath);
|
||||
ExtractResource("mss32", mssPath);
|
||||
ExtractResource("binkawin", asiPath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,19 +165,14 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
private void verifyFileLocationToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (treeView1.SelectedNode.Tag == null || treeView2.SelectedNode.Tag == null) return;
|
||||
if (treeView1.SelectedNode == null || treeView2.SelectedNode == null) return;
|
||||
var entry = treeView2.SelectedNode;
|
||||
|
||||
if (string.IsNullOrEmpty(DataDirectory)) getDataDirectory();
|
||||
string FileName = Path.Combine(DataDirectory, entry.Text + ".binka");
|
||||
Console.WriteLine(FileName);
|
||||
if (!Directory.Exists(DataDirectory))
|
||||
{
|
||||
MessageBox.Show("There is not a \"Data\" folder present in the pack folder", "Folder missing");
|
||||
return;
|
||||
}
|
||||
if (!parent.CreateDataFolder()) return;
|
||||
string FileName = Path.Combine(parent.GetDataPath(), entry.Text + ".binka");
|
||||
|
||||
if (File.Exists(FileName)) MessageBox.Show("\"" + entry.Text + ".binka\" exists in the \"Data\" folder", "File found");
|
||||
else MessageBox.Show("\"" + entry.Text + ".binka\" does not exist in the \"Data\" folder", "File missing");
|
||||
else MessageBox.Show("\"" + entry.Text + ".binka\" does not exist in the \"Data\" folder. The game will crash when attempting to load this track.", "File missing");
|
||||
}
|
||||
|
||||
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
@@ -206,6 +200,7 @@ namespace PckStudio.Forms.Editor
|
||||
TreeNode treeNode = new TreeNode(GetCategoryFromId(category.audioType), (int)category.audioType, (int)category.audioType);
|
||||
treeNode.Tag = category;
|
||||
treeView1.Nodes.Add(treeNode);
|
||||
saved = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -215,26 +210,20 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
private void addEntryMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (treeView1.SelectedNode is TreeNode t && t.Tag is PCKAudioFile.AudioCategory &&
|
||||
// Gets the MainForm so we can access the Save Location
|
||||
Owner.Owner is MainForm parent)
|
||||
if (treeView1.SelectedNode is TreeNode t && t.Tag is PCKAudioFile.AudioCategory)
|
||||
{
|
||||
if (string.IsNullOrEmpty(DataDirectory)) getDataDirectory();
|
||||
if (!Directory.Exists(DataDirectory))
|
||||
{
|
||||
MessageBox.Show("There is not a \"Data\" folder present in the pack folder", "Folder missing");
|
||||
return;
|
||||
}
|
||||
if (!parent.CreateDataFolder()) return;
|
||||
|
||||
OpenFileDialog ofn = new OpenFileDialog();
|
||||
ofn.Multiselect = true;
|
||||
ofn.Filter = "BINKA files (*.binka)|*.binka|WAV files (*.wav)|*.wav";
|
||||
ofn.Filter = "Supported audio files (*.binka,*.wav)|*.binka;*.wav";
|
||||
ofn.Title = "Please choose WAV or BINKA files to add to your pack";
|
||||
ofn.ShowDialog();
|
||||
ofn.Dispose();
|
||||
if (string.IsNullOrEmpty(ofn.FileName)) return; // Return if name is null or if the user cancels
|
||||
|
||||
ProcessEntries(ofn.FileNames);
|
||||
saved = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,6 +234,7 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
treeView2.Nodes.Clear();
|
||||
main.Remove();
|
||||
saved = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,6 +256,7 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
category.SongNames.Remove(treeView2.SelectedNode.Text);
|
||||
treeView2.SelectedNode.Remove();
|
||||
saved = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,7 +266,7 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
if (Path.GetExtension(file) == ".binka" || Path.GetExtension(file) == ".wav")
|
||||
{
|
||||
string new_loc = Path.Combine(DataDirectory, Path.GetFileNameWithoutExtension(file) + ".binka");
|
||||
string new_loc = Path.Combine(parent.GetDataPath(), Path.GetFileNameWithoutExtension(file) + ".binka");
|
||||
bool duplicate_song = false; // To handle if a file already in the pack is dropped back in
|
||||
if (File.Exists(new_loc))
|
||||
{
|
||||
@@ -304,7 +295,7 @@ namespace PckStudio.Forms.Editor
|
||||
var process = Process.Start(new ProcessStartInfo
|
||||
{
|
||||
FileName = Path.Combine(tempDir, "binka_encode.exe"),
|
||||
Arguments = $"\"{file}\" \"{new_loc}\"",
|
||||
Arguments = $"\"{file}\" \"{new_loc}\" -s -b" + compressionUpDown.Value.ToString(),
|
||||
UseShellExecute = true,
|
||||
CreateNoWindow = true,
|
||||
WindowStyle = ProcessWindowStyle.Hidden
|
||||
@@ -322,8 +313,8 @@ namespace PckStudio.Forms.Editor
|
||||
else if (!duplicate_song)
|
||||
{
|
||||
Console.WriteLine(Path.GetFileName(file));
|
||||
File.Delete(Path.Combine(DataDirectory, Path.GetFileName(file)));
|
||||
File.Copy(file, Path.Combine(DataDirectory, Path.GetFileName(file)));
|
||||
File.Delete(Path.Combine(parent.GetDataPath(), Path.GetFileName(file)));
|
||||
File.Copy(file, Path.Combine(parent.GetDataPath(), Path.GetFileName(file)));
|
||||
}
|
||||
|
||||
var songName = Path.GetFileNameWithoutExtension(file);
|
||||
@@ -340,14 +331,9 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
//MessageBox.Show((Owner.Owner as MainForm).saveLocation);
|
||||
// Gets the MainForm so we can access the Save Location
|
||||
if (treeView1.SelectedNode != null && Owner.Owner is MainForm parent)
|
||||
if (treeView1.SelectedNode != null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(DataDirectory)) getDataDirectory();
|
||||
if (!Directory.Exists(DataDirectory))
|
||||
{
|
||||
MessageBox.Show("There is not a \"Data\" folder present in the pack folder", "Folder missing");
|
||||
return;
|
||||
}
|
||||
if (!parent.CreateDataFolder()) return;
|
||||
|
||||
ProcessEntries((string[])e.Data.GetData(DataFormats.FileDrop, false));
|
||||
}
|
||||
@@ -436,9 +422,9 @@ namespace PckStudio.Forms.Editor
|
||||
totalSongList.Add(song);
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(DataDirectory)) getDataDirectory();
|
||||
if (!parent.CreateDataFolder()) return;
|
||||
int totalDeleted = 0;
|
||||
foreach (string song in Directory.GetFiles(DataDirectory, "*.binka"))
|
||||
foreach (string song in Directory.GetFiles(parent.GetDataPath(), "*.binka"))
|
||||
{
|
||||
if (!totalSongList.Contains(Path.GetFileNameWithoutExtension(song)))
|
||||
{
|
||||
@@ -458,11 +444,52 @@ namespace PckStudio.Forms.Editor
|
||||
MessageBox.Show("Successfully deleted " + totalDeleted + " files", "Done");
|
||||
}
|
||||
|
||||
// For when the Data Directory variable is null, this sets the variable in the form
|
||||
private void getDataDirectory()
|
||||
private void howToAddSongsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MainForm parent = Owner.Owner as MainForm; // Gets the MainForm so we can access the Save Location
|
||||
DataDirectory = Path.Combine(Path.GetDirectoryName(parent.saveLocation), "Data");
|
||||
MessageBox.Show("Right click the right window and press \"Add Entry\" or drag and drop a valid WAV file into the editor's right window. You can also drop other BINKA files, either from the main game or using a tool like BinkMan. The editor will automatically put the song in the Data folder for you.", "How to add a song");
|
||||
}
|
||||
|
||||
private void whatIsEachCategoryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("Categories are pretty self explanatory. The game controls when each category should play.\n" +
|
||||
"\nGAMEPLAY - Plays in the specified dimensions.\n" +
|
||||
"-Overworld: Plays in survival mode and in Creative if no songs are set\n" +
|
||||
"-Nether: Nothing special to note.\n" +
|
||||
"-End: Prioritizes the final track when the dragon is alive.\n" +
|
||||
"-Creative: Does not play survival tracks unless they're included.\n" +
|
||||
"-Menu: Plays on the title screen and only once when the pack is loading. Perfect for intro songs.\n" +
|
||||
"\nMINI GAMES - Will only play if you change the map grf files to load your pack and set the ThemeID to 0 for Vanilla maps.\n" +
|
||||
"-Battle: Plays in the Battle Mini Game.\n" +
|
||||
"-Tumble: Plays in the Tumble Mini Game.\n" +
|
||||
"-Glide: Plays in the Glide Mini Game.\n",
|
||||
"What is each category?");
|
||||
}
|
||||
|
||||
private void howToEditCreditsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("Click Tools -> Credits Editor. This will allow you to edit all the credits easily in the pack easily. Only supports English credits at the moment. ","How to edit credits?");
|
||||
}
|
||||
|
||||
private void optimizeDataFolderToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("Click Tools -> Delete Unused BINKA files. This will clean your folder of any unused songs.", "How to optimize the Data folder");
|
||||
}
|
||||
|
||||
private void BINKACompressionToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("The numerical up/down control is responsible for the level of compression used when converting WAV files. The default is 4, which was commonly used by 4J for the game's files.","BINKA Compression Level");
|
||||
}
|
||||
|
||||
private void openDataFolderToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!parent.CreateDataFolder()) return;
|
||||
Process.Start("explorer.exe", parent.GetDataPath());
|
||||
}
|
||||
|
||||
private void AudioEditor_Shown(object sender, EventArgs e)
|
||||
{
|
||||
if (Owner.Owner is MainForm) parent = Owner.Owner as MainForm;
|
||||
else Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADk
|
||||
MAAAAk1TRnQBSQFMAgEBCQEAAUgBAAFIAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
MAAAAk1TRnQBSQFMAgEBCQEAAVgBAAFYAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||
AwABMAMAAQEBAAEgBgABMBIAAzgB/wM1Af8DNQH/AzMB/wMwAf8DLwH/Ay0B/wMtAf8DJAH/AzsB/wM4
|
||||
Af8DNQH/Ay0B/wMnAf8DNgH/AzIB/8AAAzgB/wN/Af8DeQH/A3kB/wN5Af8DcQH/A3EB/wN5Af8DeQH/
|
||||
A3EB/wNxAf8DcQH/A3kB/wN5Af8DfwH/AzIB/8AAAzIB/wN2Af8DsAH/A7AB/wOvAf8DrwH/A68B/wOo
|
||||
@@ -367,7 +367,7 @@
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="treeView1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>128, 230</value>
|
||||
<value>128, 208</value>
|
||||
</data>
|
||||
<data name="treeView1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
@@ -382,7 +382,7 @@
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>treeView1.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="addCategoryStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
@@ -410,36 +410,6 @@
|
||||
<data name="menuStrip.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 20</value>
|
||||
</data>
|
||||
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>File</value>
|
||||
</data>
|
||||
<data name="creditsEditorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 22</value>
|
||||
</data>
|
||||
<data name="creditsEditorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Credits Editor</value>
|
||||
</data>
|
||||
<data name="deleteUnusedBINKAsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 22</value>
|
||||
</data>
|
||||
<data name="deleteUnusedBINKAsToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Delete Unused BINKAs</value>
|
||||
</data>
|
||||
<data name="toolsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 20</value>
|
||||
</data>
|
||||
<data name="toolsToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Tools</value>
|
||||
</data>
|
||||
<data name="helpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 20</value>
|
||||
</data>
|
||||
<data name="helpToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Help</value>
|
||||
</data>
|
||||
<data name="menuStrip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>20, 60</value>
|
||||
</data>
|
||||
@@ -462,7 +432,13 @@
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>menuStrip.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 20</value>
|
||||
</data>
|
||||
<data name="fileToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>File</value>
|
||||
</data>
|
||||
<data name="saveToolStripMenuItem1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
@@ -480,6 +456,60 @@
|
||||
<data name="saveToolStripMenuItem1.Text" xml:space="preserve">
|
||||
<value>Save</value>
|
||||
</data>
|
||||
<data name="toolsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 20</value>
|
||||
</data>
|
||||
<data name="toolsToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Tools</value>
|
||||
</data>
|
||||
<data name="creditsEditorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 22</value>
|
||||
</data>
|
||||
<data name="creditsEditorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Credits Editor</value>
|
||||
</data>
|
||||
<data name="deleteUnusedBINKAsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 22</value>
|
||||
</data>
|
||||
<data name="deleteUnusedBINKAsToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Delete Unused BINKAs</value>
|
||||
</data>
|
||||
<data name="helpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 20</value>
|
||||
</data>
|
||||
<data name="helpToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Help</value>
|
||||
</data>
|
||||
<data name="howToAddSongsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>245, 22</value>
|
||||
</data>
|
||||
<data name="howToAddSongsToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>How to add songs</value>
|
||||
</data>
|
||||
<data name="whatIsEachCategoryToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>245, 22</value>
|
||||
</data>
|
||||
<data name="whatIsEachCategoryToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>What is each category?</value>
|
||||
</data>
|
||||
<data name="howToEditCreditsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>245, 22</value>
|
||||
</data>
|
||||
<data name="howToEditCreditsToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>How to edit credits</value>
|
||||
</data>
|
||||
<data name="optimizeDataFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>245, 22</value>
|
||||
</data>
|
||||
<data name="optimizeDataFolderToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>How to Optimize the Data folder</value>
|
||||
</data>
|
||||
<data name="bINKACompressionToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>245, 22</value>
|
||||
</data>
|
||||
<data name="bINKACompressionToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>BINKA Compression</value>
|
||||
</data>
|
||||
<data name="treeView2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
@@ -499,7 +529,7 @@
|
||||
<value>151, 84</value>
|
||||
</data>
|
||||
<data name="treeView2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>279, 230</value>
|
||||
<value>279, 208</value>
|
||||
</data>
|
||||
<data name="treeView2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
@@ -514,7 +544,7 @@
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>treeView2.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="addEntryMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
@@ -567,8 +597,62 @@
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>playOverworldInCreative.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="compressionUpDown.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>310, 298</value>
|
||||
</data>
|
||||
<data name="compressionUpDown.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 20</value>
|
||||
</data>
|
||||
<data name="compressionUpDown.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name=">>compressionUpDown.Name" xml:space="preserve">
|
||||
<value>compressionUpDown</value>
|
||||
</data>
|
||||
<data name=">>compressionUpDown.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>compressionUpDown.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>compressionUpDown.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="metroLabel1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="metroLabel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>93, 299</value>
|
||||
</data>
|
||||
<data name="metroLabel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>211, 19</value>
|
||||
</data>
|
||||
<data name="metroLabel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="metroLabel1.Text" xml:space="preserve">
|
||||
<value>WAV to BINKA Compression Level:</value>
|
||||
</data>
|
||||
<data name=">>metroLabel1.Name" xml:space="preserve">
|
||||
<value>metroLabel1</value>
|
||||
</data>
|
||||
<data name=">>metroLabel1.Type" xml:space="preserve">
|
||||
<value>MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a</value>
|
||||
</data>
|
||||
<data name=">>metroLabel1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>metroLabel1.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="openDataFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 22</value>
|
||||
</data>
|
||||
<data name="openDataFolderToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Open Data Folder</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
@@ -629,12 +713,48 @@
|
||||
<data name=">>creditsEditorToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>deleteUnusedBINKAsToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>deleteUnusedBINKAsToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>deleteUnusedBINKAsToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>helpToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>helpToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>helpToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>howToAddSongsToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>howToAddSongsToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>howToAddSongsToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>whatIsEachCategoryToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>whatIsEachCategoryToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>whatIsEachCategoryToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>howToEditCreditsToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>howToEditCreditsToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>howToEditCreditsToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>optimizeDataFolderToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>optimizeDataFolderToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>optimizeDataFolderToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>bINKACompressionToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>bINKACompressionToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>bINKACompressionToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>addEntryMenuItem.Name" xml:space="preserve">
|
||||
<value>addEntryMenuItem</value>
|
||||
</data>
|
||||
@@ -653,10 +773,10 @@
|
||||
<data name=">>verifyFileLocationToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>deleteUnusedBINKAsToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>deleteUnusedBINKAsToolStripMenuItem</value>
|
||||
<data name=">>openDataFolderToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>openDataFolderToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name=">>deleteUnusedBINKAsToolStripMenuItem.Type" xml:space="preserve">
|
||||
<data name=">>openDataFolderToolStripMenuItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
|
||||
1314
PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs
generated
1314
PCK-Studio/Forms/Utilities/Skins/ANIMEditor.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@@ -15,11 +15,20 @@ namespace PckStudio.Forms.Utilities.Skins
|
||||
public partial class ANIMEditor : MetroFramework.Forms.MetroForm
|
||||
{
|
||||
public bool saved = false;
|
||||
string originalANIM = "";
|
||||
public string outANIM => animValue.Text;
|
||||
SkinANIM anim = new SkinANIM();
|
||||
|
||||
void processCheckBoxes(bool set_all = false, bool value = false)
|
||||
{
|
||||
#region processes every single checkbox with the correct ANIM flags
|
||||
helmetCheckBox.Enabled = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.HEAD_DISABLED);
|
||||
chestplateCheckBox.Enabled = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.BODY_DISABLED);
|
||||
leftArmorCheckBox.Enabled = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.LEFT_ARM_DISABLED);
|
||||
rightArmorCheckBox.Enabled = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.RIGHT_ARM_DISABLED);
|
||||
leftLeggingCheckBox.Enabled = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.LEFT_LEG_DISABLED);
|
||||
rightLeggingCheckBox.Enabled = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.RIGHT_LEG_DISABLED);
|
||||
|
||||
bobbingCheckBox.Checked = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.HEAD_BOBBING_DISABLED);
|
||||
bodyCheckBox.Checked = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.BODY_DISABLED);
|
||||
bodyOCheckBox.Checked = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.BODY_OVERLAY_DISABLED);
|
||||
@@ -59,6 +68,7 @@ namespace PckStudio.Forms.Utilities.Skins
|
||||
syncLegsCheckBox.Checked = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.SYNCED_LEGS);
|
||||
unknownCheckBox.Checked = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.unk_BIT4);
|
||||
zombieCheckBox.Checked = set_all ? value : anim.GetANIMFlag(eANIM_EFFECTS.ZOMBIE_ARMS);
|
||||
#endregion
|
||||
}
|
||||
|
||||
public ANIMEditor(string ANIM)
|
||||
@@ -69,8 +79,10 @@ namespace PckStudio.Forms.Utilities.Skins
|
||||
DialogResult = DialogResult.Abort;
|
||||
Close();
|
||||
}
|
||||
originalANIM = ANIM;
|
||||
anim = new SkinANIM(ANIM);
|
||||
|
||||
|
||||
#region Event definitions, since the designer can't parse lambda experessions
|
||||
bobbingCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.HEAD_BOBBING_DISABLED); };
|
||||
bodyCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.BODY_DISABLED); };
|
||||
bodyOCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.BODY_OVERLAY_DISABLED); };
|
||||
@@ -110,13 +122,7 @@ namespace PckStudio.Forms.Utilities.Skins
|
||||
syncLegsCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.SYNCED_LEGS); };
|
||||
unknownCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.unk_BIT4); };
|
||||
zombieCheckBox.CheckedChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.ZOMBIE_ARMS); };
|
||||
|
||||
helmetCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.FORCE_HEAD_ARMOR); };
|
||||
chestplateCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.FORCE_BODY_ARMOR); };
|
||||
rightArmorCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.FORCE_RIGHT_ARM_ARMOR); };
|
||||
leftArmorCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.FORCE_LEFT_ARM_ARMOR); };
|
||||
rightLeggingCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.FORCE_RIGHT_LEG_ARMOR); };
|
||||
leftLeggingCheckBox.EnabledChanged += (sender, EventArgs) => { flagChanged(sender, EventArgs, eANIM_EFFECTS.FORCE_LEFT_LEG_ARMOR); };
|
||||
#endregion
|
||||
|
||||
processCheckBoxes();
|
||||
}
|
||||
@@ -124,6 +130,7 @@ namespace PckStudio.Forms.Utilities.Skins
|
||||
private void closeButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.OK;
|
||||
|
||||
saved = true;
|
||||
Close();
|
||||
}
|
||||
@@ -194,6 +201,7 @@ namespace PckStudio.Forms.Utilities.Skins
|
||||
|
||||
Image skin = isSlim ? Properties.Resources.slim_template : Properties.Resources.classic_template;
|
||||
|
||||
#region Image processing code for generating the skin templates based on the input ANIM value
|
||||
Bitmap nb = new Bitmap(64, (!isSlim && !isClassic64) ? 32 : 64);
|
||||
using (Graphics g = Graphics.FromImage(nb))
|
||||
{
|
||||
@@ -225,8 +233,68 @@ namespace PckStudio.Forms.Utilities.Skins
|
||||
nb.MakeTransparent(Color.Magenta);
|
||||
skin = nb;
|
||||
}
|
||||
#endregion
|
||||
|
||||
skin.Save(saveFileDialog.FileName);
|
||||
}
|
||||
|
||||
private void resetButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
anim = new SkinANIM(originalANIM);
|
||||
processCheckBoxes();
|
||||
}
|
||||
|
||||
static ValueTuple<string, string>[] templates =
|
||||
{
|
||||
new ValueTuple<string, string>("Steve (64x32)", "0"),
|
||||
new ValueTuple<string, string>("Steve (64x64)", "40000"),
|
||||
new ValueTuple<string, string>("Alex (64x64)", "80000"),
|
||||
new ValueTuple<string, string>("Zombie Skins", "2"),
|
||||
new ValueTuple<string, string>("Cetacean Skins", "60"),
|
||||
new ValueTuple<string, string>("Ski Skins", "44"),
|
||||
new ValueTuple<string, string>("Ghost Skins", "6"),
|
||||
new ValueTuple<string, string>("Medusa (Greek Myth.)", "20"),
|
||||
new ValueTuple<string, string>("Librarian (Halo)", "4"),
|
||||
new ValueTuple<string, string>("Grim Reaper (Halloween)", "5"),
|
||||
};
|
||||
|
||||
private void templateButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Recycling the AddCategory popup to handle the ANIM templates (:
|
||||
// diag.Category will be the ANIM codes
|
||||
var diag = new Forms.Additional_Popups.Audio.addCategory(templates.Select(template => template.Item1).ToArray());
|
||||
diag.label2.Text = "Presets";
|
||||
diag.button1.Text = "Load";
|
||||
|
||||
if (diag.ShowDialog() != DialogResult.OK) return;
|
||||
|
||||
var templateANIM = new SkinANIM("0x" + templates.ToList().Find(template => template.Item1 == diag.Category).Item2);
|
||||
DialogResult prompt = MessageBox.Show(this, "Would you like to add this preset's effects to your current ANIM? Otherwise all of your effects will be cleared. Either choice can be undone by pressing \"Restore ANIM\".", "", MessageBoxButtons.YesNo);
|
||||
if (prompt == DialogResult.No) anim = templateANIM;
|
||||
else
|
||||
{
|
||||
foreach (eANIM_EFFECTS flag in (eANIM_EFFECTS[])Enum.GetValues(typeof(eANIM_EFFECTS)))
|
||||
{
|
||||
if (templateANIM.GetANIMFlag(flag)) anim.SetANIMFlag(flag, true);
|
||||
}
|
||||
if (diag.Category == templates[0].Item1)
|
||||
{
|
||||
anim.SetANIMFlag(eANIM_EFFECTS.RESOLUTION_64x64, false);
|
||||
anim.SetANIMFlag(eANIM_EFFECTS.SLIM_MODEL, false);
|
||||
}
|
||||
else if (diag.Category == templates[1].Item1)
|
||||
{
|
||||
anim.SetANIMFlag(eANIM_EFFECTS.RESOLUTION_64x64, true);
|
||||
anim.SetANIMFlag(eANIM_EFFECTS.SLIM_MODEL, false);
|
||||
}
|
||||
else if (diag.Category == templates[2].Item1)
|
||||
{
|
||||
anim.SetANIMFlag(eANIM_EFFECTS.SLIM_MODEL, true);
|
||||
}
|
||||
}
|
||||
SkinANIM backup = anim;
|
||||
processCheckBoxes();
|
||||
anim = backup;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace PckStudio
|
||||
{
|
||||
public partial class MainForm : MetroFramework.Forms.MetroForm
|
||||
{
|
||||
public string saveLocation = string.Empty;
|
||||
string saveLocation = string.Empty;
|
||||
PCKFile currentPCK = null;
|
||||
bool needsUpdate = false;
|
||||
bool saved = true;
|
||||
@@ -52,17 +52,17 @@ namespace PckStudio
|
||||
RPC.Initialize();
|
||||
RPC.SetPresence("An Open Source .PCK File Editor", "Program by PhoenixARC");
|
||||
|
||||
skinToolStripMenuItem1.Click += (sender, e) => setFileType_Click(sender, e, 0);
|
||||
capeToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 1);
|
||||
textureToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 2);
|
||||
languagesFileLOCToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 6);
|
||||
gameRulesFileGRFToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 7);
|
||||
audioPCKFileToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 8);
|
||||
coloursCOLFileToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 9);
|
||||
gameRulesHeaderGRHToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 10);
|
||||
skinsPCKToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 11);
|
||||
modelsFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 12);
|
||||
behavioursFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 13);
|
||||
skinToolStripMenuItem1.Click += (sender, e) => setFileType_Click(sender, e, 0);
|
||||
capeToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 1);
|
||||
textureToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 2);
|
||||
languagesFileLOCToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 6);
|
||||
gameRulesFileGRFToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 7);
|
||||
audioPCKFileToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 8);
|
||||
coloursCOLFileToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 9);
|
||||
gameRulesHeaderGRHToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 10);
|
||||
skinsPCKToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 11);
|
||||
modelsFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 12);
|
||||
behavioursFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 13);
|
||||
entityMaterialsFileBINToolStripMenuItem.Click += (sender, e) => setFileType_Click(sender, e, 14);
|
||||
|
||||
try
|
||||
@@ -237,7 +237,7 @@ namespace PckStudio
|
||||
}
|
||||
catch (OverflowException ex)
|
||||
{
|
||||
MessageBox.Show("Failed to open pck\n" +
|
||||
MessageBox.Show("Failed to open pck\n" +
|
||||
"Try checking the 'Open/Save as Vita/PS4 pck' check box in the upper right corner.",
|
||||
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
Console.WriteLine(ex.Message);
|
||||
@@ -328,17 +328,17 @@ namespace PckStudio
|
||||
}
|
||||
}
|
||||
|
||||
public void editModel(PCKFile.FileData skin)
|
||||
{
|
||||
using (generateModel generate = new generateModel(skin.properties, new PictureBox()))
|
||||
if (generate.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
entryTypeTextBox.Text = "";
|
||||
entryDataTextBox.Text = "";
|
||||
saved = false;
|
||||
ReloadMetaTreeView();
|
||||
}
|
||||
}
|
||||
public void editModel(PCKFile.FileData skin)
|
||||
{
|
||||
using (generateModel generate = new generateModel(skin.properties, new PictureBox()))
|
||||
if (generate.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
entryTypeTextBox.Text = "";
|
||||
entryDataTextBox.Text = "";
|
||||
saved = false;
|
||||
ReloadMetaTreeView();
|
||||
}
|
||||
}
|
||||
|
||||
private void extractToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -432,39 +432,39 @@ namespace PckStudio
|
||||
MessageBox.Show("Can't replace a folder.");
|
||||
}
|
||||
|
||||
private void deleteFileToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var node = treeViewMain.SelectedNode;
|
||||
if (node == null) return;
|
||||
if (node.Tag is PCKFile.FileData)
|
||||
{
|
||||
PCKFile.FileData file = node.Tag as PCKFile.FileData;
|
||||
// remove loc key if its a skin/cape
|
||||
if (file.type == 0 || file.type == 1)
|
||||
{
|
||||
if (TryGetLocFile(out LOCFile locFile))
|
||||
{
|
||||
foreach (var property in file.properties)
|
||||
{
|
||||
if (property.Item1 == "THEMENAMEID" || property.Item1 == "DISPLAYNAMEID")
|
||||
locFile.RemoveLocKey(property.Item2);
|
||||
}
|
||||
TrySetLocFile(locFile);
|
||||
}
|
||||
}
|
||||
currentPCK.Files.Remove(file);
|
||||
node.Remove();
|
||||
saved = false;
|
||||
}
|
||||
else if (MessageBox.Show("Are you sure want to delete this folder? All contents will be deleted", "Warning",
|
||||
MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
|
||||
{
|
||||
string pckFolderDir = node.FullPath;
|
||||
currentPCK.Files.RemoveAll(file => file.filepath.StartsWith(pckFolderDir));
|
||||
node.Remove();
|
||||
saved = false;
|
||||
}
|
||||
}
|
||||
private void deleteFileToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var node = treeViewMain.SelectedNode;
|
||||
if (node == null) return;
|
||||
if (node.Tag is PCKFile.FileData)
|
||||
{
|
||||
PCKFile.FileData file = node.Tag as PCKFile.FileData;
|
||||
// remove loc key if its a skin/cape
|
||||
if (file.type == 0 || file.type == 1)
|
||||
{
|
||||
if (TryGetLocFile(out LOCFile locFile))
|
||||
{
|
||||
foreach (var property in file.properties)
|
||||
{
|
||||
if (property.Item1 == "THEMENAMEID" || property.Item1 == "DISPLAYNAMEID")
|
||||
locFile.RemoveLocKey(property.Item2);
|
||||
}
|
||||
TrySetLocFile(locFile);
|
||||
}
|
||||
}
|
||||
currentPCK.Files.Remove(file);
|
||||
node.Remove();
|
||||
saved = false;
|
||||
}
|
||||
else if (MessageBox.Show("Are you sure want to delete this folder? All contents will be deleted", "Warning",
|
||||
MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
|
||||
{
|
||||
string pckFolderDir = node.FullPath;
|
||||
currentPCK.Files.RemoveAll(file => file.filepath.StartsWith(pckFolderDir));
|
||||
node.Remove();
|
||||
saved = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void renameFileToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -598,14 +598,14 @@ namespace PckStudio
|
||||
grfEditor.ShowDialog();
|
||||
break;
|
||||
|
||||
case 8 when file.filepath == "audio.pck":
|
||||
if (!TryGetLocFile(out LOCFile locFile))
|
||||
throw new Exception("No .loc File found.");
|
||||
AudioEditor audioEditor = new AudioEditor(file, locFile, LittleEndianCheckBox.Checked);
|
||||
audioEditor.ShowDialog(this);
|
||||
case 8 when file.filepath == "audio.pck":
|
||||
if (!TryGetLocFile(out LOCFile locFile))
|
||||
throw new Exception("No .loc File found.");
|
||||
AudioEditor audioEditor = new AudioEditor(file, locFile, LittleEndianCheckBox.Checked);
|
||||
audioEditor.ShowDialog(this);
|
||||
if (audioEditor.saved) TrySetLocFile(locFile);
|
||||
audioEditor.Dispose();
|
||||
break;
|
||||
break;
|
||||
|
||||
case 9 when file.filepath == "colours.col":
|
||||
if (file.size == 0)
|
||||
@@ -638,16 +638,24 @@ namespace PckStudio
|
||||
PCKFile.FileData file = (PCKFile.FileData)treeViewMain.SelectedNode.Tag;
|
||||
var property = (ValueTuple<string, string>)treeMeta.SelectedNode.Tag;
|
||||
int i = file.properties.IndexOf(property);
|
||||
if (property.Item1 == "ANIM" && i != -1)
|
||||
if (property.Item1 == "ANIM" && i != -1 && file.type == 0)
|
||||
{
|
||||
using Forms.Utilities.Skins.ANIMEditor diag = new Forms.Utilities.Skins.ANIMEditor(property.Item2);
|
||||
if (diag.ShowDialog(this) == DialogResult.OK && diag.saved)
|
||||
try
|
||||
{
|
||||
file.properties[i] = new ValueTuple<string, string>("ANIM", diag.outANIM);
|
||||
ReloadMetaTreeView();
|
||||
saved = false;
|
||||
if (diag.ShowDialog(this) == DialogResult.OK && diag.saved)
|
||||
{
|
||||
file.properties[i] = new ValueTuple<string, string>("ANIM", diag.outANIM);
|
||||
ReloadMetaTreeView();
|
||||
saved = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
MessageBox.Show("Failed to parse ANIM value, aborting to normal functionality. Please make sure the value only includes hexadecimal characters (0-9,A-F) and has no more than 8 characters. It can have an optional prefix of \"0x\".");
|
||||
}
|
||||
}
|
||||
using addMeta add = new addMeta(property.Item1, property.Item2);
|
||||
if (add.ShowDialog() == DialogResult.OK && i != -1)
|
||||
@@ -689,16 +697,16 @@ namespace PckStudio
|
||||
mf.properties.Add(property);
|
||||
}
|
||||
|
||||
TreeNode newNode = new TreeNode();
|
||||
newNode.Text = newFileName;
|
||||
newNode.Tag = mf;
|
||||
newNode.ImageIndex = node.ImageIndex;
|
||||
newNode.SelectedImageIndex = node.SelectedImageIndex;
|
||||
TreeNode newNode = new TreeNode();
|
||||
newNode.Text = newFileName;
|
||||
newNode.Tag = mf;
|
||||
newNode.ImageIndex = node.ImageIndex;
|
||||
newNode.SelectedImageIndex = node.SelectedImageIndex;
|
||||
|
||||
if (node.Parent == null) treeViewMain.Nodes.Insert(node.Index + 1, newNode); //adds generated minefile node
|
||||
else node.Parent.Nodes.Insert(node.Index + 1, newNode);//adds generated minefile node to selected folder
|
||||
currentPCK.Files.Insert(node.Index + 1, mf);
|
||||
}
|
||||
if (node.Parent == null) treeViewMain.Nodes.Insert(node.Index + 1, newNode); //adds generated minefile node
|
||||
else node.Parent.Nodes.Insert(node.Index + 1, newNode);//adds generated minefile node to selected folder
|
||||
currentPCK.Files.Insert(node.Index + 1, mf);
|
||||
}
|
||||
|
||||
private void deleteEntryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -1024,7 +1032,7 @@ namespace PckStudio
|
||||
FileInfo file = new FileInfo(filepath);
|
||||
file.Directory.Create();
|
||||
File.WriteAllBytes(filepath, mf.data); // writes data to file
|
||||
//attempts to generate reimportable metadata file out of minefiles metadata
|
||||
//attempts to generate reimportable metadata file out of minefiles metadata
|
||||
string metaData = "";
|
||||
|
||||
foreach (var entry in mf.properties)
|
||||
@@ -1042,6 +1050,27 @@ namespace PckStudio
|
||||
}
|
||||
}
|
||||
|
||||
public string GetDataPath()
|
||||
{
|
||||
return Path.Combine(Path.GetDirectoryName(saveLocation), $"Data");
|
||||
}
|
||||
|
||||
public bool HasDataFolder()
|
||||
{
|
||||
return Directory.Exists(GetDataPath());
|
||||
}
|
||||
|
||||
public bool CreateDataFolder()
|
||||
{
|
||||
if (!HasDataFolder())
|
||||
{
|
||||
DialogResult result = MessageBox.Show("There is not a \"Data\" folder present in the pack folder. Would you like to create one?", "Folder missing", MessageBoxButtons.YesNo);
|
||||
if (result == DialogResult.No) return false;
|
||||
else Directory.CreateDirectory(GetDataPath());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void treeMeta_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyData == Keys.Delete)
|
||||
|
||||
26
README.md
26
README.md
@@ -1,15 +1,23 @@
|
||||
# PCK Studio
|
||||
Modify .PCK archives as you please!
|
||||
|
||||
_`previously known as MinecraftUSkinEditor`_\
|
||||
`A minecraft for Wii U editor`
|
||||
|
||||
## Features:
|
||||
#### If you'd like to suggested a feature to be added open an [issue](https://github.com/PhoenixARC/-PCK-Studio/issues) on the github.
|
||||
* Open, Edit and Save .PCK archives (this means models, animations, entire custom packs, etc.)
|
||||
* Add / Remove / Replace skins, audios, textures, animations and much more.
|
||||
* Edit localization data to make your mods support every language supported by minecraft itself!
|
||||
* PNG previewing
|
||||
* And much more!
|
||||
* And much more!\
|
||||
|
||||
## Supported File format
|
||||
|
||||
| Name | file extentions |
|
||||
|:-:|:-:|
|
||||
| Localization files | **.loc** |
|
||||
| Game Rule files | **.grh/.grf** |
|
||||
| Audio.pck |**audio.pck** |
|
||||
| Colour file | **.col** |
|
||||
|
||||
|
||||
### Known Issues
|
||||
- `.resx been flagged by windows(when downloading source.zip)`
|
||||
@@ -26,14 +34,14 @@ $ cd "-PCK-Studio"
|
||||
```powershell
|
||||
$ dir -Path .\ -Recurse | Unblock-File
|
||||
```
|
||||
- ### Building using [Visual Studio](https://visualstudio.microsoft.com/downloads)
|
||||
* Open [MinecraftUSkinEditor.sln](./MinecraftUSkinEditor.sln) in Visual Studio 2022 or later
|
||||
- ### Building using [Visual Studio 2022 (or later)](https://visualstudio.microsoft.com/downloads)
|
||||
* Open [PCK_Studio.sln](./PCK_Studio.sln) in Visual Studio 2022 or later
|
||||
* Click `Run` or press `Shift + B`
|
||||
|
||||
- ### Building using [MSBuild](https://github.com/dotnet/msbuild/releases)
|
||||
- ### Building using [MSBuild](https://github.com/dotnet/msbuild/releases) and [Nuget](https://www.nuget.org/downloads)
|
||||
* ```shell
|
||||
$ nuget restore MinecraftUSkinEditor.sln
|
||||
$ msbuild MinecraftUSkinEditor.sln -property:Configuration=Release
|
||||
$ nuget restore PCK_Studio.sln
|
||||
$ msbuild PCK_Studio.sln -property:Configuration=Release
|
||||
```
|
||||
|
||||
### A quick note:
|
||||
|
||||
Reference in New Issue
Block a user