public Node CreateNode() { Node addColorNode = new Node(GetNodeName()); addColorNode.Location = new Point(200, 50); var color = new NodeLabelItem("Color", true, false, new[] { typeof(ShaderTypes.float3), typeof(ShaderTypes.float4) }, null) { Tag = 1 }; var imageIn = new NodeLabelItem("Image", true, false, new[] { typeof(ShaderTypes.sampler2D) }, null) { Tag = 2 }; var imageOut = new NodeImageItem(Properties.Resources.DefaultImage, 64, 64, false, true, null, new[] { typeof(Image) }) { Tag = 3 }; addColorNode.AddItem(color); addColorNode.AddItem(imageIn); addColorNode.AddItem(imageOut); addColorNode.ParentModule = this; return addColorNode; }
private void AddSpecialPins() { if(Event.ProvidesAttackDamage) { var AttackDamagePin = new NodeLabelItem("Attack Damage", NodeItemType.Output); AddItem(AttackDamagePin); } }
public Node CreateNode() { Node outputNode = new Node(GetNodeName()); NodeItem item = new NodeLabelItem("Output", true, false, new[] { typeof(ShaderTypes.float4) }, null); item.Tag = "out"; outputNode.AddItem(item); outputNode.ParentModule = this; return outputNode; }
protected MyNodeView(MyNodeConfig nodeInfo, GraphControl owner) : base("") { NodeInfo = nodeInfo; Owner = owner; m_icon = nodeInfo.BigImage; m_iconItem = new NodeImageItem(m_icon, 48, 48, false, false); m_iconItem.Tag = 0; m_descItem = new NodeLabelItem(""); AddItem(m_iconItem); AddItem(m_descItem); }
private static Node CreateNodeFromType(Type type) { Node node = new Node(type.FullName); node.Tag = type; if (typeof (IExecutable).IsAssignableFrom(type)) { NodeLabelItem item = new NodeLabelItem("Exec", true, false); item.Input.ConnectorType = NodeConnectorType.Exec; node.AddItem(item); node.BackColor = Color.Silver; } if (typeof (WorkflowFunction).IsAssignableFrom(type)) { node.BackColor = Color.LightGreen; } if (typeof (WorkflowEventReceiver).IsAssignableFrom(type)) { node.BackColor = Color.Salmon; } //execute pins foreach (var pin in type.GetPins(PinType.Execute)) { NodeLabelItem item = new NodeLabelItem(pin.Name, false, true); item.Output.ConnectorType = NodeConnectorType.Exec; node.AddItem(item); } foreach (var pin in type.GetPins(PinType.Input)) { NodeLabelItem item = new NodeLabelItem(pin.Name, true, false); node.AddItem(item); } foreach (var pin in type.GetPins(PinType.Output)) { NodeLabelItem nodeLabelItem = new NodeLabelItem(pin.Name, false, true); nodeLabelItem.Tag = pin.GetPropertyType(); node.AddItem(nodeLabelItem); } return node; }
protected void AddInputPins() { //We have different pins based on the properties of of the Target, so lets create them! TargetKey.ShapeE Shape = Target.Shape; var Properties = Target.GetType().GetProperties(); foreach(var prop in Properties) { if (prop.Name == "ClassName") continue; if (prop.Name == "ObjectInfo") continue; if (prop.Name == "KeyValue") continue; //Skip the KV property if (prop.Name == "Preset") continue; //We aren't a preset, skip this property if (prop.Name == "IsPreset") continue; //Same as preset if (prop.Name == "Shape") continue; //The title of the node displays this if(Shape == TargetKey.ShapeE.CIRCLE) //Skip the Line properties { if (prop.Name == "Length") continue; if (prop.Name == "Thickness") continue; } if(Shape == TargetKey.ShapeE.LINE) //Skip the circle properties { if (prop.Name == "Center") continue; if (prop.Name == "Radius") continue; } NodeItem item = null; if (prop.PropertyType == typeof(NumberValue)) { item = new NumberValueItem(prop.Name, 20, 20, 0, 100, 0, NodeItemType.Input); } if (item == null) item = new NodeLabelItem(prop.Name, NodeItemType.Input); item.Tag = prop.Name; this.AddItem(item); } }
protected virtual void AddOutputBranch() { string name = null; if (Node is IMyVariableBranchViewWithNamesNode) { name = ((IMyVariableBranchViewWithNamesNode)Node).GetOutputBranchName(m_outputBranches.Count); } if (name == null) { name = "Output " + (m_outputBranches.Count + 1); } NodeLabelItem branch = new NodeLabelItem(name, false, true) { Tag = m_outputBranches.Count, IsPassive = true }; m_outputBranches.Add(branch); AddItem(branch); }
protected MyNodeView(MyNodeConfig nodeConfig, GraphControl owner) : base("") { Owner = owner; Config = nodeConfig; m_icon = nodeConfig.BigImage; m_iconItem = new NodeImageItem(m_icon, 48, 48, false, false) { IsPassive = true, Tag = 0 }; m_descItem = new NodeLabelItem("") { IsPassive = true }; AddItem(m_iconItem); AddItem(m_descItem); }
public Node CreateNode() { Node outputNode = new Node(GetNodeName()); var hposNode = new NodeLabelItem("hpos", false, true, null, new[] { typeof(ShaderTypes.float4) }); var uv0Node = new NodeLabelItem("uv0", false, true, null, new[] { typeof(ShaderTypes.float2) }); var uv1Node = new NodeLabelItem("uv1", false, true, null, new[] { typeof(ShaderTypes.float2) }); var uv2Node = new NodeLabelItem("uv2", false, true, null, new[] { typeof(ShaderTypes.float2) }); var uv3Node = new NodeLabelItem("uv3", false, true, null, new[] { typeof(ShaderTypes.float2) }); var wsEyeRayNode = new NodeLabelItem("wsEyeRay", false, true, null, new[] { typeof(ShaderTypes.float3) }); outputNode.AddItem(hposNode); outputNode.AddItem(uv0Node); outputNode.AddItem(uv1Node); outputNode.AddItem(uv2Node); outputNode.AddItem(uv3Node); outputNode.AddItem(wsEyeRayNode); outputNode.ParentModule = this; outputNode.Tag = "IN."; return outputNode; }
private void InitIoBranches(int branchCount, NodeConnector connector, ICollection<NodeItem> branchList, IList<PropertyInfo> blocks, bool isInput) { if (branchCount == 1) { connector.Enabled = true; branchList.Add(m_iconItem); } else { for (int i = 0; i < branchCount; i++) { string name = (i + 1) + ""; if (Node is MyWorkingNode) { name = blocks[i].Name; } NodeLabelItem branch = new NodeLabelItem(MyProject.ShortenMemoryBlockName(name), isInput, !isInput) { Tag = i, IsPassive = true }; branchList.Add(branch); AddItem(branch); } } }
private void rebuildGraph(GraphControl graph) { Dictionary<String, CConnectionFields> inputs = new Dictionary<String, CConnectionFields>(); Dictionary<String, CConnectionFields> outputs = new Dictionary<String, CConnectionFields>(); foreach(CNodeFields node in m_graphFields.Nodes) { m_idNameMap.Add(node.id, node.name); Node n = new Node(node.Title); n.Location = node.Location; foreach(CNodeItemFields item in node.Items) { String name = ""; if(item.name != null) name = item.name.Split(':')[1]; if (item.Input != null) { foreach (CConnectionFields conn in item.Input) { if (!inputs.ContainsKey(conn.id)) inputs.Add(conn.id, conn); } } if (item.Output != null) { foreach (CConnectionFields conn in item.Output) { if (!outputs.ContainsKey(conn.id)) outputs.Add(conn.id, conn); } } switch (item.ItemType) { case "Graph.Items.NodeCompositeItem": { NodeCompositeItem temp = new NodeCompositeItem(item.IOMode); temp.Name = name; foreach(CItemPartFields part in item.ItemParts) { switch(part.PartType) { case "Graph.Items.ItemTextBoxPart": { ItemTextBoxPart p = new ItemTextBoxPart(part.Text); p.Name = part.name; temp.AddPart(p); } break; default: { } break; } } if (item.Tag != null) temp.Tag = TagFactory.GetTagObject(item.Tag); if (temp.Name.Contains("button_")) temp.Clicked += m_parentForm.GetConvMouseHandler(); m_itemMap.Add(item.id, temp); m_idNameMap.Add(item.id, name); n.AddItem(temp); } break; case "Graph.Items.NodeTextBoxItem": { NodeTextBoxItem temp = new NodeTextBoxItem(item.Text, item.IOMode); temp.Name = name; if (item.Tag != null) temp.Tag = TagFactory.GetTagObject(item.Tag); m_itemMap.Add(item.id, temp); m_idNameMap.Add(item.id, name); n.AddItem(temp); } break; case "Graph.Items.NodeLabelItem": { NodeLabelItem temp = new NodeLabelItem(item.Text, item.IOMode); temp.Name = name; if (item.Tag != null) temp.Tag = TagFactory.GetTagObject(item.Tag); m_itemMap.Add(item.id, temp); m_idNameMap.Add(item.id, name); if (temp.Name == "EditNodeItem") temp.Clicked += m_parentForm.GetEditMouseHandler(); n.AddItem(temp); } break; default: { //NodeItem temp = new NodeItem(item.IOMode); } break; } } graph.AddNode(n); } rebuildConnections(graph, inputs, outputs); }
protected virtual void AddOutputBranch() { NodeLabelItem branch = new NodeLabelItem("Output " + (m_outputBranches.Count + 1), false, true); branch.Tag = m_outputBranches.Count; m_outputBranches.Add(branch); AddItem(branch); }
private void AddNodeElements() { Type t = DotaAction.GetType(); InputExecute = new ExecuteNodeItem("Execute", NodeItemType.Input); this.AddItem(InputExecute); OutputExecute = new ExecuteNodeItem("Execute", NodeItemType.Output); this.AddItem(OutputExecute); //Loop through all of this action's properties and add node elements for each property type PropertyInfo[] properties = t.GetProperties(); //Target should always be ordered first var target = properties.FirstOrDefault(x => x.Name == "Target"); if (target != null) { TargetPin = new TargetNodeItem(target.Name, NodeItemType.Input); TargetPin.Tag = "Target"; this.AddItem(TargetPin); } foreach (PropertyInfo prop in properties) { //Skip DotaDataObject's properties as they don't go into the node if (prop.Name == "ClassName") continue; if (prop.Name == "KeyValue") continue; if (prop.Name == "ObjectInfo") continue; if (prop.Name == "Target") continue; //Skip target because we handled it already NodeItem item = null; if (prop.PropertyType == typeof(NumberValue)) { item = new NumberValueItem(prop.Name, 20, 20, 0, 100, 0, NodeItemType.Input); } if(prop.PropertyType == typeof(TargetKey)) { item = new TargetNodeItem(prop.Name, NodeItemType.Input); } if(prop.PropertyType == typeof(DotaActionCollection)) { item = new ExecuteNodeItem(prop.Name, NodeItemType.Output); var ex = item as ExecuteNodeItem; ex.ActionCollection = prop.GetMethod.Invoke(DotaAction, new object[] { }) as DotaActionCollection; //Assign this execute node as the end point //for an action collection execute chain } if(item == null) item = new NodeLabelItem(prop.Name, NodeItemType.Input); item.Tag = prop.Name; this.AddItem(item); } }
protected virtual void AddInputBranch() { NodeLabelItem branch = new NodeLabelItem("Input " + (m_inputBranches.Count + 1), true, false) { Tag = m_inputBranches.Count, IsPassive = true }; m_inputBranches.Add(branch); AddItem(branch); }
private void lblConvoNode_MouseDown(object sender, MouseEventArgs e) { List<Node> nodes = (List<Node>)graphCtrl.Nodes; String nodeName = m_settings.Attributes["[Default]"]["DEFAULTNODENAME"] + "_" + getConvNodeCount().ToString().PadLeft(4, '0'); var node = new Node("Conversation Node"); var nodeNameItem = new NodeTextBoxItem(nodeName); nodeNameItem.Name = "NodeName"; node.AddItem(nodeNameItem); NodeTextBoxItem displayText = new NodeTextBoxItem("Enter NPC text", NodeIOMode.None); displayText.Name = "DisplayText"; node.AddItem(displayText); var inputLabel = new NodeLabelItem("Conversation input", NodeIOMode.Input) { Tag = TagType.LABEL }; inputLabel.Name = nodeName + "_in"; node.AddItem(inputLabel); var editNode = new NodeLabelItem("Click Here To Edit Output List"); editNode.Name = "EditNodeItem"; editNode.Clicked += new EventHandler<NodeItemEventArgs>(editOutputListNode_MouseDown); node.AddItem(editNode); NodeCompositeItem firstButton = new NodeCompositeItem(NodeIOMode.Output) { Tag = TagType.TEXTBOX }; firstButton.Name = "button_1"; ItemTextBoxPart btnText = new ItemTextBoxPart("Enter player text"); btnText.Name = "ConvText"; ItemTextBoxPart btnMethod = new ItemTextBoxPart("Enter script method"); btnMethod.Name = "ConvMethod"; firstButton.AddPart(btnText); firstButton.AddPart(btnMethod); firstButton.Clicked += new EventHandler<NodeItemEventArgs>(editConvNode_MouseDown); node.AddItem(firstButton); this.DoDragDrop(node, DragDropEffects.Copy); }
protected virtual void InitBranches() { MyNodeInfo nodeInfo = Node.GetInfo(); foreach (PropertyInfo signalInfo in nodeInfo.RegisteredSignals) { MySignal signal = (MySignal)signalInfo.GetValue(Node); MySignalItem signalItem = new MySignalItem(signal); m_signals.Add(signalItem); AddItem(signalItem); } if (Node.InputBranches == 1) { m_iconItem.Input.Enabled = true; m_inputBranches.Add(m_iconItem); } else { for (int i = 0; i < Node.InputBranches; i++) { string name = (i + 1) + ""; if (Node is MyWorkingNode) { name = Node.GetInfo().InputBlocks[i].Name; } NodeLabelItem branch = new NodeLabelItem(MyProject.ShortenMemoryBlockName(name), true, false); branch.Tag = i; m_inputBranches.Add(branch); AddItem(branch); } } if (Node.OutputBranches == 1) { m_iconItem.Output.Enabled = true; m_outputBranches.Add(m_iconItem); } else { for (int i = 0; i < Node.OutputBranches; i++) { string name = (i + 1) + ""; if (Node is MyWorkingNode) { name = Node.GetInfo().OutputBlocks[i].Name; } NodeLabelItem branch = new NodeLabelItem(MyProject.ShortenMemoryBlockName(name), false, true); branch.Tag = i; m_outputBranches.Add(branch); AddItem(branch); } } }
private void lblEndNode_MouseDown(object sender, MouseEventArgs e) { var node = new Node("Conversation End"); node.AddItem(new NodeTextBoxItem("Enter text")); String name = "Conversation_End_" + getEndNodeCount().ToString().PadLeft(3, '0'); var endLabel = new NodeLabelItem(name, NodeIOMode.Input) { Tag = TagType.TEXTBOX }; endLabel.Name = "NodeName"; node.AddItem(endLabel); node.AddItem(new NodeTextBoxItem(m_currentPluginSettings.Attributes["[Default]"]["DEFAULTEXITMETHOD"])); this.DoDragDrop(node, DragDropEffects.Copy); }
private void lblStartNode_MouseDown(object sender, MouseEventArgs e) { var node = new Node("Conversation Start"); var startLabel = new NodeLabelItem("Conversation_Start", NodeIOMode.Output) { Tag = TagType.LABEL }; startLabel.Name = "NodeName"; node.AddItem(startLabel); this.DoDragDrop(node, DragDropEffects.Copy); }