Compare commits

...

33 Commits

Author SHA1 Message Date
bb3316cad3 Fix 11.1.5 error, update TOC
Fixes #15
2025-04-26 16:36:46 -05:00
b2c12901f6 Update TOCs 2025-04-02 07:26:42 -05:00
3c7f556780 Update TOCs 2025-02-23 14:01:22 -06:00
33679a0e57 Update Breakables.toc (#14) 2025-02-23 12:51:46 -06:00
ab8c9eb427 Update TOCs 2024-12-20 22:19:14 -06:00
98a73a1872 Update changelog 2024-11-13 08:52:25 -06:00
85280456af Bump interface for SoD and Retail (#13) 2024-11-13 08:50:25 -06:00
e388f5243e Bump interface for Cata (#12) 2024-11-05 08:09:25 -06:00
d24498372b Fix another 11.0.2 error
Fixes #10
2024-08-14 16:18:29 -05:00
89191ad299 Fix error from 11.0.2 2024-08-14 13:34:16 -05:00
96cac06743 Update TOC for TWW 2024-08-14 10:19:33 -05:00
10da683630 Update TOC for Classic-era 2024-07-25 22:38:47 -05:00
2a0ad73b5f Update TOC for 11.0 2024-07-24 09:23:30 -05:00
71ee74a273 Update changelog 2024-07-21 14:07:53 -05:00
76fa35ef02 Use checkout v4 2024-07-21 13:47:22 -05:00
dd746f2800 Initial TWW compatibility 2024-06-22 18:14:41 -05:00
1792dac5e5 Update TOC 2024-05-09 00:03:39 -05:00
aebaa54dc6 Support Cataclysm Classic 2024-04-30 23:22:15 -05:00
a7213689f4 Update TOCs 2024-04-15 17:04:14 -05:00
26156517ec Update TOC 2024-01-16 17:25:50 -06:00
402c88b82d Update TOC for Classic-era 2023-12-10 18:59:19 -06:00
e559af59ec Update TOC 2023-11-07 16:38:29 -06:00
4d6efe8842 Update TOC 2023-10-12 07:53:56 -05:00
0322faf629 Update TOCs 2023-09-08 10:29:37 -05:00
4c816fc5ed Add confirmation dialog when ignoring breakables 2023-08-02 17:54:32 -05:00
bc3632d177 Update description to explain ignore feature 2023-08-02 08:57:59 -05:00
713fbf5f16 Update TOC 2023-07-11 16:51:28 -05:00
902adfa2c8 Update TOC for Wrath Classic 2023-07-04 10:22:01 -05:00
e0a5f0b97d Update TOC, add icon 2023-05-03 18:20:16 -05:00
4d93c119a2 Update TOC 2023-04-01 15:00:21 -05:00
c7a8cf4838 Update TOCs 2023-01-25 13:39:01 -06:00
ba61a08f05 Add detection of profession tools 2023-01-15 16:32:30 -06:00
7396b7189a Add detection of profession gear 2023-01-13 23:03:27 -06:00
6 changed files with 345 additions and 138 deletions

View File

@ -32,7 +32,7 @@ jobs:
# we first have to clone the AddOn project, this is a required step
- name: Clone project
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0 # gets git history for changelogs
@ -56,3 +56,9 @@ jobs:
uses: BigWigsMods/packager@v2
with:
args: -g wrath -w 0
- name: Package and release for Cataclysm
uses: BigWigsMods/packager@v2
with:
args: -g cata -w 0

View File

@ -34,6 +34,25 @@ if C_Container then
end
end
local GetSpellInfo = GetSpellInfo
if not GetSpellInfo and C_Spell and C_Spell.GetSpellInfo then
GetSpellInfo = function(id)
if not id then
return nil
end
local info = C_Spell.GetSpellInfo(id)
if info then
return info.name, nil, info.iconID
end
end
end
local IsUsableSpell = IsUsableSpell
if not IsUsableSpell and C_Spell and C_Spell.IsSpellUsable then
IsUsableSpell = C_Spell.IsSpellUsable
end
local EQUIPPED_LAST = EQUIPPED_LAST
if not EQUIPPED_LAST then
EQUIPPED_LAST = INVSLOT_LAST_EQUIPPED
@ -43,14 +62,17 @@ local WowVer = select(4, GetBuildInfo())
local IsClassic = false
local IsClassicBC = false
local IsClassicWrath = false
local IsClassicCataclysm = false
if GetClassicExpansionLevel then
IsClassic = GetClassicExpansionLevel() == 0
IsClassicBC = GetClassicExpansionLevel() == 1
IsClassicWrath = GetClassicExpansionLevel() == 2
IsClassicCataclysm = GetClassicExpansionLevel() == 3
else
IsClassic = WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_CLASSIC
IsClassicBC = false
IsClassicWrath = false
IsClassicCataclysm = false
if WOW_PROJECT_ID and WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC then
if not LE_EXPANSION_LEVEL_CURRENT or LE_EXPANSION_LEVEL_CURRENT == LE_EXPANSION_BURNING_CRUSADE then
IsClassicBC = true
@ -59,6 +81,8 @@ else
end
elseif WOW_PROJECT_WRATH_CLASSIC and WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC then
IsClassicWrath = true
elseif WOW_PROJECT_CATACLYSM_CLASSIC and WOW_PROJECT_ID == WOW_PROJECT_CATACLYSM_CLASSIC then
IsClassicCataclysm = true
end
end
@ -199,6 +223,7 @@ local OreCombineItems = {
local DisenchantId = 13262
local DisenchantTypes = {babbleInv["Armor"], babbleInv["Weapon"]}
local DisenchantEquipSlots = {"INVTYPE_PROFESSION_GEAR", "INVTYPE_PROFESSION_TOOL"}
local CanDisenchant = false
local EnchantingProfessionId = 333
@ -274,6 +299,7 @@ local IDX_BREAKABLETYPE = 9
local IDX_SOULBOUND = 10
local IDX_NAME = 11
local IDX_RARITY = 12
local IDX_EQUIPSLOT = 13
local BREAKABLE_HERB = 1
local BREAKABLE_ORE = 2
@ -501,7 +527,11 @@ function Breakables:OnDisable()
end
function Breakables:OnSlashCommand(input)
InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
if InterfaceOptionsFrame_OpenToCategory then
InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
else
Settings.OpenToCategory("Breakables")
end
end
function Breakables:OnItemReceived(event, bag)
@ -1118,11 +1148,32 @@ function Breakables:OnMouseUp(frame)
self.settings.buttonFrameTop[frameNum] = frame:GetTop()
end
local function IgnoreFunc(self, button, isDown)
if button == "RightButton" and isDown and not InCombatLockdown() then
Breakables.settings.ignoreList[self.itemId] = true
StaticPopupDialogs["BREAKABLES_CONFIRM_IGNORE"] = {
text = L["This will add the chosen item to the ignore list so it no longer appears as breakable. Items can be removed from the ignore list in the Breakables settings.\n\nWould you like to ignore this item?"],
button1 = YES,
OnShow = function(self)
self:SetFrameStrata("TOOLTIP")
end,
OnHide = function(self)
self:SetFrameStrata("DIALOG")
end,
OnAccept = function(self, data)
Breakables.settings.ignoreList[data] = true
Breakables:FindBreakables()
LibStub("AceConfigRegistry-3.0"):NotifyChange("Breakables")
end,
button2 = NO,
timeout = 0,
whileDead = 1,
hideOnEscape = 0
}
local function IgnoreFunc(self, button, isDown)
if button == "RightButton" and isDown and not InCombatLockdown() then
local dlg = StaticPopup_Show("BREAKABLES_CONFIRM_IGNORE")
if dlg then
dlg.data = self.itemId
end
end
end
@ -1193,7 +1244,7 @@ do
end
if (foundBreakables[i][IDX_BREAKABLETYPE] == self.buttonFrame[j].type or (foundBreakables[i][IDX_BREAKABLETYPE] == BREAKABLE_COMBINE and foundBreakables[i][IDX_COUNT] >= 10)) and numBreakableStacks[j] < self.settings.maxBreakablesToShow then
local isDisenchantable = self:BreakableIsDisenchantable(foundBreakables[i][IDX_TYPE], foundBreakables[i][IDX_LEVEL], foundBreakables[i][IDX_RARITY], foundBreakables[i][IDX_LINK])
local isDisenchantable = self:BreakableIsDisenchantable(foundBreakables[i][IDX_TYPE], foundBreakables[i][IDX_LEVEL], foundBreakables[i][IDX_RARITY], foundBreakables[i][IDX_LINK], nil, foundBreakables[i][IDX_EQUIPSLOT])
local isLockedItem = foundBreakables[i][IDX_BREAKABLETYPE] == BREAKABLE_PICK
if (CanDisenchant and isDisenchantable) or (CanPickLock and isLockedItem) or (foundBreakables[i][IDX_COUNT] >= 5) then
@ -1462,16 +1513,18 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
local tooltipData
if C_TooltipInfo then
tooltipData = C_TooltipInfo.GetBagItem(bagId, slotId)
TooltipUtil.SurfaceArgs(tooltipData)
for _, line in ipairs(tooltipData.lines) do
TooltipUtil.SurfaceArgs(line)
if TooltipUtil and TooltipUtil.SurfaceArgs then
TooltipUtil.SurfaceArgs(tooltipData)
for _, line in ipairs(tooltipData.lines) do
TooltipUtil.SurfaceArgs(line)
end
end
else
self.myTooltip:SetBagItem(bagId, slotId)
end
if CanDisenchant and itemRarity and itemRarity >= RARITY_UNCOMMON and itemRarity < RARITY_HEIRLOOM
and self:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, itemLink, itemId) then
and self:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, itemLink, itemId, equipSlot) then
local soulbound = self:ScanForTooltipLine(tooltipData, ITEM_SOULBOUND, ITEM_ACCOUNTBOUND, ITEM_BNETACCOUNTBOUND)
local isInEquipmentSet = false
@ -1488,7 +1541,7 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
or equipSlot == nil or (equipSlot == "" and not IsArtifactRelicItem(itemLink))
if self:IsForcedDisenchantable(itemId) or ((not soulbound or self.settings.showSoulbound) and not shouldHideThisItem) then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_DE, soulbound, itemName, itemRarity}
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_DE, soulbound, itemName, itemRarity, equipSlot}
else
return nil
end
@ -1525,11 +1578,11 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
if CanMill --[[and (itemSubType == MillingItemSubType or itemSubType == MillingItemSecondarySubType)]] then
if millable then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_HERB, false, itemName, itemRarity}
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_HERB, false, itemName, itemRarity, equipSlot}
else
for i=1,#HerbCombineItems do
if HerbCombineItems[i] == itemId then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_COMBINE, false, itemName, itemRarity}
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_COMBINE, false, itemName, itemRarity, equipSlot}
end
end
end
@ -1537,18 +1590,18 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
if CanProspect --[[and itemSubType == ProspectingItemSubType]] then
if prospectable then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_ORE, false, itemName, itemRarity}
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_ORE, false, itemName, itemRarity, equipSlot}
else
for i=1,#OreCombineItems do
if OreCombineItems[i] == itemId then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_COMBINE, false, itemName, itemRarity}
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_COMBINE, false, itemName, itemRarity, equipSlot}
end
end
end
end
if CanPickLock and self:ItemIsPickable(itemId) and self:ItemIsLocked(bagId, slotId) and self:PlayerHasSkillToPickItem(bagId, slotId) then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_PICK, false, itemName, itemRarity}
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_PICK, false, itemName, itemRarity, equipSlot}
end
end
@ -1565,9 +1618,13 @@ function Breakables:PlayerHasSkillToPickItem(bagId, slotId)
return true
end
TooltipUtil.SurfaceArgs(tooltipData)
if TooltipUtil and TooltipUtil.SurfaceArgs then
TooltipUtil.SurfaceArgs(tooltipData)
end
for _, line in ipairs(tooltipData.lines) do
TooltipUtil.SurfaceArgs(line)
if TooltipUtil and TooltipUtil.SurfaceArgs then
TooltipUtil.SurfaceArgs(line)
end
if line.leftText == LOCKED then
return not (line.leftColor and line.leftColor.r == 1 and line.leftColor.g < 0.2 and line.leftColor.b < 0.2)
end
@ -1648,7 +1705,12 @@ function Breakables:IsInEquipmentSet(itemId)
end
function Breakables:GetItemIdFromLink(itemLink)
local _, foundItemId = strsplit(":", itemLink)
local _, num1, num2 = strsplit(":", itemLink)
local foundItemId = num1
-- support new item link format that adds a new : section in front
if not tonumber(foundItemId) then
foundItemId = num2
end
return tonumber(foundItemId)
end
@ -1673,7 +1735,7 @@ function Breakables:SortBreakables(foundBreakables)
local iId = self:GetItemIdFromLink(foundBreakables[i][IDX_LINK])
for j=i,#foundBreakables do
local jId = self:GetItemIdFromLink(foundBreakables[j][IDX_LINK])
if iId < jId then
if iId > jId then
local temp = foundBreakables[i]
foundBreakables[i] = foundBreakables[j]
foundBreakables[j] = temp
@ -1682,120 +1744,118 @@ function Breakables:SortBreakables(foundBreakables)
end
end
function Breakables:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, itemLink, itemId)
function Breakables:BreakableIsDisenchantable(itemType, itemLevel, itemRarity, itemLink, itemId, equipSlot)
if not itemId and itemLink then
itemId = self:GetItemIdFromLink(itemLink)
end
for i=1,#DisenchantTypes do
if DisenchantTypes[i] == itemType or IsArtifactRelicItem(itemLink) then
-- bfa+ no longer has skill level requirements for disenchanting
if IgnoreEnchantingSkillLevelForDisenchant then
return true
end
if self.settings.ignoreEnchantingSkillLevel then
return true
end
-- if we couldn't figure out the player's enchanting skill level, err on the side of showing stuff
if self.EnchantingLevel == 0 then
return true
end
-- account for WoD and higher no longer needing specific ilvl. numbers from http://wow.gamepedia.com/Item_level
if (itemRarity == RARITY_UNCOMMON and itemLevel >= 483)
or (itemRarity == RARITY_RARE and itemLevel >= 515)
or (itemRarity == RARITY_EPIC and itemLevel >= 640) then
return true
end
-- this is awful. is there an easier way? taken from www.wowpedia.org/Disenchanting
if itemRarity == RARITY_UNCOMMON then
if itemLevel <= 20 then
return self.EnchantingLevel >= 1
elseif itemLevel <= 25 then
return self.EnchantingLevel >= 25
elseif itemLevel <= 30 then
return self.EnchantingLevel >= 50
elseif itemLevel <= 35 then
return self.EnchantingLevel >= 75
elseif itemLevel <= 40 then
return self.EnchantingLevel >= 100
elseif itemLevel <= 45 then
return self.EnchantingLevel >= 125
elseif itemLevel <= 50 then
return self.EnchantingLevel >= 150
elseif itemLevel <= 55 then
return self.EnchantingLevel >= 175
elseif itemLevel <= 60 then
return self.EnchantingLevel >= 200
elseif itemLevel <= 99 then
return self.EnchantingLevel >= 225
elseif itemLevel <= 120 then
return self.EnchantingLevel >= 275
elseif itemLevel <= 150 then
return self.EnchantingLevel >= 325
elseif itemLevel <= 182 then
return self.EnchantingLevel >= 350
elseif itemLevel <= 318 then
return self.EnchantingLevel >= 425
elseif itemLevel <= 437 then
return self.EnchantingLevel >= 475
else
return self.EnchantingLevel >= 475
end
elseif itemRarity == RARITY_RARE then
if itemLevel <= 25 then
return self.EnchantingLevel >= 25
elseif itemLevel <= 30 then
return self.EnchantingLevel >= 50
elseif itemLevel <= 35 then
return self.EnchantingLevel >= 75
elseif itemLevel <= 40 then
return self.EnchantingLevel >= 100
elseif itemLevel <= 45 then
return self.EnchantingLevel >= 125
elseif itemLevel <= 50 then
return self.EnchantingLevel >= 150
elseif itemLevel <= 55 then
return self.EnchantingLevel >= 175
elseif itemLevel <= 60 then
return self.EnchantingLevel >= 200
elseif itemLevel <= 97 then
return self.EnchantingLevel >= 225
elseif itemLevel <= 115 then
return self.EnchantingLevel >= 275
elseif itemLevel <= 200 then
return self.EnchantingLevel >= 325
elseif itemLevel <= 346 then
return self.EnchantingLevel >= 450
elseif itemLevel <= 424 then
return self.EnchantingLevel >= 525
elseif itemLevel <= 463 then
return self.EnchantingLevel >= 550
else
return self.EnchantingLevel >= 550
end
elseif itemRarity == RARITY_EPIC then
if itemLevel <= 95 then
return self.EnchantingLevel >= 225
elseif itemLevel <= 164 then
return self.EnchantingLevel >= 300
elseif itemLevel <= 277 then
return self.EnchantingLevel >= 375
elseif itemLevel <= 416 then
return self.EnchantingLevel >= 475
elseif itemLevel <= 575 then
return self.EnchantingLevel >= 575
else
return self.EnchantingLevel >= 575
end
else
return false
end
if self:IsDisenchantableItemType(itemType) or IsArtifactRelicItem(itemLink) or self:IsDisenchantableEquipSlot(equipSlot) then
-- bfa+ no longer has skill level requirements for disenchanting
if IgnoreEnchantingSkillLevelForDisenchant then
return true
end
if self.settings.ignoreEnchantingSkillLevel then
return true
end
-- if we couldn't figure out the player's enchanting skill level, err on the side of showing stuff
if self.EnchantingLevel == 0 then
return true
end
-- account for WoD and higher no longer needing specific ilvl. numbers from http://wow.gamepedia.com/Item_level
if (itemRarity == RARITY_UNCOMMON and itemLevel >= 483)
or (itemRarity == RARITY_RARE and itemLevel >= 515)
or (itemRarity == RARITY_EPIC and itemLevel >= 640) then
return true
end
-- this is awful. is there an easier way? taken from www.wowpedia.org/Disenchanting
if itemRarity == RARITY_UNCOMMON then
if itemLevel <= 20 then
return self.EnchantingLevel >= 1
elseif itemLevel <= 25 then
return self.EnchantingLevel >= 25
elseif itemLevel <= 30 then
return self.EnchantingLevel >= 50
elseif itemLevel <= 35 then
return self.EnchantingLevel >= 75
elseif itemLevel <= 40 then
return self.EnchantingLevel >= 100
elseif itemLevel <= 45 then
return self.EnchantingLevel >= 125
elseif itemLevel <= 50 then
return self.EnchantingLevel >= 150
elseif itemLevel <= 55 then
return self.EnchantingLevel >= 175
elseif itemLevel <= 60 then
return self.EnchantingLevel >= 200
elseif itemLevel <= 99 then
return self.EnchantingLevel >= 225
elseif itemLevel <= 120 then
return self.EnchantingLevel >= 275
elseif itemLevel <= 150 then
return self.EnchantingLevel >= 325
elseif itemLevel <= 182 then
return self.EnchantingLevel >= 350
elseif itemLevel <= 318 then
return self.EnchantingLevel >= 425
elseif itemLevel <= 437 then
return self.EnchantingLevel >= 475
else
return self.EnchantingLevel >= 475
end
elseif itemRarity == RARITY_RARE then
if itemLevel <= 25 then
return self.EnchantingLevel >= 25
elseif itemLevel <= 30 then
return self.EnchantingLevel >= 50
elseif itemLevel <= 35 then
return self.EnchantingLevel >= 75
elseif itemLevel <= 40 then
return self.EnchantingLevel >= 100
elseif itemLevel <= 45 then
return self.EnchantingLevel >= 125
elseif itemLevel <= 50 then
return self.EnchantingLevel >= 150
elseif itemLevel <= 55 then
return self.EnchantingLevel >= 175
elseif itemLevel <= 60 then
return self.EnchantingLevel >= 200
elseif itemLevel <= 97 then
return self.EnchantingLevel >= 225
elseif itemLevel <= 115 then
return self.EnchantingLevel >= 275
elseif itemLevel <= 200 then
return self.EnchantingLevel >= 325
elseif itemLevel <= 346 then
return self.EnchantingLevel >= 450
elseif itemLevel <= 424 then
return self.EnchantingLevel >= 525
elseif itemLevel <= 463 then
return self.EnchantingLevel >= 550
else
return self.EnchantingLevel >= 550
end
elseif itemRarity == RARITY_EPIC then
if itemLevel <= 95 then
return self.EnchantingLevel >= 225
elseif itemLevel <= 164 then
return self.EnchantingLevel >= 300
elseif itemLevel <= 277 then
return self.EnchantingLevel >= 375
elseif itemLevel <= 416 then
return self.EnchantingLevel >= 475
elseif itemLevel <= 575 then
return self.EnchantingLevel >= 575
else
return self.EnchantingLevel >= 575
end
else
return false
end
return true
end
return self:IsForcedDisenchantable(itemId)
@ -1810,3 +1870,23 @@ function Breakables:IsForcedDisenchantable(itemId)
return false
end
function Breakables:IsDisenchantableItemType(itemType)
for i=1,#DisenchantTypes do
if DisenchantTypes[i] == itemType then
return true
end
end
return false
end
function Breakables:IsDisenchantableEquipSlot(equipSlot)
for i=1,#DisenchantEquipSlots do
if DisenchantEquipSlots[i] == equipSlot then
return true
end
end
return false
end

