Files
coa-bartender/VehicleBar.lua
T
florian.berthold 57a5cdabdf 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).
2026-05-08 03:45:58 +02:00

127 lines
4.2 KiB
Lua

--[[
Copyright (c) 2009, Hendrik "Nevcairiel" Leppkes < h.leppkes at gmail dot com >
All rights reserved.
]]
local L = LibStub("AceLocale-3.0"):GetLocale("Bartender4")
-- register module
local VehicleBarMod = Bartender4:NewModule("Vehicle")
-- fetch upvalues
local ButtonBar = Bartender4.ButtonBar.prototype
-- create prototype information
local VehicleBar = setmetatable({}, {__index = ButtonBar})
local table_insert = table.insert
local defaults = { profile = Bartender4:Merge({
enabled = true,
visibility = {
custom = true,
customdata = "[target=vehicle,exists]show;hide"
},
}, Bartender4.ButtonBar.defaults) }
function VehicleBarMod:OnInitialize()
self.db = Bartender4.db:RegisterNamespace("Vehicle", defaults)
if self.blizzardVehicle then
self:SetEnabledState(false)
else
self:SetEnabledState(self.db.profile.enabled)
end
end
function VehicleBarMod:OnEnable()
if self.blizzardVehicle then
self:Disable()
return
end
if not self.bar then
self.bar = setmetatable(Bartender4.ButtonBar:Create("Vehicle", self.db.profile, L["Vehicle Bar"], true), {__index = VehicleBar})
local buttons = {VehicleMenuBarLeaveButton, VehicleMenuBarPitchUpButton, VehicleMenuBarPitchDownButton}
self.bar.buttons = buttons
VehicleBarMod.button_count = 3
for i,v in pairs(buttons) do
v:SetParent(self.bar)
v:Show()
v.ClearSetPoint = self.bar.ClearSetPoint
end
self.bar:SetScript("OnEvent", self.bar.OnEvent)
self.bar:RegisterEvent("UNIT_ENTERED_VEHICLE")
-- setup button skins
VehicleMenuBarPitchUpButton:GetNormalTexture():SetTexture([[Interface\Vehicles\UI-Vehicles-Button-Pitch-Up]])
VehicleMenuBarPitchUpButton:GetNormalTexture():SetTexCoord(0.21875, 0.765625, 0.234375, 0.78125)
VehicleMenuBarPitchUpButton:GetPushedTexture():SetTexture([[Interface\Vehicles\UI-Vehicles-Button-Pitch-Down]])
VehicleMenuBarPitchUpButton:GetPushedTexture():SetTexCoord(0.21875, 0.765625, 0.234375, 0.78125)
VehicleMenuBarPitchDownButton:GetNormalTexture():SetTexture([[Interface\Vehicles\UI-Vehicles-Button-PitchDown-Up]])
VehicleMenuBarPitchDownButton:GetNormalTexture():SetTexCoord(0.21875, 0.765625, 0.234375, 0.78125)
VehicleMenuBarPitchDownButton:GetPushedTexture():SetTexture([[Interface\Vehicles\UI-Vehicles-Button-PitchDown-Down]])
VehicleMenuBarPitchDownButton:GetPushedTexture():SetTexCoord(0.21875, 0.765625, 0.234375, 0.78125)
VehicleMenuBarLeaveButton:GetNormalTexture():SetTexture([[Interface\Vehicles\UI-Vehicles-Button-Exit-Up]])
VehicleMenuBarLeaveButton:GetNormalTexture():SetTexCoord(0.140625, 0.859375, 0.140625, 0.859375)
VehicleMenuBarLeaveButton:GetPushedTexture():SetTexture([[Interface\Vehicles\UI-Vehicles-Button-Exit-Down]])
VehicleMenuBarLeaveButton:GetPushedTexture():SetTexCoord(0.140625, 0.859375, 0.140625, 0.859375)
end
self.bar:Enable()
self:ToggleOptions()
self:ApplyConfig()
end
function VehicleBarMod:OnDisable()
Bartender4.modulePrototype.OnDisable(self)
VehicleMenuBarPitchUpButton:SetParent(VehicleMenuBar)
VehicleMenuBarPitchUpButton:ClearAllPoints()
VehicleMenuBarPitchDownButton:SetParent(VehicleMenuBar)
VehicleMenuBarPitchDownButton:ClearAllPoints()
VehicleMenuBarLeaveButton:SetParent(VehicleMenuBar)
VehicleMenuBarLeaveButton:ClearAllPoints()
end
function VehicleBarMod:ApplyConfig()
self.bar:ApplyConfig(self.db.profile)
end
VehicleBar.button_width = 40
VehicleBar.button_height = 40
VehicleBar.LBFOverride = true
function VehicleBar:ApplyConfig(config)
ButtonBar.ApplyConfig(self, config)
if not self.config.position.x then
self:ClearSetPoint("CENTER", 120, 27)
self:SavePosition()
end
self:UpdateButtonLayout()
end
function VehicleBar:OnEvent(event, arg1)
if event == "UNIT_ENTERED_VEHICLE" then
if arg1 == "player" then
self:UpdateButtonVisibility()
end
end
end
function VehicleBar:UpdateButtonVisibility()
if IsVehicleAimAngleAdjustable() then
_G["VehicleMenuBarPitchUpButton"]:Show()
_G["VehicleMenuBarPitchDownButton"]:Show()
else
_G["VehicleMenuBarPitchUpButton"]:Hide()
_G["VehicleMenuBarPitchDownButton"]:Hide()
end
if CanExitVehicle() then
_G["VehicleMenuBarLeaveButton"]:Show()
else
_G["VehicleMenuBarLeaveButton"]:Hide()
end
end