VE Lua Documentation

Press F to search!

tableMerge

Definition


-- @/lua/common/utils.lua:644

function tableMerge(dst, src)
  for k, v in pairs(src) do
    dst[k] = v
  end
  return dst
end

Callers

@/lua/vehicle/extensions/core/quickAccess.lua
  for _, category in ipairs(vehicleFeatureCategories) do
    local res = tableMerge(category, {level = '/root/playerVehicle/'})
    addEntry(res)
@/lua/common/settings.lua

    tableMerge(values, cloudValues)
    tableMerge(values, localValues)
    tableMerge(values, cloudValues)
    tableMerge(values, localValues)
    if CppSettings then
@/lua/ge/extensions/gameplay/police.lua
  end
  vars = tableMerge(vars, data)
end
@/lua/ge/extensions/career/modules/tuning.lua
  local vehicleVarsCurrent = career_modules_inventory.getVehicles()[inventoryId].config.vars or {}
  career_modules_inventory.getVehicles()[inventoryId].config.vars = tableMerge(vehicleVarsCurrent, tuningValues)

  tableMerge(changedVars, tuningValues)
  changedVars = getChangedVars(changedVars, vehicleVarsBefore)
@/lua/ge/extensions/editor/trafficSignalsEditor.lua
      table.clear(signalCtrlDefinitions.types)
      tableMerge(signalCtrlDefinitions, jsonReadFile(editor.levelPath.."signalControllerDefinitions.json") or {}) -- loads only custom data, and only from the current level
      signalCtrlDefinitions._update = true

      local tempStates = tableMerge(signalCtrlDefinitions.origStates, signalCtrlDefinitions.states)
      signalCtrlDefinitions.tempStatesSorted = tableKeysSorted(tempStates)
@/lua/common/utils/perf.lua
  M.data = {frameCount = frames, size = windowSize, memory = used_mem}
  tableMerge(M.data, srcData)
  frames = 0
@/lua/common/jbeam/variables.lua
    local svars = applySlotVars(deepcopy(slotVars or {}), parentScope)
    svars = tableMerge(deepcopy(parentScope), svars)
      local sanitizedPartVars = _sanitizeVars(deepcopy(partVarsList), vehicleConfig.vars or {})
      svars = tableMerge(svars, sanitizedPartVars)
    end

    svars = tableMerge(deepcopy(varStack[parentPart]), svars)
    varStack[part] = svars
    local svars = applySlotVars(slotVarCopy, varStack[tostring(parentPart)] or {})
    svars = tableMerge(deepcopy(varStack[tostring(parentPart)]), svars)
    svars['$components'] = {val = rootPart.components}
@/lua/ge/extensions/ui/bindingsLegend.lua
    if actionDataSet.additionalData then
      tableMerge(uiData.additionalData, actionDataSet.additionalData)
    end
@/lua/common/extensions.lua
        -- only merge M.state
        tableMerge(v['state'], data[k])
      else
        -- merge whole M
        tableMerge(v, data[k])
      end
@/lua/vehicle/ve_utils.lua
      -- case where options is a dict on its own, filling a whole line
      localOptions = tableMerge(localOptions, deepcopy(rowValue))
    else
        if rvcc >= headerSize and type(rv) == "table" and tableIsDict(rv) and #rowValue > headerSize then
          tableMerge(newRow, rv)
          break
@/lua/ge/extensions/core/vehicle/partmgmt.lua
          if isChosenConfigReturned then
            tableMerge(vehData, data)
          else
    fileData.format = nil
    tableMerge(res, fileData)
  else

  tableMerge(playerVehicle.config, inData)
@/lua/ge/extensions/career/modules/partShopping.lua
    for slotName, childNode in pairs(tree.children) do
      tableMerge(result, flattenPartsTree(childNode))
    end
    end
    tableMerge(shoppingCart.partsIn, addedParts)
  end
@/lua/ge/extensions/core/input/bindings.lua
  local result = deepcopy(base)
  tableMerge(result, deepcopy(diff))
  result.removed = nil
