|
--]] |
|
local tooltip, tooltipHook = GameTooltip |
local milling, prospecting = GetSpellInfo(51005), GetSpellInfo(31252) |
local macro = '/cast %s\n/use %s %s' |
|
local button = CreateFrame('Button', 'Molinari', UIParent, 'SecureActionButtonTemplate AutoCastShineTemplate') |
button:RegisterForClicks('LeftButtonUp') |
button:RegisterEvent('MODIFIER_STATE_CHANGED') |
|
|
for k, v in next, button.sparkles do |
v:SetWidth(v:GetWidth() * 3) |
v:SetHeight(v:GetHeight() * 3) |
end |
|
do |
local milling, prospecting = GetSpellInfo(51005), GetSpellInfo(31252) |
local macro = '/cast %s\n/use %s %s' |
local function tooltipHook(self) |
if(self:GetItem() and IsAltKeyDown() and not InCombatLockdown()) then |
local text = GameTooltipTextLeft2:GetText() |
|
function tooltipHook(self) |
if(InCombatLockdown()) then return end |
if(text and (text == ITEM_MILLABLE or text == ITEM_PROSPECTABLE)) then |
local scribe = text == ITEM_MILLABLE |
local anchor = GetMouseFocus() |
|
if(self:GetItem() and IsAltKeyDown()) then |
local text = GameTooltipTextLeft2:GetText() |
button:ClearAllPoints() |
button:SetAttribute('macrotext', macro:format(scribe and milling or prospecting, anchor:GetParent():GetID(), anchor:GetID())) |
button:SetAllPoints(anchor) |
button:Show() |
|
if(text and (text == ITEM_MILLABLE or text == ITEM_PROSPECTABLE)) then |
local scribe = text == ITEM_MILLABLE |
local anchor = GetMouseFocus() |
|
button:ClearAllPoints() |
button:SetAttribute('macrotext', macro:format(scribe and milling or prospecting, anchor:GetParent():GetID(), anchor:GetID())) |
button:SetAllPoints(anchor) |
button:Show() |
|
if(scribe) then |
AutoCastShine_AutoCastStart(button, 0.5, 1, 0.5) |
else |
AutoCastShine_AutoCastStart(button, 1, 0.5, 0.5) |
end |
if(scribe) then |
AutoCastShine_AutoCastStart(button, 0.5, 1, 0.5) |
else |
AutoCastShine_AutoCastStart(button, 1, 0.5, 0.5) |
end |
end |
end |
end |
|
function button:MODIFIER_STATE_CHANGED(event, key) |
if((key == 'LALT' or key == 'RALT') and self:IsShown()) then |
if(InCombatLockdown()) then |
self:RegisterEvent('PLAYER_REGEN_DISABLED') |
else |
self:ClearAllPoints() |
self:Hide() |
AutoCastShine_AutoCastStop(self) |
end |
function button:MODIFIER_STATE_CHANGED(event, key) |
if((key == 'LALT' or key == 'RALT') and self:IsShown()) then |
if(InCombatLockdown()) then |
self:RegisterEvent('PLAYER_REGEN_DISABLED') |
else |
self:ClearAllPoints() |
self:Hide() |
AutoCastShine_AutoCastStop(self) |
end |
end |
end |
|
function button:PLAYER_REGEN_DISABLED(event) |
self:UnregisterEvent(event) |
function button:PLAYER_REGEN_DISABLED(event) |
self:UnregisterEvent(event) |
|
self:ClearAllPoints() |
self:Hide() |
AutoCastShine_AutoCastStop(self) |
end |
self:ClearAllPoints() |
self:Hide() |
AutoCastShine_AutoCastStop(self) |
end |
|
button:SetAttribute('*type*', 'macro') |
button:SetFrameStrata('DIALOG') |
button:SetScript('OnLeave', function(self) self:Hide() end) |
button:SetScript('OnEvent', function(self, event, ...) self[event](self, event, ...) end) |
tooltip:HookScript('OnTooltipSetItem', tooltipHook) |