@@ -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
7672end
7773frame :HookScript (' OnEvent' , OnEvent )
7874frame :RegisterEvent (' ADDON_LOADED' )
79- frame :RegisterEvent (' PLAYER_ENTERING_WORLD' )
8075
8176--- @return TalentViewerUIMixin
8277function TalentViewer :GetTalentFrame ()
@@ -92,15 +87,17 @@ function TalentViewer:ApplyCurrencySpending(treeCurrency)
9287end
9388
9489function 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 ();
104101end
105102
106103function TalentViewer :GetActiveRank (nodeID )
@@ -162,8 +159,7 @@ function TalentViewer:RestoreCurrency(nodeID)
162159 end
163160end
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()
289285end
290286
291287function 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 ()
298295end
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+
300306function TalentViewer :SelectSpec (classId , specId )
301307 assert (type (classId ) == ' number' , ' classId must be a number' )
302308 assert (type (specId ) == ' number' , ' specId must be a number' )
0 commit comments