forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | import bpy | ||
|  | import nodeitems_utils | ||
|  | from nodeitems_utils import NodeCategory | ||
|  | 
 | ||
|  | import lnx | ||
|  | import lnx.material.lnx_nodes.lnx_nodes as lnx_nodes | ||
|  | # Import all nodes so that they register. Do not remove this import | ||
|  | # even if it looks unused | ||
|  | from lnx.material.lnx_nodes import * | ||
|  | 
 | ||
|  | if lnx.is_reload(__name__): | ||
|  |     lnx_nodes = lnx.reload_module(lnx_nodes) | ||
|  |     lnx.material.lnx_nodes = lnx.reload_module(lnx.material.lnx_nodes) | ||
|  |     from lnx.material.lnx_nodes import * | ||
|  | else: | ||
|  |     lnx.enable_reload(__name__) | ||
|  | 
 | ||
|  | registered_nodes = [] | ||
|  | 
 | ||
|  | 
 | ||
|  | class MaterialNodeCategory(NodeCategory): | ||
|  |     @classmethod | ||
|  |     def poll(cls, context): | ||
|  |         return context.space_data.tree_type == 'ShaderNodeTree' | ||
|  | 
 | ||
|  | 
 | ||
|  | def register_nodes(): | ||
|  |     global registered_nodes | ||
|  | 
 | ||
|  |     # Re-register all nodes for now.. | ||
|  |     if len(registered_nodes) > 0: | ||
|  |         unregister_nodes() | ||
|  | 
 | ||
|  |     for n in lnx_nodes.nodes: | ||
|  |         registered_nodes.append(n) | ||
|  |         bpy.utils.register_class(n) | ||
|  | 
 | ||
|  |     node_categories = [] | ||
|  | 
 | ||
|  |     for category in sorted(lnx_nodes.category_items): | ||
|  |         sorted_items = sorted(lnx_nodes.category_items[category], key=lambda item: item.nodetype) | ||
|  |         node_categories.append( | ||
|  |             MaterialNodeCategory('LnxMaterial' + category + 'Nodes', category, items=sorted_items) | ||
|  |         ) | ||
|  | 
 | ||
|  |     nodeitems_utils.register_node_categories('LnxMaterialNodes', node_categories) | ||
|  | 
 | ||
|  | 
 | ||
|  | def unregister_nodes(): | ||
|  |     global registered_nodes | ||
|  |     for n in registered_nodes: | ||
|  |         bpy.utils.unregister_class(n) | ||
|  |     registered_nodes = [] | ||
|  |     nodeitems_utils.unregister_node_categories('LnxMaterialNodes') | ||
|  | 
 | ||
|  | 
 | ||
|  | def register(): | ||
|  |     register_nodes() | ||
|  | 
 | ||
|  | 
 | ||
|  | def unregister(): | ||
|  |     unregister_nodes() |