SyntaxGameServer/RCCService2021/ExtraContent/LuaPackages/UGCValidationImpl/validation/validateMeshTriangles.lua

40 lines
1.1 KiB
Lua

local UGCValidationService = game:GetService("UGCValidationService")
local root = script.Parent.Parent
local Constants = require(root.Constants)
-- ensures accessory mesh does not have more triangles than Constants.MAX_HAT_TRIANGLES
local function validateMeshTriangles(isAsync, instance)
-- check mesh triangles
-- this is guaranteed to exist thanks to validateInstanceTree being called beforehand
local mesh = instance.Handle:FindFirstChildOfClass("SpecialMesh")
if mesh.MeshId == "" then
return false, { "Mesh must contain valid MeshId" }
end
local success, triangles = pcall(function()
if isAsync then
return UGCValidationService:GetMeshTriCount(mesh.MeshId)
else
return UGCValidationService:GetMeshTriCountSync(mesh.MeshId)
end
end)
if not success then
return false, { "Failed to load mesh data" }
elseif triangles > Constants.MAX_HAT_TRIANGLES then
return false, {
string.format(
"Mesh has %d triangles, but the limit is %d",
triangles,
Constants.MAX_HAT_TRIANGLES
)
}
end
return true
end
return validateMeshTriangles