ascension: 4.4.2 → vendored 4.4.2-2-g3b02ee4 (in-game AddOns dir)

Imported from /srv/add01/wow-ascension/Interface/AddOns/Bartender4 — the
build Ascension's WotLK 3.3.5 client ships.

Single vendored drop: Ascension's build process bundles their custom
patches with the standard CurseForge packager output (embedded libs),
and the individual patches aren't published separately.

Net delta vs Nevcairiel 4.4.2, excluding bundled libs and CRLF
normalization: 21 files, 2213+/52- — the Ascension-specific
adaptations for WotLK 3.3.5 hero classes / custom action systems.

License: All rights reserved (per .toc).
This commit is contained in:
2026-05-08 03:45:58 +02:00
parent 97d989dd93
commit 57a5cdabdf
110 changed files with 23249 additions and 6220 deletions
+235 -234
View File
@@ -1,234 +1,235 @@
--[[
Copyright (c) 2009, Hendrik "Nevcairiel" Leppkes < h.leppkes at gmail dot com >
All rights reserved.
]]
local L = LibStub("AceLocale-3.0"):GetLocale("Bartender4")
local BT4ActionBars = Bartender4:NewModule("ActionBars", "AceEvent-3.0")
local ActionBar, ActionBar_MT
local abdefaults = {
['**'] = Bartender4:Merge({
enabled = true,
buttons = 12,
hidemacrotext = false,
showgrid = false,
}, Bartender4.StateBar.defaults),
[1] = {
states = {
enabled = true,
possess = true,
actionbar = true,
stance = {
DRUID = { bear = 9, cat = 7, prowl = 8 },
WARRIOR = { battle = 7, def = 8, berserker = 9 },
ROGUE = { stealth = 7, shadowdance = 7 }
},
},
visibility = {
vehicleui = false,
},
},
[7] = {
enabled = false,
},
[8] = {
enabled = false,
},
[9] = {
enabled = false,
},
[10] = {
enabled = false,
},
}
local defaults = {
profile = {
actionbars = abdefaults,
}
}
function BT4ActionBars:OnInitialize()
self.db = Bartender4.db:RegisterNamespace("ActionBars", defaults)
-- fetch the prototype information
ActionBar = Bartender4.ActionBar
ActionBar_MT = {__index = ActionBar}
end
local LBF = LibStub("LibButtonFacade", true)
-- setup the 10 actionbars
local first = true
function BT4ActionBars:OnEnable()
if first then
self.playerclass = select(2, UnitClass("player"))
self.actionbars = {}
for i=1,10 do
local config = self.db.profile.actionbars[i]
if config.enabled then
self.actionbars[i] = self:Create(i, config)
else
self:CreateBarOption(i, self.disabledoptions)
end
end
first = nil
end
self:RegisterEvent("UPDATE_BINDINGS", "ReassignBindings")
self:ReassignBindings()
end
function BT4ActionBars:SetupOptions()
if not self.options then
-- empty table to hold the bar options
self.options = {}
-- template for disabled bars
self.disabledoptions = {
general = {
type = "group",
name = L["General Settings"],
cmdInline = true,
order = 1,
args = {
enabled = {
type = "toggle",
name = L["Enabled"],
desc = L["Enable/Disable the bar."],
set = function(info, v) if v then BT4ActionBars:EnableBar(info[2]) end end,
get = function() return false end,
}
}
}
}
-- iterate over bars and create their option tables
for i=1,10 do
local config = self.db.profile.actionbars[i]
if config.enabled then
self:CreateBarOption(i)
else
self:CreateBarOption(i, self.disabledoptions)
end
end
end
end
-- Applys the config in the current profile to all active Bars
function BT4ActionBars:ApplyConfig()
for i=1,10 do
local config = self.db.profile.actionbars[i]
-- make sure the bar has its current config object if it exists already
if self.actionbars[i] then
self.actionbars[i].config = config
end
if config.enabled then
self:EnableBar(i)
else
self:DisableBar(i)
end
end
end
-- we do not allow to disable the actionbars module
function BT4ActionBars:ToggleModule()
return
end
function BT4ActionBars:UpdateButtons(force)
for i,v in ipairs(self.actionbars) do
for j,button in ipairs(v.buttons) do
button:UpdateAction(force)
end
end
end
function BT4ActionBars:ReassignBindings()
if InCombatLockdown() then return end
if not self.actionbars or not self.actionbars[1] then return end
local frame = self.actionbars[1]
ClearOverrideBindings(frame)
for i = 1,min(#frame.buttons, 12) do
local button, real_button = ("ACTIONBUTTON%d"):format(i), ("BT4Button%d"):format(i)
for k=1, select('#', GetBindingKey(button)) do
local key = select(k, GetBindingKey(button))
SetOverrideBindingClick(frame, false, key, real_button)
end
end
for i = 1, 120 do
-- rename old bindings from <buttonname>Secure to only <buttonname>
local button, real_button = ("CLICK BT4Button%dSecure:LeftButton"):format(i), ("BT4Button%d"):format(i)
for k=1, select('#', GetBindingKey(button)) do
local key = select(k, GetBindingKey(button))
if key and key ~= "" then
SetBindingClick(key, real_button, "LeftButton")
end
end
end
SaveBindings(GetCurrentBindingSet() or 1)
end
-- Creates a new bar object based on the id and the specified config
function BT4ActionBars:Create(id, config)
local id = tostring(id)
local bar = setmetatable(Bartender4.StateBar:Create(id, config, (L["Bar %s"]):format(id)), ActionBar_MT)
bar.module = self
self:CreateBarOption(id)
bar:ApplyConfig()
return bar
end
function BT4ActionBars:DisableBar(id)
id = tonumber(id)
local bar = self.actionbars[id]
if not bar then return end
bar.config.enabled = false
bar:Disable()
self:CreateBarOption(id, self.disabledoptions)
end
function BT4ActionBars:EnableBar(id)
id = tonumber(id)
local bar = self.actionbars[id]
local config = self.db.profile.actionbars[id]
config.enabled = true
if not bar then
bar = self:Create(id, config)
self.actionbars[id] = bar
else
bar.disabled = nil
self:CreateBarOption(id)
bar:ApplyConfig(config)
end
if not Bartender4.Locked then
bar:Unlock()
end
end
function BT4ActionBars:GetAll()
return pairs(self.actionbars)
end
function BT4ActionBars:ForAll(method, ...)
for _, bar in self:GetAll() do
local func = bar[method]
if func then
func(bar, ...)
end
end
end
function BT4ActionBars:ForAllButtons(...)
self:ForAll("ForAll", ...)
end
--[[
Copyright (c) 2009, Hendrik "Nevcairiel" Leppkes < h.leppkes at gmail dot com >
All rights reserved.
]]
local L = LibStub("AceLocale-3.0"):GetLocale("Bartender4")
local BT4ActionBars = Bartender4:NewModule("ActionBars", "AceEvent-3.0")
local ActionBar, ActionBar_MT
local abdefaults = {
['**'] = Bartender4:Merge({
enabled = true,
buttons = 12,
hidemacrotext = false,
showgrid = false,
}, Bartender4.StateBar.defaults),
[1] = {
states = {
enabled = true,
possess = true,
actionbar = true,
stance = {
DRUID = { bear = 9, cat = 7, prowl = 8 },
WARRIOR = { battle = 7, def = 8, berserker = 9 },
ROGUE = { stealth = 7, shadowdance = 7 },
HERO = { bear = 9, cat = 7, prowl = 8, stealth = 7, shadowdance = 7, battle = 7, def = 8, berserker = 9 },
},
},
visibility = {
vehicleui = false,
},
},
[7] = {
enabled = false,
},
[8] = {
enabled = false,
},
[9] = {
enabled = false,
},
[10] = {
enabled = false,
},
}
local defaults = {
profile = {
actionbars = abdefaults,
}
}
function BT4ActionBars:OnInitialize()
self.db = Bartender4.db:RegisterNamespace("ActionBars", defaults)
-- fetch the prototype information
ActionBar = Bartender4.ActionBar
ActionBar_MT = {__index = ActionBar}
end
local LBF = LibStub("LibButtonFacade", true)
-- setup the 10 actionbars
local first = true
function BT4ActionBars:OnEnable()
if first then
self.playerclass = select(2, UnitClass("player"))
self.actionbars = {}
for i=1,10 do
local config = self.db.profile.actionbars[i]
if config.enabled then
self.actionbars[i] = self:Create(i, config)
else
self:CreateBarOption(i, self.disabledoptions)
end
end
first = nil
end
self:RegisterEvent("UPDATE_BINDINGS", "ReassignBindings")
self:ReassignBindings()
end
function BT4ActionBars:SetupOptions()
if not self.options then
-- empty table to hold the bar options
self.options = {}
-- template for disabled bars
self.disabledoptions = {
general = {
type = "group",
name = L["General Settings"],
cmdInline = true,
order = 1,
args = {
enabled = {
type = "toggle",
name = L["Enabled"],
desc = L["Enable/Disable the bar."],
set = function(info, v) if v then BT4ActionBars:EnableBar(info[2]) end end,
get = function() return false end,
}
}
}
}
-- iterate over bars and create their option tables
for i=1,10 do
local config = self.db.profile.actionbars[i]
if config.enabled then
self:CreateBarOption(i)
else
self:CreateBarOption(i, self.disabledoptions)
end
end
end
end
-- Applys the config in the current profile to all active Bars
function BT4ActionBars:ApplyConfig()
for i=1,10 do
local config = self.db.profile.actionbars[i]
-- make sure the bar has its current config object if it exists already
if self.actionbars[i] then
self.actionbars[i].config = config
end
if config.enabled then
self:EnableBar(i)
else
self:DisableBar(i)
end
end
end
-- we do not allow to disable the actionbars module
function BT4ActionBars:ToggleModule()
return
end
function BT4ActionBars:UpdateButtons(force)
for i,v in ipairs(self.actionbars) do
for j,button in ipairs(v.buttons) do
button:UpdateAction(force)
end
end
end
function BT4ActionBars:ReassignBindings()
if InCombatLockdown() then return end
if not self.actionbars or not self.actionbars[1] then return end
local frame = self.actionbars[1]
ClearOverrideBindings(frame)
for i = 1,min(#frame.buttons, 12) do
local button, real_button = ("ACTIONBUTTON%d"):format(i), ("BT4Button%d"):format(i)
for k=1, select('#', GetBindingKey(button)) do
local key = select(k, GetBindingKey(button))
SetOverrideBindingClick(frame, false, key, real_button)
end
end
for i = 1, 120 do
-- rename old bindings from <buttonname>Secure to only <buttonname>
local button, real_button = ("CLICK BT4Button%dSecure:LeftButton"):format(i), ("BT4Button%d"):format(i)
for k=1, select('#', GetBindingKey(button)) do
local key = select(k, GetBindingKey(button))
if key and key ~= "" then
SetBindingClick(key, real_button, "LeftButton")
end
end
end
SaveBindings(GetCurrentBindingSet() or 1)
end
-- Creates a new bar object based on the id and the specified config
function BT4ActionBars:Create(id, config)
local id = tostring(id)
local bar = setmetatable(Bartender4.StateBar:Create(id, config, (L["Bar %s"]):format(id)), ActionBar_MT)
bar.module = self
self:CreateBarOption(id)
bar:ApplyConfig()
return bar
end
function BT4ActionBars:DisableBar(id)
id = tonumber(id)
local bar = self.actionbars[id]
if not bar then return end
bar.config.enabled = false
bar:Disable()
self:CreateBarOption(id, self.disabledoptions)
end
function BT4ActionBars:EnableBar(id)
id = tonumber(id)
local bar = self.actionbars[id]
local config = self.db.profile.actionbars[id]
config.enabled = true
if not bar then
bar = self:Create(id, config)
self.actionbars[id] = bar
else
bar.disabled = nil
self:CreateBarOption(id)
bar:ApplyConfig(config)
end
if not Bartender4.Locked then
bar:Unlock()
end
end
function BT4ActionBars:GetAll()
return pairs(self.actionbars)
end
function BT4ActionBars:ForAll(method, ...)
for _, bar in self:GetAll() do
local func = bar[method]
if func then
func(bar, ...)
end
end
end
function BT4ActionBars:ForAllButtons(...)
self:ForAll("ForAll", ...)
end