public override object GetValue(NodePort port) { if (port.fieldName == nameof(Rank)) { NodePort minXPort = GetInputPort(nameof(MinX)); float minX = minXPort.IsConnected ? Convert.ToSingle(minXPort.GetInputValue()) : MinX; NodePort maxXPort = GetInputPort(nameof(MaxX)); float maxX = maxXPort.IsConnected ? Convert.ToSingle(maxXPort.GetInputValue()) : MaxX; float x = Convert.ToSingle(GetInputPort(nameof(X)).GetInputValue()); float scaledX = ScaleX(minX, maxX, x); return(ScaleY(MinY, MaxY, Function.Evaluate(scaledX))); } return(null); }
public override object GetValue(NodePort port) { if (port.fieldName == "ValueOut") { return(value.Value); } else if (port.fieldName == "ValueIn") { value.Value = port.GetInputValue(); return(value.Value); } else { return(base.GetValue(port)); } }
public override void OnBodyGUI() { //Output NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("Output")); //Draw mix method enum SerializedProperty mixType = serializedObject.FindProperty("Mix"); NodeEditorGUILayout.PropertyField(mixType, new GUIContent("Mix Type")); //Draw Instance Ports with colors if (!Bcn.DidAddPort) { NodePort[] ports = Bcn.GetInstanceInputs(); for (var i = 0; i < ports.Length; i++) { NodePort p = ports[i]; EditorGUILayout.BeginHorizontal(); NodeEditorGUILayout.PortField(p, GUILayout.ExpandWidth(false)); BiomeNode node = p.GetInputValue <BiomeNode>(); if (node != null) { #if UNITY_2018_1_OR_NEWER EditorGUILayout.ColorField(GUIContent.none, node.PreviewColor, false, false, false, GUILayout.MaxWidth(32f)); #else EditorGUILayout.ColorField(GUIContent.none, node.PreviewColor, false, false, false, null, GUILayout.MaxWidth(32f)); #endif } EditorGUILayout.EndHorizontal(); } } else { Bcn.DidAddPort = false; } //Show Preview PreviewField.Show(Bcn); }
public override IEnumerator ExecuteNode(NodeExecutionContext context) { NTGraph g = graph as NTGraph; NodePort port = GetPort(variablePath); object portValue = port.GetInputValue(); if (!port.IsConnected) { portValue = backingValue; } object value = null; if (portValue != null) { if (!string.IsNullOrEmpty(variablePath)) { value = g.variableDelegate.GetValue(dataKey); if (value == null) { yield break; } ReflectionUtilities.SetValueOf(ref value, portValue, variablePath.Split('/').ToList()); g.variableDelegate.SetValue(dataKey, value); } else { value = portValue; } } else { } yield return(null); }
public override IEnumerator ExecuteNode(NodeExecutionContext context) { NTGraph g = graph as NTGraph; NodePort port = GetPort(dataKey); object portValue = port.GetInputValue(); if (!port.IsConnected) { portValue = backingValue; } if (portValue != null) { g.variableDelegate.SetUserVariable(dataKey, portValue); } yield return(null); }
public override object GetInstancePortValue(string fieldName) { if (HasPort(fieldName)) { NodePort port = GetPort(fieldName); if (port.IsConnected) { return(port.GetInputValue()); } else { return(backingValue); } } else { return(backingValue); } }
public override void OnBodyGUI() { GUI.color = Color.white; NodeEditorGUILayout.PortPair(target.GetInputPort("enter"), target.GetOutputPort("exit")); Rect rect = GUILayoutUtility.GetLastRect(); rect.x += (rect.width * 0.5f) - 50; rect.width = 100; EditorGUI.PropertyField(rect, serializedObject.FindProperty("device"), GUIContent.none); GUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Repeats:", GUILayout.Width(60)); node.repeats = EditorGUILayout.IntField(node.repeats, GUILayout.Width(33)); EditorGUILayout.Space(); EditorGUILayout.LabelField("Random:", GUILayout.Width(60)); node.random = EditorGUILayout.Toggle(node.random); GUILayout.EndHorizontal(); // Display the String valueIn port. NodePort valueInPort = node.GetInputPort("stringIn"); if (valueInPort.IsConnected) { // Display an uneditable input value if connected EditorGUI.BeginDisabledGroup(true); EditorGUILayout.TextField(serializedObject.FindProperty("stringIn").displayName, valueInPort.GetInputValue <string>()); EditorGUI.EndDisabledGroup(); NodeEditorGUILayout.AddPortField(valueInPort); } else { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("stringIn"), valueInPort, true); } // Display the Float valueIn port. NodePort fltValueInPort = node.GetInputPort("floatIn"); if (fltValueInPort.IsConnected) { // Display an uneditable input value if connected EditorGUI.BeginDisabledGroup(true); EditorGUILayout.FloatField(serializedObject.FindProperty("floatIn").displayName, fltValueInPort.GetInputValue <float>()); EditorGUI.EndDisabledGroup(); NodeEditorGUILayout.AddPortField(fltValueInPort); } else { NodeEditorGUILayout.PropertyField(serializedObject.FindProperty("floatIn"), fltValueInPort, true); } // Actions list NodeEditorGUILayout.InstancePortList("actions", typeof(Action), serializedObject, NodePort.IO.Input, Node.ConnectionType.Override, Node.TypeConstraint.Strict, OnCreateReorderableList); serializedObject.ApplyModifiedProperties(); serializedObject.Update(); // Footer DrawFooterGUI(); }