96 lines
3.1 KiB
C#
96 lines
3.1 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 Toolbox.Library;
|
|
using Toolbox.Library.IO;
|
|
|
|
namespace FirstPlugin.Forms
|
|
{
|
|
public partial class GFLXMaterialParamEditor : UserControl
|
|
{
|
|
private GFLXMaterialData ActiveMaterial;
|
|
|
|
public GFLXMaterialParamEditor()
|
|
{
|
|
InitializeComponent();
|
|
|
|
stDropDownPanel1.ResetColors();
|
|
stDropDownPanel2.ResetColors();
|
|
stDropDownPanel3.ResetColors();
|
|
}
|
|
|
|
public void LoadParams(GFLXMaterialData mat) {
|
|
ActiveMaterial = mat;
|
|
ReloadParams();
|
|
}
|
|
|
|
private void ReloadParams()
|
|
{
|
|
switchParamCB.Items.Clear();
|
|
valueParamCB.Items.Clear();
|
|
colorParamCB.Items.Clear();
|
|
|
|
foreach (var param in ActiveMaterial.SwitchParams.Values) {
|
|
switchParamCB.Items.Add($"{param.Name} {param.Value}");
|
|
}
|
|
|
|
foreach (var param in ActiveMaterial.ValueParams.Values) {
|
|
valueParamCB.Items.Add($"{param.Name} {param.Value}");
|
|
}
|
|
|
|
foreach (var param in ActiveMaterial.ColorParams.Values) {
|
|
colorParamCB.Items.Add($"{param.Name} {param.Value}");
|
|
}
|
|
|
|
if (switchParamCB.Items.Count > 0) switchParamCB.SelectedIndex = 0;
|
|
if (valueParamCB.Items.Count > 0) valueParamCB.SelectedIndex = 0;
|
|
if (colorParamCB.Items.Count > 0) colorParamCB.SelectedIndex = 0;
|
|
}
|
|
|
|
private void switchParamCB_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
int index = switchParamCB.SelectedIndex;
|
|
if (index >= 0)
|
|
{
|
|
var param = ActiveMaterial.SwitchParams.ElementAtOrDefault(index).Value;
|
|
stCheckBox1.Checked = param.Value;
|
|
}
|
|
}
|
|
|
|
private void valueParamCB_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
int index = valueParamCB.SelectedIndex;
|
|
if (index >= 0)
|
|
{
|
|
var param = ActiveMaterial.ValueParams.ElementAtOrDefault(index).Value;
|
|
barSlider1.Value = param.Value;
|
|
}
|
|
}
|
|
|
|
private void colorParamCB_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
int index = colorParamCB.SelectedIndex;
|
|
if (index >= 0)
|
|
{
|
|
var param = ActiveMaterial.ColorParams.ElementAtOrDefault(index).Value;
|
|
barSlider2.Value = param.Value.X;
|
|
barSlider3.Value = param.Value.X;
|
|
barSlider4.Value = param.Value.X;
|
|
|
|
pictureBox1.BackColor = Color.FromArgb(
|
|
Utils.FloatToIntClamp(param.Value.X),
|
|
Utils.FloatToIntClamp(param.Value.Y),
|
|
Utils.FloatToIntClamp(param.Value.Z));
|
|
}
|
|
else
|
|
pictureBox1.BackColor = Color.White;
|
|
}
|
|
}
|
|
}
|