Example #1
0
 public void InitActionTreeCallback()
 {
     ActionTree.SuspendLayout();
     int selectedIndex = -1;
     if (ActionTree.SelectedNode != null)
         selectedIndex = ActionTree.Nodes.IndexOf(ActionTree.SelectedNode);
     ActionTree.Nodes.Clear();
     foreach (IPBComposite composite in PB.CurrentProfile.Branch.Children)
     {
         TreeNode node = new TreeNode(composite.Title);
         node.ForeColor = composite.Color;
         node.Tag = composite;
         if (composite is GroupComposite)
         {
             ActionTreeAddChildren((GroupComposite)composite, node);
         }
         ActionTree.Nodes.Add(node);
     }
     //ActionTree.ExpandAll();
     if (selectedIndex != -1)
     {
         if (selectedIndex < ActionTree.Nodes.Count)
             ActionTree.SelectedNode = ActionTree.Nodes[selectedIndex];
         else
             ActionTree.SelectedNode = ActionTree.Nodes[ActionTree.Nodes.Count - 1];
     }
     ActionTree.ResumeLayout();
 }
Example #2
0
 private void RefreshActionTreeCallback(IPBComposite pbComp, Type type)
 {
     ActionTree.SuspendLayout();
     foreach (TreeNode node in ActionTree.Nodes)
     {
         UdateTreeNode(node, pbComp, type, true);
     }
     ActionTree.ResumeLayout();
 }
Example #3
0
        private void ActionGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
        {
            if (ActionGrid.SelectedObject is CastSpellAction && ((CastSpellAction)ActionGrid.SelectedObject).IsRecipe)
            {
                CastSpellAction ca = (CastSpellAction)ActionGrid.SelectedObject;
                PB.UpdateMaterials();
                RefreshTradeSkillTabs();
                RefreshActionTree(typeof(CastSpellAction));
            }
            else
            {
                ActionTree.SuspendLayout();
                UdateTreeNode(ActionTree.SelectedNode, null, null, false);
                ActionTree.ResumeLayout();
            }

            if (PB.CodeWasModified)
                PB.GenorateDynamicCode();
        }
Example #4
0
        private void ActionGridPropertyValueChanged(object s, PropertyValueChangedEventArgs e)
        {
            if (ActionGrid.SelectedObject is CastSpellAction && ((CastSpellAction)ActionGrid.SelectedObject).IsRecipe)
            {
                _pb.UpdateMaterials();
                RefreshTradeSkillTabs();
                RefreshActionTree(typeof(CastSpellAction));
            }
            else
            {
                ActionTree.SuspendLayout();
                UdateTreeNode(ActionTree.SelectedNode, null, null, false);
                ActionTree.ResumeLayout();
            }

            if (DynamicCodeCompiler.CodeWasModified)
            {
                new Thread(DynamicCodeCompiler.GenorateDynamicCode)
                {
                    IsBackground = true
                }.Start();
            }
        }
Example #5
0
        private void InitActionTreeCallback()
        {
            ActionTree.SuspendLayout();
            int selectedIndex = -1;

            if (ActionTree.SelectedNode != null)
            {
                selectedIndex = ActionTree.Nodes.IndexOf(ActionTree.SelectedNode);
            }
            ActionTree.Nodes.Clear();
            foreach (var comp in ProfessionbuddyBot.Instance.Branch.Children.OfType <IPBComponent>())
            {
                ActionTree.Nodes.Add(GenerateTreeViewFromBehaviorTree(comp, null));
            }
            //ActionTree.ExpandAll();
            if (selectedIndex != -1)
            {
                ActionTree.SelectedNode = selectedIndex < ActionTree.Nodes.Count
                                        ? ActionTree.Nodes[selectedIndex]
                                        : ActionTree.Nodes[ActionTree.Nodes.Count - 1];
            }
            ActionTree.ResumeLayout();
        }
Example #6
0
        private void InitActionTreeCallback()
        {
            ActionTree.SuspendLayout();
            int selectedIndex = -1;

            if (ActionTree.SelectedNode != null)
            {
                selectedIndex = ActionTree.Nodes.IndexOf(ActionTree.SelectedNode);
            }
            ActionTree.Nodes.Clear();
            foreach (IPBComposite composite in _pb.PbBehavior.Children)
            {
                var node = new TreeNode(composite.Title)
                {
                    ForeColor = composite.Color, Tag = composite
                };
                if (composite is GroupComposite)
                {
                    ActionTreeAddChildren((GroupComposite)composite, node);
                }
                ActionTree.Nodes.Add(node);
            }
            //ActionTree.ExpandAll();
            if (selectedIndex != -1)
            {
                if (selectedIndex < ActionTree.Nodes.Count)
                {
                    ActionTree.SelectedNode = ActionTree.Nodes[selectedIndex];
                }
                else
                {
                    ActionTree.SelectedNode = ActionTree.Nodes[ActionTree.Nodes.Count - 1];
                }
            }
            ActionTree.ResumeLayout();
        }
