Check this screenshot:
It shows the OverrideActionBar and the MainMenuBar both visible at the same time.
There seems to be no more BonusActionBar that swaps in the vehicle buttons on the MainMenuBar in the background.
I think Blizzard removed the bonusactionbar completly. Even actionbar switches based on form/stance seem to be gone.
Example: A warlock with Metharmorphosis...If you go into the stance the ActionBar stays the same but what does change are the ActionButtons itself.
So bar swapping based on stance/form seems to be gone. Thus the workaround with page swapping and actionbutton re-mapping can be removed (afaik).
Currently digging into it.
What's disturbing is that the PossesActionBarFrame is still alive. Not sure under which condition it can be spawned...(DK start quest orb was one of it afaik...need to test that later)
What I found is the ActionBarController.lua
Lua Code:
function ActionBarController_UpdateAll()
PossessBar_Update();
StanceBar_Update();
CURRENT_ACTION_BAR_STATE = LE_ACTIONBAR_STATE_MAIN;
-- If we have a skinned vehicle bar or skinned override bar, display the OverrideActionBar
if ((HasVehicleActionBar() and UnitVehicleSkin("player") and UnitVehicleSkin("player") ~= "")
or (HasOverrideActionBar() and GetOverrideBarSkin() and GetOverrideBarSkin() ~= "")) then
-- For now, a vehicle has precedence over override bars (hopefully designers make it so these never conflict)
if (HasVehicleActionBar()) then
OverrideActionBar_Setup(UnitVehicleSkin("player"), GetVehicleBarIndex());
else
OverrideActionBar_Setup(GetOverrideBarSkin(), GetOverrideBarIndex());
end
CURRENT_ACTION_BAR_STATE = LE_ACTIONBAR_STATE_OVERRIDE;
-- If we have a non-skinned override bar of some sort, use the MainMenuBarArtFrame
elseif ( HasBonusActionBar() or HasOverrideActionBar() or HasVehicleActionBar() or HasTempShapeshiftActionBar() ) then
if (HasVehicleActionBar()) then
MainMenuBarArtFrame:SetAttribute("actionpage", GetVehicleBarIndex());
elseif (HasOverrideActionBar()) then
MainMenuBarArtFrame:SetAttribute("actionpage", GetOverrideBarIndex());
elseif (HasTempShapeshiftActionBar()) then
MainMenuBarArtFrame:SetAttribute("actionpage", GetTempShapeshiftBarIndex());
elseif (HasBonusActionBar() and GetActionBarPage() == 1) then
MainMenuBarArtFrame:SetAttribute("actionpage", GetBonusBarIndex());
else
MainMenuBarArtFrame:SetAttribute("actionpage", GetActionBarPage());
end
for i=1, NUM_ACTIONBAR_BUTTONS do
local button = _G["ActionButton"..i];
ActionButton_UpdateAction(button);
end
else
-- Otherwise, display the normal action bar
ActionBarController_ResetToDefault();
end
ValidateActionBarTransition();
end
From OverrideActionBar.lua
Lua Code:
function OverrideActionBar_Setup(skin, barIndex)
OverrideActionBar_SetSkin(skin);
OverrideActionBar_CalcSize();
OverrideActionBar:SetAttribute("actionpage", barIndex);
for k=1,MAX_ALT_SPELLBUTTONS do
local button = OverrideActionBar["SpellButton"..k];
ActionButton_UpdateAction(button);
local _, spellID = GetActionInfo(button.action);
if spellID and spellID > 0 then
button:SetAttribute("statehidden", false);
button:Show();
else
button:SetAttribute("statehidden", true);
button:Hide();
end
end
if HasVehicleActionBar() then
OverrideActionBarHealthBar:Show();
OverrideActionBarPowerBar:Show();
else
OverrideActionBarHealthBar:Hide();
OverrideActionBarPowerBar:Hide();
end
OverrideActionBar:RegisterEvent("PLAYER_LEVEL_UP");
OverrideActionBar:RegisterEvent("PLAYER_XP_UPDATE");
OverrideActionBar_UpdateXpBar();
end
From ActionButton.lua
Lua Code:
function ActionButton_UpdateAction (self)
local action = ActionButton_CalculateAction(self);
if ( action ~= self.action ) then
self.action = action;
SetActionUIButton(self, action, self.cooldown);
ActionButton_Update(self);
end
end