public CExecuteCustomFunctionNode(CCustomFunctionGraph functionGraph) { TargetFunctionGuid = functionGraph.Guid; Name = functionGraph.Name; CExecutionPin inPin = new CExecutionPin("In"); InExecutionPins.Add(inPin); CExecutionPin execPin = new CExecutionPin("Next"); OutExecutionPins.Add(execPin); foreach (var inputParameter in functionGraph.InputParameters) { CInputPin input = new CInputPin(inputParameter.Name, inputParameter.Type); InputPins.Add(input); } foreach (var returnParameter in functionGraph.OutputParameters) { COutputPin output = new COutputPin(returnParameter.Name, returnParameter.Type); OutputPins.Add(output); } }
public CExecuteInterfaceFunctionNode(CKlaxScriptInterfaceFunction targetFunction) { TargetFunctionGuid = targetFunction.Guid; Name = targetFunction.Name; CExecutionPin inPin = new CExecutionPin("In"); InExecutionPins.Add(inPin); CExecutionPin execPin = new CExecutionPin("Next"); OutExecutionPins.Add(execPin); CInputPin targetInput = new CInputPin("Target", typeof(CEntity)); InputPins.Add(targetInput); foreach (var inputParameter in targetFunction.InputParameters) { CInputPin input = new CInputPin(inputParameter.Name, inputParameter.Type); InputPins.Add(input); } foreach (var returnParameter in targetFunction.OutputParameters) { COutputPin output = new COutputPin(returnParameter.Name, returnParameter.Type); OutputPins.Add(output); } }
protected override void OnSourceVariableChanged() { OutputPins.Clear(); Name = "Get " + SourceVariable.Name; COutputPin output = new COutputPin(SourceVariable.Name, SourceVariable.Type); OutputPins.Add(output); }
public CComponentVariableNode(CEntityComponent targetComponent) { IsImplicit = true; Name = "Get " + targetComponent.Name; ComponentTargetGuid = targetComponent.ComponentGuid; COutputPin output = new COutputPin(targetComponent.Name, targetComponent.GetType()); OutputPins.Add(output); }
public CImplicitCastNode() { IsImplicit = true; COutputPin successOutput = new COutputPin { Name = "Success", Type = typeof(bool) }; OutputPins.Add(successOutput); }
protected override void OnSourceVariableChanged() { OutputPins.Clear(); InputPins.Clear(); Name = "Set " + SourceVariable.Name; CInputPin input = new CInputPin(SourceVariable.Name, SourceVariable.Type); InputPins.Add(input); COutputPin output = new COutputPin("NewValue", SourceVariable.Type); OutputPins.Add(output); }
public CFunctionGraphEntryNode(List <CKlaxVariable> inputParameters) { AllowDelete = false; AllowCopy = false; Name = "Entry"; CExecutionPin execPin = new CExecutionPin("Next"); OutExecutionPins.Add(execPin); foreach (var inputParameter in inputParameters) { COutputPin output = new COutputPin(inputParameter.Name, inputParameter.Type); OutputPins.Add(output); } }
public void RebuildNode(List <CKlaxVariable> inputParameters) { // Adjust the nodes output pins to the new input parameters // Note the editor has to take care of adjusting pin connections if (inputParameters.Count >= OutputPins.Count) { for (int i = 0; i < inputParameters.Count; i++) { CKlaxVariable inputParameter = inputParameters[i]; if (OutputPins.Count > i) { COutputPin pin = OutputPins[i]; pin.Name = inputParameter.Name; pin.Type = inputParameter.Type; } else { OutputPins.Add(new COutputPin(inputParameter.Name, inputParameter.Type)); } } } else { for (int i = OutputPins.Count - 1; i >= 0; i--) { if (inputParameters.Count > i) { CKlaxVariable inputParameter = inputParameters[i]; COutputPin pin = OutputPins[i]; pin.Name = inputParameter.Name; pin.Type = inputParameter.Type; } else { OutputPins.RemoveAt(i); } } } RaiseNodeRebuildEvent(); }
public CBaseCastNode() { Name = "Cast"; CInputPin targetTypeInput = new CInputPin { Name = "Target Type", Type = typeof(CKlaxScriptTypeInfo), Literal = null, SourceNode = null, SourceParameterIndex = -1, StackIndex = -1 }; InputPins.Add(targetTypeInput); CInputPin targetObjectInput = new CInputPin { Name = "Target", Type = typeof(object), Literal = null, SourceNode = null, SourceParameterIndex = -1, StackIndex = -1 }; InputPins.Add(targetObjectInput); COutputPin convertedObjectOutput = new COutputPin { Name = "Result", Type = typeof(object) }; OutputPins.Add(convertedObjectOutput); }
public COutputPinViewModel(COutputPin outputPin, CScriptNodeViewmodel nodeViewModel, int pinIndex) : base(nodeViewModel, pinIndex) { m_pin = outputPin; Name = outputPin.Name; ValueType = outputPin.Type; }
private void OnTargetEventChanged() { if (TargetKlaxEvent == null) { throw new NullReferenceException("Target event cannot be null"); } Name = TargetKlaxEvent.displayName ?? TargetKlaxEvent.klaxEventInfo.Name; Type eventType = TargetKlaxEvent.klaxEventInfo.FieldType; for (var i = 0; i < eventType.GenericTypeArguments.Length; i++) { Type genericTypeArgument = eventType.GenericTypeArguments[i]; string displayName = genericTypeArgument.Name; switch (i) { case 0: displayName = TargetKlaxEvent.ParameterName1 ?? displayName; break; case 1: displayName = TargetKlaxEvent.ParameterName2 ?? displayName; break; case 2: displayName = TargetKlaxEvent.ParameterName3 ?? displayName; break; case 3: displayName = TargetKlaxEvent.ParameterName4 ?? displayName; break; case 4: displayName = TargetKlaxEvent.ParameterName5 ?? displayName; break; case 5: displayName = TargetKlaxEvent.ParameterName6 ?? displayName; break; case 6: displayName = TargetKlaxEvent.ParameterName7 ?? displayName; break; case 7: displayName = TargetKlaxEvent.ParameterName8 ?? displayName; break; case 8: displayName = TargetKlaxEvent.ParameterName9 ?? displayName; break; case 9: displayName = TargetKlaxEvent.ParameterName10 ?? displayName; break; } COutputPin output = new COutputPin() { Name = displayName, Type = genericTypeArgument, }; OutputPins.Add(output); } }
public override void OnInputConnectionChanged(CNodeChangeContext context, CInputPin pin, COutputPin otherpin) { if (otherpin == null) { ChangePinType(context, OutputPins[1], typeof(object)); } else { Type type = otherpin.Type; if (type.IsGenericType) { if (type.GetGenericTypeDefinition() == typeof(List <>)) { Type outputType = type.GenericTypeArguments[0]; if (outputType != OutputPins[1].Type) { ChangePinType(context, OutputPins[1], outputType); } } } } }
public void OnNodeRebuilt() { if (m_inputPins.Count <= ScriptNode.InputPins.Count) { for (int i = 0; i < ScriptNode.InputPins.Count; i++) { CInputPin scriptInput = ScriptNode.InputPins[i]; if (m_inputPins.Count > i) { CInputPinViewModel inputViewModel = m_inputPins[i]; inputViewModel.Name = scriptInput.Name; if (inputViewModel.ValueType != scriptInput.Type) { inputViewModel.ValueType = scriptInput.Type; inputViewModel.Literal = scriptInput.Type.IsValueType ? Activator.CreateInstance(scriptInput.Type) : null; } } else { m_inputPins.Add(new CInputPinViewModel(scriptInput, this, i)); } } } else { for (int i = m_inputPins.Count - 1; i >= 0; i--) { if (ScriptNode.InputPins.Count > i) { CInputPin scriptInput = ScriptNode.InputPins[i]; CInputPinViewModel inputViewModel = m_inputPins[i]; inputViewModel.Name = scriptInput.Name; if (inputViewModel.ValueType != scriptInput.Type) { inputViewModel.ValueType = scriptInput.Type; inputViewModel.Literal = scriptInput.Type.IsValueType ? Activator.CreateInstance(scriptInput.Type) : null; } } else { m_inputPins[i].DisconnectAll(); m_inputPins.RemoveAt(i); } } } if (m_outputPins.Count <= ScriptNode.OutputPins.Count) { for (int i = 0; i < ScriptNode.OutputPins.Count; i++) { COutputPin scriptOutput = ScriptNode.OutputPins[i]; if (m_outputPins.Count > i) { COutputPinViewModel outputViewModel = m_outputPins[i]; outputViewModel.Name = scriptOutput.Name; outputViewModel.ValueType = scriptOutput.Type; } else { m_outputPins.Add(new COutputPinViewModel(scriptOutput, this, i)); } } } else { for (int i = m_outputPins.Count - 1; i >= 0; i--) { if (ScriptNode.OutputPins.Count > i) { COutputPin scriptOutput = ScriptNode.OutputPins[i]; COutputPinViewModel outputViewModel = m_outputPins[i]; outputViewModel.Name = scriptOutput.Name; outputViewModel.ValueType = scriptOutput.Type; } else { m_outputPins[i].DisconnectAll(); m_outputPins.RemoveAt(i); } } } }