From e85c1e18507409fd052e9698087537135dcb9f95 Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Mon, 8 May 2023 02:58:11 +0700 Subject: [PATCH 01/17] Add option to resize restricted main bar --- ls_UI/modules/bars/actionbars.lua | 10 ++- ls_UI/modules/bars/controller.lua | 109 +++++++++++++++++++----------- ls_UI/modules/bars/core.lua | 1 + ls_UI_Options/bars/bar.lua | 4 +- 4 files changed, 84 insertions(+), 40 deletions(-) diff --git a/ls_UI/modules/bars/actionbars.lua b/ls_UI/modules/bars/actionbars.lua index 2878d568..cb53632e 100644 --- a/ls_UI/modules/bars/actionbars.lua +++ b/ls_UI/modules/bars/actionbars.lua @@ -17,7 +17,7 @@ local isInit = false local CFG = { bar1 = { flyout_dir = "UP", - num = 12, + -- num = 12, per_row = 12, width = 32, height = 0, @@ -197,10 +197,18 @@ function bar1_proto:UpdateConfig() self._config.rightclick_selfcast = C.db.profile.bars.rightclick_selfcast if MODULE:IsRestricted() then + if C.db.profile.bars.bar1.num < 6 then + C.db.profile.bars.bar1.num = 6 + end + self._config.grid = C.db.profile.bars.bar1.grid + self._config.num = C.db.profile.bars.bar1.num self._config.count = E:CopyTable(C.db.profile.bars.bar1.count, self._config.count) self._config.hotkey = E:CopyTable(C.db.profile.bars.bar1.hotkey, self._config.hotkey) self._config.macro = E:CopyTable(C.db.profile.bars.bar1.macro, self._config.macro) + + self:SetAttribute("maxbuttons", self._config.num) + MODULE:UpdateMainBarMaxButtons(self._config.num) end end diff --git a/ls_UI/modules/bars/controller.lua b/ls_UI/modules/bars/controller.lua index 79e5b745..989a8440 100644 --- a/ls_UI/modules/bars/controller.lua +++ b/ls_UI/modules/bars/controller.lua @@ -9,6 +9,7 @@ local unpack = _G.unpack -- Mine local isInit = false +local isFinilized = false local barController local animController @@ -48,7 +49,7 @@ local WIDGETS = { self:Show() for i = 7, 12 do - if message == 6 then + if i > message then buttons[i]:SetAttribute("statehidden", true) buttons[i]:Hide() else @@ -67,7 +68,7 @@ local WIDGETS = { frame_level_offset = 3, point = {"BOTTOM", "LSActionBarControllerBottom", "BOTTOM", 0, 0}, on_play = function(frame, newstate) - frame:UpdateSize(newstate == 6 and 756 / 2 or 1188 / 2, 12) + frame:UpdateSize(756 / 2 + 36 * (newstate - 6), 12) end, }, } @@ -88,40 +89,6 @@ function MODULE:AddControlledWidget(slot, frame) end widget.frame = frame - - if not barController.isDriverRegistered and WIDGETS.ACTION_BAR.frame - and WIDGETS.PET_BATTLE_BAR.frame and WIDGETS.XP_BAR.frame then - - -- _"childupdate-numbuttons" is executed in barController's environment - for i = 1, 12 do - barController:SetFrameRef("button" .. i, _G["LSActionBar1Button" .. i]) - end - - barController:Execute([[ - top = self:GetFrameRef("top") - bottom = self:GetFrameRef("bottom") - buttons = table.new() - - for i = 1, 12 do - table.insert(buttons, self:GetFrameRef("button" .. i)) - end - ]]) - - barController:SetAttribute("_onstate-mode", [[ - if newstate ~= self:GetAttribute("numbuttons") then - self:SetAttribute("numbuttons", newstate) - self:ChildUpdate("numbuttons", newstate) - self:CallMethod("Update") - - top:SetWidth(newstate == 6 and 0.001 or 216) - bottom:SetWidth(newstate == 6 and 0.001 or 216) - end - ]]) - - RegisterStateDriver(barController, "mode", "[vehicleui][petbattle][overridebar][possessbar] 6; 12") - - barController.isDriverRegistered = true - end end end end @@ -143,6 +110,19 @@ function MODULE:SetupActionBarController() barController.Shuffle:Play() end + barController.UpdateSimple = function(_, newstate) + for _, widget in next, WIDGETS do + if widget.frame and widget.on_play then + widget.on_play(widget.frame, newstate) + end + end + + animController.Top:SetWidth(newstate == 6 and 0.001 or 36 * (newstate - 6)) + animController.Top.Mid:SetTexCoord(233 / 2048, (233 + 72 * (newstate - 6)) / 2048, 1 / 256, 91 / 256) + + animController.Bottom:SetWidth(newstate == 6 and 0.001 or 36 * (newstate - 6)) + animController.Bottom.Mid:SetTexCoord(569 / 2048, (569 + 72 * (newstate - 6)) / 2048, 92 / 256, 138 / 256) + end -- These frames are used as anchors/parents for secure/protected frames local top = CreateFrame("Frame", "$parentTop", barController, "SecureHandlerBaseTemplate") @@ -256,8 +236,11 @@ function MODULE:SetupActionBarController() end) C_Timer.After(0.4, function() - animController.Top:SetWidth(newstate == 6 and 0.001 or 216) - animController.Bottom:SetWidth(newstate == 6 and 0.001 or 216) + animController.Top:SetWidth(newstate == 6 and 0.001 or 36 * (newstate - 6)) + animController.Top.Mid:SetTexCoord(233 / 2048, (233 + 72 * (newstate - 6)) / 2048, 1 / 256, 91 / 256) + + animController.Bottom:SetWidth(newstate == 6 and 0.001 or 36 * (newstate - 6)) + animController.Bottom.Mid:SetTexCoord(569 / 2048, (569 + 72 * (newstate - 6)) / 2048, 92 / 256, 138 / 256) end) end) ag:SetScript("OnFinished", function() @@ -342,6 +325,40 @@ function MODULE:SetupActionBarController() end end +function MODULE:FinalizeActionBarController() + if isInit and not isFinilized then + -- "_childupdate-numbuttons" is executed in barController's environment + for i = 1, 12 do + barController:SetFrameRef("button" .. i, _G["LSActionBar1Button" .. i]) + end + + barController:Execute([[ + top = self:GetFrameRef("top") + bottom = self:GetFrameRef("bottom") + buttons = table.new() + + for i = 1, 12 do + table.insert(buttons, self:GetFrameRef("button" .. i)) + end + ]]) + + barController:SetAttribute("_onstate-mode", [[ + if newstate ~= self:GetAttribute("numbuttons") then + self:SetAttribute("numbuttons", newstate) + self:ChildUpdate("numbuttons", newstate) + self:CallMethod("Update") + + top:SetWidth(newstate == 6 and 0.001 or 36 * (newstate - 6)) + bottom:SetWidth(newstate == 6 and 0.001 or 36 * (newstate - 6)) + end + ]]) + + isFinilized = true + + self:UpdateMainBarMaxButtons(LSActionBar1:GetAttribute("maxbuttons")) + end +end + function MODULE:UpdateEndcaps() local endcaps = C.db.profile.bars.endcaps if endcaps == "BOTH" then @@ -365,3 +382,19 @@ function MODULE:UpdateScale() barController:SetScale(scale) animController:SetScale(scale) end + +function MODULE:UpdateMainBarMaxButtons(num) + if not isFinilized then return end + if not num then return end + + barController:Execute(([[ + self:SetAttribute("numbuttons", %1$d) + self:ChildUpdate("numbuttons", %1$d) + self:CallMethod("UpdateSimple", %1$d) + + top:SetWidth(%1$d == 6 and 0.001 or 36 * (%1$d - 6)) + bottom:SetWidth(%1$d == 6 and 0.001 or 36 * (%1$d - 6)) + ]]):format(num)) + + RegisterStateDriver(barController, "mode", "[vehicleui][petbattle][overridebar][possessbar] 6; " .. num) +end diff --git a/ls_UI/modules/bars/core.lua b/ls_UI/modules/bars/core.lua index 41df1102..e6e9e887 100644 --- a/ls_UI/modules/bars/core.lua +++ b/ls_UI/modules/bars/core.lua @@ -239,6 +239,7 @@ function MODULE:Init() MODULE:CreateMicroMenu() MODULE:CreateBag() MODULE:CreateXPBar() + MODULE:FinalizeActionBarController() MODULE:CleanUp() MODULE:UpdateBlizzVehicle() diff --git a/ls_UI_Options/bars/bar.lua b/ls_UI_Options/bars/bar.lua index a9e578f0..f79d5950 100644 --- a/ls_UI_Options/bars/bar.lua +++ b/ls_UI_Options/bars/bar.lua @@ -344,7 +344,9 @@ function CONFIG:CreateBarOptions(order, barID, name) if barID == "bar1" then temp.args.reset.disabled = isModuleDisabledOrRestricted temp.args.visible.disabled = isModuleDisabledOrRestricted - temp.args.num.disabled = isModuleDisabledOrRestricted + if BARS:IsRestricted() then + temp.args.num.min = 6 + end temp.args.per_row.disabled = isModuleDisabledOrRestricted temp.args.spacing.disabled = isModuleDisabledOrRestricted temp.args.width.disabled = isModuleDisabledOrRestricted From ad4755fcc8ff2baaff5d8278f284a0ea70844f60 Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Mon, 8 May 2023 03:40:06 +0700 Subject: [PATCH 02/17] Replace maths with built-in function --- ls_UI/core/utils.lua | 71 ++++---------------------------------------- 1 file changed, 5 insertions(+), 66 deletions(-) diff --git a/ls_UI/core/utils.lua b/ls_UI/core/utils.lua index cdb21bb6..0a4927dc 100644 --- a/ls_UI/core/utils.lua +++ b/ls_UI/core/utils.lua @@ -485,72 +485,11 @@ do end end - do - local ARMOR_SLOTS = {1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} - local X2_INVTYPES = { - INVTYPE_2HWEAPON = true, - INVTYPE_RANGEDRIGHT = true, - INVTYPE_RANGED = true, - } - local X2_EXCEPTIONS = { - [2] = 19, -- wands, use INVTYPE_RANGEDRIGHT, but are 1H - } - - function E:GetUnitAverageItemLevel(unit) - if UnitIsUnit(unit, "player") then - return m_floor(select(2, GetAverageItemLevel())) - else - local isOK, total, link = true, 0 - - -- Armour - for _, id in next, ARMOR_SLOTS do - link = GetInventoryItemLink(unit, id) - if link then - local cur = GetDetailedItemLevelInfo(link) - if cur and cur > 0 then - total = total + cur - end - elseif GetInventoryItemTexture(unit, id) then - isOK = false - end - end - - -- Main hand - local mainItemLevel, mainQuality, mainEquipLoc, mainItemClass, mainItemSubClass, _ = 0 - link = GetInventoryItemLink(unit, 16) - if link then - mainItemLevel = GetDetailedItemLevelInfo(link) - _, _, mainQuality, _, _, _, _, _, mainEquipLoc, _, _, mainItemClass, mainItemSubClass = GetItemInfo(link) - elseif GetInventoryItemTexture(unit, 16) then - isOK = false - end - - -- Off hand - local offItemLevel, offEquipLoc = 0 - link = GetInventoryItemLink(unit, 17) - if link then - offItemLevel = GetDetailedItemLevelInfo(link) - _, _, _, _, _, _, _, _, offEquipLoc = GetItemInfo(link) - elseif GetInventoryItemTexture(unit, 17) then - isOK = false - end - - if mainQuality == 6 or (not offEquipLoc and X2_INVTYPES[mainEquipLoc] and X2_EXCEPTIONS[mainItemClass] ~= mainItemSubClass and GetInspectSpecialization(unit) ~= 72) then - mainItemLevel = m_max(mainItemLevel, offItemLevel) - total = total + mainItemLevel * 2 - else - total = total + mainItemLevel + offItemLevel - end - - -- at the beginning of an arena match no info might be available, - -- so despite having equipped gear a person may appear naked - if total == 0 then - isOK = false - end - - -- print("|cffffd200" .. UnitName(unit) .. "|r", "total:", total, "cur:", m_floor(total / 16), isOK and "|cff11ff11SUCCESS!|r" or "|cffff1111FAIL!|r") - return isOK and m_floor(total / 16) - end + function E:GetUnitAverageItemLevel(unit) + if UnitIsUnit(unit, "player") then + return m_floor(select(2, GetAverageItemLevel())) + else + return C_PaperDollInfo.GetInspectItemLevel(unit) end end From 2283bea631add6e3889d60f1e177bf9a6d59f05a Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Mon, 8 May 2023 03:41:52 +0700 Subject: [PATCH 03/17] Make char frame ilvl more accurate Ref: #75 --- ls_UI/modules/blizzard/characterframe.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ls_UI/modules/blizzard/characterframe.lua b/ls_UI/modules/blizzard/characterframe.lua index 6d3c5faa..3084e81d 100644 --- a/ls_UI/modules/blizzard/characterframe.lua +++ b/ls_UI/modules/blizzard/characterframe.lua @@ -36,6 +36,7 @@ local EQUIP_SLOTS = { local ILVL_COLORS = {} local ILVL_STEP = 19 -- the ilvl step between content difficulties +local itemLoc = {} local avgItemLevel local function getItemLevelColor(itemLevel) @@ -48,7 +49,10 @@ end local function scanSlot(slotID) local link = GetInventoryItemLink("player", slotID) if link then - return true, GetDetailedItemLevelInfo(link), E:GetItemEnchantGemInfo(link) + -- C_Item.GetCurrentItemLevel is more accurate than GetDetailedItemLevelInfo + itemLoc.equipmentSlotIndex = slotID + + return true, C_Item.GetCurrentItemLevel(itemLoc), E:GetItemEnchantGemInfo(link) elseif GetInventoryItemTexture("player", slotID) then -- if there's no link, but there's a texture, it means that there's -- an item we have no info for From 3a6ddd26c3b1f756411ca482cf994f8bbeb93ee3 Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Mon, 8 May 2023 04:42:31 +0700 Subject: [PATCH 04/17] =?UTF-8?q?=F0=9F=94=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .luacheckrc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.luacheckrc b/.luacheckrc index ad7f089e..cd432104 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -58,9 +58,12 @@ read_globals = { "C_AzeriteItem", "C_CurrencyInfo", "C_GossipInfo", + "C_Item", "C_Mail", "C_MajorFactions", + "C_Map", "C_MountJournal", + "C_PaperDollInfo", "C_PetBattles", "C_PetJournal", "C_PlayerInfo", @@ -101,6 +104,7 @@ read_globals = { "ColorMixin", "CooldownFrame_Set", "CreateFrame", + "CreateVector2D", "DeadlyDebuffFrame", "DebuffFrame", "DeleteInboxItem", @@ -140,7 +144,6 @@ read_globals = { "GetCurrentBindingSet", "GetCursorPosition", "GetCVarBool", - "GetDetailedItemLevelInfo", "GetDifficultyInfo", "GetFlyoutInfo", "GetFrameHandleFrame", @@ -360,6 +363,7 @@ read_globals = { "UnitOnTaxi", "UnitPhaseReason", "UnitPlayerControlled", + "UnitPosition", "UnitPVPName", "UnitQuestTrivialLevelRange", "UnitRace", From 38755e847b5ce277abc82a4a52197219f1efd285 Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Mon, 8 May 2023 21:28:44 +0700 Subject: [PATCH 05/17] Add M+ S2 affixes --- ls_UI/core/defaults.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ls_UI/core/defaults.lua b/ls_UI/core/defaults.lua index 49eec439..306b221c 100644 --- a/ls_UI/core/defaults.lua +++ b/ls_UI/core/defaults.lua @@ -520,6 +520,12 @@ D.global = { [396364] = true, -- Thundering (Mark of Wind) [396369] = true, -- Thundering (Mark of Lightning) [396411] = true, -- Thundering (Primal Overload) + -- DRAGONFLIGHT SEASON 2 + [408556] = true, -- Entangling (Entangled) + [408805] = true, -- Incorporeal (Destabilize) + [409465] = true, -- Afflicted (Cursed Spirit) + [409470] = true, -- Afflicted (Poisoned Spirit) + [409472] = true, -- Afflicted (Diseased Spirit) }, }, textures = { From 39163a40077a15f8bed8091dc4ba95dd2fc57a5e Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Tue, 9 May 2023 03:14:16 +0700 Subject: [PATCH 06/17] Add scaling to all action bars --- ls_UI/core/defaults.lua | 13 +++++++++++++ ls_UI/core/layout.lua | 2 ++ ls_UI/core/mover.lua | 16 ++++++++++------ ls_UI/modules/bars/actionbars.lua | 4 ++++ ls_UI/modules/bars/controller.lua | 7 ++++--- ls_UI/modules/bars/extra.lua | 1 + ls_UI/modules/bars/zone.lua | 1 + ls_UI_Options/bars/bar.lua | 7 +++++++ ls_UI_Options/bars/extra.lua | 7 +++++++ 9 files changed, 49 insertions(+), 9 deletions(-) diff --git a/ls_UI/core/defaults.lua b/ls_UI/core/defaults.lua index 306b221c..566e0605 100644 --- a/ls_UI/core/defaults.lua +++ b/ls_UI/core/defaults.lua @@ -1954,6 +1954,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[petbattle] hide; show", visible = true, x_growth = "RIGHT", @@ -2004,6 +2005,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = true, x_growth = "RIGHT", @@ -2054,6 +2056,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = true, x_growth = "RIGHT", @@ -2104,6 +2107,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = true, x_growth = "LEFT", @@ -2154,6 +2158,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = true, x_growth = "LEFT", @@ -2204,6 +2209,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = false, x_growth = "RIGHT", @@ -2254,6 +2260,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = false, x_growth = "RIGHT", @@ -2304,6 +2311,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = false, x_growth = "RIGHT", @@ -2354,6 +2362,7 @@ D.profile = { width = 24, height = 0, spacing = 4, + scale = 1, visibility = "[pet,nopetbattle,novehicleui,nooverridebar,nopossessbar] show; hide", visible = true, x_growth = "RIGHT", @@ -2390,6 +2399,7 @@ D.profile = { width = 24, height = 0, spacing = 4, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = true, x_growth = "RIGHT", @@ -2425,6 +2435,7 @@ D.profile = { width = 32, height = 0, spacing = 4, + scale = 1, visibility = "[petbattle] show; hide", visible = true, x_growth = "RIGHT", @@ -2451,6 +2462,7 @@ D.profile = { extra = { -- ExtraAction width = 40, height = 0, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = true, artwork = false, @@ -2483,6 +2495,7 @@ D.profile = { zone = { -- ZoneAbility width = 40, height = 0, + scale = 1, visibility = "[vehicleui][petbattle][overridebar][possessbar] hide; show", visible = true, artwork = false, diff --git a/ls_UI/core/layout.lua b/ls_UI/core/layout.lua index 3b7503ba..c7507e1d 100644 --- a/ls_UI/core/layout.lua +++ b/ls_UI/core/layout.lua @@ -42,6 +42,8 @@ function E.Layout:Update(frame, config) frame:SetSize(widthMult * width + (widthMult - 1) * config.spacing + 4, heightMult * height + (heightMult - 1) * config.spacing + 4) + frame:SetScale(config.scale or 1) + local mover = E.Movers:Get(frame, true) if mover then mover:UpdateSize() diff --git a/ls_UI/core/mover.lua b/ls_UI/core/mover.lua index 7a2043f9..8dca9019 100644 --- a/ls_UI/core/mover.lua +++ b/ls_UI/core/mover.lua @@ -616,7 +616,6 @@ local function calculatePosition(self, xOffset, yOffset, forceUIParent) end end - return p, parent:GetName(), rP, x, y end @@ -643,10 +642,11 @@ local function resetObjectPoint(self, _, _, _, _, _, shouldIgnore) local mover = E.Movers:Get(self) if mover and not shouldIgnore then if not InCombatLockdown() or not self:IsProtected() then + local scale = self:GetScale() self:ClearAllPoints() if mover.isSimple then - self:SetPoint("TOPRIGHT", mover, "TOPRIGHT", -mover.offsetX, -mover.offsetY, true) + self:SetPoint("TOPRIGHT", mover, "TOPRIGHT", E:Round(-mover.offsetX / scale), E:Round(-mover.offsetY / scale), true) else local p, anchor, rP, x, y = mover:GetCurrentPosition() if anchor ~= "UIParent" then @@ -656,7 +656,7 @@ local function resetObjectPoint(self, _, _, _, _, _, shouldIgnore) if p then dirtyObjects[self] = nil - self:SetPoint(p, anchor, rP, x - mover.offsetX, y - mover.offsetY, true) + self:SetPoint(p, anchor, rP, E:Round((x - mover.offsetX) / scale), E:Round((y - mover.offsetY) / scale), true) else -- I need to do this because some of the frames I move around are managed by Blizz -- layout manager, so I can't have my movers as anchors since they're created after @@ -664,7 +664,7 @@ local function resetObjectPoint(self, _, _, _, _, _, shouldIgnore) -- UIParent dirtyObjects[self] = true - self:SetPoint("TOPRIGHT", mover, "TOPRIGHT", -mover.offsetX, -mover.offsetY, true) + self:SetPoint("TOPRIGHT", mover, "TOPRIGHT", E:Round(-mover.offsetX / scale), E:Round(-mover.offsetY / scale), true) end end else @@ -969,8 +969,12 @@ function mover_proto:Disable() end function mover_proto:UpdateSize(width, height) - self:SetWidth(width or (self.object:GetWidth() + self.offsetX * 2)) - self:SetHeight(height or (self.object:GetHeight() + self.offsetY * 2)) + local newScale = self.object:GetScale() + + self:SetWidth(E:Round((width or (self.object:GetWidth() + self.offsetX * 2)) * newScale)) + self:SetHeight(E:Round((height or (self.object:GetHeight() + self.offsetY * 2)) * newScale)) + + resetObjectPoint(self.object) end function mover_proto:GetObject() diff --git a/ls_UI/modules/bars/actionbars.lua b/ls_UI/modules/bars/actionbars.lua index cb53632e..17d5d53a 100644 --- a/ls_UI/modules/bars/actionbars.lua +++ b/ls_UI/modules/bars/actionbars.lua @@ -22,6 +22,7 @@ local CFG = { width = 32, height = 0, spacing = 4, + -- scale = 1, visibility = "[petbattle] hide; show", visible = true, x_growth = "RIGHT", @@ -209,6 +210,9 @@ function bar1_proto:UpdateConfig() self:SetAttribute("maxbuttons", self._config.num) MODULE:UpdateMainBarMaxButtons(self._config.num) + + self:SetAttribute("scale", C.db.profile.bars.bar1.scale) + MODULE:UpdateScale(C.db.profile.bars.bar1.scale) end end diff --git a/ls_UI/modules/bars/controller.lua b/ls_UI/modules/bars/controller.lua index 989a8440..592a414e 100644 --- a/ls_UI/modules/bars/controller.lua +++ b/ls_UI/modules/bars/controller.lua @@ -319,7 +319,6 @@ function MODULE:SetupActionBarController() anim:SetDuration(0.15) self:UpdateEndcaps() - self:UpdateScale() isInit = true end @@ -356,6 +355,7 @@ function MODULE:FinalizeActionBarController() isFinilized = true self:UpdateMainBarMaxButtons(LSActionBar1:GetAttribute("maxbuttons")) + self:UpdateScale(LSActionBar1:GetAttribute("scale")) end end @@ -376,8 +376,9 @@ function MODULE:UpdateEndcaps() end end -function MODULE:UpdateScale() - local scale = C.db.profile.bars.scale +function MODULE:UpdateScale(scale) + if not isFinilized then return end + if not scale then return end barController:SetScale(scale) animController:SetScale(scale) diff --git a/ls_UI/modules/bars/extra.lua b/ls_UI/modules/bars/extra.lua index 674e27fa..ee40590f 100644 --- a/ls_UI/modules/bars/extra.lua +++ b/ls_UI/modules/bars/extra.lua @@ -55,6 +55,7 @@ function bar_proto:Update() local width, height = ExtraActionButton1:GetSize() self:SetSize((width > 0 and width or 52) + 4, (height > 0 and height or 52) + 4) + self:SetScale(self._config.scale) local mover = E.Movers:Get(self) if mover then diff --git a/ls_UI/modules/bars/zone.lua b/ls_UI/modules/bars/zone.lua index edeb4510..f19aad81 100644 --- a/ls_UI/modules/bars/zone.lua +++ b/ls_UI/modules/bars/zone.lua @@ -34,6 +34,7 @@ function bar_proto:Update() end self:SetSize(width + 4, height + 4) + self:SetScale(self._config.scale) local mover = E.Movers:Get(self) if mover then diff --git a/ls_UI_Options/bars/bar.lua b/ls_UI_Options/bars/bar.lua index f79d5950..177661a4 100644 --- a/ls_UI_Options/bars/bar.lua +++ b/ls_UI_Options/bars/bar.lua @@ -109,6 +109,13 @@ function CONFIG:CreateBarOptions(order, barID, name) BARS:For(barID, "UpdateButtonConfig") end, }, + scale = { + order = inc(1), + type = "range", + name = L["SCALE"], + isPercent = true, + min = 1, max = 2, step = 0.01, bigStep = 0.05, + }, num = { order = inc(1), type = "range", diff --git a/ls_UI_Options/bars/extra.lua b/ls_UI_Options/bars/extra.lua index ac9a7f70..fc9f93e9 100644 --- a/ls_UI_Options/bars/extra.lua +++ b/ls_UI_Options/bars/extra.lua @@ -86,6 +86,13 @@ function CONFIG:CreateExtraBarOptions(order, barID, name) BARS:For(barID, "UpdateArtwork") end, }, + scale = { + order = inc(1), + type = "range", + name = L["SCALE"], + isPercent = true, + min = 0.5, max = 1.5, step = 0.01, bigStep = 0.05, + }, spacer_2 = { order = inc(1), type = "description", From 307de35f69540b03411dcc6ac4589b293476ca8a Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Tue, 9 May 2023 03:14:32 +0700 Subject: [PATCH 07/17] Remove main bar specific scaling --- ls_UI/core/defaults.lua | 1 - ls_UI/core/modernize.lua | 9 +++++++++ ls_UI_Options/bars/core.lua | 17 ----------------- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/ls_UI/core/defaults.lua b/ls_UI/core/defaults.lua index 566e0605..c7f707fc 100644 --- a/ls_UI/core/defaults.lua +++ b/ls_UI/core/defaults.lua @@ -1932,7 +1932,6 @@ D.profile = { lock = true, rightclick_selfcast = false, blizz_vehicle = false, - scale = 1, endcaps = "BOTH", -- "LEFT", "RIGHT", "NONE" cooldown = { exp_threshold = 5, diff --git a/ls_UI/core/modernize.lua b/ls_UI/core/modernize.lua index 5f9b3bb7..c7065d17 100644 --- a/ls_UI/core/modernize.lua +++ b/ls_UI/core/modernize.lua @@ -785,6 +785,15 @@ function P:Modernize(data, name, key) data.version = 10010001 end + + --> 100100.03 + if data.version < 10010003 then + if data.bars then + data.bars.scale = nil + end + + data.version = 10010003 + end elseif key == "private" then --> 90001.05 if data.version < 9000105 then diff --git a/ls_UI_Options/bars/core.lua b/ls_UI_Options/bars/core.lua index 8a078b55..45cfbb74 100644 --- a/ls_UI_Options/bars/core.lua +++ b/ls_UI_Options/bars/core.lua @@ -166,23 +166,6 @@ function CONFIG:CreateActionBarsOptions(order) return not (BARS:IsInit() and BARS:IsRestricted()) end, }, - scale = { - order = inc(1), - type = "range", - name = L["SCALE"], - min = 1, max = 2, step = 0.01, bigStep = 0.1, - get = function() - return C.db.profile.bars.scale - end, - set = function(_, value) - C.db.profile.bars.scale = value - - BARS:UpdateScale() - end, - disabled = function() - return not (BARS:IsInit() and BARS:IsRestricted()) - end, - }, blizz_vehicle = { order = inc(1), type = "toggle", From b65b62034bf294da0cb991aa2fd9cb19e56bb586 Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Tue, 9 May 2023 03:15:30 +0700 Subject: [PATCH 08/17] Set button spacing step to 1 --- ls_UI_Options/auras.lua | 2 +- ls_UI_Options/auratracker.lua | 2 +- ls_UI_Options/bars/bar.lua | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ls_UI_Options/auras.lua b/ls_UI_Options/auras.lua index a07df1a7..10d0ed5b 100644 --- a/ls_UI_Options/auras.lua +++ b/ls_UI_Options/auras.lua @@ -128,7 +128,7 @@ local function getAuraOptions(order, name, filter) order = inc(1), type = "range", name = L["SPACING"], - min = 4, max = 24, step = 2, + min = 4, max = 24, step = 1, }, width = { order = inc(1), diff --git a/ls_UI_Options/auratracker.lua b/ls_UI_Options/auratracker.lua index 01d16a0d..552caf7c 100644 --- a/ls_UI_Options/auratracker.lua +++ b/ls_UI_Options/auratracker.lua @@ -170,7 +170,7 @@ function CONFIG:CreateAuraTrackerOptions(order) order = inc(1), type = "range", name = L["SPACING"], - min = 4, max = 24, step = 2, + min = 4, max = 24, step = 1, disabled = isModuleDisabled, }, width = { diff --git a/ls_UI_Options/bars/bar.lua b/ls_UI_Options/bars/bar.lua index 177661a4..d716f738 100644 --- a/ls_UI_Options/bars/bar.lua +++ b/ls_UI_Options/bars/bar.lua @@ -132,7 +132,7 @@ function CONFIG:CreateBarOptions(order, barID, name) order = inc(1), type = "range", name = L["SPACING"], - min = 4, max = 24, step = 2, + min = 4, max = 24, step = 1, }, width = { order = inc(1), From 786cac8d067ec6c32c6faefdff54f8270fc208f4 Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Tue, 9 May 2023 03:37:08 +0700 Subject: [PATCH 09/17] Fix "empty" xp bar --- ls_UI/modules/bars/xpbar.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ls_UI/modules/bars/xpbar.lua b/ls_UI/modules/bars/xpbar.lua index 0a99db50..ba1e4028 100644 --- a/ls_UI/modules/bars/xpbar.lua +++ b/ls_UI/modules/bars/xpbar.lua @@ -199,12 +199,12 @@ function bar_proto:UpdateSegments() if index == 0 then self[1]:SetPoint("TOPLEFT", self, "TOPLEFT", 0, 0) self[1]:SetSize(unpack(LAYOUT[1][1].size)) + self[1]:Show() self[1]:SetMinMaxValues(0, 1) self[1]:SetValue(1) self[1]:UpdateText(1, 1) self[1]:SetStatusBarTexture(DEFAULT_TEXTURE) self[1].Texture:SetVertexColor(C.db.global.colors.class[E.PLAYER_CLASS]:GetRGB()) - self[1]:Show() end self._total = index From d9cc909dcb15934410a1ee278acf4697a0371e61 Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Tue, 9 May 2023 04:10:48 +0700 Subject: [PATCH 10/17] It didn't fix shit... --- ls_UI/modules/bars/xpbar.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ls_UI/modules/bars/xpbar.lua b/ls_UI/modules/bars/xpbar.lua index ba1e4028..2043f952 100644 --- a/ls_UI/modules/bars/xpbar.lua +++ b/ls_UI/modules/bars/xpbar.lua @@ -199,9 +199,9 @@ function bar_proto:UpdateSegments() if index == 0 then self[1]:SetPoint("TOPLEFT", self, "TOPLEFT", 0, 0) self[1]:SetSize(unpack(LAYOUT[1][1].size)) - self[1]:Show() self[1]:SetMinMaxValues(0, 1) self[1]:SetValue(1) + self[1]:Show() self[1]:UpdateText(1, 1) self[1]:SetStatusBarTexture(DEFAULT_TEXTURE) self[1].Texture:SetVertexColor(C.db.global.colors.class[E.PLAYER_CLASS]:GetRGB()) From 021abb4dbe422a0d05b8328a6887978fc01cdaef Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Tue, 9 May 2023 04:22:23 +0700 Subject: [PATCH 11/17] But this did... --- ls_UI/core/statusbar.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ls_UI/core/statusbar.lua b/ls_UI/core/statusbar.lua index 1b211111..7bfc50dc 100644 --- a/ls_UI/core/statusbar.lua +++ b/ls_UI/core/statusbar.lua @@ -493,7 +493,7 @@ do object:SetValue_(new) object._value = new - if isCloseEnough(new, target, object._max - object._min) then + if not object:IsVisible() or isCloseEnough(new, target, object._max - object._min) then remove(object) end end @@ -522,6 +522,8 @@ do local function bar_SetValue(self, new) if not self:IsVisible() or isCloseEnough(self._value, new, self._max - self._min) then + activeObjects[self] = nil + self:SetValue_(new) self._value = new From 7f8582ce1efadfca271c303e1dec9091789965dc Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Tue, 9 May 2023 04:25:26 +0700 Subject: [PATCH 12/17] Increase max xp bar size --- ls_UI_Options/bars/core.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ls_UI_Options/bars/core.lua b/ls_UI_Options/bars/core.lua index 45cfbb74..f86daa74 100644 --- a/ls_UI_Options/bars/core.lua +++ b/ls_UI_Options/bars/core.lua @@ -588,7 +588,7 @@ function CONFIG:CreateActionBarsOptions(order) order = inc(2), type = "range", name = L["WIDTH"], - min = 530, max = 1900, step = 2, + min = 256, max = 5120, step = 2, disabled = isXPBarDisabledOrRestricted, set = function(info, value) if C.db.profile.bars.xpbar[info[#info]] ~= value then From 31e8dd62fa7464a16d72b703bbefa584e072541b Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Tue, 9 May 2023 04:49:27 +0700 Subject: [PATCH 13/17] Add equipped button colour --- ls_UI/core/button.lua | 2 +- ls_UI/core/defaults.lua | 1 + ls_UI/locales/enUS.lua | 1 + ls_UI/modules/bars/actionbars.lua | 1 + ls_UI/modules/bars/petbar.lua | 1 + ls_UI_Options/general/colors.lua | 5 +++++ 6 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ls_UI/core/button.lua b/ls_UI/core/button.lua index 28dfabc4..cd1d4027 100644 --- a/ls_UI/core/button.lua +++ b/ls_UI/core/button.lua @@ -342,7 +342,7 @@ do local button = self:GetParent() if button:IsEquipped() then - button.Border_:SetVertexColor(C.db.global.colors.green:GetRGB()) + button.Border_:SetVertexColor(C.db.global.colors.button.equipped:GetRGB()) else button.Border_:SetVertexColor(1, 1, 1) end diff --git a/ls_UI/core/defaults.lua b/ls_UI/core/defaults.lua index c7f707fc..33368644 100644 --- a/ls_UI/core/defaults.lua +++ b/ls_UI/core/defaults.lua @@ -70,6 +70,7 @@ D.global = { unusable = rgb(181, 182, 181), -- #B5B6B5 (N7) mana = rgb(32, 98, 165), -- #2062A5 (5PB 4/10) range = rgb(140, 29, 30), -- #8C1D1E (7.5R 3/10) + equipped = rgb(46, 172, 52), -- #2EAC34 (10GY 6/12) }, castbar = { casting = rgb(246, 196, 66), -- #F6C442 (2.5Y 8/10) diff --git a/ls_UI/locales/enUS.lua b/ls_UI/locales/enUS.lua index abc2dbbb..c2360f52 100644 --- a/ls_UI/locales/enUS.lua +++ b/ls_UI/locales/enUS.lua @@ -37,6 +37,7 @@ L["ENABLE"] = _G.ENABLE L["ENCHANTS"] = _G.AUCTION_CATEGORY_ITEM_ENHANCEMENT L["ENERGY"] = _G.ENERGY L["ENRAGE"] = _G.ENCOUNTER_JOURNAL_SECTION_FLAG11 +L["EQUIPMENT"] = _G.BAG_FILTER_EQUIPMENT L["ERROR_RED"] = E:WrapTextInColorCode(D.global.colors.red, _G.ERROR_CAPS) L["FACTION"] = _G.FACTION L["FACTION_ALLIANCE"] = _G.FACTION_ALLIANCE diff --git a/ls_UI/modules/bars/actionbars.lua b/ls_UI/modules/bars/actionbars.lua index 17d5d53a..a211f8c2 100644 --- a/ls_UI/modules/bars/actionbars.lua +++ b/ls_UI/modules/bars/actionbars.lua @@ -121,6 +121,7 @@ function bar_proto:UpdateButtonConfig() unusable = {}, mana = {}, range = {}, + equipped = {}, }, desaturation = {}, hideElements = { diff --git a/ls_UI/modules/bars/petbar.lua b/ls_UI/modules/bars/petbar.lua index fc946a74..828cfc46 100644 --- a/ls_UI/modules/bars/petbar.lua +++ b/ls_UI/modules/bars/petbar.lua @@ -56,6 +56,7 @@ function bar_proto:UpdateButtonConfig() unusable = {}, mana = {}, range = {}, + equipped = {}, }, desaturation = {}, } diff --git a/ls_UI_Options/general/colors.lua b/ls_UI_Options/general/colors.lua index b4e2b332..a5c73d4f 100644 --- a/ls_UI_Options/general/colors.lua +++ b/ls_UI_Options/general/colors.lua @@ -887,6 +887,11 @@ function CONFIG:GetColorsOptions(order) type = "color", name = L["OOR"], }, + equipped = { + order = inc(2), + type = "color", + name = L["EQUIPMENT"], + }, }, }, cooldown = { From 4da7876d8781c184db853161dcfc023e2ee108d0 Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Wed, 10 May 2023 00:00:45 +0700 Subject: [PATCH 14/17] Tweak button border texture --- ls_UI/assets/border-thin.TGA | Bin 9776 -> 9786 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ls_UI/assets/border-thin.TGA b/ls_UI/assets/border-thin.TGA index a5205ac44fdc8af0fe3da8c10934a38f081fd807..977ed59628d3fa8aa0d415d9c930703938e21287 100644 GIT binary patch literal 9786 zcmbuEX^2!;7RRfkvrkB4#3ViGw$v6sBs$qh$b|Wlz;=bS-7erA+alvIYinOsijrwhvERc{$5;I@!{C}6KqTh16?!$(E^{e|{o%inl zobx~D-j_-}n=1UJGpS6b(HN6@T4NPLweVoqu3hH*`SV7{Ey6&dk5IZ!ANI=9+z4k{ zmMvRmMvorN)ei(LR5V3wZr;4vT)K40)8^8pOU;-uV*)n6iP&7TW{tUi{ko^kIdkTi zY15_!Y}&a;3E*MRojd1gxW2yLOqehsU^q&^h7B9cwQJWrZ7x}|#Ecp>Dqu580FJtR z`Ld_Yg$oy&v17*uY&ro_WQsC^_vz|8R&Yf#&Yik3fMhV!rZ=dnEIcwG|Gj80t zfK5jP?B2aQ0Rh=;){Gc2B49Wg0eI`ml`EbEV6%7%Y}vBKoH%j9(}KYrYkfcf+1M@V%LuxHO6)7skV zX&3^+p%o<{SyZ9eVZn+LuyNzY1f*?EU$T}jUmjsLN&w+{>eMMuQvC=Z zQvEf6(i*N-4gwGt|N2T94A<-^0X*zE@6w8}hSMq<0i;#CGFYV!q_0rARv)Qngf!m- zMmgIO_pA;QXfpguA)-}04S3+wr%!uE0UnD@1EyAzMR<6Hj)fjEqo5G7ir+?|g z_I(i1N$4WHCDaJ53l=Oe!-fsxY3>UURPG>S>(;FaIz!Yp9BR>sfDHe}C@z0(M9|ij z37-h}Amh-XLrm#gVVLlq@QUz+kY25i)N>pO5JLa^s_=nOE3{3YKHUr*Iur}{1gw@h zNMQmuZrt$nCKD)53LWUpn>Q2KjE%Z_J$C9zfq9k)%<~1Is{mW&tMpO96$BC^oZ$+t zVrP+4CoTpDlbWR0_`vmgbc@Nc}}D<_4uWiWDcJp&G~3b?@H&M;gGXQ>U5%0|xw|v9APf{(^(<{rmSPsDOUyPPz7{ zn{0`tdyyX7#%P}I7xkUFjun_!vq0wFhmi+FGvdYwXSjkZ`31kUv|F16+ELdY!X)88 zWEXi3Bjx4gH#Ig!_((ul{zjztA=3K_C@W4O!lC_#dGqEOqP&0q{{Pe1U4fftgr^qaPldZ$v;4Mg+ctxO;p^=B_3KTRmFi0j z(^WFJg9i^9RGRFgD}-Dmg`Y8=Kjs`})~;P^RH1z1vqmVK=-?eF+dA=@` z3MCHz?cKZA96fr}Q>iHN#n(^pmu&qMZW}B)`3<0a=H%TsL(^$fX?k?$&Klt+V}42hoIi)lp#+zz-}sZ;3EcJ#q2NXxrwU%= zA<@g1h4+Oo9r@FeD%xizYLfSh# zNcZbsYy8Uk;lqa$tX5e7#%3T>%zKY%K%e!Vu6_jN7cN|&F#nR9a)=nt?AWox5Kn^# z4-Pw`K#X+)ZsCvnA&Gw#{vj-vBObErgHEsq$o3M)I3<6~E)L&UtXN?k21_iIvaD=6 zGd~(;wmP_yZl6qGoC{DjR_hZdPNZUm9T*50hZD(l|7yd-FeOc|gRM*iE!mbstP@ci zGzt}=41FrJDOMkmTUW1MHNAWH{!U{J0%}wvRDG$Bs803j)$4mi6Pkw)AD(w87O~77 zN~|-pI^M+g(w7;%l^%aHOmf$Duim`0SZYc zsAG>w&{)Toxq!{&+ZwU4O$W<!g9#}RV$?})+RYoa2zDJ+g)TztV+q5bdx>`Yd1zX!xb%P zZ1`=1gNVm}?`ktUKm_fJf03bwES`p>j6bOVA#K_B*bz#7tHSf0j!Svb;!9d z60k`m`0G$yDRB@$N9Laj^z+3DU{}C@qn+hnahqs^zfDp$990ei9{;^-GzHKC|2KKG zi8r@mbrrfT6lkNAz0zuiYLHd1j*Op8u0kmM04hstgA|AW#QO2xV_O3L4^^?ljQ{`u literal 9776 zcmb`MS!`8R6o&65D2f_NTWVV^X$)_OiWrRofk2r`NlT&35Q3p)rc7m~TsshkGPV+i zfDnd&Bs}oqi_yerVo>146fh>nXb_1SAxQOQ`+wWslOFHBz57I({I}=sbM89({A;a$ zt-Vhy);kvb#fxLb#k-9$v0fVMFWjiFuQ$h!A2&K~7s`b}Le^n@#Gd9zV1zU6t5>f! zrKP1@eMe{#Duw=SA)6aEY%nKJp7gX?TU%=;PMnxx^P7;(6)RSlbLY-^+MGXszL_;^ zR*KD?*bEcEWRD&_>S=iC(xs-nygbEln1How*P1hD&Uo5fxpJkMFkwQ9%`gEt>eQ)I zo;GW0YD`&KS&B^u0o%51GZ!yj^fbJD`EoOU{P+~ZVFI>n*%E=&xpU__ZH5Ve)JvBx zdCqh3;>FIWauC2|Pndgy z1h_&gOhB}#La{SffpzQFMIg1hy4tBL4gv^Q|B}Vku5b+#K)ANHwtA8Z0WQT3M*xxP zuK|=+SG95wfVlYASIVHvTVVp2tbb`mSY2rqCV;f+QU)v3eY_%My{`}3>csgbFv{6> z=ISEWK>|&NeC7nye+^DLsyD+O}@pYR;ZLi_Mz?E!bcoN9fV2 zkJvK;MD!4Hh1Z3t!c9`5q@;vjh8j2r8Jjk3iqILNwysbMM+9W}H%965*OEbRS|nU2 z%69GA#UtGkW(sc!1;P_T{GdK!&vGO{2sFMZ3>D@Gw`a_lVMdQ0og}3}V?<7ogA^X% z{Q2`->d`Lq0GUal1HEwJLIj(xsI#Qd>lX@NtY5$0?A^Q9to3Aygl z5F3S!ns)3-f#>Zh5D0yQJOS2<4(OvlR}ff?aE2?ml3&EF4QmamIekL+dqn&lI&{e7 z|F?{&&zcu!g z@PY8IFhuC%pgdaRHFM@nkF;-YZjPXZxY3pNmYnxA?GWW}>-#5Kraj!ed9y)Z@NZ(x znl&cDI`Vmj>G^oB9XobdGRZW0HYAP)ho3=m@;G@8E1iwSpSsNrp;{oK5fAG(JE6dD zNcBs?hIl;wD-VH5Zl`qlTI0)w8A2s~E5~mY0`&@cZtmBw-#z>_ZQ3+5Y}hb-M(w&F z)Cm)WV&N%=-x?Yk%$_}aJQazj%Dl3HyJ#yLS3$SrBsA@i-`>&p&!$Y7(sB9nWxFDw z)+DHy362U#Q93FX0W>NM(hkyQvVh?nb7PESeo0%)xnswUnVma#n*ICt8ze*x>|eSa zdQ~gDCZJB%e|BPl|4_bcVX&}6KD^JeigsULy~uH?47YpVy+ zrk*3|w-0r0t57ApEMy5i9loO@^{*y=r53^PUqP}cOPh1(KYwun&aCSsOdUzSReJx> z_-)}o#3-QuATr57E&K5TSFIL8UeNcLbpmSopKXngw(SJ*wEJk5q-q&(FV$ zL!nqM`L9C*f~+$s|NL=Zl<@^&xPU`{SGV{VAy-jRVK*;0rh{a$#Tctjj&VE{7`8ZO zjQs=7vy;Sl^4hUu$C?EFZErOgX6VqNG#OMq6qHO%IxIXwdv90Zl@s@bCUJ&P1vx_@8L^w*$LmyfTriX0E6`bjA6ZDI_+>6}l z%upnaLN!pZl9j69NpB(r8--7W?}VRP^>K$D@&|$T?gN3^g$9OFKA`~@^%P_Obw9N= z^ST33@E6!_SG$NI&$nB5eMpEKbI=uZiYqsFXStsBf)v33qKNq z3U4X5y#+T*CQyNn-w-N<8ezS#U1;D&OHiGp`mK{ zZ$`03p!8{$sk9UAdBRoZ*(rz=aH<62LX-!T!$kMn4-{oIT-W_51WP|lcOyTyWa)oT z0g-_~CP3-%U9>uAMtf;AWu;vx7X}Gw-ubRw@DhB1pbwP65*D|G&L<5CF6O8o**9Z8H;ii$2t!04hsnn}{{r QPD&JyMvkjpX=Mrc2c()NB>(^b From 793463e846c3b90f22fc6054cc9c7740d68811ef Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Wed, 10 May 2023 03:14:50 +0700 Subject: [PATCH 15/17] Add addon icon --- ls_UI/assets/logo-128.TGA | Bin 0 -> 11847 bytes ls_UI/assets/logo-64.TGA | Bin 0 -> 6353 bytes ls_UI/ls_UI.toc | 1 + ls_UI_Options/ls_UI_Options.toc | 1 + 4 files changed, 2 insertions(+) create mode 100644 ls_UI/assets/logo-128.TGA create mode 100644 ls_UI/assets/logo-64.TGA diff --git a/ls_UI/assets/logo-128.TGA b/ls_UI/assets/logo-128.TGA new file mode 100644 index 0000000000000000000000000000000000000000..30abe24f2696093e53d883b48c3b280c4e06e697 GIT binary patch literal 11847 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 literal 0 HcmV?d00001 diff --git a/ls_UI/assets/logo-64.TGA b/ls_UI/assets/logo-64.TGA new file mode 100644 index 0000000000000000000000000000000000000000..2e747c035adb9ae76a8d4ac31a010d3cf3fb196d GIT binary patch literal 6353 zcmai&eQZ`&9mmh@!ze6lLE0GTU~9t?nTl-L+(t~4u|ZV4sAz3Sf3FEy`!;3An1IyDw3xTJWf|e3!fj)k}-_!fM_p}8`zK3(~ zbMNnS&hLEB%dKEL4SpMmZK=}ZXdKAdKG$jEehY53}4@~ zsmvYSKF6IslXENhQxS?6px;B+e}keBpQQelWyVhKTTgD$F6wgDo zZ=ukOb5JQ7^x}NIc;L@ZxZEdu++sYT7b{Syej7!>p_rL8RI~+pY2Q1OU1MF9djn6X zsSzr_gnI48ud>mpW-io=+t!S9x#OGNLj8zh<8M)j^c8EtSls%|Qaxcqrq?rjHjQ^% zS2)+wQ03a&+ueLV6ruPs^lxRFSC^n8Srj{&#yThu_48?=o?U{P+I^b0pyzc*Jyapw zh`m)4-LBu2x(}8(mpi)FojZ3fK|X-j@_bE$yAGA9Pz5x40SY$)1syaAqQ`i1mdBu0 zYmND?`kkQPV4?=lB|@J*Tsahdg|DeMTQo!wE~#3kR`STrPX?#Rk8jTLw! zufP#%%}|Lq4QhuLp-|wNtfd0K83taAWFc^ntTMcj1ja?%*p&)`;(+y}Tz(pqief}x z4?RwbjR+v84=)QL91)+E2(?qt7+S*7$NM!>5o%|kBJaP@U84b*2Nj^pP#H7;92kee z>3RsEl3wL-RjT<%;6B!ru6GB)G=(_h$8iQ0*uOk95lV1O;<5GN=*V$4I>e3Ul_o%h zO06aU;ZMqeNg@sTF>69zLZv)F(&R^0hbaxmO@{EU0^|@ED)q2^5Kb!#d-x2^EL;aF z4+J>bWJTD+5Qp$>W4$F%JFqIo{aDjJ>7C)4XmLyELkSL3Sh&?8ZWzP(o)Bk=?!r}% z%pb7^6=zYTCV-Y;_IK9exB*vC3Hyum4w=Y_fkq&r48+J#1RYWnxP;w?#z9|V@|E(J zv#1T%g!h)jO`xel4|CES8I*G7pu<3H!Zc{B^}ZihPi0YP8tt`3pwZvs6tW!*!26+F zOYho*A-*n0^h?}4wN){}Px%o>?NRlZId~k>m>0zxCMYjercpt{tLf)sZ-pa15kc}? z(v-xherDpbPW>WAn>Yz+%=YEPj6}htri_J!0ZDCXc*n^&5dz4=ni{<7gPt}If5R|m zaX;t{6W6;U#tdtpmikQzMvFluq9|!J$meWk=7ouHZwh;&0}3KfUloTR)*3Cx{}hJr z;2x~-G65|i6Kt^XFQ>!*RI@JvV+~ZTsSu~E0(XMNt)<})2}}ks$H@S;QNCcXsx+)h zup)&0G($r<0}e?ZtqVpEc0EGK1|%!>R?t>7#7&0IU@MpEV%U8F-JT zXl>k_0BMR#w1Is0w4Ks8?fv}-wfZ#lnAT3FvkMxjHHKG2H{A*C&nhjA?yh-QmxQ0J5*mL0>CyCuO9_wSKbQ_mz{E>*-$TIXhhJG+1{Ub~S;q=HedS#Y8nr zGw#g4_BthxunEv+=s{aWb{Onx8rEU3f6z#R{T~C>EGq_Vzdz11odlkOm`?ulXH2GZ zpFuCDp(g}ozv#|P01oXVPsazVn#xh`O!EP!`4=Jlr=VkIpGI7j@=6Oqy`j&g(I0BM z&^~248pg>@?8C!HV4s>w-(M|Z5#qDYIVQHi+F7U+VtA2+L(rI9nBVr)j@7+Fb6rqK!o*%x zdLIEa+dzLzgPt|eHtwtf-G@q&PY!Vas$P1JYd!fEv z4V-`p^t-<1XBvu@@QI6i6|P}GH6Qwg>+0%CP!$NC*9QbqGh>u^S;TXM?X(m&@OU!F z7KC*`fi1W%H6MJ{UA=lWf$6}a&m&r+J&R(vgXOoaZ*vSsQ}`v5xIr%ThwkQsuZ1{{ zSn~1u`XHR0+~%#K8Y>; z>1gv!HXzkgZRG^5H{?b`CiWpR52cRQiG7I7=kp$!L3}3nza&Dtxk;pe+Rh0)DIoWr zI_Tj$m}tmZF*Z?uf4}SO?DWtgFdl(+L6e395<@TEGH4&JzHd<4$nQdMAG&C}2Zvn<3l1$-;Nz>JbaC;nwQU zvHB4DJQQV7_`e+1R62L!;~!{DQO zIx6d+lWd%}_2=}PwQvF7DY|y;8W;H_0RLR+MxvMoy#&1tZHN8|wL+ITRNZV{KSY0w T=Qp#nzzZ2T;zq{GZWjLo6?N>B literal 0 HcmV?d00001 diff --git a/ls_UI/ls_UI.toc b/ls_UI/ls_UI.toc index ae51fa75..8a65758b 100644 --- a/ls_UI/ls_UI.toc +++ b/ls_UI/ls_UI.toc @@ -3,6 +3,7 @@ ## Version: 100100.02 ## Title: LS: |cff1a9fc0UI|r ## Notes: Yet another UI, but this one is a bit special... +## IconTexture: Interface\AddOns\ls_UI\assets\logo-64 ## SavedVariables: LS_UI_GLOBAL_CONFIG, LS_UI_PRIVATE_CONFIG ## OptionalDeps: AdiButtonAuras, Masque, MaxDps, MinimapButtonFrame diff --git a/ls_UI_Options/ls_UI_Options.toc b/ls_UI_Options/ls_UI_Options.toc index 8ae7e204..6d0a6553 100644 --- a/ls_UI_Options/ls_UI_Options.toc +++ b/ls_UI_Options/ls_UI_Options.toc @@ -2,6 +2,7 @@ ## Author: lightspark ## Title: LS: |cff1a9fc0UI|r |cff888987OptionsUI|r ## Notes: Options for LS: |cff1a9fc0UI|r. +## IconTexture: Interface\AddOns\ls_UI\assets\logo-64 ## RequiredDeps: ls_UI ## LoadOnDemand: true From 802fb37c236e542b17e1a8a27ccba3504209c4dc Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Wed, 10 May 2023 03:18:01 +0700 Subject: [PATCH 16/17] .toc bump --- ls_UI/ls_UI.toc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ls_UI/ls_UI.toc b/ls_UI/ls_UI.toc index 8a65758b..5f611bd2 100644 --- a/ls_UI/ls_UI.toc +++ b/ls_UI/ls_UI.toc @@ -1,6 +1,6 @@ ## Interface: 100100 ## Author: lightspark -## Version: 100100.02 +## Version: 100100.03 ## Title: LS: |cff1a9fc0UI|r ## Notes: Yet another UI, but this one is a bit special... ## IconTexture: Interface\AddOns\ls_UI\assets\logo-64 From 88af09620ecaaa8a4c69d542a9f756dbe6ee23ee Mon Sep 17 00:00:00 2001 From: Val Voronov Date: Wed, 10 May 2023 03:18:16 +0700 Subject: [PATCH 17/17] =?UTF-8?q?=F0=9F=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 11 +++++++++++ ls_UI/core/changelog.lua | 12 +++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21f3c688..b3703cdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # CHANGELOG +## Version 100100.03 + +### Action Bars + +- Removed main bar specific "Scale" option. +- Added "Scale" options to all action bars. +- Added an option to change the number of main bar buttons. +- Fixed an issue where the xp bar would sometimes disappear. + +![Imgur](https://i.imgur.com/qpQe3wa.gif) + ## Version 100100.02 ### Minimap diff --git a/ls_UI/core/changelog.lua b/ls_UI/core/changelog.lua index 70aaa675..38f1843e 100644 --- a/ls_UI/core/changelog.lua +++ b/ls_UI/core/changelog.lua @@ -6,12 +6,10 @@ local _G = getfenv(0) -- Mine E.CHANGELOG = [[ -### Minimap +### Action Bars -- Added minimap coordinates. Disabled by default. -- Adjusted minimap border textures to make zone colouring more pronounced. - -### Unit Frames - -- Readded fading options for pet, target of focus, and target of target frames. +- Removed main bar specific "Scale" option. +- Added "Scale" options to all action bars. +- Added an option to change the number of main bar buttons. +- Fixed an issue where the xp bar would sometimes disappear. ]]