diff options
| -rw-r--r-- | Scripts/Fold/Editor/BaseFoldNode.cs | 7 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/FoldGraphView.cs | 20 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/FoldToolbarView.cs | 17 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/FoldWindow.cs | 41 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/PointAlignNode.cs | 15 |
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"; +} + |
