Skip to content
Snippets Groups Projects
node_efficiency_tools.py 169 KiB
Newer Older
  • Learn to ignore specific revisions
  •     ('wm.call_menu', 'EQUAL', False, True, False, (('name', NWNodeAlignMenu.bl_idname),), "Node alignment menu"),
        ('wm.call_menu', 'BACK_SLASH', False, False, False, (('name', NWLinkActiveToSelectedMenu.bl_idname),), "Link active to selected (menu)"),
        ('wm.call_menu', 'C', False, True, False, (('name', NWCopyToSelectedMenu.bl_idname),), "Copy to selected (menu)"),
        ('wm.call_menu', 'S', False, True, False, (('name', NWSwitchNodeTypeMenu.bl_idname),), "Switch node type menu"),
    )
    
        # props
        bpy.types.Scene.NWBusyDrawing = StringProperty(
            name="Busy Drawing!",
            default="",
            description="An internal property used to store only the first mouse position")
    
        bpy.types.Scene.NWLazySource = StringProperty(
            name="Lazy Source!",
            default="x",
            description="An internal property used to store the first node in a Lazy Connect operation")
        bpy.types.Scene.NWLazyTarget = StringProperty(
            name="Lazy Target!",
    
            description="An internal property used to store the last node in a Lazy Connect operation")
        bpy.types.Scene.NWSourceSocket = IntProperty(
            name="Source Socket!",
            default=0,
            description="An internal property used to store the source socket in a Lazy Connect operation")
    
        bpy.utils.register_module(__name__)
    
        addon_keymaps.clear()
        kc = bpy.context.window_manager.keyconfigs.addon
        if kc:
            km = kc.keymaps.new(name='Node Editor', space_type="NODE_EDITOR")
            for (identifier, key, CTRL, SHIFT, ALT, props, nicename) in kmi_defs:
                kmi = km.keymap_items.new(identifier, key, 'PRESS', ctrl=CTRL, shift=SHIFT, alt=ALT)
                if props:
                    for prop, value in props:
                        setattr(kmi.properties, prop, value)
                addon_keymaps.append((km, kmi))
    
        # menu items
        bpy.types.NODE_MT_select.append(select_parent_children_buttons)
    
        bpy.types.NODE_MT_category_SH_NEW_INPUT.prepend(attr_nodes_menu_func)
        bpy.types.NODE_PT_category_SH_NEW_INPUT.prepend(attr_nodes_menu_func)
        bpy.types.NODE_PT_backdrop.append(bgreset_menu_func)
    
        bpy.types.NODE_MT_category_SH_NEW_TEXTURE.prepend(multipleimages_menu_func)
        bpy.types.NODE_PT_category_SH_NEW_TEXTURE.prepend(multipleimages_menu_func)
        bpy.types.NODE_MT_category_CMP_INPUT.prepend(multipleimages_menu_func)
        bpy.types.NODE_PT_category_CMP_INPUT.prepend(multipleimages_menu_func)
    
        # props
        del bpy.types.Scene.NWBusyDrawing
    
        del bpy.types.Scene.NWLazySource
        del bpy.types.Scene.NWLazyTarget
        del bpy.types.Scene.NWSourceSocket
    
        bpy.utils.unregister_module(__name__)
    
        for km, kmi in addon_keymaps:
            km.keymap_items.remove(kmi)
        addon_keymaps.clear()
    
    
        # menuitems
        bpy.types.NODE_MT_select.remove(select_parent_children_buttons)
        bpy.types.NODE_MT_category_SH_NEW_INPUT.remove(attr_nodes_menu_func)
        bpy.types.NODE_PT_category_SH_NEW_INPUT.remove(attr_nodes_menu_func)
        bpy.types.NODE_PT_backdrop.remove(bgreset_menu_func)
    
        bpy.types.NODE_MT_category_SH_NEW_TEXTURE.remove(multipleimages_menu_func)
        bpy.types.NODE_PT_category_SH_NEW_TEXTURE.remove(multipleimages_menu_func)
        bpy.types.NODE_MT_category_CMP_INPUT.remove(multipleimages_menu_func)
        bpy.types.NODE_PT_category_CMP_INPUT.remove(multipleimages_menu_func)
    
    if __name__ == "__main__":