Example #7
0
        private void AddToActionTree(object action, TreeNode dest)
        {
            bool     ignoreRoot   = (_copyAction & CopyPasteOperactions.IgnoreRoot) == CopyPasteOperactions.IgnoreRoot;
            bool     cloneActions = (_copyAction & CopyPasteOperactions.Copy) == CopyPasteOperactions.Copy;
            TreeNode newNode;

            if (action is TreeNode)
            {
                if (cloneActions)
                {
                    newNode = RecursiveCloning(((TreeNode)action));
                }
                else
                {
                    newNode = (TreeNode)((TreeNode)action).Clone();
                }
            }
            else if (action.GetType().GetInterface("IPBComposite") != null)
            {
                var composite = (IPBComposite)action;
                newNode = new TreeNode(composite.Title)
                {
                    ForeColor = composite.Color, Tag = composite
                };
            }
            else
            {
                return;
            }
            ActionTree.SuspendLayout();
            if (dest != null)
            {
                int treeIndex = action is TreeNode && ((TreeNode)action).Parent == dest.Parent &&
                                ((TreeNode)action).Index <= dest.Index && !cloneActions
                                    ? dest.Index + 1
                                    : dest.Index;
                GroupComposite gc;
                // If, While and SubRoutines are Decorators...
                if (!ignoreRoot && dest.Tag is GroupComposite)
                {
                    gc = (GroupComposite)dest.Tag;
                }
                else
                {
                    gc = (GroupComposite)((Composite)dest.Tag).Parent;
                }

                if ((dest.Tag is If || dest.Tag is SubRoutine) && !ignoreRoot)
                {
                    dest.Nodes.Add(newNode);
                    gc.AddChild((Composite)newNode.Tag);
                    if (!dest.IsExpanded)
                    {
                        dest.Expand();
                    }
                }
                else
                {
                    if (dest.Index >= gc.Children.Count)
                    {
                        gc.AddChild((Composite)newNode.Tag);
                    }
                    else
                    {
                        gc.InsertChild(dest.Index, (Composite)newNode.Tag);
                    }
                    if (dest.Parent == null)
                    {
                        if (treeIndex >= ActionTree.Nodes.Count)
                        {
                            ActionTree.Nodes.Add(newNode);
                        }
                        else
                        {
                            ActionTree.Nodes.Insert(treeIndex, newNode);
                        }
                    }
                    else
                    {
                        if (treeIndex >= dest.Parent.Nodes.Count)
                        {
                            dest.Parent.Nodes.Add(newNode);
                        }
                        else
                        {
                            dest.Parent.Nodes.Insert(treeIndex, newNode);
                        }
                    }
                }
            }
            else
            {
                ActionTree.Nodes.Add(newNode);
                _pb.PbBehavior.AddChild((Composite)newNode.Tag);
            }
            ActionTree.ResumeLayout();
        }
