local sim = ac.getSim()
local selectedCar = nil ---@type ac.StateCar
local function TeleportHUD()
ui.text('Select car to teleport to:')
ui.childWindow('##drivers', vec2(ui.availableSpaceX(), 120), function ()
for i = 1, sim.carsCount - 1 do
local car = ac.getCar(i)
local driverName = ac.getDriverName(i)
if car.isConnected and not car.isAIControlled and not string.find(driverName, "Traffic") then
if ui.selectable(driverName, selectedCar == car) then
selectedCar = car
end
end
end
end)
end
local function TeleportHUDClosed(okClicked)
if okClicked and selectedCar then
local dir = selectedCar.look
physics.setCarVelocity(0, vec3(0, 0, 0))
-- spawn 8 meters behind, add 0.1 meter height to avoid falling through the map
physics.setCarPosition(0, selectedCar.position + vec3(0, 0.1, 0) - dir * 8, -dir)
-- Disable collision for 10 seconds
physics.setCarCollisionEnabled(0, false)
ac.setTimeout(10000, function ()
physics.setCarCollisionEnabled(0, true)
end)
end
end
ui.registerOnlineExtra(ui.Icons.FastForward, 'Teleport To Player', nil, TeleportHUD, TeleportHUDClosed, ui.OnlineExtraFlags.none)