WoWInterface SVN mikma

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /Voodoo
    from Rev 545 to Rev 546
    Reverse comparison

Rev 545 → Rev 546

Voodoo.lua
1,5 → 1,5
BINDING_HEADER_MYLITTLEBUTTON = "MyLittleButton"
setglobal("BINDING_NAME_CLICK MyLittleButton:LeftButton", "Execute")
BINDING_HEADER_VOODOO = "Voodoo"
setglobal("BINDING_NAME_CLICK Voodoo:LeftButton", "Execute")
 
local frame = CreateFrame("Button",nil,UIParent)
frame:SetScript("OnEvent", function(self, event, ...)
7,7 → 7,7
end)
frame:RegisterEvent("PLAYER_LOGIN")
 
local button = CreateFrame("Button", "MyLittleButton", UIParent, "SecureActionButtonTemplate, ActionButtonTemplate")
local button = CreateFrame("Button", "Voodoo", UIParent, "SecureActionButtonTemplate, ActionButtonTemplate")
button:SetPoint("CENTER",UIParent)
 
local function ChangeButtonAttributes(texture,type,spell,target)
28,26 → 28,26
if InCombatLockdown() then return end
local type,itemID = GetCursorInfo()
if type == "spell" or "item" then
MyLittleButtonDB[GetActiveTalentGroup()]["type"] = type
VoodooDB[GetActiveTalentGroup()]["type"] = type
if type == "spell" then
MyLittleButtonDB[GetActiveTalentGroup()]["spell"] = select(1,GetSpellName(itemID,type))
MyLittleButtonDB[GetActiveTalentGroup()]["texture"] = GetSpellTexture(MyLittleButtonDB[GetActiveTalentGroup()]["spell"])
VoodooDB[GetActiveTalentGroup()]["spell"] = select(1,GetSpellName(itemID,type))
VoodooDB[GetActiveTalentGroup()]["texture"] = GetSpellTexture(VoodooDB[GetActiveTalentGroup()]["spell"])
elseif type == "item" then
MyLittleButtonDB[GetActiveTalentGroup()]["spell"] = select(1,GetItemInfo(itemID))
MyLittleButtonDB[GetActiveTalentGroup()]["texture"] = select(10,GetItemInfo(itemID))
VoodooDB[GetActiveTalentGroup()]["spell"] = select(1,GetItemInfo(itemID))
VoodooDB[GetActiveTalentGroup()]["texture"] = select(10,GetItemInfo(itemID))
end
if editbox:GetText() ~= "" then MyLittleButtonDB[GetActiveTalentGroup()]["target"] = editbox:GetText() end
ChangeButtonAttributes(MyLittleButtonDB[GetActiveTalentGroup()]["texture"],MyLittleButtonDB[GetActiveTalentGroup()]["type"],MyLittleButtonDB[GetActiveTalentGroup()]["spell"],MyLittleButtonDB[GetActiveTalentGroup()]["target"])
if editbox:GetText() ~= "" then VoodooDB[GetActiveTalentGroup()]["target"] = editbox:GetText() end
ChangeButtonAttributes(VoodooDB[GetActiveTalentGroup()]["texture"],VoodooDB[GetActiveTalentGroup()]["type"],VoodooDB[GetActiveTalentGroup()]["spell"],VoodooDB[GetActiveTalentGroup()]["target"])
return ClearCursor()
end
end
 
