From 8db9d6725b75ecb65105d13180828f1d739c8543 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Fri, 14 Dec 2018 13:07:29 +0100 Subject: [PATCH] initial commit --- pype/plugins/nuke/create/create_read.py | 147 ++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 pype/plugins/nuke/create/create_read.py diff --git a/pype/plugins/nuke/create/create_read.py b/pype/plugins/nuke/create/create_read.py new file mode 100644 index 0000000000..b2f13f84f5 --- /dev/null +++ b/pype/plugins/nuke/create/create_read.py @@ -0,0 +1,147 @@ +from collections import OrderedDict +import avalon.api +import avalon.nuke +from pype.nuke import create_write_node +from pype import api as pype + +import nuke + + +log = pype.Logger.getLogger(__name__, "nuke") + + +def subset_to_families(subset, family, families): + subset_sufx = str(subset).replace(family, "") + new_subset = families + subset_sufx + return "{}.{}".format(family, new_subset) + + +class CrateRead(avalon.nuke.Creator): + # change this to template preset + preset = "render" + + name = "WriteRender" + label = "Create Write Render" + hosts = ["nuke"] + family = "{}_write".format(preset) + families = preset + icon = "sign-out" + + def __init__(self, *args, **kwargs): + super(CrateWriteRender, self).__init__(*args, **kwargs) + + data = OrderedDict() + + data["family"] = self.family.split("_")[1] + data["families"] = self.families + + {data.update({k: v}) for k, v in self.data.items() + if k not in data.keys()} + self.data = data + + def process(self): + self.name = self.data["subset"] + + family = self.family.split("_")[0] + node = self.family.split("_")[1] + + instance = nuke.toNode(self.data["subset"]) + + if not instance: + write_data = { + "class": node, + "preset": family, + "avalon": self.data + } + + create_write_node(self.data["subset"], write_data) + + return + + +class CrateWritePrerender(avalon.nuke.Creator): + # change this to template preset + preset = "prerender" + + name = "WritePrerender" + label = "Create Write Prerender" + hosts = ["nuke"] + family = "{}_write".format(preset) + families = preset + icon = "sign-out" + + def __init__(self, *args, **kwargs): + super(CrateWritePrerender, self).__init__(*args, **kwargs) + + data = OrderedDict() + + data["family"] = self.family.split("_")[1] + data["families"] = self.families + + {data.update({k: v}) for k, v in self.data.items() + if k not in data.keys()} + self.data = data + + def process(self): + self.name = self.data["subset"] + + instance = nuke.toNode(self.data["subset"]) + + family = self.family.split("_")[0] + node = self.family.split("_")[1] + + if not instance: + write_data = { + "class": node, + "preset": family, + "avalon": self.data + } + + create_write_node(self.data["subset"], write_data) + + return + + +class CrateWriteStill(avalon.nuke.Creator): + # change this to template preset + preset = "still" + + name = "WriteStill" + label = "Create Write Still" + hosts = ["nuke"] + family = "{}_write".format(preset) + families = preset + icon = "image" + + def __init__(self, *args, **kwargs): + super(CrateWriteStill, self).__init__(*args, **kwargs) + + data = OrderedDict() + + data["family"] = self.family.split("_")[1] + data["families"] = self.families + + {data.update({k: v}) for k, v in self.data.items() + if k not in data.keys()} + self.data = data + + def process(self): + self.name = self.data["subset"] + + instance = nuke.toNode(self.data["subset"]) + + family = self.family.split("_")[0] + node = self.family.split("_")[1] + + if not instance: + write_data = { + "frame_range": [nuke.frame(), nuke.frame()], + "class": node, + "preset": family, + "avalon": self.data + } + + nuke.createNode("FrameHold", "first_frame {}".format(nuke.frame())) + create_write_node(self.data["subset"], write_data) + + return