patch [#25809] Auto-Registration as utility function.
This removes auto-registration, committed by Martin r30961. Realize this is a contentious topic but Brecht and myself both would rather opt-in registration. TODO: - addons need updating. - class list will be modified to use weakrefs (should have been done for existing system too). - will move bpy.types.(un)register functions into bpy.utils.(un)register_class, currently including these functions in a type list is internally ugly, scripts which loop over types also need to check for these.
This commit is contained in:
@@ -363,6 +363,8 @@ class RENDER_PT_network_output(NeedValidAddress, NetRenderButtonsPanel, bpy.type
|
||||
|
||||
draw = properties_render.RENDER_PT_output.draw
|
||||
|
||||
|
||||
def addProperties():
|
||||
class NetRenderSettings(bpy.types.IDPropertyGroup):
|
||||
pass
|
||||
|
||||
@@ -372,7 +374,10 @@ class NetRenderSlave(bpy.types.IDPropertyGroup):
|
||||
class NetRenderJob(bpy.types.IDPropertyGroup):
|
||||
pass
|
||||
|
||||
def addProperties():
|
||||
bpy.types.register(NetRenderSettings)
|
||||
bpy.types.register(NetRenderSlave)
|
||||
bpy.types.register(NetRenderJob)
|
||||
|
||||
from bpy.props import PointerProperty, StringProperty, BoolProperty, EnumProperty, IntProperty, CollectionProperty
|
||||
bpy.types.Scene.network_render = PointerProperty(type=NetRenderSettings, name="Network Render", description="Network Render Settings")
|
||||
|
||||
|
||||
@@ -100,9 +100,6 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
import traceback
|
||||
import time
|
||||
|
||||
# must be set back to True on exits
|
||||
_bpy_types._register_immediate = False
|
||||
|
||||
t_main = time.time()
|
||||
|
||||
loaded_modules = set()
|
||||
@@ -112,7 +109,6 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
|
||||
if reload_scripts:
|
||||
_bpy_types.TypeMap.clear()
|
||||
_bpy_types.PropertiesMap.clear()
|
||||
|
||||
# just unload, dont change user defaults, this means we can sync to reload.
|
||||
# note that they will only actually reload of the modification time changes.
|
||||
@@ -121,7 +117,6 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
addon_disable(module_name, default_set=False)
|
||||
|
||||
def register_module_call(mod):
|
||||
_bpy_types._register_module(mod.__name__)
|
||||
register = getattr(mod, "register", None)
|
||||
if register:
|
||||
try:
|
||||
@@ -132,7 +127,6 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
print("\nWarning! '%s' has no register function, this is now a requirement for registerable scripts." % mod.__file__)
|
||||
|
||||
def unregister_module_call(mod):
|
||||
_bpy_types._unregister_module(mod.__name__)
|
||||
unregister = getattr(mod, "unregister", None)
|
||||
if unregister:
|
||||
try:
|
||||
@@ -199,8 +193,6 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
for mod in modules_from_path(path, loaded_modules):
|
||||
test_register(mod)
|
||||
|
||||
_bpy_types._register_immediate = True
|
||||
|
||||
# deal with addons seperately
|
||||
addon_reset_all(reload_scripts)
|
||||
|
||||
@@ -367,12 +359,9 @@ def addon_enable(module_name, default_set=True):
|
||||
import bpy_types as _bpy_types
|
||||
import imp
|
||||
|
||||
_bpy_types._register_immediate = False
|
||||
|
||||
def handle_error():
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
_bpy_types._register_immediate = True
|
||||
|
||||
# reload if the mtime changes
|
||||
mod = sys.modules.get(module_name)
|
||||
@@ -402,19 +391,13 @@ def addon_enable(module_name, default_set=True):
|
||||
return None
|
||||
|
||||
# 2) try register collected modules
|
||||
try:
|
||||
_bpy_types._register_module(module_name)
|
||||
except:
|
||||
handle_error()
|
||||
del sys.modules[module_name]
|
||||
return None
|
||||
# removed, addons need to handle own registration now.
|
||||
|
||||
# 3) try run the modules register function
|
||||
try:
|
||||
mod.register()
|
||||
except:
|
||||
handle_error()
|
||||
_bpy_types._unregister_module(module_name)
|
||||
del sys.modules[module_name]
|
||||
return None
|
||||
|
||||
@@ -426,8 +409,6 @@ def addon_enable(module_name, default_set=True):
|
||||
ext = _bpy.context.user_preferences.addons.new()
|
||||
ext.module = module_name
|
||||
|
||||
_bpy_types._register_immediate = True
|
||||
|
||||
mod.__addon_enabled__ = True
|
||||
|
||||
if _bpy.app.debug:
|
||||
@@ -454,7 +435,6 @@ def addon_disable(module_name, default_set=True):
|
||||
mod.__addon_enabled__ = False
|
||||
|
||||
try:
|
||||
_bpy_types._unregister_module(module_name, free=False) # dont free because we may want to enable again.
|
||||
mod.unregister()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
@@ -594,3 +574,42 @@ def user_resource(type, path="", create=False):
|
||||
target_path = ""
|
||||
|
||||
return target_path
|
||||
|
||||
|
||||
_register_types = _bpy.types.Panel, _bpy.types.Operator, _bpy.types.Menu, _bpy.types.Header, _bpy.types.RenderEngine
|
||||
|
||||
|
||||
def register_module(module):
|
||||
import traceback
|
||||
total = 0
|
||||
register = _bpy.types.register
|
||||
for cls, path, line in _bpy_types.TypeMap.get(module, ()):
|
||||
if not "bl_rna" in cls.__dict__:
|
||||
total += 1
|
||||
try:
|
||||
register(cls)
|
||||
except:
|
||||
print("bpy.utils.register_module(): failed to registering class '%s.%s'" % (cls.__module__, cls.__name__))
|
||||
print("\t", path, "line", line)
|
||||
traceback.print_exc()
|
||||
|
||||
if total == 0:
|
||||
raise Exception("register_module(%r): defines no classes" % module)
|
||||
|
||||
|
||||
def unregister_module(module):
|
||||
import traceback
|
||||
unregister = _bpy.types.unregister
|
||||
total = 0
|
||||
for cls, path, line in _bpy_types.TypeMap.get(module, ()):
|
||||
if "bl_rna" in cls.__dict__:
|
||||
total += 1
|
||||
try:
|
||||
unregister(cls)
|
||||
except:
|
||||
print("bpy.utils.unregister_module(): failed to unregistering class '%s.%s'" % (cls.__module__, cls.__name__))
|
||||
print("\t", path, "line", line)
|
||||
traceback.print_exc()
|
||||
|
||||
if total == 0:
|
||||
raise Exception("unregister_module(%r): defines no classes" % module)
|
||||
|
||||
@@ -550,85 +550,33 @@ class Text(bpy_types.ID):
|
||||
import bpy
|
||||
return tuple(obj for obj in bpy.data.objects if self in [cont.text for cont in obj.game.controllers if cont.type == 'PYTHON'])
|
||||
|
||||
import collections
|
||||
|
||||
# values are module: [(cls, path, line), ...]
|
||||
TypeMap = {}
|
||||
# Properties (IDPropertyGroup) are different from types because they need to be registered
|
||||
# before adding sub properties to them, so they are registered on definition
|
||||
# and unregistered on unload
|
||||
PropertiesMap = {}
|
||||
|
||||
# Using our own loading function we set this to false
|
||||
# so when running a script directly in the text editor
|
||||
# registers moduals instantly.
|
||||
_register_immediate = True
|
||||
|
||||
|
||||
def _unregister_module(module, free=True):
|
||||
for t in TypeMap.get(module, ()):
|
||||
try:
|
||||
bpy_types.unregister(t)
|
||||
except:
|
||||
import traceback
|
||||
print("bpy.utils._unregister_module(): Module '%s' failed to unregister class '%s.%s'" % (module, t.__module__, t.__name__))
|
||||
traceback.print_exc()
|
||||
|
||||
if free == True and module in TypeMap:
|
||||
del TypeMap[module]
|
||||
|
||||
for t in PropertiesMap.get(module, ()):
|
||||
try:
|
||||
bpy_types.unregister(t)
|
||||
except:
|
||||
import traceback
|
||||
print("bpy.utils._unload_module(): Module '%s' failed to unregister class '%s.%s'" % (module, t.__module__, t.__name__))
|
||||
traceback.print_exc()
|
||||
|
||||
if free == True and module in PropertiesMap:
|
||||
del PropertiesMap[module]
|
||||
|
||||
|
||||
def _register_module(module):
|
||||
for t in TypeMap.get(module, ()):
|
||||
try:
|
||||
bpy_types.register(t)
|
||||
except:
|
||||
import traceback
|
||||
import sys
|
||||
print("bpy.utils._register_module(): '%s' failed to register class '%s.%s'" % (sys.modules[module].__file__, t.__module__, t.__name__))
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
class RNAMeta(type):
|
||||
@classmethod
|
||||
def _register_immediate(cls):
|
||||
return _register_immediate
|
||||
|
||||
def __new__(cls, name, bases, classdict, **args):
|
||||
import traceback
|
||||
result = type.__new__(cls, name, bases, classdict)
|
||||
if bases and bases[0] != StructRNA:
|
||||
module = result.__module__
|
||||
|
||||
ClassMap = TypeMap
|
||||
|
||||
# Register right away if needed
|
||||
if cls._register_immediate():
|
||||
bpy_types.register(result)
|
||||
ClassMap = PropertiesMap
|
||||
|
||||
# first part of packages only
|
||||
if "." in module:
|
||||
module = module[:module.index(".")]
|
||||
|
||||
ClassMap.setdefault(module, []).append(result)
|
||||
sf = traceback.extract_stack(limit=2)[0]
|
||||
|
||||
TypeMap.setdefault(module, []).append((result, sf[0], sf[1]))
|
||||
|
||||
return result
|
||||
|
||||
|
||||
class RNAMetaRegister(RNAMeta, StructMetaIDProp):
|
||||
@classmethod
|
||||
def _register_immediate(cls):
|
||||
return True
|
||||
import collections
|
||||
|
||||
|
||||
class RNAMetaIDProp(RNAMeta, StructMetaIDProp):
|
||||
pass
|
||||
|
||||
|
||||
class OrderedMeta(RNAMeta):
|
||||
@@ -685,7 +633,7 @@ class Macro(StructRNA, metaclass=OrderedMeta):
|
||||
return ops.macro_define(self, opname)
|
||||
|
||||
|
||||
class IDPropertyGroup(StructRNA, metaclass=RNAMetaRegister):
|
||||
class IDPropertyGroup(StructRNA, metaclass=RNAMetaIDProp):
|
||||
__slots__ = ()
|
||||
|
||||
|
||||
|
||||
@@ -701,4 +701,8 @@ if __name__ == "__main__":
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
@@ -78,13 +78,12 @@ class DiscontFilterOp(bpy.types.Operator):
|
||||
main(context)
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -195,11 +195,11 @@ class ProjectApply(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -173,11 +173,11 @@ class MeshMirrorUV(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -175,13 +175,11 @@ class BakeAction(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
# bpy.types.INFO_MT_mesh_add.append(menu_func)
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
# bpy.types.INFO_MT_mesh_add.remove(menu_func)
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -565,11 +565,11 @@ class ClearAllRestrictRender(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -287,11 +287,14 @@ def menu_func(self, context):
|
||||
|
||||
|
||||
def register():
|
||||
bpy.utils.register_module(__name__)
|
||||
bpy.types.VIEW3D_MT_transform.append(menu_func)
|
||||
|
||||
|
||||
def unregister():
|
||||
bpy.utils.unregister_module(__name__)
|
||||
bpy.types.VIEW3D_MT_transform.remove(menu_func)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -154,11 +154,14 @@ def menu_func(self, context):
|
||||
|
||||
|
||||
def register():
|
||||
bpy.utils.register_module(__name__)
|
||||
bpy.types.VIEW3D_MT_transform.append(menu_func)
|
||||
|
||||
|
||||
def unregister():
|
||||
bpy.utils.unregister_module(__name__)
|
||||
bpy.types.VIEW3D_MT_transform.remove(menu_func)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -354,11 +354,11 @@ class WM_MT_operator_presets(bpy.types.Menu):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -147,11 +147,11 @@ class PlayRenderedAnim(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -135,11 +135,11 @@ class SequencerDeinterlaceSelectedMovies(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -369,10 +369,12 @@ def menu_func(self, context):
|
||||
|
||||
|
||||
def register():
|
||||
bpy.utils.register_module(__name__)
|
||||
bpy.types.IMAGE_MT_uvs.append(menu_func)
|
||||
|
||||
|
||||
def unregister():
|
||||
bpy.utils.unregister_module(__name__)
|
||||
bpy.types.IMAGE_MT_uvs.remove(menu_func)
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -251,11 +251,14 @@ menu_func = (lambda self, context: self.layout.operator(FollowActiveQuads.bl_idn
|
||||
|
||||
|
||||
def register():
|
||||
bpy.utils.register_module(__name__)
|
||||
bpy.types.VIEW3D_MT_uv_map.append(menu_func)
|
||||
|
||||
|
||||
def unregister():
|
||||
bpy.utils.unregister_module(__name__)
|
||||
bpy.types.VIEW3D_MT_uv_map.remove(menu_func)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -1130,10 +1130,12 @@ menu_func = (lambda self, context: self.layout.operator(SmartProject.bl_idname,
|
||||
|
||||
|
||||
def register():
|
||||
bpy.utils.register_module(__name__)
|
||||
bpy.types.VIEW3D_MT_uv_map.append(menu_func)
|
||||
|
||||
|
||||
def unregister():
|
||||
bpy.utils.unregister_module(__name__)
|
||||
bpy.types.VIEW3D_MT_uv_map.remove(menu_func)
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -180,11 +180,11 @@ class VertexPaintDirt(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -816,11 +816,11 @@ class WM_OT_sysinfo(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -94,12 +94,13 @@ class OnionSkinButtonsPanel():
|
||||
|
||||
# NOTE:
|
||||
# The specialised panel types are derived in their respective UI modules
|
||||
# dont register these classes since they are only helpers.
|
||||
def register():
|
||||
pass
|
||||
pass # bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
pass # bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -289,11 +289,11 @@ class DATA_PT_custom_props_arm(ArmatureButtonsPanel, PropertyPanel, bpy.types.Pa
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -370,11 +370,11 @@ class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -139,11 +139,11 @@ class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, bpy.types.P
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -396,11 +396,11 @@ class DATA_PT_custom_props_curve(CurveButtonsPanel, PropertyPanel, bpy.types.Pan
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -44,11 +44,11 @@ class DATA_PT_empty(DataButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -394,11 +394,11 @@ class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel, bpy.types.Panel
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -89,11 +89,11 @@ class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel, bpy.types.Pa
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -355,11 +355,11 @@ class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, bpy.types.Panel
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -119,11 +119,11 @@ class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel, bpy.types.P
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -701,11 +701,11 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -510,11 +510,11 @@ class WORLD_PT_game_physics(WorldButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -896,11 +896,11 @@ class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, bpy.types.Pa
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -343,11 +343,11 @@ class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel, bpy.types.Panel)
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -749,11 +749,11 @@ class BONE_PT_constraints(ConstraintButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -1158,11 +1158,11 @@ class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel, bpy.types.Pa
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -217,11 +217,11 @@ class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -279,11 +279,11 @@ def basic_force_field_falloff_ui(self, context, field):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -217,11 +217,11 @@ class PHYSICS_PT_collision(PhysicButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -282,11 +282,11 @@ class PHYSICS_PT_domain_particles(PhysicButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -205,11 +205,11 @@ class PHYSICS_PT_smoke_field_weights(PhysicButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -262,11 +262,11 @@ class PHYSICS_PT_softbody_field_weights(PhysicButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -675,11 +675,11 @@ class RENDER_PT_bake(RenderButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -311,11 +311,11 @@ class ANIM_OT_keying_set_export(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -1024,11 +1024,11 @@ class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel, bpy.types.Pane
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -268,11 +268,11 @@ class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -163,11 +163,11 @@ class ConsoleLanguage(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -355,11 +355,11 @@ class DOPESHEET_MT_gpencil_frame(bpy.types.Menu):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -75,11 +75,11 @@ class FILEBROWSER_HT_header(bpy.types.Header):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -242,11 +242,11 @@ class GRAPH_MT_key_transform(bpy.types.Menu):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -727,11 +727,11 @@ class IMAGE_PT_paint_curve(BrushButtonsPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -404,11 +404,11 @@ class HELP_OT_operator_cheat_sheet(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -90,11 +90,11 @@ class LOGIC_MT_view(bpy.types.Menu):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -188,11 +188,11 @@ class NLA_MT_edit_transform(bpy.types.Menu):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -197,11 +197,11 @@ class NODE_PT_properties(bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -118,11 +118,11 @@ class OUTLINER_MT_edit_datablocks(bpy.types.Menu):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -831,11 +831,11 @@ class SEQUENCER_PT_view(SequencerButtonsPanel_Output, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -295,11 +295,11 @@ class TEXT_MT_toolbox(bpy.types.Menu):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -200,11 +200,11 @@ class TIME_MT_autokey(bpy.types.Menu):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -1276,11 +1276,11 @@ class WM_OT_addon_expand(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -787,11 +787,11 @@ class WM_OT_keyconfig_remove(bpy.types.Operator):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -2306,11 +2306,11 @@ class VIEW3D_PT_context_properties(bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
@@ -1302,11 +1302,11 @@ class VIEW3D_PT_tools_particlemode(View3DPanel, bpy.types.Panel):
|
||||
|
||||
|
||||
def register():
|
||||
pass
|
||||
bpy.utils.register_module(__name__)
|
||||
|
||||
|
||||
def unregister():
|
||||
pass
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
||||
Reference in New Issue
Block a user