GE Lua Documentation

Press F to search!

setSkin

Definition


-- @/lua/ge/extensions/core/vehicle/partmgmt.lua:594

local function setSkin(skin)
  local vehicle = getPlayerVehicle(0)
  local playerVehicleData = core_vehicle_manager.getPlayerVehicleData()

  if not vehicle or not playerVehicleData then return end

  local partName = nil

  if skin and skin ~= "" then
    partName = vehicle.JBeam .. "_skin_" .. skin
    local parts = jbeamIO.getAvailableParts(playerVehicleData.ioCtx)
    if not parts[partName] then return end
  end

  local carConfigToLoad = playerVehicleData.config

  local function setPaintDesignSlotRec(node)
    if node.id == "paint_design" then
      node.chosenPartName = partName

      local carModelToLoad = vehicle.JBeam
      local vehicleData = {}
      vehicleData.config = carConfigToLoad
      core_vehicles.replaceVehicle(carModelToLoad, vehicleData)
      return true
    else
      if node.children then
        for _, childNode in pairs(node.children) do
          if setPaintDesignSlotRec(childNode) then
            return true
          end
        end
      end
    end
  end

  local success = setPaintDesignSlotRec(carConfigToLoad.partsTree)
  if not success then
    log('E', 'setSkin', '"paint_design" slot not found in config')
  end
end

Callers

@/lua/ge/extensions/ui/liveryEditor.lua
    api.setup()
    core_vehicle_partmgmt.setSkin("dynamicTextures")
    -- disable api update if editor extensions has been loaded
  layerEdit.resetEditState()
  core_vehicle_partmgmt.setSkin(M.saveName)
  api.clearLayerStack()
@/lua/ge/extensions/editor/dynamicDecalsTool.lua
    if core_vehicle_partmgmt then
      core_vehicle_partmgmt.setSkin("dynamicTextures")
    else
@/lua/ge/extensions/ui/liveryEditor/editor.lua
  api.setup()
  core_vehicle_partmgmt.setSkin("dynamicTextures")
  uiResources.setup()

  core_vehicle_partmgmt.setSkin("dynamicTextures")
  extensions.editor_dynamicDecalsTool.doApiUpdate = false
    dump("applySkin applying skin", skinName)
    core_vehicle_partmgmt.setSkin(skinName)
    applyOnExit = true
  if not applyOnExit then
    core_vehicle_partmgmt.setSkin(nil)
  end
@/lua/common/jbeam/sections/licenseplatesSkins.lua
        if skinSlot == 'paint_design' or type(skinSlot) ~= 'string' then skinSlot = '' end
        vehicleObj:setSkin(skinSlot .. '.' .. (part.skinName or part.globalSkin or ''))
        if part.default_color ~= nil then
@/ui/lib/ext/spine-canvas.js
        throw new Error("Skin not found: " + skinName);
      this.setSkin(skin);
    };