View File

@ -1,8 +1,9 @@
## Interface: 100002
## Interface-Retail: 100002
## Interface-Classic: 11403
## Interface: 110105
## Interface-Retail: 110105
## Interface-Classic: 11507
## Interface-BCC: 20504
## Interface-Wrath: 30400
## Interface-Wrath: 30403
## Interface-Cata: 40402
## Author: Parnic
## Name: Breakables
## Title: Breakables |cff7fff7f-Ace3-|r
@ -14,10 +15,22 @@
# ## Version: @project-version@
#@end-non-debug@
## SavedVariables: BreakablesDB
## IconTexture: Interface\Icons\ability_warrior_sunder
## OptionalDeps: Ace3, LibBabble-Inventory-3.0, Masque
## X-Curse-Project-ID: 16629
## X-WoWI-ID: 17929
## X-Wago-ID: rkGrlA6y
## Category-enUS: Professions
## Category-deDE: Berufe
## Category-esES: Profesiones
## Category-esMX: Profesiones
## Category-frFR: Métiers
## Category-itIT: Professioni
## Category-koKR: 전문 기술
## Category-ptBR: Profissões
## Category-ruRU: Профессии
## Category-zhCN: 专业
## Category-zhTW: 專業技能
#@no-lib-strip@
embeds.xml

