Mercurial > wow > whistle-master
comparison WhistleMaster.lua @ 3:4402edd42a3f v0.7.1.0-Beta
Added tooltip to Flight Masters Whistle, improved update function call.
author | Vynn <mischivin@gmail.com> |
---|---|
date | Sat, 05 Nov 2016 13:19:54 -0400 |
parents | 06d230725448 |
children | 090b3be6489d |
comparison
equal
deleted
inserted
replaced
2:881a2c218fa5 | 3:4402edd42a3f |
---|---|
2 function WM_Debug() | 2 function WM_Debug() |
3 print("debug text") | 3 print("debug text") |
4 end | 4 end |
5 | 5 |
6 --indexes corrispond to map IDs that contain valid flight points for the Flight Masters Whistle | 6 --indexes corrispond to map IDs that contain valid flight points for the Flight Masters Whistle |
7 local validIDs = { [1014] = true, [1015] = true, [1017] = true, [1018] = true, [1024] = true, [1033] = true, [1096] = true } | 7 --Doesn't work in 1021 (Broken Shore) |
8 WM_validIDs = { [1014] = true, [1015] = true, [1017] = true, [1018] = true, [1021] = false, [1024] = true, [1033] = true, [1096] = true } | |
8 | 9 |
9 local WhistleLoc = CreateFrame("FRAME", "WhistleLOC", WorldMapPOIFrame) | 10 local WhistleLoc = CreateFrame("FRAME", "WhistleLOC", WorldMapPOIFrame) |
10 WhistleLoc:SetSize(64, 64) | 11 WhistleLoc:SetSize(64, 64) |
11 WhistleLoc:SetPoint("CENTER", 0, 0) | 12 WhistleLoc:SetPoint("CENTER", 0, 0) |
12 WhistleLoc:Show() | 13 WhistleLoc:Show() |
14 | |
15 WM_ClosestNode = nil | |
13 | 16 |
14 --[[local Rotate = WhistleLoc:CreateTexture() | 17 --[[local Rotate = WhistleLoc:CreateTexture() |
15 Rotate:SetTexture("Interface\minimap\UI-Minimap-Ping-Rotate") | 18 Rotate:SetTexture("Interface\minimap\UI-Minimap-Ping-Rotate") |
16 Rotate:SetPoint("CENTER") | 19 Rotate:SetPoint("CENTER") |
17 Rotate:SetSize(48, 48) | 20 Rotate:SetSize(48, 48) |
49 distance = d | 52 distance = d |
50 node = n | 53 node = n |
51 end | 54 end |
52 end | 55 end |
53 end | 56 end |
54 print("The closest node is... " .. node.name) | |
55 return node | 57 return node |
56 end | 58 end |
57 | 59 |
58 local function UpdateWhistleMaster() | 60 local function UpdateWhistleMaster() |
59 if GetCurrentMapContinent() == 8 and validIDs[ select(1, GetCurrentMapAreaID() ) ] then | 61 if GetCurrentMapContinent() == 8 and WM_validIDs[ select(1, GetCurrentMapAreaID() ) ] and not GetNumDungeonMapLevels() then |
60 local closest = GetNode() | 62 WM_ClosestNode = GetNode() |
61 WhistleLoc:SetPoint("CENTER", "WorldMapFramePOI" .. closest.index, 0, 0) | 63 WhistleLoc:SetPoint("CENTER", "WorldMapFramePOI" .. WM_ClosestNode.index, 0, 0) |
62 WhistleLoc:Show() | 64 WhistleLoc:Show() |
63 WhistlePing.Ping:Play() | 65 WhistlePing.Ping:Play() |
66 return true | |
64 else | 67 else |
65 WhistleLoc:Hide() | 68 WhistleLoc:Hide() |
66 WhistlePing.Ping:Stop() | 69 WhistlePing.Ping:Stop() |
67 print("wrong continent for whistle master") | 70 return false |
68 end | 71 end |
69 end | 72 end |
70 | 73 |
71 local mapVisible = false | 74 local mapVisible = false |
72 | 75 |
76 UpdateWhistleMaster() | 79 UpdateWhistleMaster() |
77 end | 80 end |
78 if ( (mapVisible) and not WorldMapFrame:IsVisible() ) then | 81 if ( (mapVisible) and not WorldMapFrame:IsVisible() ) then |
79 mapVisible = false | 82 mapVisible = false |
80 end | 83 end |
84 if (event == "VARIABLES_LOADED") then | |
85 UpdateWhistleMaster() | |
86 end | |
81 end | 87 end |
82 | |
83 | |
84 | 88 |
85 local WhistleMaster = CreateFrame("FRAME", "WhistleMaster", WorldMapPOIFrame) | 89 local WhistleMaster = CreateFrame("FRAME", "WhistleMaster", WorldMapPOIFrame) |
86 WhistleMaster:RegisterEvent("WORLD_MAP_UPDATE") | 90 WhistleMaster:RegisterEvent("WORLD_MAP_UPDATE") |
91 WhistleMaster:RegisterEvent("VARIABLES_LOADED") | |
87 WhistleMaster:SetScript("OnEvent", EventHandler) | 92 WhistleMaster:SetScript("OnEvent", EventHandler) |
88 | 93 |
94 local cleared = true | |
95 local function OnTooltipCleared(self) | |
96 cleared = true | |
97 end | |
98 | |
99 local function OnTooltipSetItem(self) | |
100 if cleared then | |
101 local name, tooltipLink = self:GetItem() | |
102 if tooltipLink then | |
103 local item = tooltipLink:match("Hitem:(%d+)") | |
104 if item == "141605" then | |
105 if UpdateWhistleMaster() then | |
106 self:AddLine("\nWhistle Destination:|cFFFFFFFF " .. WM_ClosestNode.name ,0.5,1,0.5, true) | |
107 else | |
108 self:AddLine("\nWhistle Destination:|cFFFFFFFF N/A",0.5,1,0.5, true) | |
109 end | |
110 end | |
111 cleared = true | |
112 end | |
113 end | |
114 end | |
115 | |
116 GameTooltip:HookScript("OnTooltipCleared", OnTooltipCleared) | |
117 GameTooltip:HookScript("OnTooltipSetItem", OnTooltipSetItem) | |
118 |