From c97c98420c89164fd2b9c9cd5306645f33ca345f Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 17:53:37 +0800 Subject: [PATCH] follow workfile version exists in creator's tab --- .../plugins/create/create_textures.py | 15 +++++++++------ .../publish/collect_workfile_version.py | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py index ce37d6e206..59e8b64d30 100644 --- a/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/create/create_textures.py @@ -58,7 +58,7 @@ class CreateTextures(Creator): "exportPadding", "exportDilationDistance", "useCustomExportPreset", - "exportChannel" + "exportChannel", ]: if key in pre_create_data: creator_attributes[key] = pre_create_data[key] @@ -153,9 +153,6 @@ class CreateTextures(Creator): } return [ - BoolDef("follow_workfile_version", - label="Follow Workfile Version", - default=self.follow_workfile_version), EnumDef("exportChannel", items=export_channel_enum, multiselection=True, @@ -247,9 +244,15 @@ class CreateTextures(Creator): def get_pre_create_attr_defs(self): # Use same attributes as for instance attributes attr_defs = [] - if substance_painter.application.version_info()[0] >= 10: + if substance_painter.application.version_info()[0] >= 10: attr_defs.append( BoolDef("use_selection", label="Use selection", - tooltip="Select Layer Stack(s) for exporting") + tooltip="Select Layer Stack(s) for exporting"), + ) + + attr_defs.append(BoolDef("follow_workfile_version", + label="Follow Workfile Version", + default=self.follow_workfile_version)) + return attr_defs + self.get_instance_attr_defs() diff --git a/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py new file mode 100644 index 0000000000..3d6a6e4b44 --- /dev/null +++ b/server_addon/substancepainter/client/ayon_substancepainter/plugins/publish/collect_workfile_version.py @@ -0,0 +1,19 @@ +import pyblish.api + +from ayon_core.pipeline import registered_host +from ayon_core.lib import get_version_from_path + + +class CollectWorkfileVersion(pyblish.api.ContextPlugin): + """Inject the current working file into context""" + + order = pyblish.api.CollectorOrder - 0.5 + label = "Current Workfile Version" + hosts = ["substancepainter"] + + def process(self, context): + host = registered_host() + path = host.get_current_workfile() + version = int(get_version_from_path(path)) + context.data["version"] = version + self.log.debug(f"Current Version: {version}") \ No newline at end of file