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/xNode-examples/Examples/LogicToy/Nodes/LogicNode.cs | |
parent | c92269331692feca2c276649f6c4ee8911f1f859 (diff) |
+node example
Diffstat (limited to 'Other/NodeEditorExamples/Assets/xNode-examples/Examples/LogicToy/Nodes/LogicNode.cs')
-rw-r--r-- | Other/NodeEditorExamples/Assets/xNode-examples/Examples/LogicToy/Nodes/LogicNode.cs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Other/NodeEditorExamples/Assets/xNode-examples/Examples/LogicToy/Nodes/LogicNode.cs b/Other/NodeEditorExamples/Assets/xNode-examples/Examples/LogicToy/Nodes/LogicNode.cs new file mode 100644 index 00000000..df34f94f --- /dev/null +++ b/Other/NodeEditorExamples/Assets/xNode-examples/Examples/LogicToy/Nodes/LogicNode.cs @@ -0,0 +1,31 @@ +using System; +using UnityEngine; + +namespace XNode.Examples.LogicToy { + /// <summary> Base node for the LogicToy system </summary> + public abstract class LogicNode : Node { + public Action onStateChange; + public abstract bool led { get; } + + public void SendSignal(NodePort output) { + // Loop through port connections + int connectionCount = output.ConnectionCount; + for (int i = 0; i < connectionCount; i++) { + NodePort connectedPort = output.GetConnection(i); + + // Get connected ports logic node + LogicNode connectedNode = connectedPort.node as LogicNode; + + // Trigger it + if (connectedNode != null) connectedNode.OnInputChanged(); + } + if (onStateChange != null) onStateChange(); + } + + protected abstract void OnInputChanged(); + + public override void OnCreateConnection(NodePort from, NodePort to) { + OnInputChanged(); + } + } +}
\ No newline at end of file |