Avoid repeated WorldMap coordinate string allocations

This commit is contained in:
Dusk-92
2026-09-03 21:18:21 +02:00
parent ca65ff8ae2
commit daf8aed77a
+11 -5
View File
@@ -42,6 +42,12 @@ module.enable = function(self)
WorldMapButton.player.text:SetTextColor(1, 1, 1) WorldMapButton.player.text:SetTextColor(1, 1, 1)
WorldMapButton.player.text:SetJustifyH("RIGHT") WorldMapButton.player.text:SetJustifyH("RIGHT")
local canMouseOver = API and API.regionmouseover
local cursorFormat = "|cffffcc00" .. T["Cursor"] .. ": |r%.1f / %.1f"
local playerFormat = "|cffffcc00" .. T["Player"] .. ": |r%.1f / %.1f"
local cursorNA = "|cffffcc00" .. T["Cursor"] .. ": |r" .. T["N/A"]
local playerNA = "|cffffcc00" .. T["Player"] .. ": |r" .. T["N/A"]
WorldMapButton.coords.elapsed = 0 WorldMapButton.coords.elapsed = 0
WorldMapButton.coords.lastCursorText = nil WorldMapButton.coords.lastCursorText = nil
WorldMapButton.coords.lastPlayerText = nil WorldMapButton.coords.lastPlayerText = nil
@@ -54,7 +60,7 @@ module.enable = function(self)
this.elapsed = 0 this.elapsed = 0
local cursorText local cursorText
if API and API.regionmouseover and API.IsMouseOver(WorldMapButton) then if canMouseOver and API.IsMouseOver(WorldMapButton) then
local width = WorldMapButton:GetWidth() local width = WorldMapButton:GetWidth()
local height = WorldMapButton:GetHeight() local height = WorldMapButton:GetHeight()
local mx, my = WorldMapButton:GetCenter() local mx, my = WorldMapButton:GetCenter()
@@ -67,12 +73,12 @@ module.enable = function(self)
end end
if mx and my then if mx and my then
cursorText = string.format("|cffffcc00" .. T["Cursor"] .. ": |r%.1f / %.1f", mx, my) cursorText = string.format(cursorFormat, mx, my)
end end
end end
if not cursorText then if not cursorText then
cursorText = "|cffffcc00" .. T["Cursor"] .. ": |r" .. T["N/A"] cursorText = cursorNA
end end
if this.lastCursorText ~= cursorText then if this.lastCursorText ~= cursorText then
@@ -83,9 +89,9 @@ module.enable = function(self)
local px, py = GetPlayerMapPosition("player") local px, py = GetPlayerMapPosition("player")
local playerText local playerText
if px > 0 and py > 0 then if px > 0 and py > 0 then
playerText = string.format("|cffffcc00" .. T["Player"] .. ": |r%.1f / %.1f", px*100, py*100) playerText = string.format(playerFormat, px*100, py*100)
else else
playerText = "|cffffcc00" .. T["Player"] .. ": |r" .. T["N/A"] playerText = playerNA
end end
if this.lastPlayerText ~= playerText then if this.lastPlayerText ~= playerText then