diff options
author | Spivak Vladimir (cwolf3d) <cwolf3d@gmail.com> | 2019-07-26 01:12:35 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-07-29 15:16:52 +0300 |
commit | 80115f7ac5a3caeb102919c7ac4ac3a1b9e8646e (patch) | |
tree | 580daac6a936b48bb970274fc814273fb33e899c | |
parent | a28aa2127b07937ae92c3a83eb43fbfe4e64be6c (diff) |
Addon: Discombobulator: Fixed Doodads Menu section broken
-rw-r--r-- | add_mesh_discombobulator/__init__.py | 26 | ||||
-rw-r--r-- | add_mesh_discombobulator/mesh_discombobulator.py | 31 |
2 files changed, 38 insertions, 19 deletions
diff --git a/add_mesh_discombobulator/__init__.py b/add_mesh_discombobulator/__init__.py index 853dbc89..a52b54d8 100644 --- a/add_mesh_discombobulator/__init__.py +++ b/add_mesh_discombobulator/__init__.py @@ -25,7 +25,7 @@ bl_info = { "name": "Discombobulator", "author": "Multiple Authors", - "version": (0, 0, 8), + "version": (0, 0, 9), "blender": (2, 80, 0), "location": "View3D > Add > Mesh", "description": "Add Discombobulator", @@ -45,7 +45,13 @@ else: from . import mesh_discombobulator import bpy -from bpy.types import Menu +from bpy.types import ( + Menu, + PropertyGroup, + ) +from bpy.props import ( + PointerProperty, + ) # Register all operators and panels @@ -58,22 +64,28 @@ def menu_func(self, context): lay_out.operator("discombobulate.ops", text="Discombobulator") -# Register -classes = [ +# Properties +class DISCProps(PropertyGroup): + DISC_doodads = [] + +# Register +classes = ( mesh_discombobulator.discombobulator, mesh_discombobulator.discombobulator_dodads_list, mesh_discombobulator.discombob_help, mesh_discombobulator.VIEW3D_OT_tools_discombobulate, mesh_discombobulator.chooseDoodad, - mesh_discombobulator.unchooseDoodad -] + mesh_discombobulator.unchooseDoodad, + DISCProps +) def register(): from bpy.utils import register_class for cls in classes: register_class(cls) + bpy.types.Scene.discombobulator = PointerProperty(type=DISCProps) # Add "Extras" menu to the "Add Mesh" menu bpy.types.VIEW3D_MT_mesh_add.append(menu_func) @@ -85,6 +97,8 @@ def unregister(): from bpy.utils import unregister_class for cls in reversed(classes): unregister_class(cls) + + del bpy.types.Scene.discombobulator if __name__ == "__main__": register() diff --git a/add_mesh_discombobulator/mesh_discombobulator.py b/add_mesh_discombobulator/mesh_discombobulator.py index c5480447..c2edb673 100644 --- a/add_mesh_discombobulator/mesh_discombobulator.py +++ b/add_mesh_discombobulator/mesh_discombobulator.py @@ -321,7 +321,7 @@ def angle_between_nor(nor_orig, nor_result): return q -def doodads(object1, mesh1, dmin, dmax): +def doodads(self, object1, mesh1, dmin, dmax): """function to generate the doodads""" global dVerts global dPolygons @@ -510,7 +510,7 @@ def discombobulate(self, minHeight, maxHeight, minTaper, maxTaper, sf1, sf2, sf3 protusions_repeat(object1, mesh1, r_prot) if(len(self.DISC_doodads) != 0 and self.dodoodads and isLast): - doodads(object1, mesh1, dmin, dmax) + doodads(self, object1, mesh1, dmin, dmax) mesh2 = bpy.data.meshes.new("dood_mesh") object2 = bpy.data.objects.new("dood_obj", mesh2) bpy.context.collection.objects.link(object2) @@ -566,8 +566,10 @@ class chooseDoodad(Operator): obj_name = bpy.context.active_object.name msg = "Object with this name already saved" - if obj_name not in self.DISC_doodads: - self.DISC_doodads.append(obj_name) + DISC_doodads = context.scene.discombobulator.DISC_doodads + + if obj_name not in DISC_doodads: + DISC_doodads.append(obj_name) msg = "Saved Doodad object: {}".format(obj_name) self.report({"INFO"}, message=msg) @@ -590,15 +592,15 @@ class unchooseDoodad(Operator): def execute(self, context): msg = ("No doodads to remove") - doodadery = self.DISC_doodads - if len(doodadery) > 0: + DISC_doodads = context.scene.discombobulator.DISC_doodads + if len(DISC_doodads) > 0: if not self.remove_all: name = bpy.context.active_object.name - if name in doodadery: - self.DISC_doodads.remove(name) + if name in DISC_doodads: + DISC_doodads.remove(name) msg = ("Removed Doodad object: {}".format(name)) else: - self.DISC_doodads[:] = [] + DISC_doodads[:] = [] msg = "Removed all Doodads" else: msg = "No Doodads to Remove" @@ -639,12 +641,14 @@ class discombobulator_dodads_list(Menu): def draw(self, context): layout = self.layout + + DISC_doodads = context.scene.discombobulator.DISC_doodads - doodle = len(self.DISC_doodads) + doodle = len(DISC_doodads) layout.label(text="Saved doodads : {}".format(doodle)) layout.separator() if doodle > 0: - for name in self.DISC_doodads: + for name in DISC_doodads: layout.label(text=name) @@ -682,8 +686,7 @@ class VIEW3D_OT_tools_discombobulate(Operator): bl_options = {"REGISTER"} executing = False - - DISC_doodads = [] + # Protusions Buttons: repeatprot: IntProperty( name="Repeat protusions", @@ -785,6 +788,8 @@ class VIEW3D_OT_tools_discombobulate(Operator): def draw(self, context): layout = self.layout + + self.DISC_doodads = bpy.context.scene.discombobulator.DISC_doodads row = layout.row() row.menu("HELP_MT_discombobulator", icon="INFO") |