public CExplicitCastNode() { CExecutionPin execute = new CExecutionPin() { Name = "In", TargetNode = null }; InExecutionPins.Add(execute); CExecutionPin success = new CExecutionPin() { Name = "Succeeded", TargetNode = null }; CExecutionPin failed = new CExecutionPin() { Name = "Failed", TargetNode = null }; OutExecutionPins.Add(success); OutExecutionPins.Add(failed); }
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); } }
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); } }
private void ResolveScriptNodeConnections(IEnumerable <CNode> nodes, Dictionary <CNode, CScriptNodeViewmodel> nodeToViewModel) { foreach (CNode graphNode in nodes) { CScriptNodeViewmodel sourceViewModel = nodeToViewModel[graphNode]; for (int i = 0; i < graphNode.OutExecutionPins.Count; i++) { CExecutionPin inExecutionPin = graphNode.OutExecutionPins[i]; if (inExecutionPin.TargetNode == null) { continue; } CScriptNodeViewmodel targetViewModel = nodeToViewModel[inExecutionPin.TargetNode]; if (targetViewModel.InExecutionPins.Count > 0) { CNodeConnectionViewModel newConnection = new CNodeConnectionViewModel(sourceViewModel.OutExecutionPins[i], targetViewModel.InExecutionPins[inExecutionPin.TargetPinIndex], this); newConnection.Connect(); } else { inExecutionPin.TargetNode = null; LogUtility.Log("[ScriptLoadError] node {0} tried to connect to {1} but the target does not have an in execution pin", sourceViewModel.Name, targetViewModel.Name); } } for (int i = 0; i < graphNode.InputPins.Count; i++) { CInputPin inputPin = graphNode.InputPins[i]; if (inputPin.SourceNode == null) { continue; } CScriptNodeViewmodel inputSourceVm = nodeToViewModel[inputPin.SourceNode]; if (inputSourceVm.OutputPins.Count > inputPin.SourceParameterIndex) { COutputPinViewModel sourcePinVM = inputSourceVm.OutputPins[inputPin.SourceParameterIndex]; if (inputPin.Type.IsAssignableFrom(sourcePinVM.ValueType)) { CNodeConnectionViewModel newConnection = new CNodeConnectionViewModel(sourcePinVM, sourceViewModel.InputPins[i], this); newConnection.Connect(); } else { inputPin.SourceNode = null; inputPin.SourceParameterIndex = -1; LogUtility.Log("[ScriptLoadWarning] Node {0} tried to connect to {1} at output pin index {2} but the pin types are not compatible, connection removed", sourceViewModel.Name, inputSourceVm.Name, inputPin.SourceParameterIndex); } } else { inputPin.SourceNode = null; inputPin.SourceParameterIndex = -1; LogUtility.Log("[ScriptLoadError] node {0} tried to connect to {1} at output pin index {2} but there are not enough pins", sourceViewModel.Name, inputSourceVm.Name, inputPin.SourceParameterIndex); } } } }
public CExecutionPinViewModel(CExecutionPin executionPin, CScriptNodeViewmodel nodeViewModel, int pinIndex, bool isIn) : base(nodeViewModel, pinIndex) { m_pin = executionPin; Name = executionPin.Name; Tooltip = "Execution Path"; m_pinColor = PinColorHelpers.GetExecutionPinColor(); IsIn = isIn; }
private CExecutionPinViewModel GetOutExecutionPinViewModel(CExecutionPin pin, int pinIndex) { if (pin is CSwitchExecutionPin switchPin) { return(new CSwitchExecutionPinViewModel(pin, this, pinIndex, false, switchPin.Type, switchPin.Value)); } else { return(new CExecutionPinViewModel(pin, this, pinIndex, false)); } }
public CSetKlaxVariableNode() { IsImplicit = true; CExecutionPin inPin = new CExecutionPin("In"); InExecutionPins.Add(inPin); CExecutionPin outPin = new CExecutionPin("Out"); OutExecutionPins.Add(outPin); }
public CReceiveEventNode() { CExecutionPin invokedPin = new CExecutionPin() { Name = "Out", TargetNode = null, TargetNodeIndex = -1, }; OutExecutionPins.Add(invokedPin); AllowCopy = false; AllowDelete = false; }
public CReceiveEventNode(CKlaxScriptEventInfo targetKlaxEvent) { CExecutionPin invokedPin = new CExecutionPin() { Name = "Out", TargetNode = null, TargetNodeIndex = -1, }; OutExecutionPins.Add(invokedPin); TargetKlaxEvent = targetKlaxEvent; AllowCopy = false; AllowDelete = false; }
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 CFunctionGraphReturnNode(List <CKlaxVariable> returnParameters) { AllowDelete = false; AllowCopy = false; Name = "Return"; CExecutionPin inPin = new CExecutionPin("Return"); InExecutionPins.Add(inPin); foreach (var returnParameter in returnParameters) { CInputPin input = new CInputPin(returnParameter.Name, returnParameter.Type); InputPins.Add(input); } }
public CBranchNode() { Name = "Branch"; CExecutionPin inPin = new CExecutionPin("In"); InExecutionPins.Add(inPin); CExecutionPin truePin = new CExecutionPin("True"); OutExecutionPins.Add(truePin); CExecutionPin falsePin = new CExecutionPin("False"); OutExecutionPins.Add(falsePin); CInputPin conditionPin = new CInputPin("Condition", typeof(bool)); InputPins.Add(conditionPin); }
public CForEachLoopNode() { Name = "Foreach Loop"; CExecutionPin execute = new CExecutionPin() { Name = "In", TargetNode = null }; InExecutionPins.Add(execute); CExecutionPin breakExec = new CExecutionPin() { Name = "Break", TargetNode = null }; InExecutionPins.Add(breakExec); CExecutionPin loop = new CExecutionPin() { Name = "Loop", TargetNode = null }; OutExecutionPins.Add(loop); CExecutionPin done = new CExecutionPin() { Name = "Done", TargetNode = null }; OutExecutionPins.Add(done); InputPins.Add(new CInputPin("List", typeof(IList))); OutputPins.Add(new COutputPin("Index", typeof(int))); OutputPins.Add(new COutputPin("Element", typeof(object))); }
public CSwitchNode() { Name = "Switch"; CanAddOutputPins = true; CExecutionPin execute = new CExecutionPin() { Name = "In", TargetNode = null }; InExecutionPins.Add(execute); CExecutionPin defaultOutExec = new CExecutionPin() { Name = "Default", TargetNode = null }; OutExecutionPins.Add(defaultOutExec); CInputPin typePin = new CInputPin() { Name = "Type", bIsLiteralOnly = true, Type = typeof(CKlaxScriptTypeInfo), Literal = typeof(string) }; InputPins.Add(typePin); CInputPin objectPin = new CInputPin() { Name = "Object", Type = typeof(object) }; InputPins.Add(objectPin); }
public CForLoopNode() { CExecutionPin execute = new CExecutionPin() { Name = "In", TargetNode = null }; InExecutionPins.Add(execute); CExecutionPin breakExec = new CExecutionPin() { Name = "Break", TargetNode = null }; InExecutionPins.Add(breakExec); CExecutionPin loop = new CExecutionPin() { Name = "Loop", TargetNode = null }; OutExecutionPins.Add(loop); CExecutionPin done = new CExecutionPin() { Name = "Done", TargetNode = null }; OutExecutionPins.Add(done); InputPins.Add(new CInputPin("First Index", typeof(int))); InputPins.Add(new CInputPin("Last Index", typeof(int))); OutputPins.Add(new COutputPin("Index", typeof(int))); }
public CSwitchExecutionPinViewModel(CExecutionPin executionPin, CScriptNodeViewmodel nodeViewModel, int pinIndex, bool isIn, Type controlType, object controlValue) : base(executionPin, nodeViewModel, pinIndex, isIn) { m_controlType = controlType; m_controlValue = controlValue; }