Adding support for excluded families.

This commit is contained in:
Toke Stuart Jepsen 2023-06-22 12:55:17 +01:00
parent 43ece88f02
commit 40cf531cb1
2 changed files with 18 additions and 16 deletions

View file

@ -93,21 +93,8 @@ class ImportMayaLoader(load.LoaderPlugin):
"""
representations = ["ma", "mb", "obj"]
families = [
"model",
"pointcache",
"proxyAbc",
"animation",
"mayaAscii",
"mayaScene",
"setdress",
"layout",
"camera",
"rig",
"camerarig",
"staticMesh",
"workfile"
]
families = ["*"]
excluded_families = ["xgen"]
label = "Import"
order = 10

View file

@ -28,6 +28,7 @@ class LoaderPlugin(list):
"""
families = []
excluded_families = []
representations = []
extensions = {"*"}
order = 0
@ -159,7 +160,10 @@ class LoaderPlugin(list):
return False
plugin_families = set(plugin_families)
if "*" in plugin_families:
# Return if all families are allowed and no excluded families are
# defined.
if "*" in plugin_families and not cls.excluded_families:
return True
subset_doc = context["subset"]
@ -175,6 +179,17 @@ class LoaderPlugin(list):
if not families:
return False
# Return if there are intersections between the subsets families and
# the loaders excluded families.
if list(set(families) & set(cls.excluded_families)):
return False
# Return if all families are allowed since excluded families have
# already been considered.
if "*" in plugin_families:
return True
return any(family in plugin_families for family in families)
@classmethod