local GetActionInfo, GetActionTexture = GetActionInfo, GetActionTexture;
local GetActionLossOfControlCooldown = GetActionLossOfControlCooldown;
local GetActionCooldown, GetActionCharges = GetActionCooldown, GetActionCharges;
+local GetActionText, GetBindingKey = GetActionText, GetBindingKey;
local IsConsumableAction, IsStackableAction = IsConsumableAction, IsStackableAction;
local IsItemAction, GetActionCount = IsItemAction, GetActionCount;
local IsSpellOverlayed, GetMacroSpell = IsSpellOverlayed, GetMacroSpell;
local CreateFrame = CreateFrame;
local RegisterStateDriver = RegisterStateDriver;
local CooldownFrame_Set, CooldownFrame_Clear = CooldownFrame_Set, CooldownFrame_Clear;
-local CTimerAfter = C_Timer.After;
local GameTooltip = GameTooltip;
local GameTooltip_SetDefaultAnchor = GameTooltip_SetDefaultAnchor;
local COOLDOWN_TYPE_LOSS_OF_CONTROL = COOLDOWN_TYPE_LOSS_OF_CONTROL;
bar = 5,
start = 49,
length = 12,
- columns = 3,
x = 1000,
y = 840,
},
};
local chars = {
+ ["Sylvanas"] = {
+ ["Vildana"] = {1, 2, 3, 4,},
+ },
["Stormreaver"] = {
["Vildan"] = {1, 2, 3, 4,},
["Gedren"] = {1, 2, 3, 4,},
["Gazden"] = {1, 2, 3, 4,},
+ ["Gedran"] = {1, 2, 3, 4,},
+ ["Iled"] = {1, 2, 3, 4,},
+ ["Gilden"] = {1, 2, 3, 4,},
+ ["Gran"] = {1, 2, 3, 4,},
+ ["Gedrin"] = {1, 2, 3, 4,},
},
};
end
local function updateGlow(button, slot)
- local stype, id, _ = GetActionInfo(slot);
+ local stype, id = GetActionInfo(slot);
if stype == "spell" and IsSpellOverlayed(id) then
button.glow:Show();
elseif stype == "macro" then
- local _, _, macroid = GetMacroSpell(id);
+ local macroid = GetMacroSpell(id);
if macroid and IsSpellOverlayed(macroid) then
button.glow:Show();
else
end
local function startGlow(button, slot, spell)
- local stype, id, _ = GetActionInfo(slot);
+ local stype, id = GetActionInfo(slot);
if stype == "spell" and id == spell then
button.glow:Show();
elseif stype == "macro" then
- local _, _, macroid = GetMacroSpell(id);
+ local macroid = GetMacroSpell(id);
if macroid and macroid == spell then
button.glow:Show();
end
end
local function stopGlow(button, slot, spell)
- local stype, id, _ = GetActionInfo(slot);
+ local stype, id = GetActionInfo(slot);
if stype == "spell" and id == spell then
button.glow:Hide();
elseif stype == "macro" then
- local _, _, macroid = GetMacroSpell(id);
+ local macroid = GetMacroSpell(id);
if macroid and macroid == spell then
button.glow:Hide();
end
updateState(button, slot);
updateCount(button, slot);
updateGlow(button, slot);
- if not IsConsumableAction(slot) and not IsStackableAction(slot) then
+ if not button.notext and not IsConsumableAction(slot) and not IsStackableAction(slot) then
button.text:SetText(ssub(GetActionText(slot) or "", 1, 4));
button.text:Show();
end
secure.text = secure:CreateFontString(nil, "OVERLAY", "NumberFontNormal");
secure.text:SetPoint("BOTTOMLEFT", secure, "BOTTOMLEFT", 2, -1);
secure.text:Hide();
+ secure.notext = config.notext;
secure.cd = CreateFrame("Cooldown", "OmaBTCD"..slot, secure, "CooldownFrameTemplate");
secure.cd:SetAllPoints();
secure:SetAttribute("type", "action");
secure:SetAttribute("flyoutDirection", config.flyout);
end
function secure:ActionChanged(oldslot)
- if oldslot then activeButtons[oldslot] = nil end
+ if oldslot then
+ activeButtons[oldslot] = nil;
+ self.prev = nil; -- invalidate previous CD when slot changes
+ end
self.slot = self:GetAttribute("action");
return updateButton(self, self.slot);
end
local function initialize()
local _, class = UnitClass("player");
local name, realm = UnitFullName("player");
+ if class == "MAGE" then
+ settings.Oma1.x = 750;
+ settings.Oma1.y = 386;
+ settings.Oma1.columns = 12;
+ settings.Oma1.size = 34;
+ settings.Oma1.notext = true;
+ settings.Oma2.x = 580;
+ settings.Oma2.y = 300;
+ end
ActionBars:SetFrameStrata("LOW");
ActionBars:SetPoint("BOTTOMLEFT");
ActionBars:SetWidth(1);
end
local function setupBindings()
- BINDING_HEADER_OmaAB = "Oma Action Bar";
+ _G["BINDING_HEADER_OmaAB"] = "Oma Action Bar";
for i = 1,10 do
_G["BINDING_HEADER_OMAABBLANK"..i] = "Bar "..i;
for j = 1,12 do
end
end,
["PLAYER_LOGIN"] = function()
- GameTooltip = _G["GameTooltip"];
initialize();
end,
["ADDON_LOADED"] = function(addon)
end,
};
events["LOSS_OF_CONTROL_ADDED"] = events["ACTIONBAR_UPDATE_COOLDOWN"];
-events["LOSS_OF_CONTROL_UPDATE"] = events["ACTIONBAR_UPDATE_COOLDOWN"]; -- TODO might change once tooltips are in
+events["LOSS_OF_CONTROL_UPDATE"] = events["ACTIONBAR_UPDATE_COOLDOWN"];
events["PLAYER_MOUNT_DISPLAY_CHANGED"] = events["ACTIONBAR_UPDATE_USABLE"];
events["TRADE_SKILL_SHOW"] = events["ACTIONBAR_UPDATE_STATE"];
events["TRADE_SKILL_CLOSE"] = events["ACTIONBAR_UPDATE_STATE"];