summaryrefslogtreecommitdiff
path: root/Other/NodeEditorExamples/Assets/xNode-examples/Examples/LogicToy/Nodes/PulseNode.cs
blob: 44c0dcb885519adceeacae121c5f9634a6bf1acf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using UnityEngine;

namespace XNode.Examples.LogicToy {
	[NodeWidth(140), NodeTint(70,100,70)]
	public class PulseNode : LogicNode, ITimerTick {
		[Space(-18)]
		public float interval = 1f;
		[Output, HideInInspector] public bool output;
		public override bool led { get { return output; } }

		private float timer;

		public void Tick(float deltaTime) {
			timer += deltaTime;
			if (!output && timer > interval) {
				timer -= interval;
				output = true;
				SendSignal(GetPort("output"));
			} else if (output) {
				output = false;
				SendSignal(GetPort("output"));
			}
		}

		/// <summary> This node can not receive signals, so this is not used </summary>
		protected override void OnInputChanged() { }

		public override object GetValue(NodePort port) {
			return output;
		}
	}
}