feat: initial material input support
This commit is contained in:
parent
4c42a5be92
commit
d93c227521
@ -64,7 +64,7 @@ def load_node(node_data: dict, node_tree: bpy.types.ShaderNodeTree):
|
|||||||
if idx < len(inputs_data) and hasattr(inpt, "default_value"):
|
if idx < len(inputs_data) and hasattr(inpt, "default_value"):
|
||||||
loaded_input = inputs_data[idx]
|
loaded_input = inputs_data[idx]
|
||||||
try:
|
try:
|
||||||
if inpt.type in ['OBJECT', 'COLLECTION']:
|
if inpt.type in ['OBJECT', 'COLLECTION', 'MATERIAL']:
|
||||||
inpt.default_value = get_datablock_from_uuid(loaded_input, None)
|
inpt.default_value = get_datablock_from_uuid(loaded_input, None)
|
||||||
else:
|
else:
|
||||||
inpt.default_value = loaded_input
|
inpt.default_value = loaded_input
|
||||||
@ -80,7 +80,7 @@ def load_node(node_data: dict, node_tree: bpy.types.ShaderNodeTree):
|
|||||||
if idx < len(outputs_data) and hasattr(output, "default_value"):
|
if idx < len(outputs_data) and hasattr(output, "default_value"):
|
||||||
loaded_output = outputs_data[idx]
|
loaded_output = outputs_data[idx]
|
||||||
try:
|
try:
|
||||||
if output.type in ['OBJECT', 'COLLECTION']:
|
if output.type in ['OBJECT', 'COLLECTION', 'MATERIAL']:
|
||||||
output.default_value = get_datablock_from_uuid(loaded_output, None)
|
output.default_value = get_datablock_from_uuid(loaded_output, None)
|
||||||
else:
|
else:
|
||||||
output.default_value = loaded_output
|
output.default_value = loaded_output
|
||||||
@ -351,6 +351,11 @@ def get_node_tree_dependencies(node_tree: bpy.types.NodeTree) -> list:
|
|||||||
|
|
||||||
def has_texture(node): return (
|
def has_texture(node): return (
|
||||||
node.type in ['ATTRIBUTE_SAMPLE_TEXTURE','TEXTURE'] and node.texture)
|
node.type in ['ATTRIBUTE_SAMPLE_TEXTURE','TEXTURE'] and node.texture)
|
||||||
|
|
||||||
|
def has_material(node): return (
|
||||||
|
node.type == 'MATERIAL' and node.inputs[2].default_value is not None
|
||||||
|
)
|
||||||
|
|
||||||
deps = []
|
deps = []
|
||||||
|
|
||||||
for node in node_tree.nodes:
|
for node in node_tree.nodes:
|
||||||
@ -360,7 +365,9 @@ def get_node_tree_dependencies(node_tree: bpy.types.NodeTree) -> list:
|
|||||||
deps.append(node.node_tree)
|
deps.append(node.node_tree)
|
||||||
elif has_texture(node):
|
elif has_texture(node):
|
||||||
deps.append(node.texture)
|
deps.append(node.texture)
|
||||||
|
elif has_material(node):
|
||||||
|
print(node.inputs[2].default_value.name)
|
||||||
|
deps.append(node.inputs[2].default_value)
|
||||||
return deps
|
return deps
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user