View File

@ -1,3 +1,109 @@
v1.10.8:
- Support WoW 11.1.5 (fixes #15)
- Update TOC
v1.10.7:
- Update TOCs
v1.10.6:
- Update TOCs
v1.10.5:
- Update TOCs
v1.10.4:
- Update Cataclysm Classic TOC to 4.4.1
- Update Classic-era TOC for 1.15.4
- Update TWW TOC for 11.0.5
v1.10.3:
- Fix another error from 11.0.2
v1.10.2:
- Fix error from 11.0.2
v1.10.1:
- Update Classic-era TOC for 1.15.3
- Update TOC for TWW
v1.10.0:
- Support The War Within/11.0
v1.9.26:
- Update Dragonflight TOC for 10.2.7
v1.9.25:
- Support Cataclysm Classic 4.4.0
v1.9.24:
- Update TOCs
v1.9.23:
- Update Dragonflight TOC for 10.2.5
v1.9.22:
- Update Classic-era TOC for 1.15.0
v1.9.21:
- Update Dragonflight TOC for 10.2.0
v1.9.20:
- Update Wrath-Classic TOC for 3.4.3
v1.9.19:
- Update Dragonflight TOC for 10.1.7
- Update Classic-era TOC for 1.14.4
v1.9.18:
- Added a confirmation dialog when ignoring breakables, and updated the description to mention the ignore feature.
v1.9.17:
- Update Dragonflight TOC for 10.1.5
v1.9.16:
- Update TOC for Wrath Classic 3.4.2
v1.9.15:
- Updated TOCs for 10.1.0
- Added icon for 10.1.0
v1.9.14:
- Updated TOCs for 10.0.7
v1.9.13:
- Updated TOCs for 10.0.5
v1.9.12:
- Add detection of Dragonflight profession tools as disenchantable.
v1.9.11:
- Add detection of Dragonflight profession gear as disenchantable.
v1.9.10:
- Add Dragonflight Mystic disenchantable items. (Fixed)

View File

@ -9,7 +9,7 @@ local L = LibStub("AceLocale-3.0"):NewLocale("Breakables", "enUS", true, debug)
--@debug@
L["Welcome"] = [[Thanks for using |cff33ff99Breakables|r! Use |cffffff78/brk|r to open this menu or |cffffff78/breakables|r to access the same options on the command line.
Hold shift and drag the profession button to move the breakables bar around. You can also click directly on any breakable item button to break it without having to click the profession button first.
Hold shift and drag the profession button to move the breakables bar around. You can also click directly on any breakable item button to break it without having to click the profession button first. Right-clicking a breakable button will add that item to the ignore list so it won't show up again. The ignore list can be managed from the configuration panel.
If you have any feature requests or problems, please email |cff33ff99breakables@parnic.com|r or visit the |cffffff78curse.com|r or |cffffff78wowinterface.com|r page and leave a comment.]]
--@end-debug@

View File

@ -1,12 +1,14 @@
### **Description**
# Breakables
## **Description**
Displays a bar on screen that allows quick access to enchanting, jewelcrafting, and inscription professions by presenting a Disenchant/Prospect/Mill button and all of the breakable items you have for that profession next to it. Also displays a bar for any locked junkboxes in your inventory if you're a Rogue. This allows one-click access for breaking down items instead of finding the item in your bag, clicking the appropriate profession/skill button, and clicking the item for each and every item you want to break. For prospecting and milling, you will see the number of items you have alongside the number of times you can break it. In the prospecting screenshot on the right, the player has 169 total Saronite Ore in his bags which will allow for 33 total prospects.
### **Usage**
## **Usage**
By default, if you have the appropriate profession and items in your inventory, a bar will appear with the profession ability followed by any items that are eligible for breaking. You can hold shift to drag the bar around if you want to move it. Clicking the profession button will activate that ability (disenchant/prospect/mill) and clicking an item will break it. You don't have to click the profession button first as simply clicking the item will automatically break it down.
By default, if you have the appropriate profession and items in your inventory, a bar will appear with the profession ability followed by any items that are eligible for breaking. You can hold shift to drag the bar around if you want to move it. Clicking the profession button will activate that ability (disenchant/prospect/mill) and clicking an item will break it. You don't have to click the profession button first as simply clicking the item will automatically break it down. Right-clicking an item will place that item on the ignore list so it won't show up in the list again. The ignore list can be managed in the addon's configuration panel.
### **Configuration**
## **Configuration**
Typing */brk* will open the configuration settings (or you can get to it from Blizzard's Interface options) which consist of:
@ -14,6 +16,6 @@ Typing */brk* will open the configuration settings (or you can get to it from Bl
* **Max number to display**: this controls the highest number of items that you will see next to your profession button. If this is 5 but you have 10 breakable items in your bags, you will only see 5 at a time.
* **Show soulbound items**: aimed at enchanters, this controls whether or not you will see items that are soulbound as breakable items or not.
### **Known issues**
## **Known issues**
* If you have more than 5 of a breakable item but split into stacks all smaller than 5, the game will say you do not have enough items to break. The default UI now has a built-in button to compress stacks that should solve this issue.