/// <summary> /// /// </summary> /// <returns></returns> public override ProcessingInfo ActivateLogic(ProcessingContext context_, NodeSlot slot_) { ProcessingInfo info = new ProcessingInfo(); info.State = ActionNode.LogicState.Ok; //call script with input nodes List <ScriptSlotData> list = new List <ScriptSlotData>(m_ScriptElement.InputCount); foreach (NodeSlot slot in this.SlotVariableIn) { if (slot is NodeSlotVar) { NodeSlotVar varSlot = slot as NodeSlotVar; list.Add(new ScriptSlotData(varSlot.Text, varSlot.ID, GetValueFromSlot(varSlot.ID))); } } ScriptSlotDataCollection parameters = new ScriptSlotDataCollection(list); list.Clear(); // foreach (NodeSlot slot in this.SlotVariableOut) { if (slot is NodeSlotVar) { NodeSlotVar varSlot = slot as NodeSlotVar; list.Add(new ScriptSlotData(varSlot.Text, varSlot.ID, GetValueFromSlot(varSlot.ID))); } } ScriptSlotDataCollection returnVals = new ScriptSlotDataCollection(list); list.Clear(); if (m_ScriptElement.Run(parameters, returnVals) == false) { info.ErrorMessage = "Some errors in the execution of the script"; info.State = ActionNode.LogicState.Error; return(info); } //set output slot value foreach (ScriptSlotData s in returnVals.List) { SetValueInSlot(s.ID, s.Value); } ActivateOutputLink(context_, (int)NodeSlotId.Out); return(info); }
/// <summary> /// /// </summary> /// <returns></returns> public override ProcessingInfo ActivateLogic(ProcessingContext context_, NodeSlot slot_) { ProcessingInfo info = new ProcessingInfo(); info.State = ActionNode.LogicState.Ok; //call script with input nodes List<ScriptSlotData> list = new List<ScriptSlotData>(m_ScriptElement.InputCount); foreach (NodeSlot slot in this.SlotVariableIn) { if (slot is NodeSlotVar) { NodeSlotVar varSlot = slot as NodeSlotVar; list.Add(new ScriptSlotData(varSlot.Text, varSlot.ID, GetValueFromSlot(varSlot.ID))); } } ScriptSlotDataCollection parameters = new ScriptSlotDataCollection(list); list.Clear(); // foreach (NodeSlot slot in this.SlotVariableOut) { if (slot is NodeSlotVar) { NodeSlotVar varSlot = slot as NodeSlotVar; list.Add(new ScriptSlotData(varSlot.Text, varSlot.ID, GetValueFromSlot(varSlot.ID))); } } ScriptSlotDataCollection returnVals = new ScriptSlotDataCollection(list); list.Clear(); if (m_ScriptElement.Run(parameters, returnVals) == false) { info.ErrorMessage = "Some errors in the execution of the script"; info.State = ActionNode.LogicState.Error; return info; } //set output slot value foreach (ScriptSlotData s in returnVals.List) { SetValueInSlot(s.ID, s.Value); } ActivateOutputLink(context_, (int)NodeSlotId.Out); return info; }