From 19b49f0a78ad48b1d11241ef4f7dfdd5896c94ed Mon Sep 17 00:00:00 2001 From: Mikeprod Date: Wed, 16 Nov 2016 12:38:13 +0100 Subject: [PATCH] Hide Bar in combat functionality added. Little fixes to other modules too. --- XIV_Databar.toc | 2 +- core.lua | 36 +++++++++++++++++++++++++++++++++--- locales/deDE.lua | 2 ++ locales/enUS.lua | 2 ++ locales/frFR.lua | 2 ++ locales/ruRU.lua | 2 ++ locales/zhCN.lua | 2 ++ modules/armor.lua | 30 +++++++++++++++++------------- modules/currency.lua | 4 ---- modules/mastervolume.lua | 2 +- 10 files changed, 62 insertions(+), 22 deletions(-) diff --git a/XIV_Databar.toc b/XIV_Databar.toc index 6abd5c4..dcce8cf 100644 --- a/XIV_Databar.toc +++ b/XIV_Databar.toc @@ -1,7 +1,7 @@ ## Interface: 70100 ## Title: XIV_Databar ## Author: |cffbbbbbbMille|cff990000XIV|r -## Version: 2.0.11 +## Version: 2.0.12 ## Notes: Adds a bottombar by the request of |cffffffffu/sammojo|r on Reddit, Icons made by |cffffffffu/sammojo|r. Previously maintained by |cff00FF99Saxitoxin|r. ## SavedVariables: TEST_CONFIG, XIVBarDB ## X-Issues: https://github.com/MilleXIV/XIV_Databar/issues diff --git a/core.lua b/core.lua index 41ca209..3a8986c 100644 --- a/core.lua +++ b/core.lua @@ -24,7 +24,8 @@ XIVBar.defaults = { moduleSpacing = 30, barFullscreen = true, barWidth = GetScreenWidth(), - barHoriz = 'CENTER' + barHoriz = 'CENTER', + barCombatHide = false }, color = { barColor = { @@ -199,6 +200,27 @@ function XIVBar:CreateMainBar() end end +function XIVBar:HideBarEvent() + local bar = self:GetFrame("bar") + if self.db.profile.general.barCombatHide then + bar:RegisterEvent("PLAYER_REGEN_ENABLED") + bar:RegisterEvent("PLAYER_REGEN_DISABLED") + + bar:SetScript("OnEvent", function(_, event, ...) + if event=="PLAYER_REGEN_DISABLED" and XIV_Databar:IsVisible() then + XIV_Databar:Hide() + end + if event=="PLAYER_REGEN_ENABLED" and not XIV_Databar:IsVisible() then + XIV_Databar:Show() + end + end) + else + bar:UnregisterEvent("PLAYER_REGEN_ENABLED") + bar:UnregisterEvent("PLAYER_REGEN_DISABLED") + bar.OnEvent = nil + end +end + function XIVBar:GetHeight() return (self.db.profile.text.fontSize * 2) + self.db.profile.general.barPadding end @@ -206,6 +228,7 @@ end function XIVBar:Refresh() if self.frames.bar == nil then return; end + self:HideBarEvent() self.miniTextPosition = "TOP" if self.db.profile.general.barPosition == 'TOP' then hooksecurefunc("UIParent_UpdateTopFramePositions",function(self) @@ -433,10 +456,17 @@ function XIVBar:GetGeneralOptions() inline = true, order = 3, args = { + barCombatHide = { + name = L['Hide Bar in combat'], + type = "toggle", + order = 9, + get = function() return self.db.profile.general.barCombatHide; end, + set = function(_,val) self.db.profile.general.barCombatHide = val; self:Refresh(); end + }, barPadding = { name = L['Bar Padding'], type = 'range', - order = 9, + order = 10, min = 0, max = 10, step = 1, @@ -446,7 +476,7 @@ function XIVBar:GetGeneralOptions() moduleSpacing = { name = L['Module Spacing'], type = 'range', - order = 10, + order = 11, min = 10, max = 50, step = 1, diff --git a/locales/deDE.lua b/locales/deDE.lua index c9e9006..b138651 100644 --- a/locales/deDE.lua +++ b/locales/deDE.lua @@ -15,6 +15,7 @@ L['Bottom'] = "Unten"; L['Bar Color'] = "Leistenfarbe"; L['Use Class Color for Bar'] = "Benutze Klassenfarbe für Leiste"; L["Miscellaneous"] = true; +L['Hide Bar in combat'] = true; L['Bar Padding'] = "Leistenabstand"; L['Module Spacing'] = "Modulabstand"; L['Hide order hall bar'] = true; @@ -76,6 +77,7 @@ L['Always Show Item Level'] = "Rüstungslevel immer anzeigen"; L['Minimum Durability to Become Active'] = "Minimale Haltbarkeit für Anzeige"; L['Maximum Durability to Show Item Level'] = "Maximale Haltbarkeit für Rüstungslevel-Anzeige"; +L['Master Volume'] =true; L["Volume step"] = true; L['Time Format'] = "Uhrzeit-Format"; diff --git a/locales/enUS.lua b/locales/enUS.lua index 59e35a4..cd683f2 100644 --- a/locales/enUS.lua +++ b/locales/enUS.lua @@ -14,6 +14,7 @@ L['Bottom'] = true; L['Bar Color'] = true; L['Use Class Color for Bar'] = true; L["Miscellaneous"] = true; +L['Hide Bar in combat'] = true; L['Bar Padding'] = true; L['Module Spacing'] = true; L['Hide order hall bar'] = true; @@ -75,6 +76,7 @@ L['Always Show Item Level'] = true; L['Minimum Durability to Become Active'] = true; L['Maximum Durability to Show Item Level'] = true; +L['Master Volume'] = true; L["Volume step"] = true; L['Time Format'] = true; diff --git a/locales/frFR.lua b/locales/frFR.lua index 2b4b27b..bc4c5a3 100644 --- a/locales/frFR.lua +++ b/locales/frFR.lua @@ -15,6 +15,7 @@ L['Bottom'] = "Bas"; L['Bar Color'] = "Couleur de la barre"; L['Use Class Color for Bar'] = "Utiliser la couleur de classe pour la barre"; L["Miscellaneous"] = "Divers"; +L['Hide Bar in combat'] = "Cacher la barre en combat"; L['Bar Padding'] = "Décalage de la barre"; L['Module Spacing'] = "Espacement des modules"; L['Hide order hall bar'] = "Cacher la barre du hall de classe"; @@ -76,6 +77,7 @@ L['Always Show Item Level'] = "Toujours montrer le niveau d'objet"; L['Minimum Durability to Become Active'] = "Activation au minimum de durabilité"; L['Maximum Durability to Show Item Level'] = "Durabilité maximum pour montrer le niveau d'item"; +L['Master Volume'] = "Volume principal"; L["Volume step"] = "Incrément de volume"; L['Time Format'] = "Format de l'heure"; diff --git a/locales/ruRU.lua b/locales/ruRU.lua index 6306d3b..f75c091 100644 --- a/locales/ruRU.lua +++ b/locales/ruRU.lua @@ -15,6 +15,7 @@ L['Bottom'] = "Внизу"; L['Bar Color'] = "Цвет полосы"; L['Use Class Color for Bar'] = "Использовать цвет класса для полосы"; L["Miscellaneous"] = "Разное"; +L['Hide Bar in combat'] = true; L['Bar Padding'] = "Заполнение"; L['Module Spacing'] = "Расстояние между модулями"; L['Hide order hall bar'] = "Прятать полосу оплота класса"; @@ -76,6 +77,7 @@ L['Always Show Item Level'] = "Всегда показывать уровень L['Minimum Durability to Become Active'] = "Прочность, до которой загораются цифры"; L['Maximum Durability to Show Item Level'] = "Прочность, после которой показывается уровень предметов"; +L['Master Volume'] = true; L["Volume step"] = true; L['Time Format'] = "Формат времени"; diff --git a/locales/zhCN.lua b/locales/zhCN.lua index d1bfc76..3a03ed8 100644 --- a/locales/zhCN.lua +++ b/locales/zhCN.lua @@ -15,6 +15,7 @@ L['Bottom'] = "底部"; L['Bar Color'] = "条颜色"; L['Use Class Color for Bar'] = "条使用职业颜色"; L["Miscellaneous"] = "杂项"; +L['Hide Bar in combat'] = true; L['Bar Padding'] = "条填充"; L['Module Spacing'] = "模块间距"; L['Hide order hall bar'] = "隐藏职业大厅条"; @@ -76,6 +77,7 @@ L['Always Show Item Level'] = "始终显示物品等级"; L['Minimum Durability to Become Active'] = "最低耐久度变得活跃"; L['Maximum Durability to Show Item Level'] = "最大耐久度显示物品等级"; +L['Master Volume'] = true; L["Volume step"] = true; L['Time Format'] = "时间格式"; diff --git a/modules/armor.lua b/modules/armor.lua index 94e8ad6..138ea94 100644 --- a/modules/armor.lua +++ b/modules/armor.lua @@ -53,22 +53,26 @@ function ArmorModule:RegisterFrameEvents() self.armorButton:RegisterUnitEvent('UNIT_INVENTORY_CHANGED', 'player') self.armorButton:SetScript('OnEnter', function() - ArmorModule:SetArmorColor() - GameTooltip:SetOwner(ArmorModule.armorFrame, 'ANCHOR_'..xb.miniTextPosition) - GameTooltip:AddLine("[|cff6699FF"..AUCTION_CATEGORY_ARMOR.."|r]") - GameTooltip:AddLine(" ") - for i,v in pairs(ArmorModule.durabilityList) do - if v.max ~= nil and v.max > 0 then - local perc = floor((v.cur / v.max) * 100) - GameTooltip:AddDoubleLine(v.text, string.format('%d/%d (%d%%)', v.cur, v.max, perc), 1, 1, 0, 1, 1, 1) - end - end - GameTooltip:Show() + if not InCombatLockdown() then + ArmorModule:SetArmorColor() + GameTooltip:SetOwner(ArmorModule.armorFrame, 'ANCHOR_'..xb.miniTextPosition) + GameTooltip:AddLine("[|cff6699FF"..AUCTION_CATEGORY_ARMOR.."|r]") + GameTooltip:AddLine(" ") + for i,v in pairs(ArmorModule.durabilityList) do + if v.max ~= nil and v.max > 0 then + local perc = floor((v.cur / v.max) * 100) + GameTooltip:AddDoubleLine(v.text, string.format('%d/%d (%d%%)', v.cur, v.max, perc), 1, 1, 0, 1, 1, 1) + end + end + GameTooltip:Show() + end end) self.armorButton:SetScript('OnLeave', function() - self:SetArmorColor() - GameTooltip:Hide() + if not InCombatLockdown() then + self:SetArmorColor() + GameTooltip:Hide() + end end) self.armorButton:SetScript('OnEvent', function(_, event) diff --git a/modules/currency.lua b/modules/currency.lua index 7612496..1aa10a9 100644 --- a/modules/currency.lua +++ b/modules/currency.lua @@ -58,10 +58,6 @@ function CurrencyModule:Refresh() self.xpBar:SetValue(UnitXP('player')) self.xpText:SetText(string.upper(LEVEL..' '..UnitLevel("player")..' '..UnitClass('player'))) end - self:RegisterEvent('PLAYER_REGEN_ENABLED', function() - self:Refresh() - self:UnregisterEvent('PLAYER_REGEN_ENABLED') - end) return end if self.currencyFrame == nil then return; end diff --git a/modules/mastervolume.lua b/modules/mastervolume.lua index 937e668..697dd21 100644 --- a/modules/mastervolume.lua +++ b/modules/mastervolume.lua @@ -162,7 +162,7 @@ end function VolumeModule:GetConfig() return { - name = self:GetName(), + name = L['Master Volume'], type = "group", args = { enable = { -- 1.7.9.5