Skip to content

Commit 4d51f56

Browse files
committed
Update for latest PTR update
1 parent 84906fd commit 4d51f56

File tree

3 files changed

+38
-31
lines changed

3 files changed

+38
-31
lines changed

TalentViewer.lua

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,9 @@ local function OnEvent(_, event, ...)
6969
if(IsAddOnLoaded('ElvUI')) then TalentViewer:ApplyElvUISkin() end
7070
end
7171
end
72-
if event == 'PLAYER_ENTERING_WORLD' then
73-
TalentViewer:OnPlayerEnteringWorld()
74-
frame:UnregisterEvent('PLAYER_ENTERING_WORLD')
75-
end
7672
end
7773
frame:HookScript('OnEvent', OnEvent)
7874
frame:RegisterEvent('ADDON_LOADED')
79-
frame:RegisterEvent('PLAYER_ENTERING_WORLD')
8075

8176
---@return TalentViewerUIMixin
8277
function TalentViewer:GetTalentFrame()
@@ -92,15 +87,17 @@ function TalentViewer:ApplyCurrencySpending(treeCurrency)
9287
end
9388

9489
function TalentViewer:ResetTree()
90+
local talentFrame = self:GetTalentFrame()
91+
talentFrame.OutdatedWarning:Hide();
9592
wipe(self.purchasedRanks);
9693
wipe(self.selectedEntries);
9794
wipe(self.currencySpending);
98-
wipe(self:GetTalentFrame().edgeRequirementsCache);
99-
self:GetTalentFrame().nodesPerGate = nil;
100-
self:GetTalentFrame().eligibleNodesPerGate = nil;
101-
TalentViewer_DF.Talents:SetTalentTreeID(self.treeId, true);
102-
TalentViewer_DF.Talents:UpdateClassVisuals();
103-
TalentViewer_DF.Talents:UpdateSpecBackground();
95+
wipe(talentFrame.edgeRequirementsCache);
96+
talentFrame.nodesPerGate = nil;
97+
talentFrame.eligibleNodesPerGate = nil;
98+
talentFrame:SetTalentTreeID(self.treeId, true);
99+
talentFrame:UpdateClassVisuals();
100+
talentFrame:UpdateSpecBackground();
104101
end
105102

106103
function TalentViewer:GetActiveRank(nodeID)
@@ -162,8 +159,7 @@ function TalentViewer:RestoreCurrency(nodeID)
162159
end
163160
end
164161

165-
function TalentViewer:OnPlayerEnteringWorld()
166-
if TalentViewer_DF:IsShown() then return end
162+
function TalentViewer:InitSpecSelection()
167163
local specId
168164
local _, _, classId = UnitClass('player')
169165
local currentSpec = GetSpecialization()
@@ -289,6 +285,7 @@ function TalentViewer:HookIntoBlizzardImport()
289285
end
290286

291287
function TalentViewer:ToggleTalentView()
288+
self:InitFrame()
292289
if TalentViewer_DF:IsShown() then
293290
TalentViewer_DF:Hide()
294291

@@ -297,6 +294,15 @@ function TalentViewer:ToggleTalentView()
297294
TalentViewer_DF:Show()
298295
end
299296

297+
function TalentViewer:InitFrame()
298+
if self.frameInitialized then return end
299+
self.frameInitialized = true
300+
table.insert(UISpecialFrames, 'TalentViewer_DF')
301+
self:InitDropDown()
302+
self:InitCheckbox()
303+
self:InitSpecSelection()
304+
end
305+
300306
function TalentViewer:SelectSpec(classId, specId)
301307
assert(type(classId) == 'number', 'classId must be a number')
302308
assert(type(specId) == 'number', 'specId must be a number')

TalentViewerUI.xml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,18 @@
299299
<Anchor point="LEFT" relativeKey="$parent.ExportButton" relativePoint="RIGHT" x="14" y="0"/>
300300
</Anchors>
301301
</Button>
302+
<Frame frameStrata="HIGH" parentKey="OutdatedWarning" hidden="true">
303+
<Layers>
304+
<Layer level="OVERLAY">
305+
<FontString parentKey="Text" inherits="GameFontNormalLargeOutline"
306+
text="The tree you're viewing is outdated"/>
307+
</Layer>
308+
</Layers>
309+
<Anchors>
310+
<Anchor point="CENTER" relativeKey="$parent" relativePoint="CENTER"/>
311+
</Anchors>
312+
<Size x="300" y="50"/>
313+
</Frame>
302314

303315
<Button parentKey="UndoButton" inherits="IconButtonTemplate" hidden="true">
304316
<KeyValues>
@@ -432,8 +444,5 @@
432444
</Anchors>
433445
</Frame>
434446
</Frames>
435-
<Scripts>
436-
<OnLoad function="TalentViewer_DFMain_OnLoad"/>
437-
</Scripts>
438447
</Frame>
439448
</Ui>

TalentViewerUIMixin.lua

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ function TalentViewerUIMixin:GetAndCacheNodeInfo(nodeID)
127127
local function GetNodeInfoCallback(nodeID)
128128
local nodeInfo = LibTalentTree:GetLibNodeInfo(TalentViewer.treeId, nodeID)
129129
if not nodeInfo then nodeInfo = LibTalentTree:GetNodeInfo(TalentViewer.treeId, nodeID) end
130-
if nodeInfo.ID ~= nodeID then return nil end
130+
if nodeInfo.ID ~= nodeID then self:ShowOutdatedDataWarning(); return nodeInfo end
131131
local isGranted = LibTalentTree:IsNodeGrantedForSpec(TalentViewer.selectedSpecId, nodeID)
132132
local isChoiceNode = #nodeInfo.entryIDs > 1
133133
local selectedEntryId = isChoiceNode and TalentViewer:GetSelectedEntryId(nodeID) or nil
@@ -199,6 +199,12 @@ function TalentViewerUIMixin:GetAndCacheCondInfo(condID)
199199
return GetOrCreateTableEntryByCallback(self.condInfoCache, condID, GetCondInfoCallback);
200200
end
201201

202+
function TalentViewerUIMixin:ShowOutdatedDataWarning()
203+
if not self.OutdatedWarning:IsShown() then
204+
self.OutdatedWarning:Show()
205+
end
206+
end
207+
202208
function TalentViewerUIMixin:ImportLoadout(loadoutEntryInfo)
203209
local backup = TalentViewer.db.ignoreRestrictions
204210
TalentViewer.db.ignoreRestrictions = true
@@ -517,18 +523,4 @@ do
517523
local exportString = ImportExport:GetLoadoutExportString();
518524
StaticPopup_Show("TalentViewerExportDialog", nil, nil, exportString);
519525
end
520-
521-
function TalentViewer_DFMain_OnLoad()
522-
table.insert(UISpecialFrames, 'TalentViewer_DF')
523-
TalentViewer:InitDropDown()
524-
TalentViewer:InitCheckbox()
525-
local specId
526-
local _, _, classId = UnitClass('player')
527-
local currentSpec = GetSpecialization()
528-
if currentSpec then
529-
specId, _ = TalentViewer.cache.specIndexToIdMap[classId][currentSpec]
530-
end
531-
specId, _ = specId or TalentViewer.cache.defaultSpecs[classId]
532-
TalentViewer:SelectSpec(classId, specId)
533-
end
534526
end

0 commit comments

Comments
 (0)