@/lua/ge/extensions/editor/mapSensorEditor.lua
    if sensors[sid].name == conf.name then
      sensors[sid] = tableMerge(sensors[sid], existingSensor)
      return
@/lua/ge/extensions/flowgraph/nodes/mission/ARunForLife.lua
    if flag then
      tableMerge(propsInfo[id], {id = id, name = veh.jbeam})
    end
@/lua/common/jbeam/slotSystem.lua
    local slotOptions = deepcopy(_slotOptions) or {}
    slotOptions = tableMerge(slotOptions, deepcopy(slotDef))
@/lua/common/jbeam/interaction.lua

    tableMerge(interactionGroups, j.interactionGroups or {})
    tableMerge(actionCategories, j.actionCategories or {})
    tableMerge(interactionGroups, j.interactionGroups or {})
    tableMerge(actionCategories, j.actionCategories or {})
    for k,action in pairs(j.actions or {}) do
    end
    tableMerge(actions, j.actions or {})
@/lua/ge/extensions/core/quickAccess.lua
        if isValidRoot then
          tableMerge(currentNode.items[segment], validRoots[isValidRoot])
        end
        if value2["goto"] and value2["goto"] == value.path then
          tableMerge(value, value2)
          tree.items[key2] = nil
  for _, category in ipairs(sandboxCategories) do
    local res = tableMerge(category, {level = '/root/sandbox/'})
    addEntry(res)

  tableMerge(occupiedSlots, occupiedSlotsThisAction)
  return false
        actionInfo.endSlot = nil
        tableMerge(item, actionInfo)
        item.isRecentAction = true
@/lua/ge/extensions/core/audio.lua
  local bankFiles = FS:findFiles(directory, '*.bank', 0, true, false)
  bankFiles = tableMerge(bankFiles, FS:findFiles(directory..'/mods', '*.bank', 0, true, false))
  asset_banks = {}
  local bankFiles = FS:findFiles(directory, '*.bank', 0, true, false)
  bankFiles = tableMerge(bankFiles, FS:findFiles(directory..'/mods', '*.bank', 0, true, false))
  local meta_banks = {}
@/lua/vehicle/recovery.lua
local function onDeserialized(v)
  tableMerge(M, v)
  M.recoveryPoints = dequeue.new(v.recoveryPoints)
@/lua/vehicle/powertrain/hydraulicAccumulator.lua
    if ph.connectedPump == device.name then
      local consumerJbeamData = deepcopy(tableMerge(ph, v.data[ph.name] or {}))
      local consumerType = ph.type
@/lua/ge/extensions/career/modules/delivery/parcelManager.lua
        if cargo.location.vehId then
          tableMerge(cargo.loanerOrganisations, career_modules_loanerVehicles.getLoaningOrgsOfVehicle(cargo.location.vehId))
        end
      cargo.loanerOrganisations = cargo.loanerOrganisations or {}
      tableMerge(cargo.loanerOrganisations, career_modules_loanerVehicles.getLoaningOrgsOfVehicle(cargo.location.vehId))
    end
@/lua/ge/extensions/core/trafficSignals.lua
  if type(data) == 'table' then
    tableMerge(controllerDefinitions.states, data.states or {})
    tableMerge(controllerDefinitions.types, data.types or {})
    tableMerge(controllerDefinitions.states, data.states or {})
    tableMerge(controllerDefinitions.types, data.types or {})
  end
@/lua/vehicle/controller/gauges/genericGauges.lua
  }
  config = tableMerge(config, configData)
  --dump(config)
@/lua/ge/extensions/core/vehiclePaints.lua
      else
        table.insert(cleanCollection, tableMerge(paint, paintsByIdCache[paint.id]))
      end
      debugLog("adding paint from model.libraryPaints to model: " .. dumps(paintFromLibrary.id) .. "/" .. dumps(paintFromLibrary.name) .. " (from library) ")
      tableMerge(paintFromLibrary, paint)
      model.paints[paintFromLibrary.name] = paintFromLibrary
        debugLog("adding paint from model.paintCollections to model: " .. dumps(paint.id) .. "/" .. dumps(paint.name) .. " (from collection " .. dumps(collectionId) .. ")")
        tableMerge(paint, paintsByIdCache[paint.id])
        model.paints[paint.name] = paint
