예제 #1
0
        public void ToolEdited(Tool tool, bool?equip = null)
        {
            bool toolbar;

            if (equip.HasValue)
            {
                toolbar = equip.Value;
            }
            else
            {
                toolbar = ToolSwitcherSession.IsToolbarCharacter() && ModEnabled && loaded;
            }

            for (int i = groups.Count - 1; i >= 0; i--)
            {
                ToolGroup g = groups[i];
                if (g.Remove(tool))
                {
                    if (g.Count == 0)
                    {
                        groups.RemoveAtFast(i);
                    }
                    else if (toolbar)
                    {
                        g.EquipAny();
                    }
                }
            }

            for (int i = 0; i < groups.Count; i++)
            {
                ToolGroup g = groups[i];
                if (g.ShouldContain(tool))
                {
                    g.Add(tool);
                    if (toolbar)
                    {
                        tool.Equip();
                    }
                    return;
                }
            }

            groups.Add(new ToolGroup(tool.Page, tool.Slot, tool));
            if (toolbar)
            {
                tool.Equip();
            }
        }