1
0
mirror of synced 2024-12-04 20:08:00 +01:00
Switch-Toolbox/Switch_FileFormatsMain/GUI/Editors/TexturePatternAnimEditor.cs
2019-06-01 12:30:17 -04:00

110 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Switch_Toolbox.Library;
using Bfres.Structs;
using BrightIdeasSoftware;
using Switch_Toolbox.Library.Animations;
using Switch_Toolbox.Library.Forms;
namespace FirstPlugin.Forms
{
public partial class TexturePatternAnimEditor : UserControl
{
public ImageList textureImageList;
public TexturePatternAnimEditor()
{
InitializeComponent();
trackbarKeyEditor1.ForeColor = Color.White;
trackbarKeyEditor1.ForeColor = FormThemes.BaseTheme.FormBackColor;
textureImageList = new ImageList()
{
ColorDepth = ColorDepth.Depth32Bit,
ImageSize = new Size(30, 30),
};
}
MaterialAnimation.Material material;
FMAA.BfresSamplerAnim activeSampler;
public void LoadAnim(FMAA.BfresSamplerAnim samplerAnim)
{
activeSampler = samplerAnim;
material = (MaterialAnimation.Material)samplerAnim.Parent;
var anim = (MaterialAnimation)material.Parent;
trackbarKeyEditor1.ClearKeys();
trackbarKeyEditor1.Maximum = anim.FrameCount;
samplerTreeView.Nodes.Clear();
int KeyHeight = trackbarKeyEditor1.ClientSize.Width / anim.FrameCount;
pictureBoxCustom1.Image = null;
foreach (FMAA.BfresSamplerAnim sampler in material.Nodes)
{
samplerTreeView.Nodes.Add(sampler.Text);
}
if (samplerTreeView.Nodes.Count > 0)
samplerTreeView.SelectedNode = samplerTreeView.Nodes[0];
animMaxFrameUD.Value = anim.FrameCount;
for (int Frame = 0; Frame < anim.FrameCount; Frame++)
{
int KeyPosY = KeyHeight;
foreach (FMAA.BfresSamplerAnim sampler in material.Nodes)
{
var keyFrame = sampler.GetKeyFrame(Frame);
if (keyFrame.IsKeyed)
{
var tex = sampler.GetActiveTexture(Frame);
if (tex != null)
{
Bitmap temp = tex.GetBitmap();
trackbarKeyEditor1.AddKeyFrameThumbSlider(Frame, KeyPosY, KeyHeight, temp);
KeyPosY += KeyHeight;
}
}
}
}
}
private void trackbarKeyEditor1_ValueChanged(object sender, EventArgs e)
{
if (activeSampler != null)
{
int frame = trackbarKeyEditor1.Value;
var tex = activeSampler.GetActiveTexture(frame);
pictureBoxCustom1.Image = tex.GetBitmap();
animCurrentFrameUD.Value = frame;
}
}
private void treeViewCustom1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (samplerTreeView.SelectedNode != null)
{
int index = samplerTreeView.SelectedNode.Index;
activeSampler = (FMAA.BfresSamplerAnim)material.Nodes[index];
}
}
private void stPanel4_Paint(object sender, PaintEventArgs e)
{
}
}
}