add gs
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
game:DefineFastFlag("UGCValidateMeshBounds", false)
|
||||
game:DefineFastFlag("UGCValidateHandleSize", false)
|
||||
game:DefineFastFlag("UGCExtraBannedNames", false)
|
||||
|
||||
local root = script
|
||||
|
||||
local validateInstanceTree = require(root.validation.validateInstanceTree)
|
||||
local validateMeshTriangles = require(root.validation.validateMeshTriangles)
|
||||
local validateModeration = require(root.validation.validateModeration)
|
||||
local validateMaterials = require(root.validation.validateMaterials)
|
||||
local validateTags = require(root.validation.validateTags)
|
||||
local validateMeshBounds = require(root.validation.validateMeshBounds)
|
||||
local validateTextureSize = require(root.validation.validateTextureSize)
|
||||
local validateHandleSize = require(root.validation.validateHandleSize)
|
||||
local validateProperties = require(root.validation.validateProperties)
|
||||
|
||||
local function validateInternal(isAsync, instances, assetTypeEnum, noModeration)
|
||||
-- validate that only one instance was selected
|
||||
if #instances == 0 then
|
||||
return false, { "No instances selected" }
|
||||
elseif #instances > 1 then
|
||||
return false, { "More than one instance selected" }
|
||||
end
|
||||
|
||||
local instance = instances[1]
|
||||
|
||||
local success, reasons
|
||||
|
||||
success, reasons = validateInstanceTree(instance, assetTypeEnum)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
|
||||
success, reasons = validateMaterials(instance)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
|
||||
success, reasons = validateProperties(instance)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
|
||||
success, reasons = validateTags(instance)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
|
||||
if game:GetFastFlag("UGCValidateMeshBounds") then
|
||||
success, reasons = validateMeshBounds(isAsync, instance, assetTypeEnum)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
end
|
||||
|
||||
success, reasons = validateTextureSize(isAsync, instance)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
|
||||
if game:GetFastFlag("UGCValidateHandleSize") then
|
||||
success, reasons = validateHandleSize(isAsync, instance)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
end
|
||||
|
||||
success, reasons = validateMeshTriangles(isAsync, instance)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
|
||||
if not noModeration then
|
||||
success, reasons = validateModeration(isAsync, instance)
|
||||
if not success then
|
||||
return false, reasons
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
local UGCValidation = {}
|
||||
|
||||
function UGCValidation.validate(instances, assetTypeEnum, noModeration)
|
||||
local success, reasons = validateInternal(--[[ isAsync = ]] false, instances, assetTypeEnum, noModeration)
|
||||
return success, reasons
|
||||
end
|
||||
|
||||
function UGCValidation.validateAsync(instances, assetTypeEnum, callback, noModeration)
|
||||
coroutine.wrap(function()
|
||||
callback(validateInternal(--[[ isAsync = ]] true, instances, assetTypeEnum, noModeration))
|
||||
end)()
|
||||
end
|
||||
|
||||
return UGCValidation
|
||||
Reference in New Issue
Block a user