Files

258 lines
9.0 KiB
Lua

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule("Skins")
local AS = E:GetModule("AddOnSkins")
if not AS:IsAddonLODorEnabled("ArkInventory") then return end
local _G = _G
local ipairs = ipairs
local unpack = unpack
local format = string.format
-- ArkInventory 3.02.54
-- https://www.wowace.com/projects/ark-inventory/files/458795
S:AddCallbackForAddon("ArkInventory", "ArkInventory", function()
if not E.private.addOnSkins.ArkInventory then return end
local function skinIcon(frame)
if frame.isSkinned then return end
local icon = frame:GetNormalTexture()
frame:SetTemplate("Default", true)
frame:StyleButton()
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
icon.SetTexCoord = E.noop
frame.isSkinned = true
end
for i = 1, #ArkInventory.Global.Location do
local frameName = format("%s%d", ArkInventory.Const.Frame.Main.Name, i)
local frame = _G[frameName]
if frame then
-- Title
S:HandleCloseButton(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "Close")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "Location0")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton11")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton12")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton13")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton14")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton21")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton22")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton23")])
skinIcon(_G[format("%s%s%s", frameName, ArkInventory.Const.Frame.Title.Name, "ActionButton24")])
-- Search
S:HandleEditBox(_G[format("%s%s%s", frame:GetName(), ArkInventory.Const.Frame.Search.Name, "Filter")])
end
end
hooksecurefunc(ArkInventory, "Frame_Main_Anchor_Set", function(loc_id)
local frameName = format("%s%d", ArkInventory.Const.Frame.Main.Name, loc_id)
local anchor = ArkInventory.LocationOptionGet(loc_id, "anchor", loc_id, "point")
local title = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Title.Name)]
local search = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Search.Name)]
local container = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Container.Name)]
local changer = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Changer.Name)]
local status = _G[format("%s%s", frameName, ArkInventory.Const.Frame.Status.Name)]
if anchor == ArkInventory.Const.Anchor.BottomRight then
changer:Point("BOTTOMRIGHT", status, "TOPRIGHT", 0, -1)
container:Point("BOTTOMRIGHT", changer, "TOPRIGHT", 0, -1)
search:Point("BOTTOMRIGHT", container, "TOPRIGHT", 0, -1)
title:Point("BOTTOMRIGHT", search, "TOPRIGHT", 0, -1)
elseif anchor == ArkInventory.Const.Anchor.BottomLeft then
changer:Point("BOTTOMLEFT", status, "TOPLEFT", 0, -1)
container:Point("BOTTOMLEFT", changer, "TOPLEFT", 0, -1)
search:Point("BOTTOMLEFT", container, "TOPLEFT", 0, -1)
title:Point("BOTTOMLEFT", search, "TOPLEFT", 0, -1)
elseif anchor == ArkInventory.Const.Anchor.TopLeft then
search:Point("TOPLEFT", title, "BOTTOMLEFT", 0, 1)
container:Point("TOPLEFT", search, "BOTTOMLEFT", 0, 1)
changer:Point("TOPLEFT", container, "BOTTOMLEFT", 0, 1)
status:Point("TOPLEFT", changer, "BOTTOMLEFT", 0, 1)
else
search:Point("TOPRIGHT", title, "BOTTOMRIGHT", 0, 1)
container:Point("TOPRIGHT", search, "BOTTOMRIGHT", 0, 1)
changer:Point("TOPRIGHT", container, "BOTTOMRIGHT", 0, 1)
status:Point("TOPRIGHT", changer, "BOTTOMRIGHT", 0, 1)
end
end)
ArkInventory.Frame_Main_Paint = function(frame)
if not ArkInventory.ValidFrame(frame, true) then return end
for _, child in ipairs({frame:GetChildren()}) do
if not child.isSkinned then
child:SetTemplate("Transparent")
local frameName = child:GetName()
if frameName then
local bg = _G[format("%s%s", frameName, "Background")]
local border = _G[format("%s%s", frameName, "ArkBorder")]
if bg then
bg:Hide()
end
if border then
border:Hide()
end
end
child.isSkinned = true
end
end
end
local defaultColors = ArkInventory.Const.Slot.DefaultColour
ArkInventory.Frame_Border_Paint = function(border, slot, file, size, offset, scale, r, g, b, a)
if not border.parent then return end
if r == defaultColors.r and g == defaultColors.g and b == defaultColors.b then
r, g, b = unpack(E.media.bordercolor)
border.parent:SetBackdropBorderColor(r, g, b, 1)
else
border.parent:SetBackdropBorderColor(r or 0, g or 0, b or 0, a)
end
end
local TEXTURE_ITEM_QUEST_BORDER = TEXTURE_ITEM_QUEST_BORDER
local questColors = {
["questStarter"] = {E.db.bags.colors.items.questStarter.r, E.db.bags.colors.items.questStarter.g, E.db.bags.colors.items.questStarter.b},
["questItem"] = {E.db.bags.colors.items.questItem.r, E.db.bags.colors.items.questItem.g, E.db.bags.colors.items.questItem.b}
}
local function updateQuestIcon(self, texture)
if texture == TEXTURE_ITEM_QUEST_BORDER then
self.parent:SetBackdropBorderColor(unpack(questColors.questItem))
self:SetAlpha(0)
else
self.parent:SetBackdropBorderColor(unpack(questColors.questStarter))
self:SetAlpha(1)
end
end
local function skinItemButton(frame)
if frame.isSkinned then return end
local frameName = frame:GetName()
local icon = _G[format("%s%s", frameName, "IconTexture")]
local border = _G[format("%s%s", frameName, "ArkBorder")]
local questIcon = _G[format("%s%s", frameName, "IconQuestTexture")]
local cooldown = _G[format("%s%s", frameName, "Cooldown")]
frame:SetNormalTexture(nil)
frame:SetTemplate("Default", true)
frame:StyleButton()
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
icon.SetTexCoord = E.noop
border:Kill()
border.parent = frame
if questIcon then
questIcon:SetInside()
questIcon:SetTexture(E.Media.Textures.BagQuestIcon)
questIcon.SetTexture = updateQuestIcon
questIcon.parent = frame
end
if cooldown then
cooldown.CooldownOverride = "bags"
E:RegisterCooldown(cooldown)
end
frame.isSkinned = true
end
hooksecurefunc(ArkInventory, "Frame_Item_Update_Border", function(frame)
if not ArkInventory.ValidFrame(frame, true) then return end
skinItemButton(frame)
end)
-- GuildBank
S:HandleButton(ARKINV_Frame4ChangerWindowPurchaseInfoPurchaseButton)
S:HandleButton(ARKINV_Frame4ChangerWindowDepositButton)
S:HandleButton(ARKINV_Frame4ChangerWindowWithdrawButton)
S:HandleNextPrevButton(ARKINV_Frame4LogScrollUp, "up")
S:HandleNextPrevButton(ARKINV_Frame4LogScrollDown, "down")
S:HandleButton(ARKINV_Frame4InfoSave)
S:HandleScrollBar(ARKINV_Frame4InfoScrollScrollBar)
-- Search Frame
ARKINV_SearchTitleBackground:Kill()
ARKINV_SearchFrameBackground:Kill()
ARKINV_SearchTitle:SetTemplate("Transparent")
ARKINV_SearchFrame:SetTemplate("Transparent")
ARKINV_Rules:SetHeight(570)
ARKINV_SearchFrame:Point("TOPLEFT", ARKINV_SearchTitle, "BOTTOMLEFT", 0, 1)
S:HandleCloseButton(ARKINV_SearchTitleClose)
S:HandleEditBox(ARKINV_SearchFrameViewSearchFilter)
S:HandleScrollBar(ARKINV_SearchFrameViewTableScrollScrollBar)
AS:SkinLibrary("ArkDewdrop-3.0")
end)
S:AddCallbackForAddon("ArkInventoryRules", "ArkInventoryRules", function()
if not E.private.addOnSkins.ArkInventory then return end
ArkInventoryRules.Frame_Rules_Paint_Border = E.noop
-- Rules
ARKINV_RulesTitleBackground:Kill()
ARKINV_RulesFrameBackground:Kill()
ARKINV_RulesTitle:SetTemplate("Transparent")
ARKINV_RulesFrame:SetTemplate("Transparent")
ARKINV_RulesFrameViewSearch:SetTemplate("Transparent")
ARKINV_RulesFrameViewTable:SetTemplate("Transparent")
ARKINV_RulesFrame:Point("TOPLEFT", ARKINV_RulesTitle, "BOTTOMLEFT", 0, 1)
ARKINV_RulesFrameViewTitle:SetPoint("TOP")
S:HandleCloseButton(ARKINV_RulesTitleClose)
S:HandleEditBox(ARKINV_RulesFrameViewSearchFilter)
S:HandleScrollBar(ARKINV_RulesFrameViewTableScrollScrollBar)
S:HandleButton(ARKINV_RulesFrameViewMenuAdd)
S:HandleButton(ARKINV_RulesFrameViewMenuEdit)
S:HandleButton(ARKINV_RulesFrameViewMenuRemove)
-- Add Rule
ARKINV_RulesFrameModifyTitle:SetPoint("TOP")
S:HandleCheckBox(ARKINV_RulesFrameModifyDataEnabled)
ARKINV_RulesFrameModifyDataOrder:Height(22)
S:HandleEditBox(ARKINV_RulesFrameModifyDataOrder)
ARKINV_RulesFrameModifyDataDescription:Height(22)
S:HandleEditBox(ARKINV_RulesFrameModifyDataDescription)
ARKINV_RulesFrameModifyDataScrollTextBorder:SetTemplate("Transparent")
S:HandleScrollBar(ARKINV_RulesFrameModifyDataScrollScrollBar)
ARKINV_RulesFrameModifyDataScrollScrollBar:Point("TOPLEFT", ARKINV_RulesFrameModifyDataScroll, "TOPRIGHT", 8, -13)
ARKINV_RulesFrameModifyDataScrollScrollBar:Point("BOTTOMLEFT", ARKINV_RulesFrameModifyDataScroll, "BOTTOMRIGHT", 8, 13)
S:HandleButton(ARKINV_RulesFrameModifyMenuOk)
S:HandleButton(ARKINV_RulesFrameModifyMenuCancel)
end)