summaryrefslogtreecommitdiffstats
path: root/Scripts/Fold/Editor
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/Fold/Editor')
-rw-r--r--Scripts/Fold/Editor/BaseFoldNode.cs7
-rw-r--r--Scripts/Fold/Editor/FoldGraphView.cs20
-rw-r--r--Scripts/Fold/Editor/FoldToolbarView.cs17
-rw-r--r--Scripts/Fold/Editor/FoldWindow.cs41
-rw-r--r--Scripts/Fold/Editor/PointAlignNode.cs15
5 files changed, 100 insertions, 0 deletions
diff --git a/Scripts/Fold/Editor/BaseFoldNode.cs b/Scripts/Fold/Editor/BaseFoldNode.cs
new file mode 100644
index 0000000..611e1be
--- /dev/null
+++ b/Scripts/Fold/Editor/BaseFoldNode.cs
@@ -0,0 +1,7 @@
+using GraphProcessor;
+
+public class BaseFoldNode : BaseNode
+{
+ [Input(name = "Input")]
+ public BaseNode input;
+}
diff --git a/Scripts/Fold/Editor/FoldGraphView.cs b/Scripts/Fold/Editor/FoldGraphView.cs
new file mode 100644
index 0000000..7b592cd
--- /dev/null
+++ b/Scripts/Fold/Editor/FoldGraphView.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+using UnityEditor;
+using GraphProcessor;
+using System;
+using System.Collections.Generic;
+
+public class FoldGraphView : BaseGraphView
+{
+ public FoldGraphView(EditorWindow window) : base(window) {}
+
+ public override IEnumerable<(string path, Type type)> FilterCreateNodeMenuEntries()
+ {
+ // Only return our subset of nodes
+ foreach (var nodeMenuItem in NodeProvider.GetNodeMenuEntries(graph))
+ {
+ if (typeof(BaseFoldNode).IsAssignableFrom(nodeMenuItem.type))
+ yield return nodeMenuItem;
+ }
+ }
+}
diff --git a/Scripts/Fold/Editor/FoldToolbarView.cs b/Scripts/Fold/Editor/FoldToolbarView.cs
new file mode 100644
index 0000000..1d31fd7
--- /dev/null
+++ b/Scripts/Fold/Editor/FoldToolbarView.cs
@@ -0,0 +1,17 @@
+using GraphProcessor;
+using UnityEngine;
+using UnityEditor;
+
+public class FoldToolbarView : ToolbarView
+{
+ public FoldToolbarView(BaseGraphView graphView) : base(graphView) {}
+
+ protected override void AddButtons()
+ {
+ base.AddButtons();
+
+ AddButton("Generate keyframe", () => {
+ // TODO
+ });
+ }
+}
diff --git a/Scripts/Fold/Editor/FoldWindow.cs b/Scripts/Fold/Editor/FoldWindow.cs
new file mode 100644
index 0000000..186008c
--- /dev/null
+++ b/Scripts/Fold/Editor/FoldWindow.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+using UnityEditor;
+using GraphProcessor;
+
+public class FoldWindow : BaseGraphWindow
+{
+ BaseGraph tmpGraph;
+
+ [MenuItem("Tools/yum_food/Fold")]
+ public static BaseGraphWindow Open()
+ {
+ var graphWindow = CreateWindow<FoldWindow>();
+
+ graphWindow.tmpGraph = ScriptableObject.CreateInstance<BaseGraph>();
+ graphWindow.tmpGraph.hideFlags = HideFlags.HideAndDontSave;
+ graphWindow.InitializeGraph(graphWindow.tmpGraph);
+
+ graphWindow.Show();
+ return graphWindow;
+ }
+
+ protected override void OnDestroy()
+ {
+ graphView?.Dispose();
+ DestroyImmediate(tmpGraph);
+ }
+
+ protected override void InitializeWindow(BaseGraph graph)
+ {
+ titleContent = new GUIContent("Fold");
+
+ if (graphView == null)
+ {
+ graphView = new FoldGraphView(this);
+ graphView.Add(new FoldToolbarView(graphView));
+ }
+
+ rootView.Add(graphView);
+ }
+}
+
diff --git a/Scripts/Fold/Editor/PointAlignNode.cs b/Scripts/Fold/Editor/PointAlignNode.cs
new file mode 100644
index 0000000..9a3f913
--- /dev/null
+++ b/Scripts/Fold/Editor/PointAlignNode.cs
@@ -0,0 +1,15 @@
+using GraphProcessor;
+using UnityEngine;
+
+[System.Serializable, NodeMenuItem("Fold/PointAlign")]
+public class PointAlignNode : BaseFoldNode
+{
+ [Input(name = "po")]
+ public float po;
+
+ [Output(name = "Out")]
+ public PointAlignNode output;
+
+ public override string name => "Point Align";
+}
+