mirror of
https://github.com/KillzXGaming/Switch-Toolbox
synced 2024-11-10 07:04:36 +00:00
Merge branch 'master' of https://github.com/KillzXGaming/Switch-Toolbox
This commit is contained in:
commit
7e5b80e575
9 changed files with 532 additions and 227 deletions
|
@ -160,17 +160,17 @@ namespace Bfres.Structs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ReplaceAll()
|
public override void ReplaceAll(string ReplacePath = "")
|
||||||
{
|
{
|
||||||
FolderSelectDialog sfd = new FolderSelectDialog();
|
FolderSelectDialog sfd = new FolderSelectDialog();
|
||||||
if (sfd.ShowDialog() == DialogResult.OK)
|
if (ReplacePath != "" || sfd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
if (Type == BRESGroupType.Textures)
|
if (Type == BRESGroupType.Textures)
|
||||||
{
|
{
|
||||||
GTXTextureImporter importer = new GTXTextureImporter();
|
GTXTextureImporter importer = new GTXTextureImporter();
|
||||||
List<GTXImporterSettings> settings = new List<GTXImporterSettings>();
|
List<GTXImporterSettings> settings = new List<GTXImporterSettings>();
|
||||||
|
|
||||||
foreach (string file in System.IO.Directory.GetFiles(sfd.SelectedPath))
|
foreach (string file in System.IO.Directory.GetFiles(ReplacePath != "" ? ReplacePath : sfd.SelectedPath))
|
||||||
{
|
{
|
||||||
string FileName = System.IO.Path.GetFileNameWithoutExtension(file);
|
string FileName = System.IO.Path.GetFileNameWithoutExtension(file);
|
||||||
|
|
||||||
|
@ -260,7 +260,7 @@ namespace Bfres.Structs
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
foreach (string file in System.IO.Directory.GetFiles(sfd.SelectedPath))
|
foreach (string file in System.IO.Directory.GetFiles(ReplacePath != "" ? ReplacePath : sfd.SelectedPath))
|
||||||
{
|
{
|
||||||
string FileName = System.IO.Path.GetFileNameWithoutExtension(file);
|
string FileName = System.IO.Path.GetFileNameWithoutExtension(file);
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@ namespace Toolbox.Library.NodeWrappers
|
||||||
ReplaceAll();
|
ReplaceAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void ReplaceAll()
|
public virtual void ReplaceAll(string ReplacePath = "")
|
||||||
{
|
{
|
||||||
FolderSelectDialog sfd = new FolderSelectDialog();
|
FolderSelectDialog sfd = new FolderSelectDialog();
|
||||||
if (sfd.ShowDialog() == DialogResult.OK)
|
if (sfd.ShowDialog() == DialogResult.OK)
|
||||||
|
|
|
@ -845,7 +845,7 @@ namespace Toolbox.Library
|
||||||
{
|
{
|
||||||
if (IsAtscFormat(Format))
|
if (IsAtscFormat(Format))
|
||||||
{
|
{
|
||||||
return "Supported Formats|*.astc; *.png;*.tga;*.jpg;*.tiff|" +
|
return "Supported Formats|*.dds; *.astc; *.png;*.tga;*.jpg;*.tiff|" +
|
||||||
"ASTC |*.astc|" +
|
"ASTC |*.astc|" +
|
||||||
"Portable Network Graphics |*.png|" +
|
"Portable Network Graphics |*.png|" +
|
||||||
"Joint Photographic Experts Group |*.jpg|" +
|
"Joint Photographic Experts Group |*.jpg|" +
|
||||||
|
|
|
@ -23,6 +23,7 @@ namespace Toolbox.Library
|
||||||
public static bool UseDirectXTexDecoder = true;
|
public static bool UseDirectXTexDecoder = true;
|
||||||
public static bool DEVELOPER_DEBUG_MODE = false;
|
public static bool DEVELOPER_DEBUG_MODE = false;
|
||||||
public static bool AlwaysCompressOnSave = false;
|
public static bool AlwaysCompressOnSave = false;
|
||||||
|
public static bool AlwaysSaveAll = true;
|
||||||
|
|
||||||
public static class ResourceTables
|
public static class ResourceTables
|
||||||
{
|
{
|
||||||
|
|
547
Toolbox/GUI/Settings.Designer.cs
generated
547
Toolbox/GUI/Settings.Designer.cs
generated
File diff suppressed because it is too large
Load diff
|
@ -88,6 +88,7 @@ namespace Toolbox
|
||||||
chkBotwFileTable.Checked = Runtime.ResourceTables.BotwTable;
|
chkBotwFileTable.Checked = Runtime.ResourceTables.BotwTable;
|
||||||
chkTpFileTable.Checked = Runtime.ResourceTables.TpTable;
|
chkTpFileTable.Checked = Runtime.ResourceTables.TpTable;
|
||||||
chkFrameCamera.Checked = Runtime.FrameCamera;
|
chkFrameCamera.Checked = Runtime.FrameCamera;
|
||||||
|
chkAlwaysSaveAll.Checked = Runtime.AlwaysSaveAll;
|
||||||
chkAlwaysCompressOnSave.Checked = Runtime.AlwaysCompressOnSave;
|
chkAlwaysCompressOnSave.Checked = Runtime.AlwaysCompressOnSave;
|
||||||
chkViewportGrid.Checked = Runtime.displayGrid;
|
chkViewportGrid.Checked = Runtime.displayGrid;
|
||||||
chkViewportAxisLines.Checked = Runtime.displayAxisLines;
|
chkViewportAxisLines.Checked = Runtime.displayAxisLines;
|
||||||
|
@ -664,6 +665,11 @@ namespace Toolbox
|
||||||
Runtime.FrameCamera = chkFrameCamera.Checked;
|
Runtime.FrameCamera = chkFrameCamera.Checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void chkAlwaysSaveAll_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Runtime.AlwaysSaveAll = chkAlwaysSaveAll.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
private void chkAlwaysCompressOnSave_CheckedChanged(object sender, EventArgs e) {
|
private void chkAlwaysCompressOnSave_CheckedChanged(object sender, EventArgs e) {
|
||||||
Runtime.AlwaysCompressOnSave = chkAlwaysCompressOnSave.Checked;
|
Runtime.AlwaysCompressOnSave = chkAlwaysCompressOnSave.Checked;
|
||||||
}
|
}
|
||||||
|
|
32
Toolbox/MainForm.Designer.cs
generated
32
Toolbox/MainForm.Designer.cs
generated
|
@ -47,6 +47,9 @@
|
||||||
this.hashCalculatorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.hashCalculatorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.batchExportTexturesAllSupportedFormatsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.batchExportTexturesAllSupportedFormatsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.batchExportModelsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.batchExportModelsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.batchReplaceFTPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.batchRenameBNTXToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.batchReplaceTXTGToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.experimentalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.experimentalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.windowsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.windowsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.cascadeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.cascadeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
@ -192,7 +195,10 @@
|
||||||
this.batchToolStripMenuItem,
|
this.batchToolStripMenuItem,
|
||||||
this.hashCalculatorToolStripMenuItem,
|
this.hashCalculatorToolStripMenuItem,
|
||||||
this.batchExportTexturesAllSupportedFormatsToolStripMenuItem,
|
this.batchExportTexturesAllSupportedFormatsToolStripMenuItem,
|
||||||
this.batchExportModelsToolStripMenuItem});
|
this.batchExportModelsToolStripMenuItem,
|
||||||
|
this.batchReplaceFTPToolStripMenuItem,
|
||||||
|
this.batchReplaceTXTGToolStripMenuItem,
|
||||||
|
this.batchRenameBNTXToolStripMenuItem,});
|
||||||
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
||||||
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 21);
|
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 21);
|
||||||
this.toolsToolStripMenuItem.Text = "Tools";
|
this.toolsToolStripMenuItem.Text = "Tools";
|
||||||
|
@ -231,6 +237,27 @@
|
||||||
this.batchExportModelsToolStripMenuItem.Text = "Batch Export Models";
|
this.batchExportModelsToolStripMenuItem.Text = "Batch Export Models";
|
||||||
this.batchExportModelsToolStripMenuItem.Click += new System.EventHandler(this.batchExportModelsToolStripMenuItem_Click);
|
this.batchExportModelsToolStripMenuItem.Click += new System.EventHandler(this.batchExportModelsToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// batchReplaceFTPToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.batchReplaceFTPToolStripMenuItem.Name = "batchReplaceFTPToolStripMenuItem";
|
||||||
|
this.batchReplaceFTPToolStripMenuItem.Size = new System.Drawing.Size(316, 22);
|
||||||
|
this.batchReplaceFTPToolStripMenuItem.Text = "Batch Replace FTP";
|
||||||
|
this.batchReplaceFTPToolStripMenuItem.Click += new System.EventHandler(this.batchReplaceFTPToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// batchReplaceTXTGToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.batchReplaceTXTGToolStripMenuItem.Name = "batchReplaceTXTGToolStripMenuItem";
|
||||||
|
this.batchReplaceTXTGToolStripMenuItem.Size = new System.Drawing.Size(316, 22);
|
||||||
|
this.batchReplaceTXTGToolStripMenuItem.Text = "Batch Replace TXTG";
|
||||||
|
this.batchReplaceTXTGToolStripMenuItem.Click += new System.EventHandler(this.batchReplaceTXTGToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// batchRenameBNTXToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.batchRenameBNTXToolStripMenuItem.Name = "batchRenameBNTXToolStripMenuItem";
|
||||||
|
this.batchRenameBNTXToolStripMenuItem.Size = new System.Drawing.Size(316, 22);
|
||||||
|
this.batchRenameBNTXToolStripMenuItem.Text = "Batch Rename BNTX from Filename";
|
||||||
|
this.batchRenameBNTXToolStripMenuItem.Click += new System.EventHandler(this.batchRenameBNTXToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// experimentalToolStripMenuItem
|
// experimentalToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.experimentalToolStripMenuItem.Name = "experimentalToolStripMenuItem";
|
this.experimentalToolStripMenuItem.Name = "experimentalToolStripMenuItem";
|
||||||
|
@ -590,6 +617,9 @@
|
||||||
private System.Windows.Forms.ToolStripMenuItem hashCalculatorToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem hashCalculatorToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem batchExportTexturesAllSupportedFormatsToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem batchExportTexturesAllSupportedFormatsToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem batchExportModelsToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem batchExportModelsToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem batchReplaceFTPToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem batchReplaceTXTGToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem batchRenameBNTXToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem donateToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem donateToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem openUserFolderToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem openUserFolderToolStripMenuItem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,10 @@ using System.Reflection;
|
||||||
using OpenTK.Graphics.OpenGL;
|
using OpenTK.Graphics.OpenGL;
|
||||||
using Toolbox.Library.NodeWrappers;
|
using Toolbox.Library.NodeWrappers;
|
||||||
using Toolbox.Library.Rendering;
|
using Toolbox.Library.Rendering;
|
||||||
|
using Bfres.Structs;
|
||||||
|
using Syroot.NintenTools.NSW.Bntx;
|
||||||
|
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
|
||||||
|
using FirstPlugin;
|
||||||
|
|
||||||
namespace Toolbox
|
namespace Toolbox
|
||||||
{
|
{
|
||||||
|
@ -475,7 +479,16 @@ namespace Toolbox
|
||||||
if (format != null)
|
if (format != null)
|
||||||
{
|
{
|
||||||
if (!format.CanSave)
|
if (!format.CanSave)
|
||||||
|
{
|
||||||
|
if (Runtime.AlwaysSaveAll)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
string FileName = format.FilePath;
|
string FileName = format.FilePath;
|
||||||
if (!File.Exists(FileName))
|
if (!File.Exists(FileName))
|
||||||
|
@ -488,7 +501,16 @@ namespace Toolbox
|
||||||
sfd.FileName = format.FileName;
|
sfd.FileName = format.FileName;
|
||||||
|
|
||||||
if (sfd.ShowDialog() != DialogResult.OK)
|
if (sfd.ShowDialog() != DialogResult.OK)
|
||||||
|
{
|
||||||
|
if (Runtime.AlwaysSaveAll)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
FileName = sfd.FileName;
|
FileName = sfd.FileName;
|
||||||
}
|
}
|
||||||
|
@ -498,8 +520,15 @@ namespace Toolbox
|
||||||
if (format is STGenericWrapper && !(format is STGenericTexture))
|
if (format is STGenericWrapper && !(format is STGenericTexture))
|
||||||
{
|
{
|
||||||
((STGenericWrapper)format).Export(FileName);
|
((STGenericWrapper)format).Export(FileName);
|
||||||
|
if (Runtime.AlwaysSaveAll)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (node is ArchiveBase)
|
if (node is ArchiveBase)
|
||||||
STFileSaver.SaveFileFormat(((IFileFormat)((ArchiveBase)node).ArchiveFile), FileName, UseCompressDialog);
|
STFileSaver.SaveFileFormat(((IFileFormat)((ArchiveBase)node).ArchiveFile), FileName, UseCompressDialog);
|
||||||
|
@ -1396,6 +1425,131 @@ namespace Toolbox
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void batchReplaceTXTGToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BatchReplaceTXTG();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BatchReplaceTXTG()
|
||||||
|
{
|
||||||
|
ObjectEditor ObjectEditor = (ObjectEditor)ActiveMdiChild;
|
||||||
|
FolderSelectDialog sfd = new FolderSelectDialog();
|
||||||
|
if (sfd.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
foreach (TreeNode node in ObjectEditor.GetNodes())
|
||||||
|
{
|
||||||
|
STGenericWrapper foundNode = (STGenericWrapper)node;
|
||||||
|
if (foundNode == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (string file in System.IO.Directory.GetFiles(sfd.SelectedPath))
|
||||||
|
{
|
||||||
|
if (!file.Contains(foundNode.Text + "."))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
foundNode.Replace(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void batchReplaceFTPToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BatchReplaceFTP();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BatchReplaceFTP()
|
||||||
|
{
|
||||||
|
ObjectEditor ObjectEditor = (ObjectEditor)ActiveMdiChild;
|
||||||
|
FolderSelectDialog sfd = new FolderSelectDialog();
|
||||||
|
if (sfd.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
foreach (TreeNode node in ObjectEditor.GetNodes())
|
||||||
|
{
|
||||||
|
TreeNode foundNode = FindNodeByText(node, "Texture Pattern Animations");
|
||||||
|
|
||||||
|
// Skip if no Texture Pattern Animation node
|
||||||
|
if (foundNode == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
string parentName = foundNode.FullPath.Split('\\')[0];
|
||||||
|
string sourcePath = Path.Combine(sfd.SelectedPath, parentName + ".bfres");
|
||||||
|
|
||||||
|
// Skip if no path found
|
||||||
|
if (!Directory.Exists(sourcePath))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
BFRESGroupNode groupNode = (BFRESGroupNode)foundNode;
|
||||||
|
groupNode.ReplaceAll(sourcePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private TreeNode FindNodeByText(TreeNode treeNode, string searchText)
|
||||||
|
{
|
||||||
|
// Check if the current node matches the searchText.
|
||||||
|
if (treeNode.Text == searchText)
|
||||||
|
{
|
||||||
|
return treeNode; // Found a match, return the current node.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Recursively search in each child node.
|
||||||
|
foreach (TreeNode tn in treeNode.Nodes)
|
||||||
|
{
|
||||||
|
TreeNode result = FindNodeByText(tn, searchText);
|
||||||
|
if (result != null)
|
||||||
|
{
|
||||||
|
return result; // If a match is found in the child nodes, return it.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no match is found in this subtree, return null.
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void batchRenameBNTXToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ObjectEditor ObjectEditor = (ObjectEditor)ActiveMdiChild;
|
||||||
|
|
||||||
|
foreach (TreeNode node in ObjectEditor.GetNodes())
|
||||||
|
{
|
||||||
|
FirstPlugin.BNTX foundNode = (FirstPlugin.BNTX)node;
|
||||||
|
|
||||||
|
// Skip if no BNTX
|
||||||
|
if (foundNode == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
string fileName = Path.GetFileNameWithoutExtension(foundNode.FilePath).Split('.')[0];
|
||||||
|
|
||||||
|
// Rename file
|
||||||
|
foundNode.Text = fileName;
|
||||||
|
if (foundNode.BinaryTexFile != null)
|
||||||
|
{
|
||||||
|
foundNode.BinaryTexFile.Name = fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
string textureKey = foundNode.Textures.Keys.FirstOrDefault();
|
||||||
|
TextureData textureData = foundNode.Textures.Values.FirstOrDefault();
|
||||||
|
if (textureData != null)
|
||||||
|
{
|
||||||
|
textureData.Text = fileName;
|
||||||
|
textureData.Name = fileName;
|
||||||
|
textureData.Texture.Name = fileName;
|
||||||
|
foundNode.Textures.Remove(textureKey);
|
||||||
|
foundNode.Textures.Add(fileName, textureData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ObjectEditor.Update();
|
||||||
|
}
|
||||||
|
|
||||||
private List<string> failedFiles = new List<string>();
|
private List<string> failedFiles = new List<string>();
|
||||||
private List<string> batchExportFileList = new List<string>();
|
private List<string> batchExportFileList = new List<string>();
|
||||||
private void BatchExportModels(string[] files, string outputFolder)
|
private void BatchExportModels(string[] files, string outputFolder)
|
||||||
|
|
|
@ -73,6 +73,7 @@
|
||||||
<HintPath>Lib\OpenTK.GLControl.dll</HintPath>
|
<HintPath>Lib\OpenTK.GLControl.dll</HintPath>
|
||||||
<Private>False</Private>
|
<Private>False</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="Syroot.NintenTools.NSW.Bntx, Version=1.2.3.0, Culture=neutral, PublicKeyToken=null" />
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
|
Loading…
Reference in a new issue