Example #8
0
        private void AddToActionTree(object action, TreeNode dest)
        {
            bool     ignoreRoot   = (_copyAction & CopyPasteOperactions.IgnoreRoot) == CopyPasteOperactions.IgnoreRoot;
            bool     cloneActions = (_copyAction & CopyPasteOperactions.Copy) == CopyPasteOperactions.Copy;
            TreeNode newNode;
            var      node = action as TreeNode;

            if (node != null)
            {
                if (cloneActions)
                {
                    var newComp = (((IPBComponent)node.Tag).DeepCopy());
                    newNode = GenerateTreeViewFromBehaviorTree(newComp, null);
                }
                else
                {
                    newNode = (TreeNode)node.Clone();
                }
            }
            else
            {
                var pbComponent = action as IPBComponent;
                if (pbComponent != null)
                {
                    var composite = pbComponent;
                    newNode = new TreeNode(composite.Title)
                    {
                        ForeColor = composite.Color, Tag = composite
                    };
                }
                else
                {
                    return;
                }
            }
            ActionTree.SuspendLayout();
            if (dest != null)
            {
                int treeIndex = action is TreeNode && ((TreeNode)action).Parent == dest.Parent &&
                                ((TreeNode)action).Index <= dest.Index && !cloneActions
                                        ? dest.Index + 1
                                        : dest.Index;
                Composite gc;
                // If, While and SubRoutines are Decorators...
                if (!ignoreRoot && dest.Tag is Composite)
                {
                    gc = (Composite)dest.Tag;
                }
                else
                {
                    gc = (Composite)((Component)dest.Tag).Parent;
                }

                if ((dest.Tag is PBComposite) && !ignoreRoot)
                {
                    dest.Nodes.Add(newNode);
                    gc.AddChild((Component)newNode.Tag);
                    if (!dest.IsExpanded)
                    {
                        dest.Expand();
                    }
                }
                else
                {
                    if (dest.Index >= gc.Children.Count)
                    {
                        gc.AddChild((Component)newNode.Tag);
                    }
                    else
                    {
                        gc.InsertChild(dest.Index, (Component)newNode.Tag);
                    }
                    if (dest.Parent == null)
                    {
                        if (treeIndex >= ActionTree.Nodes.Count)
                        {
                            ActionTree.Nodes.Add(newNode);
                        }
                        else
                        {
                            ActionTree.Nodes.Insert(treeIndex, newNode);
                        }
                    }
                    else
                    {
                        if (treeIndex >= dest.Parent.Nodes.Count)
                        {
                            dest.Parent.Nodes.Add(newNode);
                        }
                        else
                        {
                            dest.Parent.Nodes.Insert(treeIndex, newNode);
                        }
                    }
                }
            }
            else
            {
                ActionTree.Nodes.Add(newNode);
                ProfessionbuddyBot.Instance.Branch.AddChild((Component)newNode.Tag);
            }
            ActionTree.ResumeLayout();
        }
Example #9
0
        void AddToActionTree(object action, TreeNode dest)
        {
            bool ignoreRoot = (copyAction & CopyPasteOperactions.IgnoreRoot) == CopyPasteOperactions.IgnoreRoot ? true : false;
            bool cloneActions = (copyAction & CopyPasteOperactions.Copy) == CopyPasteOperactions.Copy ? true : false;
            TreeNode newNode = null;
            if (action is TreeNode)
            {
                if (cloneActions)
                {
                    newNode = RecursiveCloning(((TreeNode)action));
                }
                else
                    newNode = (TreeNode)((TreeNode)action).Clone();
            }
            else if (action.GetType().GetInterface("IPBComposite") != null)
            {
                IPBComposite composite = (IPBComposite)action;
                newNode = new TreeNode(composite.Title);
                newNode.ForeColor = composite.Color;
                newNode.Tag = composite;
            }
            else
                return;
            ActionTree.SuspendLayout();
            if (dest != null)
            {
                int treeIndex = action is TreeNode && ((TreeNode)action).Parent == dest.Parent &&
                    ((TreeNode)action).Index <= dest.Index && !cloneActions ?
                        dest.Index + 1 : dest.Index;
                GroupComposite gc = null;
                // If, While and SubRoutines are Decorators...
                if (!ignoreRoot && dest.Tag is GroupComposite)
                    gc = (GroupComposite)dest.Tag;
                else
                    gc = (GroupComposite)((Composite)dest.Tag).Parent;

                if ((dest.Tag is If || dest.Tag is SubRoutine) && !ignoreRoot)
                {
                    dest.Nodes.Add(newNode);
                    gc.AddChild((Composite)newNode.Tag);
                    if (!dest.IsExpanded)
                        dest.Expand();
                }
                else
                {
                    if (dest.Index >= gc.Children.Count)
                        gc.AddChild((Composite)newNode.Tag);
                    else
                        gc.InsertChild(dest.Index, (Composite)newNode.Tag);
                    if (dest.Parent == null)
                    {
                        if (treeIndex >= ActionTree.Nodes.Count)
                            ActionTree.Nodes.Add(newNode);
                        else
                            ActionTree.Nodes.Insert(treeIndex, newNode);
                    }
                    else
                    {
                        if (treeIndex >= dest.Parent.Nodes.Count)
                            dest.Parent.Nodes.Add(newNode);
                        else
                            dest.Parent.Nodes.Insert(treeIndex, newNode);
                    }
                }
            }
            else
            {
                ActionTree.Nodes.Add(newNode);
                PB.CurrentProfile.Branch.AddChild((Composite)newNode.Tag);
            }
            ActionTree.ResumeLayout();
        }