diff options
Diffstat (limited to 'Scripts')
| -rw-r--r-- | Scripts/Fold/Editor/BaseFoldNode.cs | 9 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/FoldGraphView.cs | 11 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/FoldNodeSerialized.cs | 15 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/KeyframeNode.cs | 5 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/KeyframeNodeView.cs | 2 | ||||
| -rw-r--r-- | Scripts/Fold/Editor/PointAlignNode.cs | 17 |
6 files changed, 48 insertions, 11 deletions
diff --git a/Scripts/Fold/Editor/BaseFoldNode.cs b/Scripts/Fold/Editor/BaseFoldNode.cs index c779092..203a89a 100644 --- a/Scripts/Fold/Editor/BaseFoldNode.cs +++ b/Scripts/Fold/Editor/BaseFoldNode.cs @@ -1,4 +1,11 @@ using GraphProcessor; -public class BaseFoldNode : BaseNode {} +public abstract class BaseFoldNode : BaseNode +{ + [Input(name = "Input")] + public BaseFoldNode input; + + // Generate a generic representation of the node. This is used for animation. + public abstract FoldNodeSerialized Serialize(); +} diff --git a/Scripts/Fold/Editor/FoldGraphView.cs b/Scripts/Fold/Editor/FoldGraphView.cs index f77e97b..b8911c1 100644 --- a/Scripts/Fold/Editor/FoldGraphView.cs +++ b/Scripts/Fold/Editor/FoldGraphView.cs @@ -11,8 +11,15 @@ public class FoldGraphView : BaseGraphView public override IEnumerable<(string path, Type type)> FilterCreateNodeMenuEntries() { - return NodeProvider.GetNodeMenuEntries(graph) - .Where(entry => typeof(BaseFoldNode).IsAssignableFrom(entry.type)); + return NodeProvider.GetNodeMenuEntries(graph) + .Where(entry => + typeof(BaseFoldNode).IsAssignableFrom(entry.type) || + typeof(KeyframeNode).IsAssignableFrom(entry.type) || + // Whitelist a few built in nodes that we use. + typeof(FloatNode).IsAssignableFrom(entry.type) || + typeof(GameObjectNode).IsAssignableFrom(entry.type) || + typeof(VectorNode).IsAssignableFrom(entry.type) + ); } } diff --git a/Scripts/Fold/Editor/FoldNodeSerialized.cs b/Scripts/Fold/Editor/FoldNodeSerialized.cs new file mode 100644 index 0000000..4836811 --- /dev/null +++ b/Scripts/Fold/Editor/FoldNodeSerialized.cs @@ -0,0 +1,15 @@ +using UnityEngine; + +public class FoldNodeSerialized +{ + public float float0; + public float float1; + public float float2; + public float float3; + + public Vector4 vec0; + public Vector4 vec1; + public Vector4 vec2; + public Vector4 vec3; +}; + diff --git a/Scripts/Fold/Editor/KeyframeNode.cs b/Scripts/Fold/Editor/KeyframeNode.cs index d82bf51..7e4c828 100644 --- a/Scripts/Fold/Editor/KeyframeNode.cs +++ b/Scripts/Fold/Editor/KeyframeNode.cs @@ -11,5 +11,10 @@ public class KeyframeNode : BaseFoldNode public BaseFoldNode foldData; public override string name => "Keyframe"; + + public override FoldNodeSerialized Serialize() + { + return new FoldNodeSerialized(); + } } diff --git a/Scripts/Fold/Editor/KeyframeNodeView.cs b/Scripts/Fold/Editor/KeyframeNodeView.cs index f2530ec..fd90c75 100644 --- a/Scripts/Fold/Editor/KeyframeNodeView.cs +++ b/Scripts/Fold/Editor/KeyframeNodeView.cs @@ -58,4 +58,4 @@ public class KeyframeNodeView : BaseNodeView generateButton.SetEnabled(hasGoConn && hasFoldConn && go?.GetComponent<MeshRenderer>() != null); } -}
\ No newline at end of file +} diff --git a/Scripts/Fold/Editor/PointAlignNode.cs b/Scripts/Fold/Editor/PointAlignNode.cs index d9f560f..7ab094b 100644 --- a/Scripts/Fold/Editor/PointAlignNode.cs +++ b/Scripts/Fold/Editor/PointAlignNode.cs @@ -4,15 +4,18 @@ using UnityEngine; [System.Serializable, NodeMenuItem("Fold/PointAlign")] public class PointAlignNode : BaseFoldNode { - [Input(name = "Input")] - public BaseFoldNode input; + // Origin point. + [Input(name = "po")] + public Vector4 po; - [Input(name = "po")] - public float po; + [Output(name = "Out")] + public PointAlignNode output; - [Output(name = "Out")] - public PointAlignNode output; + public override string name => "Point Align"; - public override string name => "Point Align"; + public override FoldNodeSerialized Serialize() + { + return new FoldNodeSerialized { vec0 = po }; + } } |
