From 50e0e33ff73e67dbcd13e34e056d52663088be31 Mon Sep 17 00:00:00 2001 From: bhhandley Date: Mon, 30 Dec 2024 05:34:12 -0600 Subject: [PATCH] minimap: add options for zone and coordinate visibility --- api/config.lua | 19 +++++++++++++++- env/profiles.lua | 2 +- env/translations_deDE.lua | 3 ++- env/translations_enUS.lua | 4 +++- env/translations_esES.lua | 3 ++- env/translations_frFR.lua | 3 ++- env/translations_koKR.lua | 3 ++- env/translations_ruRU.lua | 3 ++- env/translations_zhCN.lua | 3 ++- env/translations_zhTW.lua | 3 ++- modules/gui.lua | 14 ++++++++++-- modules/minimap.lua | 48 +++++++++++++++++++++++++++------------ 12 files changed, 81 insertions(+), 27 deletions(-) diff --git a/api/config.lua b/api/config.lua index 3b5d0569..3c729a38 100644 --- a/api/config.lua +++ b/api/config.lua @@ -171,7 +171,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("appearance", "bags", "bagrowlength", "10") pfUI:UpdateConfig("appearance", "bags", "bankrowlength", "10") pfUI:UpdateConfig("appearance", "minimap", "size", "140") - pfUI:UpdateConfig("appearance", "minimap", "mouseoverzone", "0") + pfUI:UpdateConfig("appearance", "minimap", "zonetext", "off") + pfUI:UpdateConfig("appearance", "minimap", "coordstext", "mouseover") pfUI:UpdateConfig("appearance", "minimap", "coordsloc", "bottomleft") pfUI:UpdateConfig("appearance", "minimap", "tracking_size", "16") pfUI:UpdateConfig("appearance", "minimap", "tracking_pulse", "1") @@ -1186,5 +1187,21 @@ function pfUI:MigrateConfig() end end + -- migrate minimap zone and coords changes + if checkversion(5, 4, 11) then + if pfUI_config.appearance.minimap.mouseoverzone and not pfUI_config.appearance.minimap.zonetext then + pfUI_config.appearance.minimap.zonetext = (pfUI_config.appearance.minimap.mouseoverzone == "0") and "off" or "mouseover" + pfUI_config.appearance.minimap.mouseoverzone = nil + end + if pfUI_config.appearance.minimap.coordsloc and not pfUI_config.appearance.minimap.coordstext then + if pfUI_config.appearance.minimap.coordsloc == "off" then + pfUI_config.appearance.minimap.coordsloc = "bottomleft" + pfUI_config.appearance.minimap.coordstext = "off" + else + pfUI_config.appearance.minimap.coordstext = "mouseover" + end + end + end + pfUI_config.version = pfUI.version.string end diff --git a/env/profiles.lua b/env/profiles.lua index 2d67a5ac..0c751c44 100644 --- a/env/profiles.lua +++ b/env/profiles.lua @@ -148,7 +148,7 @@ local modern = { ["texture"] = "Interface\\AddOns\\pfUI\\img\\bar_gradient", }, ["minimap"] = { - ["coordsloc"] = "topleft", + ["coordsloc"] = "bottomleft", }, ["border"] = { ["color"] = "0.1,0.1,0.1,1", diff --git a/env/translations_deDE.lua b/env/translations_deDE.lua index 7f667264..6b5be4cc 100644 --- a/env/translations_deDE.lua +++ b/env/translations_deDE.lua @@ -149,6 +149,7 @@ pfUI_translation["deDE"] = { ["Cooldown Text Size"] = nil, ["Cooldown Text Time Threshold"] = nil, ["Coordinates Location"] = nil, + ["Coordinates On Minimap"] = nil, ["Count"] = nil, ["Create Profile"] = nil, ["Ctrl-Click"] = nil, @@ -291,7 +292,6 @@ pfUI_translation["deDE"] = { ["Enable URL Detection"] = nil, ["Enable Vertical Health Bar"] = nil, ["Enable Weapon Buff Display"] = nil, - ["Enable Zone Text On Minimap Mouseover"] = nil, ["Encode"] = nil, ["Ended"] = nil, ["Energy Color"] = nil, @@ -805,4 +805,5 @@ pfUI_translation["deDE"] = { ["Zone Name"] = nil, ["Zoom & Fade"] = nil, ["Zoom Target Nameplate"] = nil, + ["Zone Text On Minimap"] = nil, } diff --git a/env/translations_enUS.lua b/env/translations_enUS.lua index e28b6f06..0a224e14 100644 --- a/env/translations_enUS.lua +++ b/env/translations_enUS.lua @@ -149,6 +149,7 @@ pfUI_translation["enUS"] = { ["Cooldown Text Size"] = nil, ["Cooldown Text Time Threshold"] = nil, ["Coordinates Location"] = nil, + ["Coordinates On Minimap"] = nil, ["Count"] = nil, ["Create Profile"] = nil, ["Ctrl-Click"] = nil, @@ -291,7 +292,6 @@ pfUI_translation["enUS"] = { ["Enable URL Detection"] = nil, ["Enable Vertical Health Bar"] = nil, ["Enable Weapon Buff Display"] = nil, - ["Enable Zone Text On Minimap Mouseover"] = nil, ["Encode"] = nil, ["Ended"] = nil, ["Energy Color"] = nil, @@ -471,6 +471,7 @@ pfUI_translation["enUS"] = { ["Monochrome"] = nil, ["Mouse Button 4"] = nil, ["Mouse Button 5"] = nil, + ["Mouseover"] = nil, ["Mousewheel Scroll Speed"] = nil, ["ms"] = nil, ["N/A"] = nil, @@ -803,6 +804,7 @@ pfUI_translation["enUS"] = { ["Your items have been repaired for"] = nil, ["Your vendor trash has been sold and you earned"] = nil, ["Zone Name"] = nil, + ["Zone Text On Minimap"] = nil, ["Zoom & Fade"] = nil, ["Zoom Target Nameplate"] = nil, } diff --git a/env/translations_esES.lua b/env/translations_esES.lua index 12f297ad..6ab79f6b 100644 --- a/env/translations_esES.lua +++ b/env/translations_esES.lua @@ -149,6 +149,7 @@ pfUI_translation["esES"] = { ["Cooldown Text Size"] = "Tamaño del texto del tiempo de reutilización", ["Cooldown Text Time Threshold"] = "Umbral del texto del tiempo de reutilización", ["Coordinates Location"] = "Coordenadas de localización", + ["Coordinates On Minimap"] = "Coordenadas en el minimapa", ["Count"] = "Recuento", ["Create Profile"] = "Crear perfil", ["Ctrl-Click"] = "Ctrl-Clic", @@ -291,7 +292,6 @@ pfUI_translation["esES"] = { ["Enable URL Detection"] = "Detectar URLs", ["Enable Vertical Health Bar"] = "Mostrar la salud en vertical", ["Enable Weapon Buff Display"] = "Mostrar los beneficios de armas", - ["Enable Zone Text On Minimap Mouseover"] = "Mostrar texto de la zona al pasar el puntero por el minimapa", ["Encode"] = "Codificar", ["Ended"] = "Terminado", ["Energy Color"] = "Color de energía", @@ -805,4 +805,5 @@ pfUI_translation["esES"] = { ["Zone Name"] = "Nombre de la zona", ["Zoom & Fade"] = "Acercar y desvanecer", ["Zoom Target Nameplate"] = "Acercar la placa identificativa del objetivo", + ["Zone Text On Minimap"] = "Texto del área en el minimapa", } diff --git a/env/translations_frFR.lua b/env/translations_frFR.lua index 0b31afb6..5390dc8e 100644 --- a/env/translations_frFR.lua +++ b/env/translations_frFR.lua @@ -149,6 +149,7 @@ pfUI_translation["frFR"] = { ["Cooldown Text Size"] = nil, ["Cooldown Text Time Threshold"] = "Seuil du texte des temps de recharge", ["Coordinates Location"] = "Coordonnées Emplacement", + ["Coordinates On Minimap"] = "Coordonnées sur la mini-carte", ["Count"] = "Compter", ["Create Profile"] = "Créer un profil", ["Ctrl-Click"] = "Ctrl-Clique", @@ -291,7 +292,6 @@ pfUI_translation["frFR"] = { ["Enable URL Detection"] = "Activer la détection des adresses URL", ["Enable Vertical Health Bar"] = "Activer la barre de vie verticale", ["Enable Weapon Buff Display"] = "Activer L'affichage de l'Amélioration d'arme", - ["Enable Zone Text On Minimap Mouseover"] = "Activer l'affichage du nom de zone au survol de la minicarte", ["Encode"] = "Encoder", ["Ended"] = "Terminé", ["Energy Color"] = "Couleur de l'energie", @@ -805,4 +805,5 @@ pfUI_translation["frFR"] = { ["Zone Name"] = "Nom de la zone", ["Zoom & Fade"] = "Zoom et fondu", ["Zoom Target Nameplate"] = "Zoom la cible des barres de vie flottantes", + ["Zone Text On Minimap"] = "Texte de zone sur la mini-carte", } diff --git a/env/translations_koKR.lua b/env/translations_koKR.lua index 3f88e550..fbb96542 100644 --- a/env/translations_koKR.lua +++ b/env/translations_koKR.lua @@ -149,6 +149,7 @@ pfUI_translation["koKR"] = { ["Cooldown Text Size"] = nil, ["Cooldown Text Time Threshold"] = "재사용 대기시간 텍스트 임계 값", ["Coordinates Location"] = nil, + ["Coordinates On Minimap"] = "미니맵의 좌표", ["Count"] = "카운트", ["Create Profile"] = "프로파일 생성", ["Ctrl-Click"] = nil, @@ -291,7 +292,6 @@ pfUI_translation["koKR"] = { ["Enable URL Detection"] = "URL 감시 사용", ["Enable Vertical Health Bar"] = nil, ["Enable Weapon Buff Display"] = nil, - ["Enable Zone Text On Minimap Mouseover"] = "미니맵 마우스 오버시 지역보기 사용", ["Encode"] = nil, ["Ended"] = nil, ["Energy Color"] = nil, @@ -805,4 +805,5 @@ pfUI_translation["koKR"] = { ["Zone Name"] = "지역 이름", ["Zoom & Fade"] = nil, ["Zoom Target Nameplate"] = nil, + ["Zone Text On Minimap"] = "미니맵의 지역 텍스트", } diff --git a/env/translations_ruRU.lua b/env/translations_ruRU.lua index c22a3c08..183f96a9 100644 --- a/env/translations_ruRU.lua +++ b/env/translations_ruRU.lua @@ -149,6 +149,7 @@ pfUI_translation["ruRU"] = { ["Cooldown Text Size"] = "Размер текста восстановления", ["Cooldown Text Time Threshold"] = "Порог текста восстановления", ["Coordinates Location"] = "Расположение координат", + ["Coordinates On Minimap"] = "Координаты на миникарте", ["Count"] = "Счет", ["Create Profile"] = "Создать профиль", ["Ctrl-Click"] = "Ctrl+нажатие", @@ -291,7 +292,6 @@ pfUI_translation["ruRU"] = { ["Enable URL Detection"] = "Включить обнаружение URL ссылок", ["Enable Vertical Health Bar"] = "Включить вертикальную панель здоровья", ["Enable Weapon Buff Display"] = "Включить отображение баффов оружия", - ["Enable Zone Text On Minimap Mouseover"] = "Включить текст зоны на миникарте при наведении мыши", ["Encode"] = "Кодировать", ["Ended"] = "Окончание", ["Energy Color"] = "Цвет энергии", @@ -805,4 +805,5 @@ pfUI_translation["ruRU"] = { ["Zone Name"] = "Название зоны", ["Zoom & Fade"] = "Увеличение и затухание", ["Zoom Target Nameplate"] = "Увеличить индикатор здоровья цели", + ["Zone Text On Minimap"] = "Текст зоны на мини-карте", } diff --git a/env/translations_zhCN.lua b/env/translations_zhCN.lua index be27acb1..9be10953 100644 --- a/env/translations_zhCN.lua +++ b/env/translations_zhCN.lua @@ -149,6 +149,7 @@ pfUI_translation["zhCN"] = { ["Cooldown Text Size"] = "技能冷却文字大小", ["Cooldown Text Time Threshold"] = "技能冷却时间文字临界值", ["Coordinates Location"] = "坐标位置", + ["Coordinates On Minimap"] = "小地图上的坐标", ["Count"] = "计数器", ["Create Profile"] = "新建配置", ["Ctrl-Click"] = "CTRL点击", @@ -291,7 +292,6 @@ pfUI_translation["zhCN"] = { ["Enable URL Detection"] = "启用超链接检测", ["Enable Vertical Health Bar"] = "血条以垂直方式掉血", ["Enable Weapon Buff Display"] = "启用武器Buff显示", - ["Enable Zone Text On Minimap Mouseover"] = "鼠标悬停时显示区域名称", ["Encode"] = "编码", ["Ended"] = "结束", ["Energy Color"] = "能量值颜色", @@ -805,4 +805,5 @@ pfUI_translation["zhCN"] = { ["Zone Name"] = "区域名称", ["Zoom & Fade"] = "变焦 & 渐隐", ["Zoom Target Nameplate"] = "放大目标姓名板", + ["Zone Text On Minimap"] = "小地图上的区域名称", } diff --git a/env/translations_zhTW.lua b/env/translations_zhTW.lua index 5792d194..bd9afc13 100644 --- a/env/translations_zhTW.lua +++ b/env/translations_zhTW.lua @@ -149,6 +149,7 @@ pfUI_translation["zhTW"] = { ["Cooldown Text Size"] = nil, ["Cooldown Text Time Threshold"] = "技能冷卻時間文字臨界值", ["Coordinates Location"] = "座標位置", + ["Coordinates On Minimap"] = "小地圖上的座標", ["Count"] = "計數器", ["Create Profile"] = "新建配置", ["Ctrl-Click"] = "CTRL點擊", @@ -291,7 +292,6 @@ pfUI_translation["zhTW"] = { ["Enable URL Detection"] = "啟用超連結檢測", ["Enable Vertical Health Bar"] = "血條以垂直方式掉血", ["Enable Weapon Buff Display"] = "啟用武器Buff顯示", - ["Enable Zone Text On Minimap Mouseover"] = "滑鼠懸停時顯示區功能變數名稱稱", ["Encode"] = "編碼", ["Ended"] = nil, ["Energy Color"] = nil, @@ -805,4 +805,5 @@ pfUI_translation["zhTW"] = { ["Zone Name"] = "區功能變數名稱稱", ["Zoom & Fade"] = nil, ["Zoom Target Nameplate"] = "目標姓名版縮放", + ["Zone Text On Minimap"] = "小地圖上的區域文本", } diff --git a/modules/gui.lua b/modules/gui.lua index 5a3a5750..4616d551 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -1104,7 +1104,16 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function () "topright:" .. T["Top Right"], "bottomleft:" .. T["Bottom Left"], "bottomright:" .. T["Bottom Right"], - "off:" .. T["Disabled"] + }, + ["minimap_cords_visibility"] = { + "mouseover:" .. T["Mouseover"], + "on:" .. T["Enable"], + "off:" .. T["Disable"] + }, + ["minimap_zone_visibility"] = { + "mouseover:" .. T["Mouseover"], + "on:" .. T["Enable"], + "off:" .. T["Disable"] }, ["positions"] = { "TOPLEFT:" .. T["Top Left"], @@ -1858,7 +1867,8 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function () CreateGUIEntry(T["Minimap"], T["Minimap"], function() CreateConfig(U["minimap"], T["Minimap Size (|cffffaaaaExperimental|r)"], C.appearance.minimap, "size") - CreateConfig(nil, T["Enable Zone Text On Minimap Mouseover"], C.appearance.minimap, "mouseoverzone", "checkbox") + CreateConfig(nil, T["Zone Text On Minimap"], C.appearance.minimap, "zonetext", "dropdown", pfUI.gui.dropdowns.minimap_zone_visibility) + CreateConfig(nil, T["Coordinates On Minimap"], C.appearance.minimap, "coordstext", "dropdown", pfUI.gui.dropdowns.minimap_cords_visibility) CreateConfig(nil, T["Coordinates Location"], C.appearance.minimap, "coordsloc", "dropdown", pfUI.gui.dropdowns.minimap_cords_position) CreateConfig(nil, T["Show PvP Icon"], C.unitframes.player, "showPVPMinimap", "checkbox") CreateConfig(nil, T["Show Inactive Tracking"], C.appearance.minimap, "tracking_pulse", "checkbox") diff --git a/modules/minimap.lua b/modules/minimap.lua index 42e671b0..9ae258f4 100644 --- a/modules/minimap.lua +++ b/modules/minimap.lua @@ -119,7 +119,7 @@ pfUI:RegisterModule("minimap", "vanilla:tbc", function () pfUI.minimapCoordinates = CreateFrame("Frame", "pfMinimapCoord", pfUI.minimap) pfUI.minimapCoordinates:SetScript("OnUpdate", function() -- update coords every 0.1 seconds - if ( this.tick or .1) > GetTime() then return else this.tick = GetTime() + .1 end + if C.appearance.minimap.coordstext ~= "off" and ( this.tick or .1) > GetTime() then return else this.tick = GetTime() + .1 end this.posX, this.posY = GetPlayerMapPosition("player") if this.posX ~= 0 and this.posY ~= 0 then @@ -152,10 +152,16 @@ pfUI:RegisterModule("minimap", "vanilla:tbc", function () pfUI.minimapCoordinates.text:SetJustifyH("LEFT") end - pfUI.minimapCoordinates:Hide() + if C.appearance.minimap.coordstext ~= "on" then + pfUI.minimapCoordinates:Hide() + else + pfUI.minimapCoordinates:Show() + end -- Create zone text frame in top center of minimap pfUI.minimapZone = CreateFrame("Frame", "pfMinimapZone", pfUI.minimap) + pfUI.minimapZone:RegisterEvent("MINIMAP_ZONE_CHANGED") + pfUI.minimapZone:RegisterEvent("PLAYER_ENTERING_WORLD") pfUI.minimapZone:SetPoint("TOP", 0, -3) pfUI.minimapZone:SetHeight(C.global.font_size + 2) pfUI.minimapZone:SetWidth(Minimap:GetWidth()) @@ -163,17 +169,10 @@ pfUI:RegisterModule("minimap", "vanilla:tbc", function () pfUI.minimapZone.text:SetFont(pfUI.font_default, C.global.font_size + 2, "OUTLINE") pfUI.minimapZone.text:SetAllPoints(pfUI.minimapZone) pfUI.minimapZone.text:SetJustifyH("CENTER") - pfUI.minimapZone:Hide() - -- Minimap hover event - -- Update and toggle showing of coordinates and zone text on mouse enter/leave - Minimap:SetScript("OnEnter", function() - SetMapToCurrentZone() - if C.appearance.minimap.coordsloc ~= "off" then - pfUI.minimapCoordinates:Show() - end - - if C.appearance.minimap.mouseoverzone == "1" then + pfUI.minimapZone:SetScript("OnEvent", function() + if C.appearance.minimap.coordstext ~= "off" then + SetMapToCurrentZone() local pvp, _, arena = GetZonePVPInfo() if arena then pfUI.minimapZone.text:SetTextColor(1.0, 0.1, 0.1) @@ -186,14 +185,33 @@ pfUI:RegisterModule("minimap", "vanilla:tbc", function () else pfUI.minimapZone.text:SetTextColor(1, 1, 1, 1) end - pfUI.minimapZone.text:SetText(GetMinimapZoneText()) + end + end) + + if C.appearance.minimap.zonetext ~= "on" then + pfUI.minimapZone:Hide() + else + pfUI.minimapZone:Show() + end + + -- Minimap hover event + -- Update and toggle showing of coordinates and zone text on mouse enter/leave + Minimap:SetScript("OnEnter", function() + if C.appearance.minimap.coordstext ~= "off" then + pfUI.minimapCoordinates:Show() + end + if C.appearance.minimap.zonetext ~= "off" then pfUI.minimapZone:Show() end end) Minimap:SetScript("OnLeave", function() - pfUI.minimapCoordinates:Hide() - pfUI.minimapZone:Hide() + if C.appearance.minimap.coordstext ~= "on" then + pfUI.minimapCoordinates:Hide() + end + if C.appearance.minimap.zonetext ~= "on" then + pfUI.minimapZone:Hide() + end end) pfUI.minimap.pvpicon = CreateFrame("Frame", nil, pfUI.minimap)