LightVirus |
11-27-18 08:14 AM |
Need help locating some Blizzard code
Hi, I'm developing one addon to be able to see all class sets under Set tab on the collections frame.
The problem I found is that I need to re-create the WardrobeCollectionFrame.SetsCollectionFrame so I can make custom functions because blizzard code don't work when you ask for a Set of another class.
I found an addon that does that but only for the ScrollFrame on the left, here is what it does:
Code:
local SetCollection = nil;
local frame = CreateFrame("frame");
frame:RegisterEvent("ADDON_LOADED");
frame:SetScript("OnEvent", function(pSelf, pEvent, pUnit)
if pEvent == "ADDON_LOADED" and pUnit == "Blizzard_Collections" then
WardrobeCollectionFrameScrollFrame:Hide();
WardrobeCollectionFrame.SetsCollectionFrame:Hide();
_ButtonHeight = WardrobeCollectionFrameScrollFrame.buttons[1]:GetHeight();
_SetsDataProvider = CreateFromMixins(WardrobeSetsDataProviderMixin);
GetSets();
_ScrollFrame = CreateFrame("ScrollFrame", "SetCollectionUngroupScrollFrame", WardrobeCollectionFrame.SetsCollectionFrame, "HybridScrollFrameTemplate");
_ScrollFrame:SetAllPoints(WardrobeCollectionFrameScrollFrame);
_ScrollFrame.scrollBar = CreateFrame("Slider", "SetCollectionUngroupScrollFrameScrollBar", _ScrollFrame, "HybridScrollBarTrimTemplate");
_ScrollFrame.scrollBar:SetAllPoints(WardrobeCollectionFrameScrollFrame.scrollBar);
_ScrollFrame.scrollBar:SetScript("OnValueChanged", function(pSelf, pValue)
pSelf.scrollValue = pValue;
HybridScrollFrame_OnValueChanged(pSelf, pValue);
ScrollFrame_Update();
end);
_ScrollFrame.scrollBar.trackBG:Show();
_ScrollFrame.scrollBar.trackBG:SetVertexColor(0, 0, 0, 0.75);
_ScrollFrame.scrollBar.scrollValue = 0;
HybridScrollFrame_CreateButtons(_ScrollFrame, "WardrobeSetsScrollFrameButtonTemplate", 44, 0);
for _, button in pairs(_ScrollFrame.buttons) do
button.ProgressBar:SetTexture(1, 1, 1);
button:RegisterForClicks("AnyUp", "AnyDown");
button:SetScript("OnMouseUp", function(pSelf, pButton, pDown)
if pButton == "LeftButton" then
--PlaySound("igMainMenuOptionCheckBoxOn");
CloseDropDownMenus();
ScrollFrame_SelectSet(pSelf.setVariantID);
elseif pButton == "RightButton" then
_ScrollFrame.menuInitBaseSetID = pSelf.setID;
ToggleDropDownMenu(1, nil, _FavoriteDropDown, pSelf, 0, 0);
--PlaySound("igMainMenuOptionCheckBoxOn");
end
end)
end
_ScrollFrame.selectedSetID = _BaseSets[1].setID;
local variantSets = GetVariantSets(_ScrollFrame.selectedSetID);
if #variantSets > 0 then
_ScrollFrame.selectedSetID = variantSets[1].setID;
end
WardrobeCollectionFrame.SetsCollectionFrame:SelectSet(_ScrollFrame.selectedSetID);
_FavoriteDropDown = CreateFrame("Frame", "SetCollectionUngroupFavoriteDropDown", _ScrollFrame, "UIDropDownMenuTemplate");
UIDropDownMenu_Initialize(_FavoriteDropDown, FavoriteDropDown_Init, "MENU");
hooksecurefunc(WardrobeCollectionFrameScrollFrame, "update", function(pSelf)
_ScrollFrame.selectedSetID = WardrobeCollectionFrame.SetsCollectionFrame:GetSelectedSetID();
ScrollFrame_Update();
end);
hooksecurefunc(WardrobeCollectionFrameScrollFrame, "Update", function(pSelf)
_ScrollFrame.selectedSetID = WardrobeCollectionFrame.SetsCollectionFrame:GetSelectedSetID();
ScrollFrame_Update();
end);
_ScrollFrame:SetScript("OnShow", function(pSelf)
ScrollFrame_Update();
frame:RegisterEvent("TRANSMOG_COLLECTION_UPDATED");
frame:RegisterEvent("PLAYER_REGEN_ENABLED");
frame:RegisterEvent("TRANSMOG_SETS_UPDATE_FAVORITE");
end);
_ScrollFrame:SetScript("OnHide", function(pSelf)
frame:UnregisterEvent("TRANSMOG_COLLECTION_UPDATED");
frame:UnregisterEvent("PLAYER_REGEN_ENABLED");
frame:UnregisterEvent("TRANSMOG_SETS_UPDATE_FAVORITE");
end);
_ScrollFrame:SetScript("OnKeyDown", function(pSelf, pKey)
ScrollFrame_HandleKey(pKey);
end);
elseif _ScrollFrame then
if pEvent == "TRANSMOG_SETS_UPDATE_FAVORITE" then
WardrobeCollectionFrameScrollFrame:OnEvent(pEvent);
end
ScrollFrame_Update();
end
end)
The thing is, I need to do the same but with the whole frame, so there is anywhere I could see the Blizzard code that creates WardrobeCollectionFrame.SetsCollectionFrame and copy it? I mean, who made this addon, could have toked it from somewhere right? I already search in the whole Wardrobe.lua file and didn't find the point where WardrobeCollectionFrame.SetsCollectionFrame is initialized. Sorry for my english.
EDIT: Good place to start would be the place where this function is wrote I coulnd't find: "WardrobeCollectionFrame.SetsCollectionFrame:SelectSet(setID)"
|