public void RefreshPins() { if (Object.op_Equality((Object)this.Target, (Object)null)) { return; } FlowNode[] components = (FlowNode[])this.Target.GetComponents <FlowNode>(); for (int index = 0; index < components.Length; ++index) { if (components[index] is FlowNode_Output) { FlowNode_Output flowNodeOutput = components[index] as FlowNode_Output; if (this.FindEmbeddedPin(flowNodeOutput.PinName) < 0) { Array.Resize <FlowNode_ExternalLink.PinData>(ref this.mPins, this.mPins.Length + 1); this.mPins[this.mPins.Length - 1].PinID = this.GenerateUniquePinID(this.Pins); this.mPins[this.mPins.Length - 1].PinName = flowNodeOutput.PinName; this.mPins[this.mPins.Length - 1].PinType = FlowNode.PinTypes.Output; } } else if (components[index] is FlowNode_Input) { FlowNode_Input flowNodeInput = components[index] as FlowNode_Input; if (this.FindEmbeddedPin(flowNodeInput.PinName) < 0) { Array.Resize <FlowNode_ExternalLink.PinData>(ref this.mPins, this.mPins.Length + 1); this.mPins[this.mPins.Length - 1].PinID = this.GenerateUniquePinID(this.Pins); this.mPins[this.mPins.Length - 1].PinName = flowNodeInput.PinName; this.mPins[this.mPins.Length - 1].PinType = FlowNode.PinTypes.Input; } } } }
protected void BindPins() { FlowNode[] components = (FlowNode[])this.mInstance.GetComponents <FlowNode>(); for (int index = 0; index < components.Length; ++index) { if (components[index] is FlowNode_Output) { FlowNode_Output flowNodeOutput = components[index] as FlowNode_Output; int embeddedPin = this.FindEmbeddedPin(flowNodeOutput.PinName); if (embeddedPin >= 0 && this.mPins[embeddedPin].PinType == FlowNode.PinTypes.Output) { this.mPins[embeddedPin].NodeBinding = components[index]; flowNodeOutput.TargetNode = this; flowNodeOutput.TargetPinID = this.mPins[embeddedPin].PinID; } } else if (components[index] is FlowNode_Input) { int embeddedPin = this.FindEmbeddedPin((components[index] as FlowNode_Input).PinName); if (embeddedPin >= 0 && this.mPins[embeddedPin].PinType == FlowNode.PinTypes.Input) { this.mPins[embeddedPin].NodeBinding = components[index]; } } } }
protected void DestroyInstance() { if (Object.op_Equality((Object)this.mInstance, (Object)null)) { return; } for (int index = 0; index < this.mPins.Length; ++index) { if (Object.op_Inequality((Object)this.mPins[index].NodeBinding, (Object)null)) { if (this.mPins[index].PinType == FlowNode.PinTypes.Output) { FlowNode_Output nodeBinding = this.mPins[index].NodeBinding as FlowNode_Output; nodeBinding.TargetNode = (FlowNode_ExternalLink)null; nodeBinding.TargetPinID = -1; } this.mPins[index].NodeBinding = (FlowNode)null; } } Object.Destroy((Object)this.mInstance); this.mInstance = (GameObject)null; this.OnInstanceDestroy(); }