summaryrefslogtreecommitdiff
path: root/Other/NodeEditorExamples/Assets/xNode-examples/Examples/RuntimeMathGraph/Scripts/RuntimeNodes/UGUIMathBaseNode.cs
blob: 8b9c64969db35885f9197ab04548a5aac8f06816 (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using XNode.Examples.MathNodes;

namespace XNode.Examples.RuntimeMathNodes {
	public class UGUIMathBaseNode : MonoBehaviour, IDragHandler {
		[HideInInspector] public Node node;
		[HideInInspector] public RuntimeMathGraph graph;
		public Text header;

		private UGUIPort[] ports;

		public virtual void Start() {
			ports = GetComponentsInChildren<UGUIPort>();
			foreach (UGUIPort port in ports) port.node = node;
			header.text = node.name;
			SetPosition(node.position);
		}

		public virtual void UpdateGUI() { }
		
		private void LateUpdate() {
			foreach (UGUIPort port in ports) port.UpdateConnectionTransforms();
		}

		public UGUIPort GetPort(string name) {
			for (int i = 0; i < ports.Length; i++) {
				if (ports[i].name == name) return ports[i];
			}
			return null;
		}

		public void SetPosition(Vector2 pos) {
			pos.y = -pos.y;
			transform.localPosition = pos;
		}

		public void SetName(string name) {
			header.text = name;
		}

		public void OnDrag(PointerEventData eventData) {

		}
	}
}