57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
 | |
| local B = E:GetModule('Blizzard')
 | |
| 
 | |
| local _G = _G
 | |
| local hooksecurefunc = hooksecurefunc
 | |
| local GetVehicleUIIndicator = GetVehicleUIIndicator
 | |
| local GetVehicleUIIndicatorSeat = GetVehicleUIIndicatorSeat
 | |
| local VehicleSeatIndicator_SetUpVehicle = VehicleSeatIndicator_SetUpVehicle
 | |
| 
 | |
| local function SetPosition(_,_,anchor)
 | |
| 	if anchor == 'MinimapCluster' or anchor == _G.MinimapCluster then
 | |
| 		_G.VehicleSeatIndicator:ClearAllPoints()
 | |
| 		_G.VehicleSeatIndicator:Point('TOPLEFT', _G.VehicleSeatMover, 'TOPLEFT', 0, 0)
 | |
| 	end
 | |
| end
 | |
| 
 | |
| local function VehicleSetUp(vehicleID)
 | |
| 	local size = E.db.general.vehicleSeatIndicatorSize
 | |
| 	_G.VehicleSeatIndicator:Size(size)
 | |
| 
 | |
| 	local _, numSeatIndicators = GetVehicleUIIndicator(vehicleID)
 | |
| 	if numSeatIndicators then
 | |
| 		local fourth = size / 4
 | |
| 
 | |
| 		for i = 1, numSeatIndicators do
 | |
| 			local button = _G['VehicleSeatIndicatorButton'..i]
 | |
| 			button:Size(fourth)
 | |
| 
 | |
| 			local _, xOffset, yOffset = GetVehicleUIIndicatorSeat(vehicleID, i)
 | |
| 			button:ClearAllPoints()
 | |
| 			button:Point('CENTER', button:GetParent(), 'TOPLEFT', xOffset * size, -yOffset * size)
 | |
| 		end
 | |
| 	end
 | |
| end
 | |
| 
 | |
| function B:UpdateVehicleFrame()
 | |
| 	if _G.VehicleSeatIndicator.currSkin then
 | |
| 		VehicleSeatIndicator_SetUpVehicle(_G.VehicleSeatIndicator.currSkin)
 | |
| 	end
 | |
| end
 | |
| 
 | |
| function B:PositionVehicleFrame()
 | |
| 	local VehicleSeatIndicator = _G.VehicleSeatIndicator
 | |
| 	if not VehicleSeatIndicator.PositionVehicleFrameHooked then
 | |
| 		hooksecurefunc(VehicleSeatIndicator, 'SetPoint', SetPosition)
 | |
| 		hooksecurefunc('VehicleSeatIndicator_SetUpVehicle', VehicleSetUp)
 | |
| 		E:CreateMover(VehicleSeatIndicator, 'VehicleSeatMover', L["Vehicle Seat Frame"], nil, nil, nil, nil, nil, 'general,blizzUIImprovements')
 | |
| 		VehicleSeatIndicator.PositionVehicleFrameHooked = true
 | |
| 	end
 | |
| 
 | |
| 	VehicleSeatIndicator:Size(E.db.general.vehicleSeatIndicatorSize)
 | |
| 
 | |
|     if VehicleSeatIndicator.currSkin then
 | |
| 		VehicleSetUp(VehicleSeatIndicator.currSkin)
 | |
|     end
 | |
| end
 |