2018-11-22 22:17:03 +01:00
|
|
|
|
using System;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using Switch_Toolbox.Library;
|
|
|
|
|
using FirstPlugin;
|
2018-11-23 21:39:16 +01:00
|
|
|
|
using Syroot.NintenTools.NSW.Bfres;
|
2018-11-22 22:17:03 +01:00
|
|
|
|
|
|
|
|
|
namespace Bfres.Structs
|
|
|
|
|
{
|
|
|
|
|
public class FshpaFolder : TreeNodeCustom
|
|
|
|
|
{
|
|
|
|
|
public FshpaFolder()
|
|
|
|
|
{
|
|
|
|
|
Text = "Shape Animations";
|
|
|
|
|
Name = "FSHPA";
|
|
|
|
|
|
|
|
|
|
ContextMenu = new ContextMenu();
|
|
|
|
|
MenuItem import = new MenuItem("Import");
|
|
|
|
|
ContextMenu.MenuItems.Add(import);
|
|
|
|
|
import.Click += Import;
|
|
|
|
|
MenuItem exportAll = new MenuItem("Export All");
|
|
|
|
|
ContextMenu.MenuItems.Add(exportAll);
|
|
|
|
|
exportAll.Click += ExportAll;
|
|
|
|
|
MenuItem clear = new MenuItem("Clear");
|
|
|
|
|
ContextMenu.MenuItems.Add(clear);
|
|
|
|
|
clear.Click += Clear;
|
|
|
|
|
}
|
|
|
|
|
private void Import(object sender, EventArgs args)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
2018-11-23 21:39:16 +01:00
|
|
|
|
public void ExportAll(object sender, EventArgs args)
|
2018-11-22 22:17:03 +01:00
|
|
|
|
{
|
2018-11-23 21:39:16 +01:00
|
|
|
|
FolderSelectDialog sfd = new FolderSelectDialog();
|
|
|
|
|
if (sfd.ShowDialog() == DialogResult.OK)
|
|
|
|
|
{
|
|
|
|
|
string folderPath = sfd.SelectedPath;
|
|
|
|
|
foreach (FSHA fsha in Nodes)
|
|
|
|
|
{
|
|
|
|
|
string FileName = folderPath + '\\' + fsha.Text + ".bfshpa";
|
|
|
|
|
((FSHA)fsha).ShapeAnim.Export(FileName, fsha.GetResFile());
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-11-22 22:17:03 +01:00
|
|
|
|
}
|
|
|
|
|
private void Clear(object sender, EventArgs args)
|
|
|
|
|
{
|
2018-11-23 21:39:16 +01:00
|
|
|
|
DialogResult dialogResult = MessageBox.Show("Are you sure you want to remove all shape animations? This cannot be undone!", "", MessageBoxButtons.YesNo);
|
2018-11-22 22:17:03 +01:00
|
|
|
|
|
|
|
|
|
if (dialogResult == DialogResult.Yes)
|
|
|
|
|
{
|
|
|
|
|
Nodes.Clear();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public override void OnClick(TreeView treeView)
|
|
|
|
|
{
|
|
|
|
|
FormLoader.LoadEditor(this, Text);
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-11-23 21:39:16 +01:00
|
|
|
|
public class FSHA : TreeNodeCustom
|
|
|
|
|
{
|
|
|
|
|
public ShapeAnim ShapeAnim;
|
|
|
|
|
public FSHA()
|
|
|
|
|
{
|
|
|
|
|
ImageKey = "shapeAnimation";
|
|
|
|
|
SelectedImageKey = "shapeAnimation";
|
|
|
|
|
|
|
|
|
|
ContextMenu = new ContextMenu();
|
|
|
|
|
MenuItem export = new MenuItem("Export");
|
|
|
|
|
ContextMenu.MenuItems.Add(export);
|
|
|
|
|
export.Click += Export;
|
|
|
|
|
MenuItem replace = new MenuItem("Replace");
|
|
|
|
|
ContextMenu.MenuItems.Add(replace);
|
|
|
|
|
replace.Click += Replace;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ResFile GetResFile()
|
|
|
|
|
{
|
2018-12-02 23:30:46 +01:00
|
|
|
|
return ((BFRES)Parent.Parent).resFile;
|
2018-11-23 21:39:16 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Export(object sender, EventArgs args)
|
|
|
|
|
{
|
|
|
|
|
SaveFileDialog sfd = new SaveFileDialog();
|
|
|
|
|
sfd.Filter = "Supported Formats|*.bfshpa;";
|
|
|
|
|
sfd.FileName = Text;
|
|
|
|
|
sfd.DefaultExt = ".bfshpa";
|
|
|
|
|
|
|
|
|
|
if (sfd.ShowDialog() == DialogResult.OK)
|
|
|
|
|
{
|
|
|
|
|
ShapeAnim.Export(sfd.FileName, GetResFile());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void Replace(object sender, EventArgs args)
|
|
|
|
|
{
|
|
|
|
|
OpenFileDialog ofd = new OpenFileDialog();
|
|
|
|
|
ofd.Filter = "Supported Formats|*.bfshpa;";
|
|
|
|
|
|
|
|
|
|
if (ofd.ShowDialog() == DialogResult.OK)
|
|
|
|
|
{
|
|
|
|
|
ShapeAnim.Import(ofd.FileName);
|
|
|
|
|
}
|
|
|
|
|
ShapeAnim.Name = Text;
|
|
|
|
|
}
|
|
|
|
|
public void Read(ShapeAnim shapeAnim)
|
|
|
|
|
{
|
|
|
|
|
ShapeAnim = shapeAnim;
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-11-22 22:17:03 +01:00
|
|
|
|
}
|