Hi all,
I wonder why an input socket with the Float type can’t accept an outgoing value from the Separate XYZ node, but everything is fine for an outgoing value from the Value node. See picture below.
Thank you for your answer.
import bpy
from bpy.types import Node
from bpy.utils import register_class, unregister_class
import nodeitems_utils
from nodeitems_utils import NodeCategory, NodeItem
class CustomNode(Node):
bl_idname = "CustomNodeFloat"
bl_label = "Custom Node Float"
def init(self, context):
self.inputs.new("NodeSocketFloat", "Input")
self.inputs["Input"].default_value = 1
def draw_buttons(self, context, layout):
layout.label(text="Input = %.2f" % self.inputs["Input"].links[0].from_socket.default_value)
def draw_label(self):
return "Node"
class CustomNodeCategory(NodeCategory):
@classmethod
def poll(cls, context):
return context.space_data.tree_type == 'ShaderNodeTree'
identifier = 'CUSTOM_NODES'
node_categories = [CustomNodeCategory(identifier, "Custom Nodes", items=[NodeItem("CustomNodeFloat")])]
def register():
register_class(CustomNode)
if identifier in nodeitems_utils._node_categories:
nodeitems_utils.unregister_node_categories(identifier)
nodeitems_utils.register_node_categories(identifier, node_categories)
def unregister():
nodeitems_utils.unregister_node_categories(identifier)
unregister_class(CustomNode)
if __name__ == "__main__":
register()
CustomNodeFloat.blend (621.6 KB)