mirror of
https://github.com/KillzXGaming/Switch-Toolbox
synced 2024-11-16 09:38:05 +00:00
Add textures to later ptcl versions
This commit is contained in:
parent
1d99b14bfe
commit
edb5c230ca
10 changed files with 129 additions and 4 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -824,12 +824,26 @@ namespace FirstPlugin
|
||||||
botwTex.Add((TEXR)((SectionBase)node).BinaryData);
|
botwTex.Add((TEXR)((SectionBase)node).BinaryData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
if (botwTex.Count > 0)
|
if (botwTex.Count > 0)
|
||||||
{
|
{
|
||||||
|
TreeNode textureFolder = new TreeNode("Textures");
|
||||||
|
ptcl.Nodes.Add(textureFolder);
|
||||||
|
|
||||||
|
List<TEXR> TextureList = new List<TEXR>();
|
||||||
|
|
||||||
foreach (var emitter in emitters)
|
foreach (var emitter in emitters)
|
||||||
{
|
{
|
||||||
foreach (TEXR tex in botwTex)
|
foreach (TEXR tex in botwTex)
|
||||||
{
|
{
|
||||||
|
bool HasImage = TextureList.Any(item => item.data == tex.data);
|
||||||
|
if (!HasImage)
|
||||||
|
{
|
||||||
|
tex.Text = "Texture " + index++;
|
||||||
|
textureFolder.Nodes.Add(tex);
|
||||||
|
}
|
||||||
|
TextureList.Add(tex);
|
||||||
|
|
||||||
foreach (var sampler in emitter.Samplers)
|
foreach (var sampler in emitter.Samplers)
|
||||||
{
|
{
|
||||||
if (sampler.TextureID == tex.TextureID)
|
if (sampler.TextureID == tex.TextureID)
|
||||||
|
@ -839,6 +853,7 @@ namespace FirstPlugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
TextureList.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1149,6 +1164,32 @@ namespace FirstPlugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TEXR()
|
||||||
|
{
|
||||||
|
ImageKey = "Texture";
|
||||||
|
SelectedImageKey = "Texture";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnClick(TreeView treeView)
|
||||||
|
{
|
||||||
|
UpdateEditor();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateEditor()
|
||||||
|
{
|
||||||
|
ImageEditorBase editor = (ImageEditorBase)LibraryGUI.Instance.GetActiveContent(typeof(ImageEditorBase));
|
||||||
|
if (editor == null)
|
||||||
|
{
|
||||||
|
editor = new ImageEditorBase();
|
||||||
|
editor.Dock = DockStyle.Fill;
|
||||||
|
LibraryGUI.Instance.LoadEditor(editor);
|
||||||
|
}
|
||||||
|
|
||||||
|
editor.Text = Text;
|
||||||
|
editor.LoadProperties(GenericProperties);
|
||||||
|
editor.LoadImage(this);
|
||||||
|
}
|
||||||
|
|
||||||
public override bool CanEdit { get; set; } = false;
|
public override bool CanEdit { get; set; } = false;
|
||||||
|
|
||||||
public enum SurfaceFormat : byte
|
public enum SurfaceFormat : byte
|
||||||
|
|
|
@ -9,6 +9,11 @@ using System.ComponentModel;
|
||||||
|
|
||||||
namespace FirstPlugin.Turbo.CourseMuuntStructs
|
namespace FirstPlugin.Turbo.CourseMuuntStructs
|
||||||
{
|
{
|
||||||
|
public interface IObj
|
||||||
|
{
|
||||||
|
dynamic this[string name] { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class CourseMuuntScene
|
public class CourseMuuntScene
|
||||||
{
|
{
|
||||||
private dynamic root;
|
private dynamic root;
|
||||||
|
@ -164,6 +169,13 @@ namespace FirstPlugin.Turbo.CourseMuuntStructs
|
||||||
root = rootNode;
|
root = rootNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<BFRES> BfresObjects = new List<BFRES>();
|
public List<BFRES> BfresObjects = new List<BFRES>();
|
||||||
public List<KCL> KclObjects = new List<KCL>();
|
public List<KCL> KclObjects = new List<KCL>();
|
||||||
|
|
||||||
|
@ -180,6 +192,17 @@ namespace FirstPlugin.Turbo.CourseMuuntStructs
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class IntroCamera
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EnemyPaths
|
||||||
|
{
|
||||||
|
private dynamic root;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public class Path
|
public class Path
|
||||||
{
|
{
|
||||||
public List<object> Properties = new List<object>();
|
public List<object> Properties = new List<object>();
|
||||||
|
@ -187,8 +210,37 @@ namespace FirstPlugin.Turbo.CourseMuuntStructs
|
||||||
public List<PathPoint> PathPoints = new List<PathPoint>();
|
public List<PathPoint> PathPoints = new List<PathPoint>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PathPoint
|
public class PathPoint : IObj
|
||||||
{
|
{
|
||||||
|
public const string N_Translate = "Translate";
|
||||||
|
public const string N_Rotate = "Rotate";
|
||||||
|
public const string N_Scale = "Scale";
|
||||||
|
public const string N_Id = "UnitIdNum";
|
||||||
|
public const string N_ObjectID = "ObjId";
|
||||||
|
|
||||||
|
public PathPoint(dynamic bymlNode)
|
||||||
|
{
|
||||||
|
if (bymlNode is Dictionary<string, dynamic>) Prop = (Dictionary<string, dynamic>)bymlNode;
|
||||||
|
else throw new Exception("Not a dictionary");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
|
public Dictionary<string, dynamic> Prop { get; set; } = new Dictionary<string, dynamic>();
|
||||||
|
|
||||||
|
public dynamic this[string name]
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Prop.ContainsKey(name)) return Prop[name];
|
||||||
|
else return null;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (Prop.ContainsKey(name)) Prop[name] = value;
|
||||||
|
else Prop.Add(name, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public List<object> Properties = new List<object>();
|
public List<object> Properties = new List<object>();
|
||||||
|
|
||||||
public List<NextPoint> NextPoints = new List<NextPoint>();
|
public List<NextPoint> NextPoints = new List<NextPoint>();
|
||||||
|
@ -196,9 +248,41 @@ namespace FirstPlugin.Turbo.CourseMuuntStructs
|
||||||
|
|
||||||
public List<ControlPoint> ControlPoints = new List<ControlPoint>();
|
public List<ControlPoint> ControlPoints = new List<ControlPoint>();
|
||||||
|
|
||||||
public Vector3 Rotate;
|
[Category("Rotate")]
|
||||||
public Vector3 Scale;
|
public Vector3 Rotate
|
||||||
public Vector3 Translate;
|
{
|
||||||
|
get { return new Vector3(this[N_Rotate]["X"], this[N_Rotate]["Y"], this[N_Rotate]["Z"]); ; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this[N_Rotate]["X"] = value.X;
|
||||||
|
this[N_Rotate]["Y"] = value.Y;
|
||||||
|
this[N_Rotate]["Z"] = value.Z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Category("Scale")]
|
||||||
|
public Vector3 Scale
|
||||||
|
{
|
||||||
|
get { return new Vector3(this[N_Scale]["X"], this[N_Scale]["Y"], this[N_Scale]["Z"]); ; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this[N_Scale]["X"] = value.X;
|
||||||
|
this[N_Scale]["Y"] = value.Y;
|
||||||
|
this[N_Scale]["Z"] = value.Z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Category("Translate")]
|
||||||
|
public Vector3 Translate
|
||||||
|
{
|
||||||
|
get { return new Vector3(this[N_Translate]["X"], this[N_Translate]["Y"], this[N_Translate]["Z"]); ; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this[N_Translate]["X"] = value.X;
|
||||||
|
this[N_Translate]["Y"] = value.Y;
|
||||||
|
this[N_Translate]["Z"] = value.Z;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PointId
|
public class PointId
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue