Changed validator to work with other families as well

This commit is contained in:
Simone Barbieri 2023-11-09 12:56:34 +00:00
parent 75e891254f
commit a4dbc19580
2 changed files with 17 additions and 9 deletions

View file

@ -8,11 +8,20 @@ class ValidateInstanceEmpty(pyblish.api.InstancePlugin):
order = pyblish.api.ValidatorOrder - 0.01
hosts = ["blender"]
families = ["blendScene"]
families = ["model", "pointcache", "rig", "camera" "layout", "blendScene"]
label = "Validate Instance is not Empty"
optional = False
def process(self, instance):
collection = bpy.data.collections[instance.name]
if not (collection.objects or collection.children):
raise RuntimeError(f"Instance {instance.name} is empty.")
self.log.debug(instance)
self.log.debug(instance.data)
if instance.data["family"] == "blendScene":
# blendScene instances are collections
collection = bpy.data.collections[instance.name]
if not (collection.objects or collection.children):
raise RuntimeError(f"Instance {instance.name} is empty.")
else:
# All other instances are objects
asset_group = bpy.data.objects[instance.name]
if not asset_group.children:
raise RuntimeError(f"Instance {instance.name} is empty.")

View file

@ -67,6 +67,10 @@ class PublishPuginsModel(BaseSettingsModel):
default_factory=ValidateFileSavedModel,
title="Validate File Saved",
)
ValidateInstanceEmpty: ValidatePluginModel = Field(
default_factory=ValidatePluginModel,
title="Validate Instance is not Empty"
)
ValidateMeshHasUvs: ValidatePluginModel = Field(
default_factory=ValidatePluginModel,
title="Validate Mesh Has Uvs",
@ -84,11 +88,6 @@ class PublishPuginsModel(BaseSettingsModel):
default_factory=ValidatePluginModel,
title="Validate No Colons In Name"
)
ValidateInstanceEmpty: ValidatePluginModel = Field(
default_factory=ValidatePluginModel,
title="Validate Instance is not Empty",
section="BlendScene Validators"
)
ValidateRenderCameraIsSet: ValidatePluginModel = Field(
default_factory=ValidatePluginModel,
title="Validate Render Camera Is Set",