More fixes to bfres proeprties and editor
This commit is contained in:
parent
d4da6db3df
commit
c5ad630eaa
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -82,15 +82,28 @@ namespace FirstPlugin
|
|||||||
}
|
}
|
||||||
private void AdvancedEditor(object sender, EventArgs args)
|
private void AdvancedEditor(object sender, EventArgs args)
|
||||||
{
|
{
|
||||||
|
BFRES file = null;
|
||||||
|
|
||||||
|
ObjectEditor editor = (ObjectEditor)LibraryGUI.Instance.GetActiveForm();
|
||||||
|
if (editor != null)
|
||||||
|
{
|
||||||
|
file = (BFRES)editor.GetActiveFile(); }
|
||||||
|
|
||||||
if (editExt[0].Checked)
|
if (editExt[0].Checked)
|
||||||
{
|
{
|
||||||
editExt[0].Checked = false;
|
editExt[0].Checked = false;
|
||||||
PluginRuntime.UseSimpleBfresEditor = true;
|
PluginRuntime.UseSimpleBfresEditor = true;
|
||||||
|
|
||||||
|
if (file != null)
|
||||||
|
file.LoadSimpleMode();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
editExt[0].Checked = true;
|
editExt[0].Checked = true;
|
||||||
PluginRuntime.UseSimpleBfresEditor = false;
|
PluginRuntime.UseSimpleBfresEditor = false;
|
||||||
|
|
||||||
|
if (file != null)
|
||||||
|
file.LoadAdvancedMode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void NewWiiUBfres(object sender, EventArgs args)
|
private void NewWiiUBfres(object sender, EventArgs args)
|
||||||
@ -189,6 +202,74 @@ namespace FirstPlugin
|
|||||||
drawables.Remove(skeleton);
|
drawables.Remove(skeleton);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void LoadAdvancedMode()
|
||||||
|
{
|
||||||
|
foreach (var model in BFRESRender.models)
|
||||||
|
{
|
||||||
|
foreach (var mat in model.materials.Values)
|
||||||
|
{
|
||||||
|
foreach (var tex in mat.TextureMaps)
|
||||||
|
{
|
||||||
|
mat.Nodes.RemoveByKey(tex.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadSimpleMode()
|
||||||
|
{
|
||||||
|
ObjectEditor editor = (ObjectEditor)LibraryGUI.Instance.GetActiveForm();
|
||||||
|
if (editor == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
editor.treeViewCustom1.BeginUpdate();
|
||||||
|
|
||||||
|
foreach (var model in BFRESRender.models)
|
||||||
|
{
|
||||||
|
foreach (var mat in model.materials.Values)
|
||||||
|
{
|
||||||
|
mat.Nodes.Clear();
|
||||||
|
|
||||||
|
foreach (MatTexture tex in mat.TextureMaps)
|
||||||
|
{
|
||||||
|
mat.Nodes.Add(new MatTextureWrapper(tex.Name, tex.Name, tex));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (TreeNode node in Nodes)
|
||||||
|
{
|
||||||
|
if (node is BFRESAnimFolder)
|
||||||
|
{
|
||||||
|
foreach (BFRESGroupNode animFolder in node.Nodes)
|
||||||
|
{
|
||||||
|
if (animFolder.Type == BRESGroupType.SkeletalAnim)
|
||||||
|
{
|
||||||
|
foreach (FSKA anim in animFolder.Nodes)
|
||||||
|
{
|
||||||
|
foreach (FSKA.BoneAnimNode bone in ((FSKA)anim).Bones)
|
||||||
|
{
|
||||||
|
int index = 0;
|
||||||
|
if (bone.BoneAnimU != null)
|
||||||
|
{
|
||||||
|
foreach (var curve in bone.BoneAnimU.Curves)
|
||||||
|
bone.Nodes.Add("Anim Curve " + index++);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var curve in bone.BoneAnim.Curves)
|
||||||
|
bone.Nodes.Add("Anim Curve " + index++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
editor.treeViewCustom1.EndUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
List<AbstractGlDrawable> drawables = new List<AbstractGlDrawable>();
|
List<AbstractGlDrawable> drawables = new List<AbstractGlDrawable>();
|
||||||
public void LoadEditors(object SelectedSection)
|
public void LoadEditors(object SelectedSection)
|
||||||
{
|
{
|
||||||
@ -196,6 +277,20 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
if (IsSimpleEditor)
|
if (IsSimpleEditor)
|
||||||
{
|
{
|
||||||
|
if (SelectedSection is MatTextureWrapper)
|
||||||
|
{
|
||||||
|
SamplerEditorSimple editorT = (SamplerEditorSimple)LibraryGUI.Instance.GetActiveContent(typeof(SamplerEditorSimple));
|
||||||
|
if (editorT == null)
|
||||||
|
{
|
||||||
|
editorT = new SamplerEditorSimple();
|
||||||
|
editorT.Dock = DockStyle.Fill;
|
||||||
|
LibraryGUI.Instance.LoadEditor(editorT);
|
||||||
|
}
|
||||||
|
editorT.Text = Text;
|
||||||
|
editorT.LoadTexture(((MatTextureWrapper)SelectedSection).textureMap);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
STPropertyGrid editor = (STPropertyGrid)LibraryGUI.Instance.GetActiveContent(typeof(STPropertyGrid));
|
STPropertyGrid editor = (STPropertyGrid)LibraryGUI.Instance.GetActiveContent(typeof(STPropertyGrid));
|
||||||
if (editor == null)
|
if (editor == null)
|
||||||
{
|
{
|
||||||
@ -231,7 +326,7 @@ namespace FirstPlugin
|
|||||||
if (((FMAT)SelectedSection).MaterialU != null)
|
if (((FMAT)SelectedSection).MaterialU != null)
|
||||||
editor.LoadProperty(((FMAT)SelectedSection).MaterialU, OnPropertyChanged);
|
editor.LoadProperty(((FMAT)SelectedSection).MaterialU, OnPropertyChanged);
|
||||||
else
|
else
|
||||||
editor.LoadProperty(((FMAT)SelectedSection).MaterialU, OnPropertyChanged);
|
editor.LoadProperty(((FMAT)SelectedSection).Material, OnPropertyChanged);
|
||||||
}
|
}
|
||||||
else if (SelectedSection is BfresBone)
|
else if (SelectedSection is BfresBone)
|
||||||
{
|
{
|
||||||
@ -240,12 +335,12 @@ namespace FirstPlugin
|
|||||||
else
|
else
|
||||||
editor.LoadProperty(((BfresBone)SelectedSection).Bone, OnPropertyChanged);
|
editor.LoadProperty(((BfresBone)SelectedSection).Bone, OnPropertyChanged);
|
||||||
}
|
}
|
||||||
else if (SelectedSection is FSKL)
|
else if (SelectedSection is FSKL.fsklNode)
|
||||||
{
|
{
|
||||||
if (((FSKL)SelectedSection).node.SkeletonU != null)
|
if (((FSKL.fsklNode)SelectedSection).SkeletonU != null)
|
||||||
editor.LoadProperty(((FSKL)SelectedSection).node.SkeletonU, OnPropertyChanged);
|
editor.LoadProperty(((FSKL.fsklNode)SelectedSection).SkeletonU, OnPropertyChanged);
|
||||||
else
|
else
|
||||||
editor.LoadProperty(((FSKL)SelectedSection).node.Skeleton, OnPropertyChanged);
|
editor.LoadProperty(((FSKL.fsklNode)SelectedSection).Skeleton, OnPropertyChanged);
|
||||||
}
|
}
|
||||||
else if (SelectedSection is FSKA)
|
else if (SelectedSection is FSKA)
|
||||||
{
|
{
|
||||||
@ -287,8 +382,9 @@ namespace FirstPlugin
|
|||||||
{
|
{
|
||||||
//Add drawables
|
//Add drawables
|
||||||
drawables.Add(BFRESRender);
|
drawables.Add(BFRESRender);
|
||||||
foreach (var mdl in BFRESRender.models)
|
|
||||||
drawables.Add(mdl.Skeleton);
|
for (int m = 0; m < BFRESRender.models.Count; m++)
|
||||||
|
drawables.Add(BFRESRender.models[m].Skeleton);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Runtime.UseViewport)
|
if (Runtime.UseViewport)
|
||||||
@ -496,7 +592,6 @@ namespace FirstPlugin
|
|||||||
reader.Position = 0;
|
reader.Position = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LoadMenus(IsWiiU);
|
LoadMenus(IsWiiU);
|
||||||
|
|
||||||
|
|
||||||
@ -504,15 +599,15 @@ namespace FirstPlugin
|
|||||||
BFRESRender.ModelTransform = MarioCostumeEditor.SetTransform(FileName);
|
BFRESRender.ModelTransform = MarioCostumeEditor.SetTransform(FileName);
|
||||||
BFRESRender.ResFileNode = this;
|
BFRESRender.ResFileNode = this;
|
||||||
|
|
||||||
|
|
||||||
if (IsWiiU)
|
if (IsWiiU)
|
||||||
{
|
{
|
||||||
BFRESRender.LoadFile(new Syroot.NintenTools.Bfres.ResFile(stream));
|
LoadFile(new Syroot.NintenTools.Bfres.ResFile(stream));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BFRESRender.LoadFile(new Syroot.NintenTools.NSW.Bfres.ResFile(stream));
|
LoadFile(new Syroot.NintenTools.NSW.Bfres.ResFile(stream));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
public void Unload()
|
public void Unload()
|
||||||
{
|
{
|
||||||
@ -555,7 +650,7 @@ namespace FirstPlugin
|
|||||||
LoadEditors(this);
|
LoadEditors(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Load(ResU.ResFile res)
|
public void LoadFile(ResU.ResFile res)
|
||||||
{
|
{
|
||||||
CanDelete = true;
|
CanDelete = true;
|
||||||
|
|
||||||
@ -578,18 +673,18 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
if (resFileU.Models.Count > 0)
|
if (resFileU.Models.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (ResU.Model mdl in resFileU.Models.Values)
|
for (int i = 0; i < resFileU.Models.Count; i++)
|
||||||
{
|
{
|
||||||
var fmdl = new FMDL();
|
var fmdl = new FMDL();
|
||||||
BfresWiiU.ReadModel(fmdl, mdl);
|
BfresWiiU.ReadModel(fmdl, resFileU.Models[i]);
|
||||||
modelFolder.AddNode(fmdl);
|
modelFolder.AddNode(fmdl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (resFileU.Textures.Count > 0)
|
if (resFileU.Textures.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (ResU.Texture tex in resFileU.Textures.Values)
|
for (int i = 0; i < resFileU.Textures.Count; i++)
|
||||||
{
|
{
|
||||||
var ftex = new FTEX(tex);
|
var ftex = new FTEX(resFileU.Textures[i]);
|
||||||
texturesFolder.AddNode(ftex);
|
texturesFolder.AddNode(ftex);
|
||||||
ftex.UpdateMipMaps();
|
ftex.UpdateMipMaps();
|
||||||
}
|
}
|
||||||
@ -599,72 +694,72 @@ namespace FirstPlugin
|
|||||||
var group = new BFRESGroupNode(BRESGroupType.SkeletalAnim);
|
var group = new BFRESGroupNode(BRESGroupType.SkeletalAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.SkeletalAnim anim in resFileU.SkeletalAnims.Values)
|
for (int i = 0; i < resFileU.SkeletalAnims.Count; i++)
|
||||||
group.AddNode(new FSKA(anim));
|
group.AddNode(new FSKA(resFileU.SkeletalAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFileU.ShaderParamAnims.Count > 0)
|
if (resFileU.ShaderParamAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.ShaderParamAnim);
|
var group = new BFRESGroupNode(BRESGroupType.ShaderParamAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.ShaderParamAnim anim in resFileU.ShaderParamAnims.Values)
|
for (int i = 0; i < resFileU.ShaderParamAnims.Count; i++)
|
||||||
group.AddNode(new FSHU(anim, MaterialAnimation.AnimationType.ShaderParam));
|
group.AddNode(new FSHU(resFileU.ShaderParamAnims[i], MaterialAnimation.AnimationType.ShaderParam));
|
||||||
}
|
}
|
||||||
if (resFileU.ColorAnims.Count > 0)
|
if (resFileU.ColorAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.ColorAnim);
|
var group = new BFRESGroupNode(BRESGroupType.ColorAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.ShaderParamAnim anim in resFileU.ColorAnims.Values)
|
for (int i = 0; i < resFileU.ColorAnims.Count; i++)
|
||||||
group.AddNode(new FSHU(anim, MaterialAnimation.AnimationType.Color));
|
group.AddNode(new FSHU(resFileU.ColorAnims[i], MaterialAnimation.AnimationType.Color));
|
||||||
}
|
}
|
||||||
if (resFileU.TexSrtAnims.Count > 0)
|
if (resFileU.TexSrtAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.TexSrtAnim);
|
var group = new BFRESGroupNode(BRESGroupType.TexSrtAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.ShaderParamAnim anim in resFileU.TexSrtAnims.Values)
|
for (int i = 0; i < resFileU.TexSrtAnims.Count; i++)
|
||||||
group.AddNode(new FSHU(anim, MaterialAnimation.AnimationType.TexturePattern));
|
group.AddNode(new FSHU(resFileU.TexSrtAnims[i], MaterialAnimation.AnimationType.TexturePattern));
|
||||||
}
|
}
|
||||||
if (resFileU.TexPatternAnims.Count > 0)
|
if (resFileU.TexPatternAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.TexPatAnim);
|
var group = new BFRESGroupNode(BRESGroupType.TexPatAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.TexPatternAnim anim in resFileU.TexPatternAnims.Values)
|
for (int i = 0; i < resFileU.TexPatternAnims.Count; i++)
|
||||||
group.AddNode(new FTXP(anim));
|
group.AddNode(new FTXP(resFileU.TexPatternAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFileU.ShapeAnims.Count > 0)
|
if (resFileU.ShapeAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.ShapeAnim);
|
var group = new BFRESGroupNode(BRESGroupType.ShapeAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.ShapeAnim anim in resFileU.ShapeAnims.Values)
|
for (int i = 0; i < resFileU.ShapeAnims.Count; i++)
|
||||||
group.AddNode(new FSHA(anim));
|
group.AddNode(new FSHA(resFileU.ShapeAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFileU.BoneVisibilityAnims.Count > 0)
|
if (resFileU.BoneVisibilityAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.BoneVisAnim);
|
var group = new BFRESGroupNode(BRESGroupType.BoneVisAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.VisibilityAnim anim in resFileU.BoneVisibilityAnims.Values)
|
for (int i = 0; i < resFileU.BoneVisibilityAnims.Count; i++)
|
||||||
group.AddNode(new FVIS(anim));
|
group.AddNode(new FVIS(resFileU.BoneVisibilityAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFileU.MatVisibilityAnims.Count > 0)
|
if (resFileU.MatVisibilityAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.MatVisAnim);
|
var group = new BFRESGroupNode(BRESGroupType.MatVisAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.VisibilityAnim anim in resFileU.BoneVisibilityAnims.Values)
|
for (int i = 0; i < resFileU.MatVisibilityAnims.Count; i++)
|
||||||
group.AddNode(new FVIS(anim));
|
group.AddNode(new FVIS(resFileU.MatVisibilityAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFileU.SceneAnims.Count > 0)
|
if (resFileU.SceneAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.SceneAnim);
|
var group = new BFRESGroupNode(BRESGroupType.SceneAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ResU.SceneAnim anim in resFileU.SceneAnims.Values)
|
for (int i = 0; i < resFileU.SceneAnims.Count; i++)
|
||||||
group.AddNode(new FSCN(anim));
|
group.AddNode(new FSCN(resFileU.SceneAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFileU.ExternalFiles.Count > 0)
|
if (resFileU.ExternalFiles.Count > 0)
|
||||||
{
|
{
|
||||||
@ -673,8 +768,11 @@ namespace FirstPlugin
|
|||||||
externalFilesFolder.AddNode(new ExternalFileData(anim.Key, anim.Value.Data));
|
externalFilesFolder.AddNode(new ExternalFileData(anim.Key, anim.Value.Data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (PluginRuntime.UseSimpleBfresEditor)
|
||||||
|
LoadSimpleMode();
|
||||||
}
|
}
|
||||||
public void Load(ResFile res)
|
public void LoadFile(ResFile res)
|
||||||
{
|
{
|
||||||
resFile = res;
|
resFile = res;
|
||||||
|
|
||||||
@ -700,10 +798,10 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
if (resFile.Models.Count > 0)
|
if (resFile.Models.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (Model mdl in resFile.Models)
|
for (int i = 0; i < resFile.Models.Count; i++)
|
||||||
{
|
{
|
||||||
var fmdl = new FMDL();
|
var fmdl = new FMDL();
|
||||||
BfresSwitch.ReadModel(fmdl, mdl);
|
BfresSwitch.ReadModel(fmdl, resFile.Models[i]);
|
||||||
modelFolder.AddNode(fmdl);
|
modelFolder.AddNode(fmdl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -712,8 +810,8 @@ namespace FirstPlugin
|
|||||||
var group = new BFRESGroupNode(BRESGroupType.SkeletalAnim);
|
var group = new BFRESGroupNode(BRESGroupType.SkeletalAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (SkeletalAnim anim in resFile.SkeletalAnims)
|
for (int i = 0; i < resFile.SkeletalAnims.Count; i++)
|
||||||
group.AddNode(new FSKA(anim));
|
group.AddNode(new FSKA(resFile.SkeletalAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFile.MaterialAnims.Count > 0)
|
if (resFile.MaterialAnims.Count > 0)
|
||||||
{
|
{
|
||||||
@ -731,8 +829,9 @@ namespace FirstPlugin
|
|||||||
bool HasMatVisAnim = false;
|
bool HasMatVisAnim = false;
|
||||||
bool HasMaterialAnim = false;
|
bool HasMaterialAnim = false;
|
||||||
|
|
||||||
foreach (MaterialAnim anim in resFile.MaterialAnims)
|
for (int i = 0; i < resFile.MaterialAnims.Count; i++)
|
||||||
{
|
{
|
||||||
|
var anim = resFile.MaterialAnims[i];
|
||||||
if (FMAA.IsShaderParamAnimation(anim.Name))
|
if (FMAA.IsShaderParamAnimation(anim.Name))
|
||||||
{
|
{
|
||||||
group.AddNode(new FMAA(anim, MaterialAnimation.AnimationType.ShaderParam));
|
group.AddNode(new FMAA(anim, MaterialAnimation.AnimationType.ShaderParam));
|
||||||
@ -783,24 +882,24 @@ namespace FirstPlugin
|
|||||||
var group = new BFRESGroupNode(BRESGroupType.BoneVisAnim);
|
var group = new BFRESGroupNode(BRESGroupType.BoneVisAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (VisibilityAnim anim in resFile.BoneVisibilityAnims)
|
for (int i = 0; i < resFile.BoneVisibilityAnims.Count; i++)
|
||||||
group.AddNode(new FVIS(anim));
|
group.AddNode(new FVIS(resFile.BoneVisibilityAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFile.SceneAnims.Count > 0)
|
if (resFile.SceneAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.SceneAnim);
|
var group = new BFRESGroupNode(BRESGroupType.SceneAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (SceneAnim anim in resFile.SceneAnims)
|
for (int i = 0; i < resFile.SceneAnims.Count; i++)
|
||||||
group.AddNode(new FSCN(anim));
|
group.AddNode(new FSCN(resFile.SceneAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFile.ShapeAnims.Count > 0)
|
if (resFile.ShapeAnims.Count > 0)
|
||||||
{
|
{
|
||||||
var group = new BFRESGroupNode(BRESGroupType.ShapeAnim);
|
var group = new BFRESGroupNode(BRESGroupType.ShapeAnim);
|
||||||
animFolder.Nodes.Add(group);
|
animFolder.Nodes.Add(group);
|
||||||
|
|
||||||
foreach (ShapeAnim anim in resFile.ShapeAnims)
|
for (int i = 0; i < resFile.ShapeAnims.Count; i++)
|
||||||
group.AddNode(new FSHA(anim));
|
group.AddNode(new FSHA(resFile.ShapeAnims[i]));
|
||||||
}
|
}
|
||||||
if (resFile.ExternalFiles.Count > 0)
|
if (resFile.ExternalFiles.Count > 0)
|
||||||
{
|
{
|
||||||
@ -837,6 +936,9 @@ namespace FirstPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (PluginRuntime.UseSimpleBfresEditor)
|
||||||
|
LoadSimpleMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ReplaceNode(TreeNode node, TreeNode replaceNode, TreeNode NewNode)
|
public static void ReplaceNode(TreeNode node, TreeNode replaceNode, TreeNode NewNode)
|
||||||
|
@ -1036,7 +1036,7 @@ namespace Bfres.Structs
|
|||||||
private void CreateBones(STBone bone)
|
private void CreateBones(STBone bone)
|
||||||
{
|
{
|
||||||
Bone bn = new Bone();
|
Bone bn = new Bone();
|
||||||
bn.BillboardIndex = (ushort)bone.BillboardIndex;
|
bn.BillboardIndex = (short)bone.BillboardIndex;
|
||||||
bn.Flags = BoneFlags.Visible;
|
bn.Flags = BoneFlags.Visible;
|
||||||
bn.FlagsRotation = BoneFlagsRotation.EulerXYZ;
|
bn.FlagsRotation = BoneFlagsRotation.EulerXYZ;
|
||||||
bn.FlagsTransform = BoneFlagsTransform.None;
|
bn.FlagsTransform = BoneFlagsTransform.None;
|
||||||
|
@ -530,6 +530,31 @@ namespace Bfres.Structs
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class MatTextureWrapper : TreeNodeCustom
|
||||||
|
{
|
||||||
|
public MatTexture textureMap;
|
||||||
|
|
||||||
|
public MatTextureWrapper(string key, string text, MatTexture texture)
|
||||||
|
{
|
||||||
|
Name = key;
|
||||||
|
Text = text;
|
||||||
|
textureMap = texture;
|
||||||
|
|
||||||
|
ImageKey = "texture";
|
||||||
|
SelectedImageKey = "texture";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnClick(TreeView treeView)
|
||||||
|
{
|
||||||
|
UpdateEditor();
|
||||||
|
}
|
||||||
|
public void UpdateEditor()
|
||||||
|
{
|
||||||
|
((BFRES)Parent.Parent.Parent.Parent.Parent).LoadEditors(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class MatTexture : STGenericMatTexture
|
public class MatTexture : STGenericMatTexture
|
||||||
{
|
{
|
||||||
public string animatedTexName = "";
|
public string animatedTexName = "";
|
||||||
|
@ -281,7 +281,7 @@ namespace Bfres.Structs
|
|||||||
BoneU.Rotation = new Syroot.Maths.Vector4F(rotation[0], rotation[1], rotation[2], rotation[3]);
|
BoneU.Rotation = new Syroot.Maths.Vector4F(rotation[0], rotation[1], rotation[2], rotation[3]);
|
||||||
BoneU.Name = Text;
|
BoneU.Name = Text;
|
||||||
BoneU.Flags = FlagVisible ? ResU.BoneFlags.Visible : 0;
|
BoneU.Flags = FlagVisible ? ResU.BoneFlags.Visible : 0;
|
||||||
BoneU.ParentIndex = (ushort)parentIndex;
|
BoneU.ParentIndex = (short)parentIndex;
|
||||||
BoneU.SmoothMatrixIndex = SmoothMatrixIndex;
|
BoneU.SmoothMatrixIndex = SmoothMatrixIndex;
|
||||||
BoneU.RigidMatrixIndex = RigidMatrixIndex;
|
BoneU.RigidMatrixIndex = RigidMatrixIndex;
|
||||||
|
|
||||||
@ -294,7 +294,7 @@ namespace Bfres.Structs
|
|||||||
Bone.Rotation = new Syroot.Maths.Vector4F(rotation[0], rotation[1], rotation[2], rotation[3]);
|
Bone.Rotation = new Syroot.Maths.Vector4F(rotation[0], rotation[1], rotation[2], rotation[3]);
|
||||||
Bone.Name = Text;
|
Bone.Name = Text;
|
||||||
Bone.Flags = FlagVisible ? BoneFlags.Visible : 0;
|
Bone.Flags = FlagVisible ? BoneFlags.Visible : 0;
|
||||||
Bone.ParentIndex = (ushort)parentIndex;
|
Bone.ParentIndex = (short)parentIndex;
|
||||||
Bone.SmoothMatrixIndex = SmoothMatrixIndex;
|
Bone.SmoothMatrixIndex = SmoothMatrixIndex;
|
||||||
Bone.RigidMatrixIndex = RigidMatrixIndex;
|
Bone.RigidMatrixIndex = RigidMatrixIndex;
|
||||||
|
|
||||||
@ -341,7 +341,7 @@ namespace Bfres.Structs
|
|||||||
Nodes.Add(bn);
|
Nodes.Add(bn);
|
||||||
skeletonParent.bones.Add(bn);
|
skeletonParent.bones.Add(bn);
|
||||||
|
|
||||||
BoneU.ParentIndex = (ushort)bn.parentIndex;
|
BoneU.ParentIndex = (short)bn.parentIndex;
|
||||||
((FSKL)skeletonParent).AddBone(BoneU);
|
((FSKL)skeletonParent).AddBone(BoneU);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -221,13 +221,16 @@ namespace Bfres.Structs
|
|||||||
Nodes.Clear();
|
Nodes.Clear();
|
||||||
Bones.Clear();
|
Bones.Clear();
|
||||||
|
|
||||||
foreach (BoneAnim bn in ska.BoneAnims)
|
for (int i = 0; i < ska.BoneAnims.Count; i++)
|
||||||
{
|
{
|
||||||
|
var bn = ska.BoneAnims[i];
|
||||||
|
|
||||||
BoneAnimNode bone = new BoneAnimNode(bn.Name, false);
|
BoneAnimNode bone = new BoneAnimNode(bn.Name, false);
|
||||||
bone.BoneAnim = bn;
|
bone.BoneAnim = bn;
|
||||||
bone.UseSegmentScaleCompensate = bn.ApplySegmentScaleCompensate;
|
bone.UseSegmentScaleCompensate = bn.ApplySegmentScaleCompensate;
|
||||||
|
|
||||||
Bones.Add(bone);
|
Bones.Add(bone);
|
||||||
|
Nodes.Add(bone);
|
||||||
|
|
||||||
if (ska.FlagsRotate == SkeletalAnimFlagsRotate.EulerXYZ)
|
if (ska.FlagsRotate == SkeletalAnimFlagsRotate.EulerXYZ)
|
||||||
bone.RotType = Animation.RotationType.EULER;
|
bone.RotType = Animation.RotationType.EULER;
|
||||||
@ -287,6 +290,7 @@ namespace Bfres.Structs
|
|||||||
bone.UseSegmentScaleCompensate = bn.ApplySegmentScaleCompensate;
|
bone.UseSegmentScaleCompensate = bn.ApplySegmentScaleCompensate;
|
||||||
|
|
||||||
Bones.Add(bone);
|
Bones.Add(bone);
|
||||||
|
// Nodes.Add(bone);
|
||||||
|
|
||||||
if (ska.FlagsRotate == ResU.SkeletalAnimFlagsRotate.EulerXYZ)
|
if (ska.FlagsRotate == ResU.SkeletalAnimFlagsRotate.EulerXYZ)
|
||||||
bone.RotType = Animation.RotationType.EULER;
|
bone.RotType = Animation.RotationType.EULER;
|
||||||
|
@ -54,7 +54,7 @@ namespace FirstPlugin
|
|||||||
{
|
{
|
||||||
var mat = MatrixExenstion.GetMatrixInverted(bone);
|
var mat = MatrixExenstion.GetMatrixInverted(bone);
|
||||||
|
|
||||||
bn.ParentIndex = (ushort)bone.parentIndex;
|
bn.ParentIndex = (short)bone.parentIndex;
|
||||||
|
|
||||||
if (bn.SmoothMatrixIndex > -1)
|
if (bn.SmoothMatrixIndex > -1)
|
||||||
model.Skeleton.InverseModelMatrices[bn.SmoothMatrixIndex] = mat;
|
model.Skeleton.InverseModelMatrices[bn.SmoothMatrixIndex] = mat;
|
||||||
@ -572,7 +572,7 @@ namespace FirstPlugin
|
|||||||
ushort SmoothIndex = 0;
|
ushort SmoothIndex = 0;
|
||||||
foreach (STBone genericBone in Bones)
|
foreach (STBone genericBone in Bones)
|
||||||
{
|
{
|
||||||
genericBone.BillboardIndex = ushort.MaxValue;
|
genericBone.BillboardIndex = -1;
|
||||||
|
|
||||||
STConsole.WriteLine($"Applying bone " + genericBone.Text);
|
STConsole.WriteLine($"Applying bone " + genericBone.Text);
|
||||||
|
|
||||||
|
@ -916,7 +916,7 @@ namespace FirstPlugin
|
|||||||
ushort SmoothIndex = 0;
|
ushort SmoothIndex = 0;
|
||||||
foreach (STBone genericBone in Bones)
|
foreach (STBone genericBone in Bones)
|
||||||
{
|
{
|
||||||
genericBone.BillboardIndex = ushort.MaxValue;
|
genericBone.BillboardIndex = -1;
|
||||||
|
|
||||||
//Clone a generic bone with the generic data
|
//Clone a generic bone with the generic data
|
||||||
BfresBone bn = new BfresBone(fskl);
|
BfresBone bn = new BfresBone(fskl);
|
||||||
|
@ -69,15 +69,6 @@ namespace FirstPlugin
|
|||||||
UpdateTextureMaps();
|
UpdateTextureMaps();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadFile(ResU.ResFile resFileU)
|
|
||||||
{
|
|
||||||
ResFileNode.Load(resFileU);
|
|
||||||
}
|
|
||||||
public void LoadFile(ResFile resFile)
|
|
||||||
{
|
|
||||||
ResFileNode.Load(resFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Destroy()
|
public void Destroy()
|
||||||
{
|
{
|
||||||
bool buffersWereInitialized = ibo_elements != 0 && vbo_position != 0;
|
bool buffersWereInitialized = ibo_elements != 0 && vbo_position != 0;
|
||||||
|
230
Switch_FileFormatsMain/GUI/BFRES/Texture Sampler/SamplerEditorSimple.Designer.cs
generated
Normal file
230
Switch_FileFormatsMain/GUI/BFRES/Texture Sampler/SamplerEditorSimple.Designer.cs
generated
Normal file
@ -0,0 +1,230 @@
|
|||||||
|
namespace FirstPlugin.Forms
|
||||||
|
{
|
||||||
|
partial class SamplerEditorSimple
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Component Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SamplerEditorSimple));
|
||||||
|
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||||
|
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||||
|
this.stPanel1 = new Switch_Toolbox.Library.Forms.STPanel();
|
||||||
|
this.stLabel3 = new Switch_Toolbox.Library.Forms.STLabel();
|
||||||
|
this.stTextBox2 = new Switch_Toolbox.Library.Forms.STTextBox();
|
||||||
|
this.samplerCB = new Switch_Toolbox.Library.Forms.STComboBox();
|
||||||
|
this.stLabel2 = new Switch_Toolbox.Library.Forms.STLabel();
|
||||||
|
this.stButton1 = new Switch_Toolbox.Library.Forms.STButton();
|
||||||
|
this.nameTB = new Switch_Toolbox.Library.Forms.STTextBox();
|
||||||
|
this.stLabel1 = new Switch_Toolbox.Library.Forms.STLabel();
|
||||||
|
this.stPropertyGrid1 = new Switch_Toolbox.Library.Forms.STPropertyGrid();
|
||||||
|
this.textureBP = new Switch_Toolbox.Library.Forms.PictureBoxCustom();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||||
|
this.splitContainer1.Panel1.SuspendLayout();
|
||||||
|
this.splitContainer1.Panel2.SuspendLayout();
|
||||||
|
this.splitContainer1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
|
||||||
|
this.splitContainer2.Panel1.SuspendLayout();
|
||||||
|
this.splitContainer2.Panel2.SuspendLayout();
|
||||||
|
this.splitContainer2.SuspendLayout();
|
||||||
|
this.stPanel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.textureBP)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// splitContainer1
|
||||||
|
//
|
||||||
|
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.splitContainer1.Name = "splitContainer1";
|
||||||
|
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel1
|
||||||
|
//
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.splitContainer2);
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel2
|
||||||
|
//
|
||||||
|
this.splitContainer1.Panel2.Controls.Add(this.textureBP);
|
||||||
|
this.splitContainer1.Size = new System.Drawing.Size(585, 522);
|
||||||
|
this.splitContainer1.SplitterDistance = 299;
|
||||||
|
this.splitContainer1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// splitContainer2
|
||||||
|
//
|
||||||
|
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.splitContainer2.Name = "splitContainer2";
|
||||||
|
//
|
||||||
|
// splitContainer2.Panel1
|
||||||
|
//
|
||||||
|
this.splitContainer2.Panel1.Controls.Add(this.stPanel1);
|
||||||
|
//
|
||||||
|
// splitContainer2.Panel2
|
||||||
|
//
|
||||||
|
this.splitContainer2.Panel2.Controls.Add(this.stPropertyGrid1);
|
||||||
|
this.splitContainer2.Size = new System.Drawing.Size(585, 299);
|
||||||
|
this.splitContainer2.SplitterDistance = 277;
|
||||||
|
this.splitContainer2.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// stPanel1
|
||||||
|
//
|
||||||
|
this.stPanel1.Controls.Add(this.stLabel3);
|
||||||
|
this.stPanel1.Controls.Add(this.stTextBox2);
|
||||||
|
this.stPanel1.Controls.Add(this.samplerCB);
|
||||||
|
this.stPanel1.Controls.Add(this.stLabel2);
|
||||||
|
this.stPanel1.Controls.Add(this.stButton1);
|
||||||
|
this.stPanel1.Controls.Add(this.nameTB);
|
||||||
|
this.stPanel1.Controls.Add(this.stLabel1);
|
||||||
|
this.stPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.stPanel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.stPanel1.Name = "stPanel1";
|
||||||
|
this.stPanel1.Size = new System.Drawing.Size(277, 299);
|
||||||
|
this.stPanel1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// stLabel3
|
||||||
|
//
|
||||||
|
this.stLabel3.AutoSize = true;
|
||||||
|
this.stLabel3.Location = new System.Drawing.Point(5, 87);
|
||||||
|
this.stLabel3.Name = "stLabel3";
|
||||||
|
this.stLabel3.Size = new System.Drawing.Size(29, 13);
|
||||||
|
this.stLabel3.TabIndex = 6;
|
||||||
|
this.stLabel3.Text = "Hint:";
|
||||||
|
//
|
||||||
|
// stTextBox2
|
||||||
|
//
|
||||||
|
this.stTextBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.stTextBox2.Location = new System.Drawing.Point(67, 85);
|
||||||
|
this.stTextBox2.Name = "stTextBox2";
|
||||||
|
this.stTextBox2.Size = new System.Drawing.Size(207, 20);
|
||||||
|
this.stTextBox2.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// samplerCB
|
||||||
|
//
|
||||||
|
this.samplerCB.BorderColor = System.Drawing.Color.Empty;
|
||||||
|
this.samplerCB.BorderStyle = System.Windows.Forms.ButtonBorderStyle.Solid;
|
||||||
|
this.samplerCB.ButtonColor = System.Drawing.Color.Empty;
|
||||||
|
this.samplerCB.FormattingEnabled = true;
|
||||||
|
this.samplerCB.Location = new System.Drawing.Point(68, 58);
|
||||||
|
this.samplerCB.Name = "samplerCB";
|
||||||
|
this.samplerCB.ReadOnly = true;
|
||||||
|
this.samplerCB.Size = new System.Drawing.Size(206, 21);
|
||||||
|
this.samplerCB.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// stLabel2
|
||||||
|
//
|
||||||
|
this.stLabel2.AutoSize = true;
|
||||||
|
this.stLabel2.Location = new System.Drawing.Point(3, 61);
|
||||||
|
this.stLabel2.Name = "stLabel2";
|
||||||
|
this.stLabel2.Size = new System.Drawing.Size(48, 13);
|
||||||
|
this.stLabel2.TabIndex = 3;
|
||||||
|
this.stLabel2.Text = "Sampler:";
|
||||||
|
//
|
||||||
|
// stButton1
|
||||||
|
//
|
||||||
|
this.stButton1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||||
|
this.stButton1.Location = new System.Drawing.Point(220, 29);
|
||||||
|
this.stButton1.Name = "stButton1";
|
||||||
|
this.stButton1.Size = new System.Drawing.Size(54, 23);
|
||||||
|
this.stButton1.TabIndex = 2;
|
||||||
|
this.stButton1.Text = "Edit:";
|
||||||
|
this.stButton1.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
|
// nameTB
|
||||||
|
//
|
||||||
|
this.nameTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.nameTB.Location = new System.Drawing.Point(8, 32);
|
||||||
|
this.nameTB.Name = "nameTB";
|
||||||
|
this.nameTB.Size = new System.Drawing.Size(207, 20);
|
||||||
|
this.nameTB.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// stLabel1
|
||||||
|
//
|
||||||
|
this.stLabel1.AutoSize = true;
|
||||||
|
this.stLabel1.Location = new System.Drawing.Point(5, 10);
|
||||||
|
this.stLabel1.Name = "stLabel1";
|
||||||
|
this.stLabel1.Size = new System.Drawing.Size(46, 13);
|
||||||
|
this.stLabel1.TabIndex = 0;
|
||||||
|
this.stLabel1.Text = "Texture:";
|
||||||
|
//
|
||||||
|
// stPropertyGrid1
|
||||||
|
//
|
||||||
|
this.stPropertyGrid1.AutoScroll = true;
|
||||||
|
this.stPropertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.stPropertyGrid1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.stPropertyGrid1.Name = "stPropertyGrid1";
|
||||||
|
this.stPropertyGrid1.ShowHintDisplay = true;
|
||||||
|
this.stPropertyGrid1.Size = new System.Drawing.Size(304, 299);
|
||||||
|
this.stPropertyGrid1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// textureBP
|
||||||
|
//
|
||||||
|
this.textureBP.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.textureBP.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("textureBP.BackgroundImage")));
|
||||||
|
this.textureBP.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.textureBP.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.textureBP.Name = "textureBP";
|
||||||
|
this.textureBP.Size = new System.Drawing.Size(585, 219);
|
||||||
|
this.textureBP.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.textureBP.TabIndex = 0;
|
||||||
|
this.textureBP.TabStop = false;
|
||||||
|
//
|
||||||
|
// SamplerEditorSimple
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.splitContainer1);
|
||||||
|
this.Name = "SamplerEditorSimple";
|
||||||
|
this.Size = new System.Drawing.Size(585, 522);
|
||||||
|
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||||
|
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||||
|
this.splitContainer1.ResumeLayout(false);
|
||||||
|
this.splitContainer2.Panel1.ResumeLayout(false);
|
||||||
|
this.splitContainer2.Panel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
|
||||||
|
this.splitContainer2.ResumeLayout(false);
|
||||||
|
this.stPanel1.ResumeLayout(false);
|
||||||
|
this.stPanel1.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.textureBP)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||||
|
private System.Windows.Forms.SplitContainer splitContainer2;
|
||||||
|
private Switch_Toolbox.Library.Forms.STPanel stPanel1;
|
||||||
|
private Switch_Toolbox.Library.Forms.STLabel stLabel3;
|
||||||
|
private Switch_Toolbox.Library.Forms.STTextBox stTextBox2;
|
||||||
|
private Switch_Toolbox.Library.Forms.STComboBox samplerCB;
|
||||||
|
private Switch_Toolbox.Library.Forms.STLabel stLabel2;
|
||||||
|
private Switch_Toolbox.Library.Forms.STButton stButton1;
|
||||||
|
private Switch_Toolbox.Library.Forms.STTextBox nameTB;
|
||||||
|
private Switch_Toolbox.Library.Forms.STLabel stLabel1;
|
||||||
|
private Switch_Toolbox.Library.Forms.STPropertyGrid stPropertyGrid1;
|
||||||
|
private Switch_Toolbox.Library.Forms.PictureBoxCustom textureBP;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,76 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Data;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Bfres.Structs;
|
||||||
|
|
||||||
|
namespace FirstPlugin.Forms
|
||||||
|
{
|
||||||
|
public partial class SamplerEditorSimple : UserControl
|
||||||
|
{
|
||||||
|
private Thread Thread;
|
||||||
|
|
||||||
|
public SamplerEditorSimple()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadTexture(MatTexture texture)
|
||||||
|
{
|
||||||
|
nameTB.Text = texture.Name;
|
||||||
|
|
||||||
|
samplerCB.Items.Clear();
|
||||||
|
samplerCB.Items.Add(texture.SamplerName);
|
||||||
|
samplerCB.SelectedItem = texture.SamplerName;
|
||||||
|
|
||||||
|
if (texture.wiiUSampler != null)
|
||||||
|
{
|
||||||
|
stPropertyGrid1.LoadProperty(texture.wiiUSampler , OnPropertyChanged);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
stPropertyGrid1.LoadProperty(texture.switchSampler, OnPropertyChanged);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (BNTX bntx in PluginRuntime.bntxContainers)
|
||||||
|
{
|
||||||
|
if (bntx.Textures.ContainsKey(texture.Name))
|
||||||
|
{
|
||||||
|
Thread = new Thread((ThreadStart)(() =>
|
||||||
|
{
|
||||||
|
textureBP.Image = Switch_Toolbox.Library.Imaging.GetLoadingImage();
|
||||||
|
textureBP.Image = bntx.Textures[texture.Name].GetBitmap();
|
||||||
|
}));
|
||||||
|
Thread.Start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (BFRESGroupNode ftexCont in PluginRuntime.ftexContainers)
|
||||||
|
{
|
||||||
|
if (ftexCont.ResourceNodes.ContainsKey(texture.Name))
|
||||||
|
{
|
||||||
|
Thread = new Thread((ThreadStart)(() =>
|
||||||
|
{
|
||||||
|
textureBP.Image = Switch_Toolbox.Library.Imaging.GetLoadingImage();
|
||||||
|
textureBP.Image = ((FTEX)ftexCont.ResourceNodes[texture.Name]).GetBitmap();
|
||||||
|
}));
|
||||||
|
Thread.Start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPropertyChanged()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void stTextBox2_TextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,328 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="textureBP.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAMAAACJuGjuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||||
|
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEXMzMzNzc3Ozs7Pz8/Q0NDR0dHS
|
||||||
|
0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm
|
||||||
|
5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6
|
||||||
|
+vr7+/v8/Pz9/f3+/v7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
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
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
@ -9,7 +9,7 @@ namespace FirstPlugin
|
|||||||
{
|
{
|
||||||
public class PluginRuntime
|
public class PluginRuntime
|
||||||
{
|
{
|
||||||
public static bool UseSimpleBfresEditor = false;
|
public static bool UseSimpleBfresEditor = true;
|
||||||
|
|
||||||
public static Dictionary<string, BFLIM> bflimTextures = new Dictionary<string, BFLIM>();
|
public static Dictionary<string, BFLIM> bflimTextures = new Dictionary<string, BFLIM>();
|
||||||
public static List<BNTX> bntxContainers = new List<BNTX>();
|
public static List<BNTX> bntxContainers = new List<BNTX>();
|
||||||
|
@ -200,7 +200,7 @@
|
|||||||
<Compile Include="FileFormats\Audio\MP3.cs" />
|
<Compile Include="FileFormats\Audio\MP3.cs" />
|
||||||
<Compile Include="FileFormats\Audio\Ogg.cs" />
|
<Compile Include="FileFormats\Audio\Ogg.cs" />
|
||||||
<Compile Include="FileFormats\Audio\WAV.cs" />
|
<Compile Include="FileFormats\Audio\WAV.cs" />
|
||||||
<Compile Include="FileFormats\BFRES\BFRESGroup.cs" />
|
<Compile Include="FileFormats\BFRES\BFRESGroupNode.cs" />
|
||||||
<Compile Include="FileFormats\BFRES\BFRESAnimFolder.cs" />
|
<Compile Include="FileFormats\BFRES\BFRESAnimFolder.cs" />
|
||||||
<Compile Include="FileFormats\BFRES\gfxEnum.cs" />
|
<Compile Include="FileFormats\BFRES\gfxEnum.cs" />
|
||||||
<Compile Include="FileFormats\BFRES\GLEnumConverter.cs" />
|
<Compile Include="FileFormats\BFRES\GLEnumConverter.cs" />
|
||||||
@ -309,6 +309,12 @@
|
|||||||
<Compile Include="GUI\BFRES\Shape\VertexBufferEncodeEditor.Designer.cs">
|
<Compile Include="GUI\BFRES\Shape\VertexBufferEncodeEditor.Designer.cs">
|
||||||
<DependentUpon>VertexBufferEncodeEditor.cs</DependentUpon>
|
<DependentUpon>VertexBufferEncodeEditor.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="GUI\BFRES\Texture Sampler\SamplerEditorSimple.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="GUI\BFRES\Texture Sampler\SamplerEditorSimple.Designer.cs">
|
||||||
|
<DependentUpon>SamplerEditorSimple.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="GUI\BFRES\TexturePattern\AddSamplerKeyGroup.cs">
|
<Compile Include="GUI\BFRES\TexturePattern\AddSamplerKeyGroup.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -939,6 +945,9 @@
|
|||||||
<EmbeddedResource Include="GUI\BFRES\Materials\RenderInfoDataEditor.resx">
|
<EmbeddedResource Include="GUI\BFRES\Materials\RenderInfoDataEditor.resx">
|
||||||
<DependentUpon>RenderInfoDataEditor.cs</DependentUpon>
|
<DependentUpon>RenderInfoDataEditor.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="GUI\BFRES\Texture Sampler\SamplerEditorSimple.resx">
|
||||||
|
<DependentUpon>SamplerEditorSimple.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="GUI\BFRES\TexturePattern\AddSamplerKeyGroup.resx">
|
<EmbeddedResource Include="GUI\BFRES\TexturePattern\AddSamplerKeyGroup.resx">
|
||||||
<DependentUpon>AddSamplerKeyGroup.cs</DependentUpon>
|
<DependentUpon>AddSamplerKeyGroup.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
5b4c9d5675ade4ad129780633801a37156738757
|
75aca8a71972838de6e8f123a623f1026e38bd08
|
||||||
|
@ -321,3 +321,4 @@ C:\Users\Nathan\Documents\GitHub\SwitchToolboxV1\Toolbox\bin\Release\Lib\Plugins
|
|||||||
C:\Users\Nathan\Documents\GitHub\SwitchToolboxV1\Switch_FileFormatsMain\obj\Release\Switch_FileFormatsMain.csproj.CopyComplete
|
C:\Users\Nathan\Documents\GitHub\SwitchToolboxV1\Switch_FileFormatsMain\obj\Release\Switch_FileFormatsMain.csproj.CopyComplete
|
||||||
C:\Users\Nathan\Documents\GitHub\SwitchToolboxV1\Switch_FileFormatsMain\obj\Release\FirstPlugin.Forms.CollisionMaterialEditor.resources
|
C:\Users\Nathan\Documents\GitHub\SwitchToolboxV1\Switch_FileFormatsMain\obj\Release\FirstPlugin.Forms.CollisionMaterialEditor.resources
|
||||||
C:\Users\Nathan\Documents\GitHub\SwitchToolboxV1\Switch_FileFormatsMain\obj\Release\FirstPlugin.Forms.MSBTEditor.resources
|
C:\Users\Nathan\Documents\GitHub\SwitchToolboxV1\Switch_FileFormatsMain\obj\Release\FirstPlugin.Forms.MSBTEditor.resources
|
||||||
|
C:\Users\Nathan\Documents\GitHub\SwitchToolboxV1\Switch_FileFormatsMain\obj\Release\FirstPlugin.Forms.SamplerEditorSimple.resources
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -271,7 +271,7 @@ namespace Switch_Toolbox.Library
|
|||||||
|
|
||||||
public void DisposeRenderable()
|
public void DisposeRenderable()
|
||||||
{
|
{
|
||||||
if (RenderableTex != null)
|
if (RenderableTex != null && Runtime.UseViewport)
|
||||||
{
|
{
|
||||||
RenderableTex.Dispose();
|
RenderableTex.Dispose();
|
||||||
RenderableTex = null;
|
RenderableTex = null;
|
||||||
|
@ -25,7 +25,7 @@ namespace Switch_Toolbox.Library
|
|||||||
|
|
||||||
public STSkeleton skeletonParent;
|
public STSkeleton skeletonParent;
|
||||||
public BoneRotationType RotationType;
|
public BoneRotationType RotationType;
|
||||||
public ushort BillboardIndex;
|
public short BillboardIndex;
|
||||||
public short RigidMatrixIndex;
|
public short RigidMatrixIndex;
|
||||||
public short SmoothMatrixIndex;
|
public short SmoothMatrixIndex;
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -2968,6 +2968,7 @@
|
|||||||
<summary>
|
<summary>
|
||||||
Gets or sets the minimum LoD level.
|
Gets or sets the minimum LoD level.
|
||||||
</summary>
|
</summary>
|
||||||
|
|
||||||
</member>
|
</member>
|
||||||
<member name="P:Syroot.NintenTools.Bfres.GX2.TexSampler.MaxLod">
|
<member name="P:Syroot.NintenTools.Bfres.GX2.TexSampler.MaxLod">
|
||||||
<summary>
|
<summary>
|
||||||
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user