VE Lua Documentation

Press F to search!

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