internal override void PartialSetup() { if (input.GetDataType() != null) { if (output == null) { //create the output output = new AnyTypeOutput(this, input.GetDataType()); outputs.Add(output); } else { //update the output if (input.GetDataType() != output.GetDataType()) { output.SetDataType(input.GetDataType()); } } } else { //delete the output if (output != null) { outputs.Clear(); output = null; } } }
internal override void PartialSetup() { if (in1.GetDataType() == null) { //nothing plugged in //hide the output oldType = null; outResult = null; outputs.Clear(); } else { if (in1.GetDataType() != oldType) { oldType = in1.GetDataType(); //if the data type in input 1 changed //change/create output if (outResult == null) { //create output adapted to in type outResult = new AnyTypeOutput(this, in1.GetDataType()); outputs.Add(outResult); } else { //update output for in type outResult.SetDataType(in1.GetDataType()); } } } }
public void UpdateOutputs() { SortOuts(); for (int i = 0; i < groupOuts.Count; i++) { if (outputs.Count > i) { //update current output AnyTypeOutput outp = (AnyTypeOutput)outputs[i]; GroupOutputNode node = (GroupOutputNode)groupOuts[i].node; outp.SetDataType(node.inp.GetDataType()); } else { //create new output Debug.Log("creating new output"); GroupOutputNode node = (GroupOutputNode)groupOuts[i].node; AnyTypeOutput outp = new AnyTypeOutput(this, node.inp.GetDataType()); outputs.Add(outp); } } //supprime les autres output while (outputs.Count > groupOuts.Count) { outputs.RemoveAt(groupOuts.Count); } }
public void SetDataType(Type t) { dataType = t; if (outp == null) { outp = new AnyTypeOutput(this, t); outputs.Add(outp); } else { outp.SetDataType(t); } }
public void InitFromVar() { if (variables.ContainsKey(varName)) { Variable vari = variables[varName]; varType = vari.GetDataType(); inp.SetAllowedDataTypes(new List <Type>(new Type[] { vari.GetDataType() })); outp.SetDataType(vari.GetDataType()); if (varType != null && onTypeChanged != null) { onTypeChanged(varType); } } }
internal override void PartialSetup() { if (inp.GetDataType() != null) { outp.SetDataType(inp.GetDataType()); if (outputs.Count == 0) { outputs.Add(outp); } } if (inp.GetDataType() == null) { outputs.Clear(); } }
internal override void PartialSetup() { if (in1.GetDataType() != null || in2.GetDataType() != null) { //if there is something plugged in somewhere //or both are plugged in bool one = true; bool two = false; Type t = in1.GetDataType(); if (t == null) { one = false; two = true; t = in2.GetDataType(); } if (in2.GetDataType() != null) { two = true; } //t is the right type in1.SetAllowedDataTypes(new List <Type>(new Type[] { t })); in2.SetAllowedDataTypes(new List <Type>(new Type[] { t })); if (one) { in1.SetIncommingDataType(t); } if (two) { in2.SetIncommingDataType(t); } outp.SetDataType(t); if (outputs.Count == 0) { outputs.Add(outp); } //both can only accept the right type } if (in1.GetDataType() == null && in2.GetDataType() == null) { //otherwise if both are unplugged, open back the inputs to any type outputs.Clear(); in1.SetAllowedDataTypes(new List <Type>(new Type[] { typeof(Vector2), typeof(Vector3), typeof(float) })); in2.SetAllowedDataTypes(new List <Type>(new Type[] { typeof(Vector2), typeof(Vector3), typeof(float) })); } }