From d869d0bdf37653bb57c35e07cbc9a71d59dedef1 Mon Sep 17 00:00:00 2001 From: Steven Jackson Date: Tue, 2 Sep 2014 20:52:28 -0500 Subject: [PATCH] grid mode added --- Interface/AddOns/SVUI/assets/fonts/Pixel.ttf | Bin 138148 -> 138460 bytes Interface/AddOns/SVUI/libs/oUF/elements/health.lua | 2 +- Interface/AddOns/SVUI/packages/unit/SVUnit.lua | 99 ++++++++++++++------ Interface/AddOns/SVUI/packages/unit/config.lua | 15 +-- .../SVUI/packages/unit/elements/essentials.lua | 1 + .../AddOns/SVUI/packages/unit/elements/tags.lua | 31 +++++- Interface/AddOns/SVUI/system/database.lua | 2 + Interface/AddOns/SVUI/system/installer.lua | 13 +++ Interface/AddOns/SVUI/system/presets.lua | 42 +++++++++ .../SVUI_ConfigOMatic/modules/units/core.lua | 21 ++++- .../SVUI_ConfigOMatic/modules/units/party.lua | 32 ++++++- .../SVUI_ConfigOMatic/modules/units/raid.lua | 16 ++++ 12 files changed, 229 insertions(+), 45 deletions(-) diff --git a/Interface/AddOns/SVUI/assets/fonts/Pixel.ttf b/Interface/AddOns/SVUI/assets/fonts/Pixel.ttf index a19139b4c8cfe6e70f04898f368571691fa30fd0..cdb4c21cefcf24903d3efc3a1f2b4ea68ced7498 100644 GIT binary patch literal 138460 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®19>-dzav=usW6@9PP> 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 diff --git a/Interface/AddOns/SVUI/libs/oUF/elements/health.lua b/Interface/AddOns/SVUI/libs/oUF/elements/health.lua index ecec3b5..d2863b4 100644 --- a/Interface/AddOns/SVUI/libs/oUF/elements/health.lua +++ b/Interface/AddOns/SVUI/libs/oUF/elements/health.lua @@ -94,7 +94,7 @@ local Update = function(self, event, unit) min = random(1,max) health:SetValue(min) end - if(db and db.gridMode) then + if(health.gridMode) then health:SetOrientation("VERTICAL") end diff --git a/Interface/AddOns/SVUI/packages/unit/SVUnit.lua b/Interface/AddOns/SVUI/packages/unit/SVUnit.lua index 28d7df3..626e670 100644 --- a/Interface/AddOns/SVUI/packages/unit/SVUnit.lua +++ b/Interface/AddOns/SVUI/packages/unit/SVUnit.lua @@ -325,7 +325,6 @@ function MOD:RefreshUnitColors() oUF_SuperVillain.SVConfigs.classbackdrop = SuperVillain.db.SVUnit.classbackdrop oUF_SuperVillain.SVConfigs.healthclass = SuperVillain.db.SVUnit.healthclass oUF_SuperVillain.SVConfigs.colorhealthbyvalue = SuperVillain.db.SVUnit.colorhealthbyvalue - oUF_SuperVillain.SVConfigs.gridMode = SuperVillain.db.SVUnit.grid.enable end function MOD:RefreshAllUnitMedia() @@ -393,7 +392,7 @@ function MOD:RefreshUnitMedia(unitName) if(panel) then if(panel.Name and unitDB.name) then if(db.grid.enable and unitDB.gridAllowed) then - panel.Name:SetFont([[Interface\AddOns\SVUI\assets\fonts\Roboto.ttf]], unitDB.name.fontSize, unitDB.name.fontOutline) + panel.Name:SetFont(SuperVillain.Media.font.pixel, 8, "MONOCHROMEOUTLINE") panel.Name:SetShadowOffset(1, -1) panel.Name:SetShadowColor(0, 0, 0, 0.75) else @@ -483,6 +482,7 @@ function MOD:RefreshUnitLayout(frame, template) local POWER_HEIGHT = (db.power and db.power.enable) and (db.power.height - 1) or 1; local PORTRAIT_WIDTH = (1 * TOP_MODIFIER) local GRID_MODE = (self.db.grid.enable and db.gridAllowed) or false + local MINI_GRID = (GRID_MODE and self.db.grid.size < 26) or false local healthPanel = frame.HealthPanel local infoPanel = frame.InfoPanel @@ -553,12 +553,22 @@ function MOD:RefreshUnitLayout(frame, template) if(infoPanel.Name and db.name) then local nametext = infoPanel.Name - point = db.name.position - cX = db.name.xOffset - cY = db.name.yOffset - nametext:ClearAllPoints() - SuperVillain:ReversePoint(nametext, point, infoPanel, cX, cY) - frame:Tag(nametext, db.name.tags) + if(GRID_MODE) then + if(self.db.grid.shownames and self.db.grid.size >= 30) then + if(not nametext:IsShown()) then nametext:Show() end + nametext:Point("CENTER", frame, "CENTER", 1, 0) + frame:Tag(nametext, "[name:grid]") + else + nametext:Hide() + end + else + point = db.name.position + cX = db.name.xOffset + cY = db.name.yOffset + nametext:ClearAllPoints() + SuperVillain:ReversePoint(nametext, point, infoPanel, cX, cY) + frame:Tag(nametext, db.name.tags) + end end if(frame.Health and infoPanel.Health and db.health) then @@ -618,22 +628,20 @@ function MOD:RefreshUnitLayout(frame, template) end health.Smooth = self.db.smoothbars; - health.colorSmooth = nil; health.colorHealth = nil; health.colorClass = nil; health.colorReaction = nil; health.colorOverlay = nil; health.overlayAnimation = overlayAnimation - if(db.health and (db.health.frequentUpdates ~= nil)) then - end - if(frame.HealPrediction) then + + if(not GRID_MODE and frame.HealPrediction) then frame.HealPrediction["frequentUpdates"] = health.frequentUpdates end - if(portraitOverlay and self.db.forceHealthColor) then + if(not GRID_MODE and portraitOverlay and self.db.forceHealthColor) then health.colorOverlay = true; else - if(db.colorOverride and db.colorOverride == "FORCE_ON") then + if(GRID_MODE or (db.colorOverride and db.colorOverride == "FORCE_ON")) then health.colorClass = true; health.colorReaction = true elseif(db.colorOverride and db.colorOverride == "FORCE_OFF") then @@ -657,8 +665,11 @@ function MOD:RefreshUnitLayout(frame, template) end health:ClearAllPoints() health:SetAllPoints(healthPanel) - if db.health and db.health.orientation then - health:SetOrientation(db.health.orientation) + + health.gridMode = GRID_MODE; + + if(db.health and db.health.orientation) then + health:SetOrientation(GRID_MODE and "VERTICAL" or db.health.orientation) end self:RefreshHealthBar(frame, portraitOverlay) @@ -735,9 +746,9 @@ function MOD:RefreshUnitLayout(frame, template) if db.portrait and frame.Portrait then local portrait = frame.Portrait; - portrait:Show() + if(not GRID_MODE and db.portrait.enable) then + portrait:Show() - if db.portrait.enable then if not frame:IsElementEnabled('Portrait')then frame:EnableElement('Portrait') end @@ -774,10 +785,11 @@ function MOD:RefreshUnitLayout(frame, template) end end else - if frame:IsElementEnabled('Portrait')then + portrait:Hide() + portrait.Panel:Hide() + + if frame:IsElementEnabled('Portrait') then frame:DisableElement('Portrait') - portrait:Hide() - portrait.Panel:Hide() end end end @@ -885,7 +897,7 @@ function MOD:RefreshUnitLayout(frame, template) local buffCount = perRow * numRows; buffs.forceShow = frame.forceShowAuras; - buffs.num = buffCount; + buffs.num = GRID_MODE and 0 or buffCount; local tempSize = (((UNIT_WIDTH + 2) - (buffs.spacing * (perRow - 1))) / perRow); local auraSize = min(BEST_SIZE, tempSize) @@ -917,7 +929,7 @@ function MOD:RefreshUnitLayout(frame, template) local debuffCount = perRow * numRows; debuffs.forceShow = frame.forceShowAuras; - debuffs.num = debuffCount; + debuffs.num = GRID_MODE and 0 or debuffCount; local tempSize = (((UNIT_WIDTH + 2) - (debuffs.spacing * (perRow - 1))) / perRow); local auraSize = min(BEST_SIZE,tempSize) @@ -1010,8 +1022,16 @@ function MOD:RefreshUnitLayout(frame, template) frame:EnableElement('RaidIcon') local size = ico.raidicon.size; raidIcon:ClearAllPoints() - raidIcon:Size(size) - SuperVillain:ReversePoint(raidIcon, ico.raidicon.attachTo, healthPanel, ico.raidicon.xOffset, ico.raidicon.yOffset) + + if(GRID_MODE) then + raidIcon:SetAlpha(0.7) + raidIcon:Size(10) + raidIcon:Point("TOP", healthPanel, "TOP", 0, 0) + else + raidIcon:SetAlpha(1) + raidIcon:Size(size) + SuperVillain:ReversePoint(raidIcon, ico.raidicon.attachTo, healthPanel, ico.raidicon.xOffset, ico.raidicon.yOffset) + end else frame:DisableElement('RaidIcon') raidIcon:Hide() @@ -1022,13 +1042,21 @@ function MOD:RefreshUnitLayout(frame, template) if(ico.roleIcon and frame.LFDRole) then local lfd = frame.LFDRole; - if ico.roleIcon.enable then + if(not MINI_GRID and ico.roleIcon.enable) then lfd:Show() frame:EnableElement('LFDRole') local size = ico.roleIcon.size; lfd:ClearAllPoints() - lfd:Size(size) - SuperVillain:ReversePoint(lfd, ico.roleIcon.attachTo, healthPanel, ico.roleIcon.xOffset, ico.roleIcon.yOffset) + + if(GRID_MODE) then + lfd:SetAlpha(0.7) + lfd:Size(10) + lfd:Point("BOTTOM", healthPanel, "BOTTOM", 0, 0) + else + lfd:SetAlpha(1) + lfd:Size(size) + SuperVillain:ReversePoint(lfd, ico.roleIcon.attachTo, healthPanel, ico.roleIcon.xOffset, ico.roleIcon.yOffset) + end else frame:DisableElement('LFDRole') lfd:Hide() @@ -1039,14 +1067,22 @@ function MOD:RefreshUnitLayout(frame, template) if(ico.raidRoleIcons and frame.RaidRoleFramesAnchor) then local roles = frame.RaidRoleFramesAnchor; - if ico.raidRoleIcons.enable then + if(not MINI_GRID and ico.raidRoleIcons.enable) then roles:Show() frame:EnableElement('Leader') frame:EnableElement('MasterLooter') local size = ico.raidRoleIcons.size; roles:ClearAllPoints() - roles:Size(size) - SuperVillain:ReversePoint(roles, ico.raidRoleIcons.attachTo, healthPanel, ico.raidRoleIcons.xOffset, ico.raidRoleIcons.yOffset) + + if(GRID_MODE) then + roles:SetAlpha(0.7) + roles:Size(10) + roles:Point("CENTER", healthPanel, "TOPLEFT", 0, 2) + else + roles:SetAlpha(1) + roles:Size(size) + SuperVillain:ReversePoint(roles, ico.raidRoleIcons.attachTo, healthPanel, ico.raidRoleIcons.xOffset, ico.raidRoleIcons.yOffset) + end else roles:Hide() frame:DisableElement('Leader') @@ -1171,6 +1207,7 @@ local function SetProxyEnv() for i=1, 30 do tags['name:'..i] = oUF_SuperVillain.Tags.Methods['name:'..i] end + tags['name:grid'] = oUF_SuperVillain.Tags.Methods['name:grid'] tags['health:color'] = oUF_SuperVillain.Tags.Methods['health:color'] tags['health:current'] = oUF_SuperVillain.Tags.Methods['health:current'] tags['health:deficit'] = oUF_SuperVillain.Tags.Methods['health:deficit'] diff --git a/Interface/AddOns/SVUI/packages/unit/config.lua b/Interface/AddOns/SVUI/packages/unit/config.lua index 81e4119..897661f 100644 --- a/Interface/AddOns/SVUI/packages/unit/config.lua +++ b/Interface/AddOns/SVUI/packages/unit/config.lua @@ -72,7 +72,10 @@ CONFIGS["SVUnit"] = { ["gpsLowHealth"] = false, ["grid"] = { ["enable"] = false, - ["size"] = 28, + ["size"] = 28, + ["shownames"] = false, + ["font"] = "Roboto", + ["fontsize"] = 16, }, ["player"] = { ["enable"] = true, @@ -240,8 +243,8 @@ CONFIGS["SVUnit"] = { ["raidicon"] = { ["enable"] = true, - ["size"] = 30, - ["attachTo"] = "INNERRIGHT", + ["size"] = 25, + ["attachTo"] = "INNERBOTTOMRIGHT", ["xOffset"] = 0, ["yOffset"] = 0, }, @@ -254,7 +257,7 @@ CONFIGS["SVUnit"] = { }, ["restIcon"] = { ["enable"] = true, - ["size"] = 26, + ["size"] = 25, ["attachTo"] = "INNERTOPRIGHT", ["xOffset"] = 0, ["yOffset"] = 0, @@ -1650,7 +1653,7 @@ CONFIGS["SVUnit"] = { { ["enable"] = false, ["perrow"] = 2, - ["numrows"] = 2, + ["numrows"] = 1, ["attachTo"] = "FRAME", ["anchorPoint"] = "RIGHTTOP", ["verticalGrowth"] = "DOWN", @@ -1670,7 +1673,7 @@ CONFIGS["SVUnit"] = { { ["enable"] = true, ["perrow"] = 2, - ["numrows"] = 2, + ["numrows"] = 1, ["attachTo"] = "FRAME", ["anchorPoint"] = "RIGHTTOP", ["verticalGrowth"] = "DOWN", diff --git a/Interface/AddOns/SVUI/packages/unit/elements/essentials.lua b/Interface/AddOns/SVUI/packages/unit/elements/essentials.lua index ec0923d..426dbbc 100644 --- a/Interface/AddOns/SVUI/packages/unit/elements/essentials.lua +++ b/Interface/AddOns/SVUI/packages/unit/elements/essentials.lua @@ -496,6 +496,7 @@ function MOD:CreateHealthBar(frame, hasbg, reverse) healthBar.animation = flasher healthBar.noupdate = false; healthBar.fillInverted = reverse; + healthBar.gridMode = false; healthBar.colorTapping = true; healthBar.colorDisconnected = true; healthBar.Override = false; diff --git a/Interface/AddOns/SVUI/packages/unit/elements/tags.lua b/Interface/AddOns/SVUI/packages/unit/elements/tags.lua index af59fa3..c957aad 100644 --- a/Interface/AddOns/SVUI/packages/unit/elements/tags.lua +++ b/Interface/AddOns/SVUI/packages/unit/elements/tags.lua @@ -21,7 +21,7 @@ local pairs = _G.pairs; local table = _G.table; local string = _G.string; --[[ STRING METHODS ]]-- -local find, format, byte = string.find, string.format, string.byte; +local find, format, byte, upper = string.find, string.format, string.byte, string.upper; local sub, gsub, len = string.sub, string.gsub, string.len; --[[ TABLE METHODS ]]-- local twipe = table.wipe; @@ -55,6 +55,13 @@ local SKULL_ICON = "|TInterface\\TARGETINGFRAME\\UI-TargetingFrame-Skull.blp:16: LOCAL FUNCTIONS ########################################################## ]]-- +local function Hex(r, g, b) + if type(r) == "table" then + if r.r then r, g, b = r.r, r.g, r.b else r, g, b = unpack(r) end + end + return format("|cff%02x%02x%02x", r*255, g*255, b*255) +end + local function TruncateString(value) if value >= 1e9 then return ("%.1fb"):format(value / 1e9):gsub("%.?0 + ([kmb])$", "%1") @@ -201,6 +208,7 @@ for i = 1, 30 do oUF_SuperVillain.Tags.Events["name:"..i] = "UNIT_NAME_UPDATE"; end oUF_SuperVillain.Tags.Events["name:level"] = "UNIT_LEVEL PLAYER_LEVEL_UP PLAYER_FLAGS_CHANGED"; +oUF_SuperVillain.Tags.Events["name:grid"] = "UNIT_NAME_UPDATE"; oUF_SuperVillain.Tags.Events["health:color"] = "UNIT_HEALTH_FREQUENT UNIT_MAXHEALTH UNIT_CONNECTION PLAYER_FLAGS_CHANGED"; oUF_SuperVillain.Tags.Events["health:deficit"] = "UNIT_HEALTH_FREQUENT UNIT_MAXHEALTH UNIT_CONNECTION PLAYER_FLAGS_CHANGED"; @@ -286,6 +294,27 @@ oUF_SuperVillain.Tags.Methods["name:level"] = function(unit) hexString = Hex(r, g, b) return ("%s%s|r"):format(hexString, levelString) end + +oUF_SuperVillain.Tags.Methods["name:grid"] = function(unit) + local name = UnitName(unit) + if not name then return "" end + local unitReaction = UnitReaction(unit, "player") + local _, classToken = UnitClass(unit) + local result = "|cffC2C2C2" + if UnitIsPlayer(unit) then + local class = RAID_CLASS_COLORS[classToken] + if class then + result = Hex(class.r, class.g, class.b) + end + elseif unitReaction then + local reaction = oUF_SuperVillain["colors"].reaction[unitReaction] + result = Hex(reaction[1], reaction[2], reaction[3]) + end + name = TrimTagText(name, 4) + name = upper(name) + result = ("%s%s|r"):format(result, name) + return result +end --[[ ########################################################## HEALTH TAG METHODS diff --git a/Interface/AddOns/SVUI/system/database.lua b/Interface/AddOns/SVUI/system/database.lua index a5c802a..6fc573e 100644 --- a/Interface/AddOns/SVUI/system/database.lua +++ b/Interface/AddOns/SVUI/system/database.lua @@ -84,6 +84,7 @@ SuperVillain.Shared:Register("font","SVUI Combat Font",[[Interface\AddOns\SVUI\a SuperVillain.Shared:Register("font","SVUI Action Font",[[Interface\AddOns\SVUI\assets\fonts\Action.ttf]]) SuperVillain.Shared:Register("font","SVUI Name Font",[[Interface\AddOns\SVUI\assets\fonts\Names.ttf]]) SuperVillain.Shared:Register("font","SVUI Alert Font",[[Interface\AddOns\SVUI\assets\fonts\Alert.ttf]]) +SuperVillain.Shared:Register("font","SVUI Pixel Font",[[Interface\AddOns\SVUI\assets\fonts\Pixel.ttf]],SuperVillain.Shared.LOCALE_BIT_ruRU+SuperVillain.Shared.LOCALE_BIT_western) SuperVillain.Shared:Register("font","Roboto",[[Interface\AddOns\SVUI\assets\fonts\Roboto.ttf]],SuperVillain.Shared.LOCALE_BIT_ruRU+SuperVillain.Shared.LOCALE_BIT_western) --[[ ########################################################## @@ -125,6 +126,7 @@ do ["names"] = Shared:Fetch("font", "SVUI Name Font"), ["alert"] = Shared:Fetch("font", "SVUI Alert Font"), ["numbers"] = Shared:Fetch("font", "SVUI Number Font"), + ["pixel"] = Shared:Fetch("font", "SVUI Pixel Font"), ["roboto"] = Shared:Fetch("font", "Roboto") } diff --git a/Interface/AddOns/SVUI/system/installer.lua b/Interface/AddOns/SVUI/system/installer.lua index 772dceb..05144ce 100644 --- a/Interface/AddOns/SVUI/system/installer.lua +++ b/Interface/AddOns/SVUI/system/installer.lua @@ -748,6 +748,7 @@ local function SetPage(newPage) setupFrame.Desc1:SetText(L["You can now choose what group layout you prefer."]) setupFrame.Desc2:SetText(L["This will adjust various settings on group units, attempting to make certain roles more usable"]) setupFrame.Desc3:SetText(L["CHOOSE_OR_DIE"]) + SVUI_InstallOption1Button:Show() SVUI_InstallOption1Button:SetScript("OnClick", function() SuperVillain.db.LAYOUT.groupstyle = "default"; @@ -757,6 +758,7 @@ local function SetPage(newPage) SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["frames schmames, lets kill some stuff!"]) end) SVUI_InstallOption1Button:SetText(L["Standard"]) + SVUI_InstallOption2Button:Show() SVUI_InstallOption2Button:SetScript("OnClick", function() SuperVillain.db.LAYOUT.groupstyle = nil; @@ -766,6 +768,7 @@ local function SetPage(newPage) SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["Hey, even a super villain gets his ass kicked once in awhile. We need the likes of you!"]) end) SVUI_InstallOption2Button:SetText(L["Healer"]) + SVUI_InstallOption3Button:Show() SVUI_InstallOption3Button:SetScript("OnClick", function() SuperVillain.db.LAYOUT.groupstyle = nil; @@ -775,6 +778,16 @@ local function SetPage(newPage) SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["I will move and squeeze group frames out of your way so you have more room for BOOM!"]) end) SVUI_InstallOption3Button:SetText(L["DPS"]) + + SVUI_InstallOption4Button:Show() + SVUI_InstallOption4Button:SetScript("OnClick", function() + SuperVillain.db.LAYOUT.groupstyle = nil; + SuperVillain:SetGroupframeLayout("grid") + SVUI_SetupHolder.Desc1:SetText(L["|cff00FFFFCubed|r"]) + SVUI_SetupHolder.Desc2:SetText(L["You are cold and calculated, your frames should reflect as much."]..CONTINUED) + SVUI_SetupHolder.Desc3:SetText(CONTINUED..L["I'm gonna make these frames so precise that you can cut your finger on them!"]) + end) + SVUI_InstallOption4Button:SetText(L["Grid"]) elseif newPage == 7 then setupFrame.SubTitle:SetText(ACTIONBAR_LABEL.." "..SETTINGS) diff --git a/Interface/AddOns/SVUI/system/presets.lua b/Interface/AddOns/SVUI/system/presets.lua index 2640ac3..99ed974 100644 --- a/Interface/AddOns/SVUI/system/presets.lua +++ b/Interface/AddOns/SVUI/system/presets.lua @@ -776,6 +776,9 @@ local presets = { ["layouts"] = { ["link"] = "SVUnit", ["default"] = { + ["grid"] = { + ["enable"] = false, + }, ["party"] = { width = 75, height = 60, @@ -875,6 +878,9 @@ local presets = { }, }, ["healer"] = { + ["grid"] = { + ["enable"] = false, + }, ["party"] = { width = 75, height = 60, @@ -974,6 +980,9 @@ local presets = { }, }, ["dps"] = { + ["grid"] = { + ["enable"] = false, + }, ["party"] = { width = 115, height = 25, @@ -1076,6 +1085,39 @@ local presets = { ["height"] = 20, }, }, + ["grid"] = { + ["grid"] = { + ["enable"] = true, + ["size"] = 34, + ["shownames"] = true, + }, + ["party"] = { + ["gridAllowed"] = true, + ["wrapXOffset"] = 1, + ["wrapYOffset"] = 1, + }, + ["raid10"] = { + ["gridAllowed"] = true, + ["wrapXOffset"] = 1, + ["wrapYOffset"] = 1, + ["gRowCol"] = 1, + ["showBy"] = "RIGHT_DOWN", + }, + ["raid25"] = { + ["gridAllowed"] = true, + ["wrapXOffset"] = 1, + ["wrapYOffset"] = 1, + ["gRowCol"] = 1, + ["showBy"] = "RIGHT_DOWN", + }, + ["raid40"] = { + ["gridAllowed"] = true, + ["wrapXOffset"] = 1, + ["wrapYOffset"] = 1, + ["gRowCol"] = 1, + ["showBy"] = "RIGHT_DOWN", + }, + }, } }; diff --git a/Interface/AddOns/SVUI_ConfigOMatic/modules/units/core.lua b/Interface/AddOns/SVUI_ConfigOMatic/modules/units/core.lua index d4268f8..008d80d 100644 --- a/Interface/AddOns/SVUI_ConfigOMatic/modules/units/core.lua +++ b/Interface/AddOns/SVUI_ConfigOMatic/modules/units/core.lua @@ -1563,9 +1563,23 @@ SuperVillain.Options.args.SVUnit = { MOD:ChangeDBVar(value, "enable", "grid"); MOD:RefreshUnitFrames(); end - }, - size = { + }, + shownames = { order = 2, + name = L["Show Grid Names"], + desc = L["Grid frames will show name texts."], + type = "toggle", + get = function(key) + return SuperVillain.db.SVUnit.grid.shownames + end, + set = function(key, value) + if(SuperVillain.db.SVUnit.grid.size < 30) then MOD:ChangeDBVar(30, "size", "grid"); end + MOD:ChangeDBVar(value, "shownames", "grid"); + MOD:RefreshUnitFrames(); + end + }, + size = { + order = 3, name = L["Grid Size"], desc = L["The universal size of grid squares."], type = "range", @@ -1573,6 +1587,9 @@ SuperVillain.Options.args.SVUnit = { max = 70, step = 1, width = "full", + get = function(key) + return SuperVillain.db.SVUnit.grid.size + end, set = function(key, value) MOD:ChangeDBVar(value, "size", "grid"); MOD:RefreshUnitFrames(); diff --git a/Interface/AddOns/SVUI_ConfigOMatic/modules/units/party.lua b/Interface/AddOns/SVUI_ConfigOMatic/modules/units/party.lua index f5725b6..d57be1e 100644 --- a/Interface/AddOns/SVUI_ConfigOMatic/modules/units/party.lua +++ b/Interface/AddOns/SVUI_ConfigOMatic/modules/units/party.lua @@ -73,6 +73,14 @@ SuperVillain.Options.args.SVUnit.args.party = { type = 'group', name = L['General'], args = { + gridAllowed = { + type = 'toggle', + order = 1, + name = L['Grid Mode Allowed'], + desc = L['If grid-mode is enabled, these units will be changed.'], + get = function(l)return SuperVillain.db.SVUnit['party'].gridAllowed end, + set = function(l, m) SuperVillain.db.SVUnit['party'].gridAllowed = m; MOD:SetGroupFrame('party') end, + }, hideonnpc = { type = 'toggle', order = 2, @@ -348,8 +356,16 @@ SuperVillain.Options.args.SVUnit.args.party = { name = L['Enable'], order = 1, }, - width = { + gridAllowed = { + type = 'toggle', order = 2, + name = L['Grid Mode Allowed'], + desc = L['If grid-mode is enabled, these units will be changed.'], + get = function(l)return SuperVillain.db.SVUnit['party']['petsGroup'].gridAllowed end, + set = function(l, m) SuperVillain.db.SVUnit['party']['petsGroup'].gridAllowed = m; MOD:SetGroupFrame('party') end, + }, + width = { + order = 3, name = L['Width'], type = 'range', min = 10, @@ -357,7 +373,7 @@ SuperVillain.Options.args.SVUnit.args.party = { step = 1, }, height = { - order = 3, + order = 4, name = L['Height'], type = 'range', min = 10, @@ -419,8 +435,16 @@ SuperVillain.Options.args.SVUnit.args.party = { name = L['Enable'], order = 1, }, - width = { + gridAllowed = { + type = 'toggle', order = 2, + name = L['Grid Mode Allowed'], + desc = L['If grid-mode is enabled, these units will be changed.'], + get = function(l)return SuperVillain.db.SVUnit['party']['targetsGroup'].gridAllowed end, + set = function(l, m) SuperVillain.db.SVUnit['party']['targetsGroup'].gridAllowed = m; MOD:SetGroupFrame('party') end, + }, + width = { + order = 3, name = L['Width'], type = 'range', min = 10, @@ -428,7 +452,7 @@ SuperVillain.Options.args.SVUnit.args.party = { step = 1, }, height = { - order = 3, + order = 4, name = L['Height'], type = 'range', min = 10, diff --git a/Interface/AddOns/SVUI_ConfigOMatic/modules/units/raid.lua b/Interface/AddOns/SVUI_ConfigOMatic/modules/units/raid.lua index 97aa496..0909417 100644 --- a/Interface/AddOns/SVUI_ConfigOMatic/modules/units/raid.lua +++ b/Interface/AddOns/SVUI_ConfigOMatic/modules/units/raid.lua @@ -74,6 +74,14 @@ for w=10,40,15 do type = "group", name = L["General Settings"], args = { + gridAllowed = { + type = 'toggle', + order = 1, + name = L['Grid Mode Allowed'], + desc = L['If grid-mode is enabled, these units will be changed.'], + get = function(l)return SuperVillain.db.SVUnit["raid" .. w].gridAllowed end, + set = function(l, m) SuperVillain.db.SVUnit["raid" .. w].gridAllowed = m; MOD:SetGroupFrame("raid" .. w) end, + }, hideonnpc = { type = "toggle", @@ -459,6 +467,14 @@ SuperVillain.Options.args.SVUnit.args.raidpet ={ type='group', name=L['General Settings'], args={ + gridAllowed = { + type = 'toggle', + order = 1, + name = L['Grid Mode Allowed'], + desc = L['If grid-mode is enabled, these units will be changed.'], + get = function(l)return SuperVillain.db.SVUnit["raidpet"].gridAllowed end, + set = function(l, m) SuperVillain.db.SVUnit["raidpet"].gridAllowed = m; MOD:SetGroupFrame("raidpet") end, + }, rangeCheck ={ order = 3, name = L["Range Check"], -- 1.7.9.5