コード例 #1
0
ファイル: AddNode.cs プロジェクト: r2d2m/NodeGame
 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) }));
     }
 }