diff options
author | chai <chaifix@163.com> | 2022-06-28 09:40:37 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-06-28 09:40:37 +0800 |
commit | 49b25e755b70ec412feaaf0b898d6f7e09d2bea6 (patch) | |
tree | 3c5f4260f30d1c2d7196db93153700d7ddec3157 /Other/NodeEditorExamples/Assets/UNEB/NodeGraph.cs | |
parent | c92269331692feca2c276649f6c4ee8911f1f859 (diff) |
+node example
Diffstat (limited to 'Other/NodeEditorExamples/Assets/UNEB/NodeGraph.cs')
-rw-r--r-- | Other/NodeEditorExamples/Assets/UNEB/NodeGraph.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Other/NodeEditorExamples/Assets/UNEB/NodeGraph.cs b/Other/NodeEditorExamples/Assets/UNEB/NodeGraph.cs new file mode 100644 index 00000000..e977e698 --- /dev/null +++ b/Other/NodeEditorExamples/Assets/UNEB/NodeGraph.cs @@ -0,0 +1,57 @@ + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace UNEB +{ + /// <summary> + /// Represents a graph of nodes. + /// </summary> + public class NodeGraph : ScriptableObject + { + /// <summary> + /// The types of nodes accepted by the graph. + /// </summary> + public static HashSet<Type> nodeTypes = new HashSet<Type>(); + + [HideInInspector] + public List<Node> nodes = new List<Node>(); + + /// <summary> + /// Add a node to the graph. + /// It is recommended that the save manager adds the nodes. + /// </summary> + /// <param name="n"></param> + public void Add(Node n) + { + nodes.Add(n); + } + + /// <summary> + /// Removes a node from the graph but it is not destroyed. + /// </summary> + /// <param name="node"></param> + public void Remove(Node node) + { + nodes.Remove(node); + } + + /// <summary> + /// Put the node at the end of the node list. + /// </summary> + /// <param name="node"></param> + public void PushToEnd(Node node) + { + if (nodes.Remove(node)) { + nodes.Add(node); + } + } + + /// <summary> + /// Gets called right before the graph is saved. + /// Can be used to setup things before saving like sorting nodes. + /// </summary> + public virtual void OnSave() { } + } +}
\ No newline at end of file |