Bases: NukeCreator
Add Publishable Read with source
Source code in client/ayon_nuke/plugins/create/create_source.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 | class CreateSource(NukeCreator):
"""Add Publishable Read with source"""
settings_category = "nuke"
identifier = "create_source"
label = "Source (read)"
product_type = "source"
icon = "film"
default_variants = ["Effect", "Backplate", "Fire", "Smoke"]
# plugin attributes
node_color = "0xff9100ff"
node_class_name = "Read"
def create_instance_node(
self,
node_name,
read_node
):
read_node["tile_color"].setValue(
int(self.node_color, 16))
read_node["name"].setValue(node_name)
return read_node
def create(self, product_name, instance_data, pre_create_data):
# make sure selected nodes are added
node_selection = self._get_current_selected_nodes(
pre_create_data,
class_name=self.node_class_name
)
try:
for read_node in node_selection:
node_name = read_node.name()
_product_name = product_name + node_name
# make sure product name is unique
self.check_existing_product(_product_name)
instance_node = self.create_instance_node(
_product_name,
read_node
)
instance = CreatedInstance(
self.product_type,
_product_name,
instance_data,
self
)
# add staging dir related data to transient data
self.apply_staging_dir(instance)
instance.transient_data["node"] = instance_node
self._add_instance_to_context(instance)
set_node_data(
instance_node,
INSTANCE_DATA_KNOB,
instance.data_to_store()
)
except Exception as exc:
raise NukeCreatorError(f"Creator error: {exc}") from exc
|