@/lua/ge/extensions/core/modmanager.lua
    if data.mods then
      tableMerge(mods, data.mods)
    end
@/lua/ge/extensions/core/environment.lua
    for _,fn in pairs(files) do
      tableMerge(allGroundModels, loadGroundModelFile(fn));
    end
@/lua/ge/extensions/util/export.lua
  }
  tableMerge(_accessor, accessor)
  table.insert(gltfRoot.accessors, _accessor)
@/lua/vehicle/ai.lua
local function setParameters(data)
  tableMerge(parameters, data)
end
local function setVehicleDebugMode(newMode)
  tableMerge(M, newMode)
  if M.debugMode ~= 'trajectory' then
  local mode = M.mode
  tableMerge(M, newState)
  setAggressionExternal(M.extAggression)
@/lua/ge/extensions/career/career.lua
    infoData.outdatedVersion = career_saveSystem.getSaveSystemVersion() > infoData.version
    tableMerge(data, infoData)
  end
@/lua/vehicle/powertrain/hydraulicPump.lua
    if ph.connectedPump == device.name then
      local consumerJbeamData = deepcopy(tableMerge(ph, v.data[ph.name] or {}))
@/lua/ge/extensions/core/weather.lua
  end
  tableMerge(presets, filePresets)
end
@/lua/common/jbeam/io.lua
    if #slotSectionRow > 3 and type(slotSectionRow[4]) == 'table' then
      tableMerge(slot, slotSectionRow[4])
    end
@/lua/ge/extensions/flowgraph/manager.lua
  if self.customNodeLookup then
    lookup = tableMerge(lookup, self.customNodeLookup.lookup)
    res = tableMerge(res, self.customNodeLookup.res)
    lookup = tableMerge(lookup, self.customNodeLookup.lookup)
    res = tableMerge(res, self.customNodeLookup.res)
  end
@/lua/ge/extensions/gameplay/traffic/baseRole.lua

  self.driver.personality = tableMerge(self.driver.personality, data)
  self:setAggression()
@/lua/ge/map.lua
  if info and info.roadRules then
    rules = tableMerge(rules, info.roadRules)
  end
local function setState(newState)
  tableMerge(M, newState)
end
@/lua/ge/extensions/editor/vehicleDetailViewer.lua
    if im.RadioButton1('Left##VDV_'..tostring(view.name), view.typeName == 'Left') then
      tableMerge(view, viewTemplates.left)
    end
    if im.RadioButton1('Right##VDV_'..tostring(view.name), view.typeName == 'Right') then
      tableMerge(view, viewTemplates.right)
    end
    if im.RadioButton1('Top##VDV_'..tostring(view.name), view.typeName == 'Top') then
      tableMerge(view, viewTemplates.top)
    end
    if im.RadioButton1('Bottom##VDV_'..tostring(view.name), view.typeName == 'Bottom') then
      tableMerge(view, viewTemplates.bottom)
    end
    if im.RadioButton1('Front##VDV_'..tostring(view.name), view.typeName == 'Front') then
      tableMerge(view, viewTemplates.front)
    end
    if im.RadioButton1('Back##VDV_'..tostring(view.name), view.typeName == 'Back') then
      tableMerge(view, viewTemplates.back)
    end
@/lua/ge/extensions/editor/sensorConfigurationEditor.lua
      if sensors[sid].name == conf.name then
        sensors[sid] = tableMerge(sensors[sid], existingSensor)
        return
@/lua/ge/extensions/util/docCreator.lua
    end
    tableMerge(mergedInfo[out.identifier], out)
  end
