add gs
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
local root = script.Parent.Parent
|
||||
|
||||
local Constants = require(root.Constants)
|
||||
|
||||
-- ensures no descendant of instance has a material that does not exist in Constants.MATERIAL_WHITELIST
|
||||
local function validateMaterials(instance)
|
||||
local materialFailures = {}
|
||||
for _, descendant in pairs(instance:GetDescendants()) do
|
||||
if descendant:IsA("BasePart") and not Constants.MATERIAL_WHITELIST[descendant.Material] then
|
||||
materialFailures[#materialFailures + 1] = descendant:GetFullName()
|
||||
end
|
||||
end
|
||||
if #materialFailures > 0 then
|
||||
local reasons = {}
|
||||
local acceptedMaterialNames = {}
|
||||
for material in pairs(Constants.MATERIAL_WHITELIST) do
|
||||
acceptedMaterialNames[#acceptedMaterialNames + 1] = material.Name
|
||||
end
|
||||
reasons[#reasons + 1] = "Invalid materials for"
|
||||
for _, name in pairs(materialFailures) do
|
||||
reasons[#reasons + 1] = name
|
||||
end
|
||||
reasons[#reasons + 1] = "Accepted materials are " .. table.concat(acceptedMaterialNames, ", ")
|
||||
return false, reasons
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
return validateMaterials
|
||||
Reference in New Issue
Block a user