feat: add custom category
This commit is contained in:
@@ -329,6 +329,25 @@ function CategoryManager:MigrateCategories()
|
|||||||
boeCat.priority = 75
|
boeCat.priority = 75
|
||||||
addon:Debug("CategoryManager: Migrated BoE priority to 75")
|
addon:Debug("CategoryManager: Migrated BoE priority to 75")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Migrate Junk category to ensure proper rules and priority
|
||||||
|
local junkCat = cats.definitions["Junk"]
|
||||||
|
if junkCat and junkCat.isBuiltIn then
|
||||||
|
local needsUpdate = false
|
||||||
|
-- Check if priority is too low
|
||||||
|
if not junkCat.priority or junkCat.priority < 85 then
|
||||||
|
junkCat.priority = 85
|
||||||
|
needsUpdate = true
|
||||||
|
end
|
||||||
|
-- Check if rules are missing or wrong
|
||||||
|
if not junkCat.rules or table.getn(junkCat.rules) == 0 then
|
||||||
|
junkCat.rules = { { type = "quality", value = 0 } }
|
||||||
|
needsUpdate = true
|
||||||
|
end
|
||||||
|
if needsUpdate then
|
||||||
|
addon:Debug("CategoryManager: Migrated Junk category")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Get all categories
|
-- Get all categories
|
||||||
@@ -497,6 +516,17 @@ function CategoryManager:EvaluateRule(rule, itemData, bagID, slotID, isOtherChar
|
|||||||
return string.find(itemName, ruleValue) ~= nil
|
return string.find(itemName, ruleValue) ~= nil
|
||||||
|
|
||||||
elseif ruleType == "quality" then
|
elseif ruleType == "quality" then
|
||||||
|
-- For quality 0 (gray/junk), also check tooltip as fallback
|
||||||
|
if ruleValue == 0 then
|
||||||
|
if itemData.quality == 0 then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
-- Tooltip fallback for gray detection (current character only)
|
||||||
|
if not isOtherChar and addon.Modules.Utils and addon.Modules.Utils.IsItemGrayTooltip then
|
||||||
|
return addon.Modules.Utils:IsItemGrayTooltip(bagID, slotID, itemData.link)
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
return itemData.quality == ruleValue
|
return itemData.quality == ruleValue
|
||||||
|
|
||||||
elseif ruleType == "qualityMin" then
|
elseif ruleType == "qualityMin" then
|
||||||
|
|||||||
+42
-2
@@ -1375,10 +1375,50 @@ function Guda_SettingsPopup_CategoriesTab_Update()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Set reset button text
|
-- Set button texts
|
||||||
|
local addBtn = getglobal("Guda_SettingsPopup_AddCategoryButton")
|
||||||
|
if addBtn then
|
||||||
|
addBtn:SetText("+ Add Category")
|
||||||
|
end
|
||||||
|
|
||||||
local resetBtn = getglobal("Guda_SettingsPopup_ResetCategoriesButton")
|
local resetBtn = getglobal("Guda_SettingsPopup_ResetCategoriesButton")
|
||||||
if resetBtn then
|
if resetBtn then
|
||||||
resetBtn:SetText("Reset to Defaults")
|
resetBtn:SetText("Reset Defaults")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Add new custom category
|
||||||
|
function Guda_SettingsPopup_AddCategory_OnClick()
|
||||||
|
if not Guda.Modules.CategoryManager then return end
|
||||||
|
|
||||||
|
-- Generate unique ID
|
||||||
|
local baseId = "Custom"
|
||||||
|
local counter = 1
|
||||||
|
local newId = baseId .. counter
|
||||||
|
|
||||||
|
local cats = Guda.Modules.CategoryManager:GetCategories()
|
||||||
|
while cats.definitions[newId] do
|
||||||
|
counter = counter + 1
|
||||||
|
newId = baseId .. counter
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Create new category definition
|
||||||
|
local newDef = {
|
||||||
|
name = "New Category " .. counter,
|
||||||
|
icon = "Interface\\Icons\\INV_Misc_QuestionMark",
|
||||||
|
rules = {},
|
||||||
|
matchMode = "any",
|
||||||
|
priority = 50,
|
||||||
|
enabled = true,
|
||||||
|
isBuiltIn = false,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Add to database
|
||||||
|
if Guda.Modules.CategoryManager:AddCategory(newId, newDef) then
|
||||||
|
-- Update display
|
||||||
|
Guda_SettingsPopup_CategoriesTab_Update()
|
||||||
|
-- Open editor for the new category
|
||||||
|
Guda_CategoryEditor_Open(newId)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+22
-8
@@ -692,10 +692,10 @@
|
|||||||
</Anchors>
|
</Anchors>
|
||||||
</Frame>
|
</Frame>
|
||||||
|
|
||||||
<!-- Reset to Defaults Button -->
|
<!-- Add Category Button -->
|
||||||
<Button name="Guda_SettingsPopup_ResetCategoriesButton" inherits="UIPanelButtonTemplate">
|
<Button name="Guda_SettingsPopup_AddCategoryButton" inherits="UIPanelButtonTemplate">
|
||||||
<Size>
|
<Size>
|
||||||
<AbsDimension x="140" y="25"/>
|
<AbsDimension x="120" y="25"/>
|
||||||
</Size>
|
</Size>
|
||||||
<Anchors>
|
<Anchors>
|
||||||
<Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT">
|
<Anchor point="BOTTOMLEFT" relativeTo="$parent" relativePoint="BOTTOMLEFT">
|
||||||
@@ -704,16 +704,30 @@
|
|||||||
</Offset>
|
</Offset>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</Anchors>
|
</Anchors>
|
||||||
|
<Scripts>
|
||||||
|
<OnClick>
|
||||||
|
Guda_SettingsPopup_AddCategory_OnClick()
|
||||||
|
</OnClick>
|
||||||
|
</Scripts>
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<!-- Reset to Defaults Button -->
|
||||||
|
<Button name="Guda_SettingsPopup_ResetCategoriesButton" inherits="UIPanelButtonTemplate">
|
||||||
|
<Size>
|
||||||
|
<AbsDimension x="120" y="25"/>
|
||||||
|
</Size>
|
||||||
|
<Anchors>
|
||||||
|
<Anchor point="LEFT" relativeTo="Guda_SettingsPopup_AddCategoryButton" relativePoint="RIGHT">
|
||||||
|
<Offset>
|
||||||
|
<AbsDimension x="10" y="0"/>
|
||||||
|
</Offset>
|
||||||
|
</Anchor>
|
||||||
|
</Anchors>
|
||||||
<Scripts>
|
<Scripts>
|
||||||
<OnClick>
|
<OnClick>
|
||||||
Guda_SettingsPopup_ResetCategories_OnClick()
|
Guda_SettingsPopup_ResetCategories_OnClick()
|
||||||
</OnClick>
|
</OnClick>
|
||||||
</Scripts>
|
</Scripts>
|
||||||
<NormalText>
|
|
||||||
<Anchors>
|
|
||||||
<Anchor point="CENTER"/>
|
|
||||||
</Anchors>
|
|
||||||
</NormalText>
|
|
||||||
</Button>
|
</Button>
|
||||||
</Frames>
|
</Frames>
|
||||||
</Frame>
|
</Frame>
|
||||||
|
|||||||
Reference in New Issue
Block a user