VE Lua Documentation

Press F to search!

setPartMeshPaints

Definition


-- @/lua/vehicle/partCondition.lua:273

local function setPartMeshPaints(partId, paints)
  local baseColor1 = paints[1].baseColor or {0, 0, 0, 0}
  local baseColor2 = paints[2].baseColor or baseColor1
  local baseColor3 = paints[3].baseColor or baseColor1

  local paintData1Roughness = paints[1].roughness or 0
  local paintData1Metallic = paints[1].metallic or 0
  local paintData1Clearcoat = paints[1].clearcoat or 0
  local paintData1ClearcoatRoughness = paints[1].clearcoatRoughness or 0

  local paintData2Roughness = paints[2].roughness or 0
  local paintData2Metallic = paints[2].metallic or 0
  local paintData2Clearcoat = paints[2].clearcoat or 0
  local paintData2ClearcoatRoughness = paints[2].clearcoatRoughness or 0

  local paintData3Roughness = paints[3].roughness or 0
  local paintData3Metallic = paints[3].metallic or 0
  local paintData3Clearcoat = paints[3].clearcoat or 0
  local paintData3ClearcoatRoughness = paints[3].clearcoatRoughness or 0

  for _, partType in ipairs(partTypeData[partId] or {}) do
    local split = split(partType, ":")
    if split[1] == "jbeam" and split[2] == "flexbody" then
      --TODO improve interface to GE for setting mesh colors
      local colorCmd = string.format("getObjectByID(%d):setMeshColor(%q, ColorI(%d,%d,%d,%d), ColorI(%d,%d,%d,%d), ColorI(%d,%d,%d,%d))", objectId, split[3], baseColor1[1] * 255, baseColor1[2] * 255, baseColor1[3] * 255, 255, baseColor2[1] * 255, baseColor2[2] * 255, baseColor2[3] * 255, 255, baseColor3[1] * 255, baseColor3[2] * 255, baseColor3[3] * 255, 255)
      --ColorI(roughness0, metallic0, clearCoatFactor0, clearCoatRoughness0)
      local paintDataCmd = string.format("getObjectByID(%d):setMeshPaintData(%q, ColorI(%d,%d,%d,%d), ColorI(%d,%d,%d,%d), ColorI(%d,%d,%d,%d))", objectId, split[3], paintData1Roughness * 255, paintData1Metallic * 255, paintData1Clearcoat * 255, paintData1ClearcoatRoughness * 255, paintData2Roughness * 255, paintData2Metallic * 255, paintData2Clearcoat * 255, paintData2ClearcoatRoughness * 255, paintData3Roughness * 255, paintData3Metallic * 255, paintData3Clearcoat * 255, paintData3ClearcoatRoughness * 255)
      obj:queueGameEngineLua(colorCmd)
      obj:queueGameEngineLua(paintDataCmd)
    end
  end
end

Callers

@/lua/vehicle/partCondition.lua
  local agedPaints = getAgedPaints(paints, paintOdometer)
  setPartMeshPaints(partId, agedPaints)
end