mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
58 lines
1.6 KiB
Python
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)
|