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