mirror of
https://github.com/brues-code/SuperCleveRoidMacros.git
synced 2026-09-16 03:38:00 +00:00
138 lines
4.1 KiB
Lua
138 lines
4.1 KiB
Lua
--[[
|
|
Author: Dennis Werner Garske (DWG) / brian / Mewtiny
|
|
License: MIT License
|
|
]]
|
|
local _G = _G or getfenv(0)
|
|
local CleveRoids = _G.CleveRoids or {}
|
|
|
|
CleveRoids.Hooks = CleveRoids.Hooks or {}
|
|
|
|
local Extension = CleveRoids.RegisterExtension("PerfectRaid")
|
|
Extension.RegisterEvent("ADDON_LOADED", "OnLoad")
|
|
|
|
function Extension.OnEnter(unit)
|
|
CleveRoids.SetMouseoverFrom("praid", unit)
|
|
end
|
|
|
|
function Extension.OnLeave()
|
|
CleveRoids.ClearMouseoverFrom("praid")
|
|
CleveRoids.ClearMouseoverFrom("native")
|
|
end
|
|
|
|
function Extension.OnLoad()
|
|
if arg1 ~= "PerfectRaid" then
|
|
return
|
|
end
|
|
|
|
CleveRoids.Hooks.PerfectRaid = { CreateFrame = PerfectRaid.CreateFrame }
|
|
PerfectRaid.CreateFrame = CleveRoids.PerfectRaidCreateFrame
|
|
end
|
|
|
|
function CleveRoids.PerfectRaidCreateFrame(self, num)
|
|
-- We need to allocate up to num frames
|
|
|
|
if self.poolsize >= num then return end
|
|
|
|
--[[
|
|
local mem,thr = gcinfo()
|
|
self:Msg("Memory Usage Before: %s [%s].", mem, thr)
|
|
--]]
|
|
local side = self.opt.Align
|
|
|
|
local justify,point,relative,offset
|
|
|
|
if side == "left" then
|
|
justify = "RIGHT"
|
|
point = "LEFT"
|
|
relative = "RIGHT"
|
|
offset = 5
|
|
elseif side == "right" then
|
|
justify = "LEFT"
|
|
point = "RIGHT"
|
|
relative = "LEFT"
|
|
offset = -5
|
|
end
|
|
|
|
for i=(self.poolsize + 1),num do
|
|
local frame = CreateFrame("Button", nil, PerfectRaidFrame)
|
|
frame:EnableMouse(true)
|
|
frame.unit = "raid"..i
|
|
frame.id = i
|
|
frame:SetWidth(225)
|
|
frame:SetHeight(13)
|
|
frame:SetMovable(true)
|
|
frame:RegisterForDrag("LeftButton")
|
|
frame:SetScript("OnDragStart", function() self["master"]:StartMoving() end)
|
|
frame:SetScript("OnDragStop", function() self["master"]:StopMovingOrSizing() self:SavePosition() end)
|
|
frame:RegisterForClicks("LeftButtonUp", "RightButtonUp", "MiddleButtonUp", "Button4Up", "Button5Up")
|
|
frame:SetScript("OnClick", self.OnClick)
|
|
frame:SetScript("OnEnter", function()
|
|
Extension.OnEnter(this.unit)
|
|
end)
|
|
frame:SetScript("OnLeave", function()
|
|
Extension.OnLeave()
|
|
end)
|
|
frame:SetParent(self.master)
|
|
|
|
local font = frame:CreateFontString(nil, "ARTWORK")
|
|
font:SetFontObject(GameFontHighlightSmall)
|
|
font:SetText("WW")
|
|
font:SetJustifyH("CENTER")
|
|
font:SetWidth(font:GetStringWidth())
|
|
font:SetHeight(14)
|
|
font:Show()
|
|
font:ClearAllPoints()
|
|
font:SetPoint(point, frame, relative,0, 0)
|
|
-- Add this font string to the frame
|
|
frame.Prefix = font
|
|
|
|
font = frame:CreateFontString(nil, "ARTWORK")
|
|
font:SetFontObject(GameFontHighlightSmall)
|
|
font:SetText()
|
|
font:SetJustifyH(justify)
|
|
font:SetWidth(55)
|
|
font:SetHeight(12)
|
|
font:Show()
|
|
font:ClearAllPoints()
|
|
font:SetPoint(point, frame.Prefix, relative, offset, 0)
|
|
-- Add this font string to the frame
|
|
frame.Name = font
|
|
|
|
local bar = CreateFrame("StatusBar", nil, frame)
|
|
bar:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar")
|
|
bar:SetMinMaxValues(0,100)
|
|
bar:ClearAllPoints()
|
|
bar:SetPoint(point, frame.Name, relative, offset, 0)
|
|
bar:SetWidth(60)
|
|
bar:SetHeight(7)
|
|
bar:Show()
|
|
-- Add this status bar to the frame
|
|
frame.Bar = bar
|
|
|
|
font = frame:CreateFontString(nil, "ARTWORK")
|
|
font:SetFontObject(GameFontHighlightSmall)
|
|
font:SetText("")
|
|
font:SetJustifyH(justify)
|
|
font:SetWidth(font:GetStringWidth())
|
|
font:SetHeight(12)
|
|
font:Show()
|
|
font:ClearAllPoints()
|
|
font:SetPoint(point, frame.Bar, relative, offset, 0)
|
|
-- Add this font string to the frame
|
|
frame.Status = font
|
|
|
|
-- Lets set the frame in the indexed array
|
|
self.frames[i] = frame
|
|
self.frames["raid"..i] = frame
|
|
self.poolsize = i
|
|
end
|
|
|
|
mem2,thr2 = gcinfo()
|
|
--[[
|
|
self:Msg("Memory Usage After: %s [%s].", mem2, thr2)
|
|
self:Msg("Frame creation change: %s [%s].", mem2 - mem, thr2 - thr)
|
|
--]]
|
|
end
|
|
|
|
_G["CleveRoids"] = CleveRoids
|