You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
310 lines
9.3 KiB
310 lines
9.3 KiB
local addonName, addon = ...
|
|
--addon = LibStub("AceAddon-3.0"):NewAddon(addon, addonName, "AceEvent-3.0", "AceConsole-3.0", "AceHook-3.0")
|
|
addon = LibStub("AceAddon-3.0"):GetAddon(addonName)
|
|
|
|
|
|
|
|
|
|
function addon.Init:UpdateWardrobeEnhanced()
|
|
end
|
|
|
|
if not C_AddOns.IsAddOnLoaded("LegionWardrobe") then return end
|
|
if true then return end -- TODO Remove once updated
|
|
local setsButton_tooltip = "Sets"
|
|
local resetFilterButton_tooltip = "Reset filter"
|
|
local colorSelectButton_tooltip = "Select color"
|
|
local bigModelButton_tooltip = "Open Big Model"
|
|
local optionsButton_tooltip = "Options"
|
|
|
|
local filteredRecolors
|
|
local WE_Frames = {}
|
|
local BE_Frames = {}
|
|
|
|
local WE_HideFrames = {}
|
|
local old_FilterVisuals
|
|
|
|
local tonumber, GetItemCount, strtrim, bit_band, type = tonumber, GetItemCount, strtrim, bit.band, type
|
|
|
|
local Addon = _G.LTA
|
|
|
|
--local ItemsCheckBonuses = LTS.ItemsCheckBonuses
|
|
--local ZonesFilterList = LTS.ZonesFilterList
|
|
|
|
local AllData
|
|
local AllDataAll
|
|
local Visuals
|
|
local ItemSource
|
|
local VendorNames
|
|
local InstanceList
|
|
local BossList
|
|
local DiffList
|
|
local ItemCost
|
|
local QuestToZone
|
|
local ZonesNames
|
|
local ZoneToDataID
|
|
local DiffToDataID
|
|
local QuestZoneToDataID
|
|
local QuestZoneToDataIDModern
|
|
local NPCToZone
|
|
local NPCReact
|
|
local InstanceToEJ
|
|
local BossToEJ
|
|
local SetsAllData
|
|
local Sets
|
|
local Recolors
|
|
local HaveRecolors
|
|
local VisualColors
|
|
|
|
local VLTW
|
|
|
|
local _,playerClass = UnitClass'player'
|
|
local playerFaction = UnitFactionGroup'player'
|
|
|
|
local realmKey = GetRealmName() or ""
|
|
local charName = UnitName'player' or ""
|
|
realmKey = realmKey:gsub(" ","")
|
|
local charKey = charName .. "-" .. realmKey
|
|
local charKeyFind = charKey:gsub("%-","%%%-")
|
|
|
|
|
|
local function FilterVisuals(self)
|
|
if FilterInstance or filteredRecolors or FilterColor then
|
|
WE_Frames.ResetButton:Show()
|
|
else
|
|
WE_Frames.ResetButton:Hide()
|
|
end
|
|
|
|
|
|
if not C_Transmog.IsAtTransmogNPC() and BetterWardrobeCollectionFrame.ItemsCollectionFrame.activeCategory and filteredRecolors then
|
|
local filteredVisualsList = { }
|
|
local tmp = {}
|
|
for q,w in pairs(filteredRecolors) do tmp[w] = true end
|
|
|
|
local visualsList = BetterWardrobeCollectionFrame.ItemsCollectionFrame.visualsList
|
|
if BetterWardrobeCollectionFrame.ItemsCollectionFrame.transmogLocation:IsOffHand() then
|
|
for categoryID=1,100 do
|
|
local name, isWeapon, canEnchant, canMainHand, canOffHand = C_TransmogCollection.GetCategoryInfo(categoryID)
|
|
if canMainHand then
|
|
local toAdd = C_TransmogCollection.GetCategoryAppearances(categoryID, 1)
|
|
if toAdd then
|
|
for i=1,#toAdd do
|
|
visualsList[#visualsList+1] = toAdd[i]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
elseif BetterWardrobeCollectionFrame.ItemsCollectionFrame.transmogLocation:IsMainHand() then
|
|
for categoryID=1,100 do
|
|
local name, isWeapon, canEnchant, canMainHand, canOffHand = C_TransmogCollection.GetCategoryInfo(categoryID)
|
|
if canOffHand then
|
|
local toAdd = C_TransmogCollection.GetCategoryAppearances(categoryID, 2)
|
|
if toAdd then
|
|
for i=1,#toAdd do
|
|
visualsList[#visualsList+1] = toAdd[i]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
for i = 1, #visualsList do
|
|
if tmp[ visualsList[i].visualID ] then
|
|
tinsert(filteredVisualsList, visualsList[i])
|
|
tmp[ visualsList[i].visualID ] = nil
|
|
end
|
|
end
|
|
|
|
BetterWardrobeCollectionFrame.ItemsCollectionFrame.filteredVisualsList = filteredVisualsList
|
|
return
|
|
end
|
|
|
|
local isAtTransmogrifier = C_Transmog.IsAtTransmogNPC();
|
|
local visualsList = self.visualsList;
|
|
|
|
local filteredVisualsList = { };
|
|
local slotID = self.transmogLocation.slotID;
|
|
for i, visualInfo in ipairs(visualsList) do
|
|
local skip = false;
|
|
if visualInfo.restrictedSlotID then
|
|
skip = (slotID ~= visualInfo.restrictedSlotID);
|
|
end
|
|
if not skip then
|
|
if isAtTransmogrifier then
|
|
if (visualInfo.isUsable and visualInfo.isCollected) or visualInfo.alwaysShowItem then
|
|
table.insert(filteredVisualsList, visualInfo);
|
|
end
|
|
else
|
|
if not visualInfo.isHideVisual then
|
|
table.insert(filteredVisualsList, visualInfo);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
self.filteredVisualsList = filteredVisualsList;
|
|
end
|
|
|
|
|
|
local function ReloadCategory()
|
|
local WE = _G.LTA
|
|
if WardrobeCollectionFrame:IsShown() and not BetterWardrobeCollectionFrame.ItemsCollectionFrame:IsShown() then
|
|
BetterWardrobeCollectionFrame:SetTab(1)
|
|
|
|
elseif not WardrobeCollectionFrame:IsShown() then
|
|
return
|
|
end
|
|
WE.IsReset = true
|
|
addon.FilteringRecolors = BetterWardrobeCollectionFrame.ItemsCollectionFrame.activeCategory
|
|
|
|
local transmogLocation = BetterWardrobeCollectionFrame.ItemsCollectionFrame.transmogLocation
|
|
BetterWardrobeCollectionFrame.ItemsCollectionFrame.transmogLocation = nil
|
|
BetterWardrobeCollectionFrame.ItemsCollectionFrame.activeCategory = nil
|
|
|
|
BetterWardrobeCollectionFrame.ItemsCollectionFrame:SetActiveSlot(transmogLocation)
|
|
|
|
BetterWardrobeCollectionFrame.ItemsCollectionFrame.PagingFrame:SetCurrentPage(1)
|
|
|
|
WE.IsReset = false
|
|
end
|
|
|
|
|
|
|
|
|
|
function addon.Init:UpdateWardrobeEnhanced()
|
|
wipe(WE_HideFrames)
|
|
local completed = 0
|
|
local f = addon.prisonFrame
|
|
local function ButtonOnEnter(self)
|
|
if not self.tooltip then return end
|
|
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
|
|
GameTooltip:AddLine(self.tooltip)
|
|
GameTooltip:Show()
|
|
end
|
|
|
|
local function ButtonOnLeave(self)
|
|
GameTooltip_Hide()
|
|
end
|
|
|
|
|
|
local kids = { WardrobeCollectionFrame:GetChildren() };
|
|
local isAtTransmogrifier = C_Transmog.IsAtTransmogNPC();
|
|
local size = 25
|
|
|
|
for _, child in ipairs(kids) do
|
|
local child_x, child_y = child:GetSize()
|
|
if child.tooltip == resetFilterButton_tooltip then
|
|
WE_Frames.ResetButton = child
|
|
WE_Frames.ResetButton:SetSize(size, size)
|
|
|
|
--WE_Frames.ResetButton:SetParent(f)
|
|
completed = completed + 1
|
|
|
|
elseif child.tooltip == colorSelectButton_tooltip then
|
|
WE_Frames.ColorButton = child
|
|
WE_Frames.ColorButton:SetSize(20, 20)
|
|
local onClick = WE_Frames.ColorButton:GetScript("OnClick")
|
|
local onEnter = WE_Frames.ColorButton:GetScript("OnEnter")
|
|
local onLeave = WE_Frames.ColorButton:GetScript("OnLeave")
|
|
WE_Frames.ColorButton:SetParent(f)
|
|
|
|
|
|
tinsert(WE_HideFrames, WE_Frames.ModelsButton)
|
|
completed = completed + 1
|
|
|
|
elseif child.tooltip == optionsButton_tooltip then
|
|
WE_Frames.OptionsButton = child
|
|
WE_Frames.OptionsButton:SetSize(20, 20)
|
|
|
|
--WE_Frames.OptionsButton:SetParent(f)
|
|
tinsert(WE_HideFrames, WE_Frames.OptionsButton)
|
|
completed = completed + 1
|
|
|
|
|
|
elseif child.tooltip == bigModelButton_tooltip then
|
|
WE_Frames.ModelsButton = child
|
|
WE_Frames.ModelsButton:SetSize(size, size)
|
|
|
|
--WE_Frames.ModelsButton:SetParent(f)
|
|
tinsert(WE_HideFrames, WE_Frames.ModelsButton)
|
|
completed = completed + 1
|
|
|
|
|
|
elseif child.tooltip == setsButton_tooltip then
|
|
WE_Frames.SetsButton = child
|
|
WE_Frames.SetsButton:SetSize(size, size)
|
|
|
|
--WE_Frames.SetsButton:SetParent(f)
|
|
tinsert(WE_HideFrames, WE_Frames.SetsButton)
|
|
completed = completed + 1
|
|
|
|
|
|
elseif math.floor(child_x) == 1 and math.floor(child_y) == 1 then
|
|
WE_Frames.WatcherFrame = child
|
|
WE_Frames.WatcherFrame:SetParent(f)
|
|
WE_Frames.WatcherFrame:SetScript("OnShow",function(self)
|
|
end)
|
|
end
|
|
end
|
|
|
|
WE_Frames.ResetButton:SetParent(BetterWardrobeCollectionFrame)
|
|
WE_Frames.ResetButton:ClearAllPoints()
|
|
WE_Frames.ResetButton:SetPoint("RIGHT", WE_Frames.ColorButton, "LEFT", -3, 0)
|
|
--WE_Frames.ResetButton:Hide()
|
|
|
|
|
|
|
|
WE_Frames.ColorButton:ClearAllPoints()
|
|
if isAtTransmogrifier then
|
|
WE_Frames.ColorButton:SetPoint("TOPRIGHT", BetterWardrobeCollectionFrameWeaponDropDown, -190, -3)
|
|
else
|
|
WE_Frames.ColorButton:SetPoint("RIGHT", WE_Frames.OptionsButton, "LEFT", -7, 0)
|
|
end
|
|
--WE_Frames.ColorButton:SetPoint("RIGHT", WE_Frames.OptionsButton, "LEFT", -7, 0)
|
|
--WE_Frames.ColorButton:SetScript("OnShow", function() end)
|
|
--WE_Frames.ColorButton:Hide()
|
|
WE_Frames.OptionsButton:SetParent(BetterWardrobeCollectionFrame)
|
|
WE_Frames.OptionsButton:ClearAllPoints()
|
|
WE_Frames.OptionsButton:SetPoint("RIGHT", WE_Frames.ModelsButton, "LEFT", -3, 0)
|
|
--WE_Frames.OptionsButton:Hide()
|
|
WE_Frames.ModelsButton:SetParent(BetterWardrobeCollectionFrame)
|
|
|
|
WE_Frames.ModelsButton:ClearAllPoints()
|
|
WE_Frames.ModelsButton:SetPoint("RIGHT", WE_Frames.SetsButton, "LEFT", 0, 0)
|
|
--WE_Frames.ModelsButton:Hide()
|
|
WE_Frames.SetsButton:SetParent(BetterWardrobeCollectionFrame)
|
|
|
|
WE_Frames.SetsButton:ClearAllPoints()
|
|
WE_Frames.SetsButton:SetPoint("TOPRIGHT", BetterWardrobeCollectionFrameWeaponDropDown, -15, 23)
|
|
--WE_Frames.SetsButton:Hide()
|
|
|
|
|
|
BetterWardrobeCollectionFrameTab1:HookScript("OnClick",function(self)
|
|
WE_Frames.ColorButton:Show()
|
|
end)
|
|
BetterWardrobeCollectionFrameTab2:HookScript("OnClick",function(self)
|
|
WE_Frames.ColorButton:Hide()
|
|
WE_Frames.ResetButton:Hide()
|
|
end)
|
|
BetterWardrobeCollectionFrameTab3:HookScript("OnClick",function(self)
|
|
WE_Frames.ColorButton:Hide()
|
|
WE_Frames.ResetButton:Hide()
|
|
end)
|
|
BetterWardrobeCollectionFrameTab4:HookScript("OnClick",function(self)
|
|
WE_Frames.ColorButton:Hide()
|
|
WE_Frames.ResetButton:Hide()
|
|
end)
|
|
|
|
if WE_Frames.WatcherFrame then
|
|
WE_Frames.WatcherFrame:Show()
|
|
end
|
|
|
|
|
|
if completed < 5 then
|
|
--print("missed one")
|
|
addon.Init:UpdateWardrobeEnhanced()
|
|
return
|
|
end
|
|
|
|
--C_AddOns.LoadAddOn("LegionWardrobeData")
|
|
|
|
end
|
|
|
|
|
|
|