getChildWheels
Definition
-- @/lua/vehicle/powertrain.lua:914
local function getChildWheels(parentDevice, outputID)
outputID = outputID or -1
if parentDevice.type == "shaft" and parentDevice.wheel then
return {parentDevice.wheel}
elseif parentDevice.children and #parentDevice.children > 0 then
local result = {}
for _, device in ipairs(parentDevice.children) do
if device.inputIndex == outputID or outputID < 0 then
local childWheels = getChildWheels(device, -1)
for _, childWheel in ipairs(childWheels) do
table.insert(result, childWheel)
end
end
end
return result
end
return {}
end
Callers
@/lua/vehicle/extensions/dynamicVehicleData.lua
if diff.mode == "dually" then
local childWheels1 = powertrain.getChildWheels(diff, 1)
local childWheels2 = powertrain.getChildWheels(diff, 2)
local childWheels1 = powertrain.getChildWheels(diff, 1)
local childWheels2 = powertrain.getChildWheels(diff, 2)
if #childWheels1 == 1 and #childWheels2 == 1 then
@/lua/vehicle/controller/drivingDynamics/actuators/activeDiffLock.lua
relevantWheels[1] = {}
relevantWheels[-1].wheels = powertrain.getChildWheels(relevantDifferential, 1)
relevantWheels[1].wheels = powertrain.getChildWheels(relevantDifferential, 2)
relevantWheels[-1].wheels = powertrain.getChildWheels(relevantDifferential, 1)
relevantWheels[1].wheels = powertrain.getChildWheels(relevantDifferential, 2)
relevantWheels[-1].invWheelCount = #relevantWheels[-1].wheels > 0 and #relevantWheels[-1].wheels or 1
@/lua/vehicle/extensions/tech/platooning.lua
local torque = average(torqueData) * gearRatio
local connectedWheels = powertrain.getChildWheels(devices[i], 1)
local radius = connectedWheels[1].dynamicRadius
@/lua/vehicle/controller/drivingDynamics/supervisors/tractionControl.lua
if motor then
local childWheels = powertrain.getChildWheels(motor)
local wheelGroup = {
@/lua/vehicle/extensions/tech/ACC.lua
local torque = average(torqueData) * gearRatio
local connectedWheels = powertrain.getChildWheels(devices[i], 1)
local radius = connectedWheels[1].dynamicRadius
@/lua/vehicle/controller/drivingDynamics/actuators/activeDiffBias.lua
relevantWheels[1] = {}
relevantWheels[-1].wheels = powertrain.getChildWheels(relevantDifferential, 1)
relevantWheels[1].wheels = powertrain.getChildWheels(relevantDifferential, 2)
relevantWheels[-1].wheels = powertrain.getChildWheels(relevantDifferential, 1)
relevantWheels[1].wheels = powertrain.getChildWheels(relevantDifferential, 2)
relevantWheels[-1].invWheelCount = (#relevantWheels[-1].wheels > 0) and (1 / #relevantWheels[-1].wheels) or 1
@/lua/vehicle/powertrain.lua
if device.deviceCategories.engine then
local attachedWheels = M.getChildWheels(device)
for _, wheel in ipairs(attachedWheels) do
if device.inputIndex == outputID or outputID < 0 then
local childWheels = getChildWheels(device, -1)
for _, childWheel in ipairs(childWheels) do
@/lua/vehicle/controller/drivingDynamics/actuators/electronicDiffLock.lua
relevantWheels[1] = {}
relevantWheels[-1].wheels = powertrain.getChildWheels(relevantDifferential, 1)
relevantWheels[1].wheels = powertrain.getChildWheels(relevantDifferential, 2)
relevantWheels[-1].wheels = powertrain.getChildWheels(relevantDifferential, 1)
relevantWheels[1].wheels = powertrain.getChildWheels(relevantDifferential, 2)
relevantWheels[-1].invWheelCount = #relevantWheels[-1].wheels > 0 and #relevantWheels[-1].wheels or 1