1 # SPDX-License-Identifier: GPL-2.0-or-later
3 # Contributed to by: Chichiri, Jace Priester #
4 # codemanx, blender dev team, Lijenstina, Spivak Vladimir (cwolf3d) #
5 # Originally by Evan J. Rosky (syrux)
8 "name": "Discombobulator",
9 "author": "Evan J. Rosky (syrux)",
11 "blender": (2, 80, 0),
12 "location": "View3D > Add > Mesh",
13 "description": "Add Discombobulator",
15 "doc_url": "{BLENDER_MANUAL_URL}/addons/add_mesh/discombobulator.html",
16 "category": "Add Mesh",
19 # Note: Blocks has to be loaded before the WallFactory or the script
20 # will not work properly after (F8) reload
24 importlib
.reload(mesh_discombobulator
)
26 from . import mesh_discombobulator
29 from bpy
.types
import (
33 from bpy
.props
import (
37 # Register all operators and panels
39 # Define "Extras" menu
40 def menu_func(self
, context
):
42 layout
.operator_context
= 'INVOKE_REGION_WIN'
45 layout
.operator("discombobulate.ops",
46 text
="Discombobulator", icon
="MOD_BUILD")
50 class DISCProps(PropertyGroup
):
55 mesh_discombobulator
.discombobulator
,
56 mesh_discombobulator
.discombobulator_dodads_list
,
57 mesh_discombobulator
.discombob_help
,
58 mesh_discombobulator
.VIEW3D_OT_tools_discombobulate
,
59 mesh_discombobulator
.chooseDoodad
,
60 mesh_discombobulator
.unchooseDoodad
,
65 from bpy
.utils
import register_class
69 bpy
.types
.Scene
.discombobulator
= PointerProperty(type=DISCProps
)
70 # Add "Extras" menu to the "Add Mesh" menu
71 bpy
.types
.VIEW3D_MT_mesh_add
.append(menu_func
)
75 # Remove "Extras" menu from the "Add Mesh" menu.
76 bpy
.types
.VIEW3D_MT_mesh_add
.remove(menu_func
)
78 from bpy
.utils
import unregister_class
79 for cls
in reversed(classes
):
82 del bpy
.types
.Scene
.discombobulator
84 if __name__
== "__main__":