local function CheckCooldown()
local start,duration,enable
if MyLittleButtonDB[GetActiveTalentGroup()]["spell"] and GetSpellInfo(MyLittleButtonDB[GetActiveTalentGroup()]["spell"]) and GetSpellTexture(MyLittleButtonDB[GetActiveTalentGroup()]["spell"]) then
start,duration,enable = GetSpellCooldown(MyLittleButtonDB[GetActiveTalentGroup()]["spell"])
elseif MyLittleButtonDB[GetActiveTalentGroup()]["spell"] and GetItemInfo(MyLittleButtonDB[GetActiveTalentGroup()]["spell"]) and select(10,GetItemInfo(MyLittleButtonDB[GetActiveTalentGroup()]["spell"])) then
start,duration,enable = GetItemCooldown(MyLittleButtonDB[GetActiveTalentGroup()]["spell"])
if VoodooDB[GetActiveTalentGroup()]["spell"] and GetSpellInfo(VoodooDB[GetActiveTalentGroup()]["spell"]) and GetSpellTexture(VoodooDB[GetActiveTalentGroup()]["spell"]) then
start,duration,enable = GetSpellCooldown(VoodooDB[GetActiveTalentGroup()]["spell"])
elseif VoodooDB[GetActiveTalentGroup()]["spell"] and GetItemInfo(VoodooDB[GetActiveTalentGroup()]["spell"]) and select(10,GetItemInfo(VoodooDB[GetActiveTalentGroup()]["spell"])) then
start,duration,enable = GetItemCooldown(VoodooDB[GetActiveTalentGroup()]["spell"])
else
start,duration,enable = 0,0,1
end
97,8 → 97,8
self:ClearFocus()
return
end
MyLittleButtonDB[GetActiveTalentGroup()]["target"] = self:GetText() ~= "" and self:GetText() or nil
ChangeButtonAttributes(MyLittleButtonDB[GetActiveTalentGroup()]["texture"],MyLittleButtonDB[GetActiveTalentGroup()]["type"],MyLittleButtonDB[GetActiveTalentGroup()]["spell"],MyLittleButtonDB[GetActiveTalentGroup()]["target"])
VoodooDB[GetActiveTalentGroup()]["target"] = self:GetText() ~= "" and self:GetText() or nil
ChangeButtonAttributes(VoodooDB[GetActiveTalentGroup()]["texture"],VoodooDB[GetActiveTalentGroup()]["type"],VoodooDB[GetActiveTalentGroup()]["spell"],VoodooDB[GetActiveTalentGroup()]["target"])
self:ClearFocus()
end)
editbox:SetScript("OnEscapePressed", function(self)
106,16 → 106,16
self:ClearFocus()
return
end
MyLittleButtonDB[GetActiveTalentGroup()]["target"] = self:GetText() ~= "" and self:GetText() or nil
ChangeButtonAttributes(MyLittleButtonDB[GetActiveTalentGroup()]["texture"],MyLittleButtonDB[GetActiveTalentGroup()]["type"],MyLittleButtonDB[GetActiveTalentGroup()]["spell"],MyLittleButtonDB[GetActiveTalentGroup()]["target"])
VoodooDB[GetActiveTalentGroup()]["target"] = self:GetText() ~= "" and self:GetText() or nil
ChangeButtonAttributes(VoodooDB[GetActiveTalentGroup()]["texture"],VoodooDB[GetActiveTalentGroup()]["type"],VoodooDB[GetActiveTalentGroup()]["spell"],VoodooDB[GetActiveTalentGroup()]["target"])
self:ClearFocus()
end)
editbox:SetScript("OnEditFocusGained", function(self)
if InCombatLockdown() then return end
if IsShiftKeyDown() and UnitExists("target") then
MyLittleButtonDB[GetActiveTalentGroup()]["target"] = UnitName("target")
ChangeButtonAttributes(MyLittleButtonDB[GetActiveTalentGroup()]["texture"],MyLittleButtonDB[GetActiveTalentGroup()]["type"],MyLittleButtonDB[GetActiveTalentGroup()]["spell"],MyLittleButtonDB[GetActiveTalentGroup()]["target"])
self:SetText(MyLittleButtonDB[GetActiveTalentGroup()]["target"])
VoodooDB[GetActiveTalentGroup()]["target"] = UnitName("target")
ChangeButtonAttributes(VoodooDB[GetActiveTalentGroup()]["texture"],VoodooDB[GetActiveTalentGroup()]["type"],VoodooDB[GetActiveTalentGroup()]["spell"],VoodooDB[GetActiveTalentGroup()]["target"])
self:SetText(VoodooDB[GetActiveTalentGroup()]["target"])
self:ClearFocus()
else
self:HighlightText()
131,18 → 131,18
frame:SetUserPlaced(true)
frame:SetClampedToScreen(true)
frame:SetScript("OnDragStart", function(self)
if not MyLittleButtonDB.lock then
if not VoodooDB.lock then
self:StartMoving()
end
end)
frame:SetScript("OnDragStop", function(self)
self:StopMovingOrSizing()
MyLittleButtonDB.point, MyLittleButtonDB.x, MyLittleButtonDB.y = "BOTTOMLEFT", self:GetLeft(), self:GetBottom()
VoodooDB.point, VoodooDB.x, VoodooDB.y = "BOTTOMLEFT", self:GetLeft(), self:GetBottom()
end)
frame:SetScript("OnDoubleClick", function(self)
if IsShiftKeyDown() then
MyLittleButtonDB.lock = not MyLittleButtonDB.lock
if MyLittleButtonDB.lock then
VoodooDB.lock = not VoodooDB.lock
if VoodooDB.lock then
frame:SetBackdropColor(0,0,0,0.5)
else
frame:SetBackdropColor(1,0,0,0.5)
151,10 → 151,10
end)
 
local function onUpdate(self,elapsed)
if MyLittleButtonDB[GetActiveTalentGroup()]["spell"] and MyLittleButtonDB[GetActiveTalentGroup()]["target"] then
if IsSpellInRange(MyLittleButtonDB[GetActiveTalentGroup()]["spell"],MyLittleButtonDB[GetActiveTalentGroup()]["target"]) == 1 or IsItemInRange(MyLittleButtonDB[GetActiveTalentGroup()]["spell"],MyLittleButtonDB[GetActiveTalentGroup()]["target"]) == 1 then
if VoodooDB[GetActiveTalentGroup()]["spell"] and VoodooDB[GetActiveTalentGroup()]["target"] then
if IsSpellInRange(VoodooDB[GetActiveTalentGroup()]["spell"],VoodooDB[GetActiveTalentGroup()]["target"]) == 1 or IsItemInRange(VoodooDB[GetActiveTalentGroup()]["spell"],VoodooDB[GetActiveTalentGroup()]["target"]) == 1 then
frame:SetBackdropBorderColor(0,1,0,1)
elseif string.lower(MyLittleButtonDB[GetActiveTalentGroup()]["target"]) == string.lower(UnitName("player")) then
elseif string.lower(VoodooDB[GetActiveTalentGroup()]["target"]) == string.lower(UnitName("player")) then
frame:SetBackdropBorderColor(1,1,0,1)
else
frame:SetBackdropBorderColor(1,0,0,1)
167,13 → 167,13
frame:SetScript("OnUpdate", onUpdate)
 
local function SetPosition()
frame:SetPoint("TOPLEFT",MyLittleButton,"TOPLEFT",-7,7)
frame:SetPoint("BOTTOMLEFT",MyLittleButton,"BOTTOMLEFT",-7,-7)
frame:SetPoint("TOPLEFT",Voodoo,"TOPLEFT",-7,7)
frame:SetPoint("BOTTOMLEFT",Voodoo,"BOTTOMLEFT",-7,-7)
frame:SetPoint("RIGHT",MyLittleEditbox,"RIGHT",7,0)
local width = frame:GetWidth()
local height = frame:GetHeight()
frame:ClearAllPoints()
frame:SetPoint(MyLittleButtonDB.point and MyLittleButtonDB.point or "CENTER", MyLittleButtonDB.x and MyLittleButtonDB.x or UIParent, MyLittleButtonDB.y and MyLittleButtonDB.y or nil)
frame:SetPoint(VoodooDB.point and VoodooDB.point or "CENTER", VoodooDB.x and VoodooDB.x or UIParent, VoodooDB.y and VoodooDB.y or nil)
frame:SetWidth(width)
frame:SetHeight(height)
button:ClearAllPoints()
183,11 → 183,11
end
 
local function GetSpellData()
if not MyLittleButtonDB[GetActiveTalentGroup()] then MyLittleButtonDB[GetActiveTalentGroup()] = {} end
local texture = MyLittleButtonDB[GetActiveTalentGroup()]["texture"] and MyLittleButtonDB[GetActiveTalentGroup()]["texture"] or "Interface\\Icons\\INV_Misc_QuestionMark"
local type = MyLittleButtonDB[GetActiveTalentGroup()]["type"] and MyLittleButtonDB[GetActiveTalentGroup()]["type"] or nil
local spell = MyLittleButtonDB[GetActiveTalentGroup()]["spell"] and MyLittleButtonDB[GetActiveTalentGroup()]["spell"] or nil
local target = MyLittleButtonDB[GetActiveTalentGroup()]["target"] and MyLittleButtonDB[GetActiveTalentGroup()]["target"] or ""
if not VoodooDB[GetActiveTalentGroup()] then VoodooDB[GetActiveTalentGroup()] = {} end
local texture = VoodooDB[GetActiveTalentGroup()]["texture"] and VoodooDB[GetActiveTalentGroup()]["texture"] or "Interface\\Icons\\INV_Misc_QuestionMark"
local type = VoodooDB[GetActiveTalentGroup()]["type"] and VoodooDB[GetActiveTalentGroup()]["type"] or nil
local spell = VoodooDB[GetActiveTalentGroup()]["spell"] and VoodooDB[GetActiveTalentGroup()]["spell"] or nil
local target = VoodooDB[GetActiveTalentGroup()]["target"] and VoodooDB[GetActiveTalentGroup()]["target"] or ""
return texture,type,spell,target
end
 
202,13 → 202,13
end
 
function frame:PLAYER_LOGIN()
if not MyLittleButtonDB then MyLittleButtonDB = {} end
if not MyLittleButtonDB[GetActiveTalentGroup()] then MyLittleButtonDB[GetActiveTalentGroup()] = {} end
if MyLittleButtonDB[GetActiveTalentGroup()]["spell"] and MyLittleButtonDB[GetActiveTalentGroup()]["texture"] then
ChangeButtonAttributes(MyLittleButtonDB[GetActiveTalentGroup()]["texture"],MyLittleButtonDB[GetActiveTalentGroup()]["type"],MyLittleButtonDB[GetActiveTalentGroup()]["spell"],MyLittleButtonDB[GetActiveTalentGroup()]["target"])
if not VoodooDB then VoodooDB = {} end
if not VoodooDB[GetActiveTalentGroup()] then VoodooDB[GetActiveTalentGroup()] = {} end
if VoodooDB[GetActiveTalentGroup()]["spell"] and VoodooDB[GetActiveTalentGroup()]["texture"] then
ChangeButtonAttributes(VoodooDB[GetActiveTalentGroup()]["texture"],VoodooDB[GetActiveTalentGroup()]["type"],VoodooDB[GetActiveTalentGroup()]["spell"],VoodooDB[GetActiveTalentGroup()]["target"])
end
editbox:SetText(MyLittleButtonDB[GetActiveTalentGroup()]["target"] and MyLittleButtonDB[GetActiveTalentGroup()]["target"] or "")
if MyLittleButtonDB.lock then
editbox:SetText(VoodooDB[GetActiveTalentGroup()]["target"] and VoodooDB[GetActiveTalentGroup()]["target"] or "")
if VoodooDB.lock then
frame:SetBackdropColor(0,0,0,0.5)
else
frame:SetBackdropColor(1,0,0,0.5)
Voodoo.toc
1,6 → 1,6
## Interface: 30200
## Title: My Little Button
## Notes: For the pony!
## SavedVariablesPerCharacter: MyLittleButtonDB
## Title: Voodoo
## Notes: Poke the button to cast spells on your target!
## SavedVariablesPerCharacter: VoodooDB
 
MyLittleButton.lua
Voodoo.lua
Bindings.xml
1,4 → 1,4
<Bindings>
<Binding name="CLICK MyLittleButton:LeftButton" header="MYLITTLEBUTTON">
<Binding name="CLICK Voodoo:LeftButton" header="VOODOO">
</Binding>
</Bindings>
\ No newline at end of file