Example #1
0
        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;
        }
Example #2
0
        private void AddSpecialPins()
        {
            if(Event.ProvidesAttackDamage)
            {
                var AttackDamagePin = new NodeLabelItem("Attack Damage", NodeItemType.Output);
                AddItem(AttackDamagePin);

            }
        }   
Example #3
0
        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;
        }
Example #4
0
        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);
        }
Example #5
0
        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;
        }
Example #6
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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;
        }
Example #10
0
        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);
        }
Example #13
0
        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);
        }
Example #15
0
 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);
 }
Example #16
0
        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);
                }
            }
        }
Example #17
0
 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);
 }
Example #18
0
 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);
 }