@/lua/common/devUtils.lua
      local upvalues = _findUpValuesFromFunction(moduleTbl, entry)
      tableMerge(res, upvalues)
      local resSub = _recFindUpvalues(moduleTbl, upvalues, visitedEntries)
      local resSub = _recFindUpvalues(moduleTbl, upvalues, visitedEntries)
      tableMerge(res, resSub)
    --elseif type(entry) == 'table' then
    --elseif type(entry) == 'table' then
    --  tableMerge(res, _recFindUpvalues(moduleTbl, entry))
    end
  if mt then
    tableMerge(res, _recFindUpvalues(moduleTbl, mt, visitedEntries))
  end
@/lua/ge/extensions/telemetry/core.lua
  local event = {name = activityName, type = "start"}
  tableMerge(event, data or {})
  addEvent(event)
  local event = {name = activityName, type = "end"}
  tableMerge(event, data or {})
  addEvent(event)
@/lua/ge/extensions/career/modules/vehiclePerformance.lua
          recordingDataRetrieved = true
          tableMerge(certificationData, ret)
        end, "getRecordingData", "power")
      performanceData.mileage = career_modules_valueCalculator.getVehicleMileageById(inventoryId)
      tableMerge(certificationData, performanceData)
      return true
            recordingDataRetrieved = true
            tableMerge(certificationData, ret)
          end, "getRecordingData", "lateralAcceleration")
@/lua/ge/extensions/ui/topBar.lua
  }
  tableMerge(data, gameState)
  tableMerge(data, M.state)
  tableMerge(data, gameState)
  tableMerge(data, M.state)
  guihooks.trigger(MODULE_NAME .. "_dataRequested", data)
@/lua/vehicle/beamstate.lua
  for i = 1, #recievedElectrics do
    tableMerge(electrics.values, recievedElectrics[i])
  end
@/lua/ge/extensions/gameplay/parking.lua

  vars = tableMerge(vars, data)
@/lua/console/test.lua
                log('I', "lua.test", "  * " .. v .. " with "..tableSize(parts).." parts")
                allParts = tableMerge(allParts, parts)
            else
@/lua/common/jbeam/tableSchema.lua
    -- case where options is a dict on its own, filling a whole line
    tableMerge(ctx.localOptions, replaceSpecialValues(rowValue))
    ctx.localOptions.__astNodeIdx = nil
      if tableIsDict(rv) then
        tableMerge(newRow, replaceSpecialValues(rv))
        -- remove the options
@/lua/vehicle/powertrain.lua
  end
  tableMerge(variables, _G)
  return variables
@/lua/ge/extensions/career/modules/delivery/vehicleTasks.lua
      taskData.loanerOrganisations = taskData.loanerOrganisations or {}
      tableMerge(taskData.loanerOrganisations, career_modules_loanerVehicles.getLoaningOrgsOfVehicle(taskData.vehId))
    end
@/lua/ge/extensions/gameplay/traffic.lua

  vars = tableMerge(vars, data)
@/lua/ge/extensions/core/input/actions.lua
      end
      tableMerge(result, actionsToUniqueActions(vehicleActions or {}, vehicleName))
    end
@/lua/ge/extensions/core/vehicles.lua
        if designData.format[v].gen.patternData then
          tableMerge(designData.gen.patternData, designData.format[v].gen.patternData )
        end
@/lua/ge/extensions/core/settings/settings.lua
  local data = loadSettingValues()
  tableMerge(newState, data)
  extensions.load({"core_settings_graphic","core_settings_audio","core_settings_rally"})
  tableMerge(options, core_settings_graphic.buildOptionHelpers())
  tableMerge(options, core_settings_audio.buildOptionHelpers())
  tableMerge(options, core_settings_graphic.buildOptionHelpers())
  tableMerge(options, core_settings_audio.buildOptionHelpers())
  tableMerge(options, core_settings_rally.buildOptionHelpers())
  tableMerge(options, core_settings_audio.buildOptionHelpers())
  tableMerge(options, core_settings_rally.buildOptionHelpers())
  -- add C++ propagation wherever possible
  local data = loadSettingValues()
  tableMerge(values, data)