mirror of
https://github.com/Bluewhale1337/ElvUIModernized.git
synced 2026-07-27 16:34:45 +00:00
140 lines
4.3 KiB
Lua
140 lines
4.3 KiB
Lua
local E, L, V, P, G = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local S = E:GetModule("Skins");
|
|
|
|
--Cache global variables
|
|
--Lua functions
|
|
local _G = _G
|
|
local unpack = unpack
|
|
local match = string.match
|
|
--WoW API / Variables
|
|
local UnitName = UnitName
|
|
local IsFishingLoot = IsFishingLoot
|
|
local GetLootRollItemInfo = GetLootRollItemInfo
|
|
local GetItemQualityColor = GetItemQualityColor
|
|
local LOOTFRAME_NUMBUTTONS = LOOTFRAME_NUMBUTTONS
|
|
local NUM_GROUP_LOOT_FRAMES = NUM_GROUP_LOOT_FRAMES
|
|
local LOOT = LOOT
|
|
|
|
local function LoadSkin()
|
|
if E.private.general.loot then return end
|
|
if E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.loot ~= true then return end
|
|
|
|
E:StripTextures(LootFrame)
|
|
|
|
E:CreateBackdrop(LootFrame, "Transparent")
|
|
E:Point(LootFrame.backdrop, "TOPLEFT", 13, -14)
|
|
E:Point(LootFrame.backdrop, "BOTTOMRIGHT", -68, 5)
|
|
|
|
LootFramePortraitOverlay:SetParent(E.HiddenFrame)
|
|
|
|
S:HandleCloseButton(LootCloseButton)
|
|
|
|
--[[for i = 1, LootFrame:GetNumRegions() do
|
|
local region = select(i, LootFrame:GetRegions())
|
|
if region:GetObjectType() == "FontString" then
|
|
if region:GetText() == ITEMS then
|
|
LootFrame.Title = region
|
|
end
|
|
end
|
|
end]]
|
|
|
|
--[[LootFrame.Title:ClearAllPoints()
|
|
E:Point(LootFrame.Title, "TOPLEFT", LootFrame.backdrop, "TOPLEFT", 4, -4)
|
|
LootFrame.Title:SetJustifyH("LEFT")]]
|
|
|
|
S:HandleNextPrevButton(LootFrameDownButton)
|
|
S:HandleNextPrevButton(LootFrameUpButton)
|
|
S:SquareButton_SetIcon(LootFrameUpButton, "UP")
|
|
S:SquareButton_SetIcon(LootFrameDownButton, "DOWN")
|
|
|
|
LootFrameDownButton:ClearAllPoints()
|
|
E:Point(LootFrameDownButton, "RIGHT", LootFrameNext, "RIGHT", 32, 0)
|
|
E:Point(LootFramePrev, "BOTTOMLEFT", 57, 22)
|
|
|
|
hooksecurefunc("LootFrame_Update", function()
|
|
local numLootItems = LootFrame.numLootItems
|
|
local numLootToShow = LOOTFRAME_NUMBUTTONS
|
|
if numLootItems > LOOTFRAME_NUMBUTTONS then
|
|
numLootToShow = numLootToShow - 1
|
|
end
|
|
for i = 1, LOOTFRAME_NUMBUTTONS do
|
|
local slot = (((LootFrame.page - 1) * numLootToShow) + i)
|
|
local lootButton = _G["LootButton"..i]
|
|
|
|
S:HandleItemButton(lootButton, true)
|
|
|
|
if slot <= numLootItems then
|
|
local itemLink = GetLootSlotLink(slot)
|
|
if itemLink then
|
|
local _, _, quality = GetItemInfo(match(itemLink, "item:(%d+)"))
|
|
if quality then
|
|
lootButton.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
|
|
else
|
|
lootButton.backdrop:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
else
|
|
lootButton.backdrop:SetBackdropBorderColor(unpack(E["media"].bordercolor))
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
--[[HookScript(LootFrame, "OnShow", function()
|
|
if IsFishingLoot() then
|
|
this.Title:SetText(L["Fishy Loot"])
|
|
elseif not UnitIsFriend("player", "target") and UnitIsDead("target") then
|
|
this.Title:SetText(UnitName("target"))
|
|
else
|
|
this.Title:SetText(LOOT)
|
|
end
|
|
end)--]]
|
|
end
|
|
|
|
local function LoadRollSkin()
|
|
if E.private.general.lootRoll then return end
|
|
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.lootRoll then return end
|
|
|
|
local function OnShow(self)
|
|
E:SetTemplate(self, "Transparent")
|
|
|
|
local cornerTexture = _G[self:GetName().."Corner"]
|
|
cornerTexture:SetTexture()
|
|
|
|
local iconFrame = _G[self:GetName().."IconFrame"]
|
|
local _, _, _, quality = GetLootRollItemInfo(self.rollID)
|
|
iconFrame:SetBackdropBorderColor(GetItemQualityColor(quality))
|
|
end
|
|
|
|
for i = 1, NUM_GROUP_LOOT_FRAMES do
|
|
local frame = _G["GroupLootFrame"..i]
|
|
frame:SetParent(UIParent)
|
|
E:StripTextures(frame)
|
|
|
|
local frameName = frame:GetName()
|
|
local iconFrame = _G[frameName.."IconFrame"]
|
|
E:SetTemplate(iconFrame, "Default")
|
|
|
|
local icon = _G[frameName.."IconFrameIcon"]
|
|
E:SetInside(icon)
|
|
icon:SetTexCoord(unpack(E.TexCoords))
|
|
|
|
local statusBar = _G[frameName.."Timer"]
|
|
E:StripTextures(statusBar)
|
|
E:CreateBackdrop(statusBar, "Default")
|
|
statusBar:SetStatusBarTexture(E["media"].normTex)
|
|
E:RegisterStatusBar(statusBar)
|
|
|
|
local decoration = _G[frameName.."Decoration"]
|
|
decoration:SetTexture("Interface\\DialogFrame\\UI-DialogBox-Gold-Dragon")
|
|
E:Size(decoration, 130)
|
|
E:Point(decoration, "TOPLEFT", -37, 20)
|
|
|
|
local pass = _G[frameName.."PassButton"]
|
|
S:HandleCloseButton(pass, frame)
|
|
|
|
HookScript(_G["GroupLootFrame"..i], "OnShow", OnShow)
|
|
end
|
|
end
|
|
|
|
S:AddCallback("Loot", LoadSkin)
|
|
S:AddCallback("LootRoll", LoadRollSkin) |