Ejemplo n.º 1
0
 public bool SetArgument(int argumentIndex, DiagramWindowNode argumentNode)
 {
     if (argumentNode == null && node.argumentIndices[argumentIndex] < 0 || argumentNode != null && argumentNode.index == node.argumentIndices[argumentIndex])
     {
         // No change.
         return(false);
     }
     if (argumentNode == null)
     {
         // Disconnect property.
         nodeSP.FindPropertyRelative("argumentIndices").GetArrayElementAtIndex(argumentIndex).intValue = -1;
         return(true);
     }
     if (node.Function.propertyTypes[argumentIndex] != argumentNode.node.Function.returnType)
     {
         window.ShowNotification(new GUIContent("Cannot connect " + node.Function.propertyTypes[argumentIndex] + " to " + argumentNode.node.Function.returnType));
         return(false);
     }
     if (argumentNode.node.IsDependentOn(node))
     {
         window.ShowNotification(new GUIContent("Cannot create a loop."));
         return(false);
     }
     nodeSP.FindPropertyRelative("argumentIndices").GetArrayElementAtIndex(argumentIndex).intValue = argumentNode.index;
     return(true);
 }