Newer
Older
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
NWSwitchShadersOutputSubmenu,
NWSwitchShadersShaderSubmenu,
NWSwitchShadersTextureSubmenu,
NWSwitchShadersColorSubmenu,
NWSwitchShadersVectorSubmenu,
NWSwitchShadersConverterSubmenu,
NWSwitchShadersLayoutSubmenu,
NWSwitchCompoInputSubmenu,
NWSwitchCompoOutputSubmenu,
NWSwitchCompoColorSubmenu,
NWSwitchCompoConverterSubmenu,
NWSwitchCompoFilterSubmenu,
NWSwitchCompoVectorSubmenu,
NWSwitchCompoMatteSubmenu,
NWSwitchCompoDistortSubmenu,
NWSwitchCompoLayoutSubmenu,
NWSwitchMatInputSubmenu,
NWSwitchMatOutputSubmenu,
NWSwitchMatColorSubmenu,
NWSwitchMatVectorSubmenu,
NWSwitchMatConverterSubmenu,
NWSwitchMatLayoutSubmenu,
NWSwitchTexInputSubmenu,
NWSwitchTexOutputSubmenu,
NWSwitchTexColorSubmenu,
NWSwitchTexPatternSubmenu,
NWSwitchTexTexturesSubmenu,
NWSwitchTexConverterSubmenu,
NWSwitchTexDistortSubmenu,
NWSwitchTexLayoutSubmenu,
)
from bpy.utils import register_class
# 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!",
default="x",
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.types.NodeSocketInterface.NWViewerSocket = BoolProperty(
name="NW Socket",
default=False,
description="An internal property used to determine if a socket is generated by the addon"
)
for cls in classes:
register_class(cls)
# keymaps
Bastien Montagne
committed
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, action, CTRL, SHIFT, ALT, props, nicename) in kmi_defs:
kmi = km.keymap_items.new(identifier, key, action, ctrl=CTRL, shift=SHIFT, alt=ALT)
Bastien Montagne
committed
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_backdrop.append(bgreset_menu_func)
bpy.types.NODE_PT_active_node_generic.append(save_viewer_menu_func)
bpy.types.NODE_MT_category_SH_NEW_TEXTURE.prepend(multipleimages_menu_func)
bpy.types.NODE_MT_category_CMP_INPUT.prepend(multipleimages_menu_func)
bpy.types.NODE_PT_active_node_generic.prepend(reset_nodes_button)
bpy.types.NODE_MT_node.prepend(reset_nodes_button)
def unregister():
from bpy.utils import unregister_class
# props
del bpy.types.Scene.NWBusyDrawing
del bpy.types.Scene.NWLazySource
del bpy.types.Scene.NWLazyTarget
del bpy.types.Scene.NWSourceSocket
del bpy.types.NodeSocketInterface.NWViewerSocket
# keymaps
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_backdrop.remove(bgreset_menu_func)
bpy.types.NODE_PT_active_node_generic.remove(save_viewer_menu_func)
bpy.types.NODE_MT_category_SH_NEW_TEXTURE.remove(multipleimages_menu_func)
bpy.types.NODE_MT_category_CMP_INPUT.remove(multipleimages_menu_func)
bpy.types.NODE_PT_active_node_generic.remove(reset_nodes_button)
bpy.types.NODE_MT_node.remove(reset_nodes_button)
for cls in classes:
unregister_class(cls)
if __name__ == "__main__":
register()