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()
 |