ayon-core/pype/plugins/nuke/create/create_read.py
Jakub Jezek b0da1c9013
fix(nuke: removing annoying message window
happened every time log.error happened
2020-01-28 15:07:37 +01:00

58 lines
1.6 KiB
Python

from collections import OrderedDict
import avalon.api
import avalon.nuke
from pype import api as pype
import nuke
class CrateRead(avalon.nuke.Creator):
# change this to template preset
name = "ReadCopy"
label = "Create Read Copy"
hosts = ["nuke"]
family = "source"
families = family
icon = "film"
defaults = ["Effect", "Backplate", "Fire", "Smoke"]
def __init__(self, *args, **kwargs):
super(CrateRead, self).__init__(*args, **kwargs)
self.nodes = nuke.selectedNodes()
data = OrderedDict()
data['family'] = self.family
data['families'] = self.families
for k, v in self.data.items():
if k not in data.keys():
data.update({k: v})
self.data = data
def process(self):
self.name = self.data["subset"]
nodes = self.nodes
if not nodes or len(nodes) == 0:
msg = "Please select Read node"
self.log.error(msg)
nuke.message(msg)
else:
count_reads = 0
for node in nodes:
if node.Class() != 'Read':
continue
avalon_data = self.data
avalon_data['subset'] = "{}".format(self.name)
self.change_read_node(self.data["subset"], node, avalon_data)
count_reads += 1
if count_reads < 1:
msg = "Please select Read node"
self.log.error(msg)
nuke.message(msg)
return
def change_read_node(self, name, node, data):
node = avalon.nuke.lib.imprint(node, data)
node['tile_color'].setValue(16744935)