Compare commits

...

19 Commits

Author SHA1 Message Date
80bf120abf Added explicit support for Legion ore 2016-09-19 13:56:27 -05:00
d902f864db Only select mass milling if the player knows the mass mill ability for that item 2016-09-05 23:07:09 -05:00
9a4c7ddf82 Added support for mass milling 2016-09-05 22:44:48 -05:00
8bd14cd525 Explicitly added Legion herbs 2016-09-05 22:02:27 -05:00
b086d499b8 Updated TOC to 7.0 2016-07-18 12:03:29 -05:00
66b0de8074 Added mailmap to unify author info 2016-05-30 11:24:49 -05:00
62a949cd10 Updated Compatible-With to 7.0 2016-05-30 01:44:52 -05:00
8f50b7f75f - TOC bump for 6.2 2015-06-27 22:11:54 -05:00
3f0637641a - Clear the tooltip when we receive a new item and we recently clicked a breakables button. This isn't ideal since we could be clearing out a tooltip that should stay or clearing out a tooltip not related to our mod, but it's probably better than keeping a stale tooltip around for something like a disenchant when the user hasn't moved the mouse away from the button since breaking something. 2015-06-27 22:11:20 -05:00
6d5d518a8b - Moved compatible-with to 5.x from 4.x 2015-02-25 22:49:45 -06:00
d2895bed6a - TOC bump for 6.1 2015-02-24 17:18:02 -06:00
d2154a350a - Actually fixed True Iron Ore showing up as prospectable. 2014-12-29 17:16:02 -06:00
a41810c663 - Hide garrison follower armor items by hiding any item that doesn't come back with an equip slot. Hopefully doesn't produce any false positives. 2014-12-26 15:22:52 -06:00
da5e9500f8 - Block True Iron Ore from showing up as millable. 2014-12-18 10:40:58 -06:00
53704888fa Disabled global "herb"-type item acceptance since it, as expected, flags false positives. Instead we're whitelisting WoD herbs by item id. 2014-11-22 02:37:20 -06:00
db1819c49f Now considering all items with sub-type "Herb" to be millable. Again. I'm sure it won't cause any problems. Nope. 2014-11-16 15:34:28 -06:00
fb83c4db4a - Added check for the "Herb" keyword on a tooltip line for millable items since apparently WoD herbs don't say "Millable". Cool. 2014-11-14 16:22:13 -06:00
33e52dc2f6 - Switched from LibButtonFacade to Masque. (ticket #20) 2014-11-08 01:07:57 -06:00
74e54e9537 - Added MoP lockbox/junkbox that I apparently missed before now. 2014-10-14 12:56:51 -05:00
5 changed files with 105 additions and 24 deletions

3
.mailmap Normal file
View File

@ -0,0 +1,3 @@
parnic <parnic@parnic.com> Parnic <chris@parnic.com>
parnic <parnic@parnic.com> Chris Pickett <cpickett@perniciousgames.com>
parnic <parnic@parnic.com> root <root@parnic.com>

View File

@ -34,4 +34,3 @@ externals:
libs/LibBabble-Inventory-3.0:
url: svn://svn.wowace.com/wow/libbabble-inventory-3-0/mainline/trunk
tag: latest
libs/LibButtonFacade: svn://svn.wowace.com/wow/buttonfacade/mainline/trunk/Libs/LibButtonFacade

View File

@ -1,7 +1,7 @@
local L = LibStub("AceLocale-3.0"):GetLocale("Breakables", false)
Breakables = LibStub("AceAddon-3.0"):NewAddon("Breakables", "AceConsole-3.0", "AceEvent-3.0")
local babbleInv = LibStub("LibBabble-Inventory-3.0"):GetLookupTable()
local LBF = LibStub("LibButtonFacade", true)
local LBF = LibStub("Masque", true)
local lbfGroup
@ -10,6 +10,52 @@ local MillingItemSubType = babbleInv["Herb"]
local MillingItemSecondarySubType = babbleInv["Other"]
local CanMill = false
local AdditionalMillableItems = {
-- WoD herbs
109124,
109125,
109126,
109127,
109128,
109129,
-- Legion herbs
124101,
124102,
124103,
124104,
124105,
124106,
128304,
}
local AdditionalProspectableItems = {
-- Legion ore
123918,
123919,
}
local MassMilling = {
-- wod
[109124] = 190381,
[109125] = 190382,
[109126] = 190383,
[109127] = 190384,
[109128] = 190385,
[109129] = 190386,
-- legion
[124101] = 209658,
[124102] = 209659,
[124103] = 209660,
[124104] = 209661,
[124105] = 209662,
[124106] = 209664,
[128304] = 210116,
}
local UnProspectableItems = {
109119, -- WoD True Iron Ore
}
local ProspectingId = 31252
local ProspectingItemSubType = babbleInv["Metal & Stone"]
local CanProspect = false
@ -29,6 +75,7 @@ local PickableItems = {
43575, -- reinforced junkbox
63349, -- flame-scarred junkbox
88165, -- vine-cracked junkbox
106895, -- iron-bound junkbox
4632, -- ornate bronze lockbox
4633, -- heavy bronze lockbox
4634, -- iron lockbox
@ -44,6 +91,7 @@ local PickableItems = {
45986, -- tiny titanium lockbox
68729, -- elementium lockbox
88567, -- ghost iron lockbox
116920, -- true steel lockbox
}
local CanPickLock = false
@ -126,7 +174,7 @@ function Breakables:OnInitialize()
self:InitLDB()
end
function Breakables:ButtonFacadeCallback(SkinID, Gloss, Backdrop, Group, Button, Colors)
function Breakables:ButtonFacadeCallback(Group, SkinID, Gloss, Backdrop, Colors, Disabled)
if not Group then
self.settings.SkinID = SkinID
self.settings.Gloss = Gloss
@ -169,14 +217,11 @@ function Breakables:OnEnable()
self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("Breakables")
if LBF then
LBF:RegisterSkinCallback("Breakables", self.ButtonFacadeCallback, self)
LBF:Register("Breakables", self.ButtonFacadeCallback, self)
lbfGroup = LBF:Group("Breakables")
if lbfGroup then
lbfGroup:Skin(self.settings.SkinID,
self.settings.Gloss,
self.settings.Backdrop,
self.settings.Colors)
lbfGroup:ReSkin()
end
end
@ -258,6 +303,7 @@ function Breakables:OnItemReceived(event, bag)
if self.justClicked then
self:FindBreakables()
self.justClicked = false
self:OnLeaveProfessionButton()
elseif not bag or bag >= 0 then
nextCheck[bag] = GetTime() + BagUpdateCheckDelay
end
@ -564,7 +610,7 @@ function Breakables:CreateButtonFrame()
frame:SetScript("OnMouseUp", frame.OnMouseUpFunc)
frame:SetClampedToScreen(true)
local spellName, _, texture = GetSpellInfo(self:GetSpellIdFromProfessionButton(frame))
local spellName, _, texture = GetSpellInfo(self:GetSpellIdFromProfessionButton(frame.type))
frame:SetAttribute("type1", "spell")
frame:SetAttribute("spell1", spellName)
@ -591,10 +637,16 @@ function Breakables:CreateButtonFrame()
end
end
function Breakables:GetSpellIdFromProfessionButton(btn)
return (btn.type == BREAKABLE_HERB and MillingId)
or (btn.type == BREAKABLE_ORE and ProspectingId)
or (btn.type == BREAKABLE_DE and DisenchantId)
function Breakables:GetSpellIdFromProfessionButton(itemType, itemId)
if itemType == BREAKABLE_HERB and itemId ~= nil then
if MassMilling[itemId] ~= nil and IsSpellKnown(MassMilling[itemId]) then
return MassMilling[itemId]
end
end
return (itemType == BREAKABLE_HERB and MillingId)
or (itemType == BREAKABLE_ORE and ProspectingId)
or (itemType == BREAKABLE_DE and DisenchantId)
or PickLockId
end
@ -744,10 +796,11 @@ function Breakables:FindBreakables(bag)
btn.text:SetText(foundBreakables[i][IDX_COUNT] .. appendText)
end
local BreakableAbilityName = GetSpellInfo((foundBreakables[i][IDX_BREAKABLETYPE] == BREAKABLE_HERB and MillingId)
or (foundBreakables[i][IDX_BREAKABLETYPE] == BREAKABLE_ORE and ProspectingId)
or (foundBreakables[i][IDX_BREAKABLETYPE] == BREAKABLE_DE and DisenchantId)
or PickLockId)
local BreakableAbilityName = GetSpellInfo(self:GetSpellIdFromProfessionButton(foundBreakables[i][IDX_BREAKABLETYPE], self:GetItemIdFromLink(foundBreakables[i][IDX_LINK])))
--GetSpellInfo((foundBreakables[i][IDX_BREAKABLETYPE] == BREAKABLE_HERB and MillingId)
--or (foundBreakables[i][IDX_BREAKABLETYPE] == BREAKABLE_ORE and ProspectingId)
--or (foundBreakables[i][IDX_BREAKABLETYPE] == BREAKABLE_DE and DisenchantId)
--or PickLockId)
btn:SetAttribute("spell", BreakableAbilityName)
if isLockedItem then
@ -811,7 +864,7 @@ end
function Breakables:OnEnterProfessionButton(btn)
GameTooltip:SetOwner(btn, "ANCHOR_BOTTOMLEFT")
GameTooltip:SetSpellByID(self:GetSpellIdFromProfessionButton(btn))
GameTooltip:SetSpellByID(self:GetSpellIdFromProfessionButton(btn.type))
GameTooltip:AddLine(" ")
GameTooltip:AddLine(L["Hold shift and left-click to drag the Breakables bar around."], 1, 1, 1, 1)
@ -900,6 +953,7 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
end
local shouldHideThisItem = (self.settings.hideEqManagerItems and isInEquipmentSet) or (self.settings.hideTabards and isTabard)
or equipSlot == nil or equipSlot == ""
if (not soulbound or self.settings.showSoulbound) and not shouldHideThisItem then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_DE, soulbound, itemName, itemRarity}
@ -923,6 +977,32 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
end
end
local itemId = self:GetItemIdFromLink(itemLink)
if CanMill and not millable then
for i=1,#AdditionalMillableItems do
if AdditionalMillableItems[i] == itemId then
millable = true
end
end
end
if CanProspect then
if not prospectable then
for i=1,#AdditionalProspectableItems do
if AdditionalProspectableItems[i] == itemId then
prospectable = true
end
end
end
if prospectable then
for i=1,#UnProspectableItems do
if UnProspectableItems[i] == itemId then
prospectable = false
end
end
end
end
if CanMill --[[and (itemSubType == MillingItemSubType or itemSubType == MillingItemSecondarySubType)]] and millable then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_HERB, false, itemName, itemRarity}
end
@ -931,7 +1011,7 @@ function Breakables:FindBreakablesInSlot(bagId, slotId)
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_ORE, false, itemName, itemRarity}
end
if CanPickLock and self:ItemIsPickable(self:GetItemIdFromLink(itemLink)) and self:ItemIsLocked(bagId, slotId) then
if CanPickLock and self:ItemIsPickable(itemId) and self:ItemIsLocked(bagId, slotId) then
return {itemLink, itemCount, itemType, itemTexture, bagId, slotId, itemSubType, itemLevel, BREAKABLE_PICK, false, itemName, itemRarity}
end
end

View File

@ -1,12 +1,12 @@
## Interface: 60000
## Interface: 70000
## Author: Parnic
## Name: Breakables
## Title: Breakables |cff7fff7f-Ace3-|r
## Notes: Tracks herbs/ore/items that can be broken into component pieces
## Version: @project-version@ (Revision: @project-revision@)
## SavedVariables: BreakablesDB
## OptionalDeps: Ace3, LibBabble-Inventory-3.0, ButtonFacade
## X-Compatible-With: 40300
## OptionalDeps: Ace3, LibBabble-Inventory-3.0, Masque
## X-Compatible-With: 60200
#@no-lib-strip@
embeds.xml
@ -15,4 +15,4 @@ embeds.xml
LibDataBroker-1.1.lua
loc\loc.xml
Breakables.lua
Breakables.lua

View File

@ -10,5 +10,4 @@
<Include file="libs\AceEvent-3.0\AceEvent-3.0.xml"/>
<Include file="libs\AceLocale-3.0\AceLocale-3.0.xml"/>
<Include file="libs\LibBabble-Inventory-3.0\lib.xml"/>
<Include file="libs\LibButtonFacade\LibButtonFacade.xml"/>
</Ui>