Пример #1
0
 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;
         }
     }
 }
Пример #2
0
 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());
             }
         }
     }
 }
Пример #3
0
 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);
     }
 }
Пример #4
0
 public void SetDataType(Type t)
 {
     dataType = t;
     if (outp == null)
     {
         outp = new AnyTypeOutput(this, t);
         outputs.Add(outp);
     }
     else
     {
         outp.SetDataType(t);
     }
 }
Пример #5
0
 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);
         }
     }
 }
Пример #6
0
 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();
     }
 }
Пример #7
0
 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) }));
     }
 }