From 2bc7428826443fd622b41953d05d7fce98d4a885 Mon Sep 17 00:00:00 2001 From: Artem30801 Date: Tue, 18 Aug 2020 18:52:36 +0300 Subject: [PATCH] Addon: Added drone selection operator --- .../clever-show-addon-src/__init__.py | 6 +++-- .../clever-show-addon-src/operators/select.py | 20 +++++++++++++++ .../ui/operators_panel.py | 25 +++++++++++++++++++ 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 blender-addon/clever-show-addon-src/operators/select.py create mode 100644 blender-addon/clever-show-addon-src/ui/operators_panel.py diff --git a/blender-addon/clever-show-addon-src/__init__.py b/blender-addon/clever-show-addon-src/__init__.py index 3459fe9..e09ef8f 100644 --- a/blender-addon/clever-show-addon-src/__init__.py +++ b/blender-addon/clever-show-addon-src/__init__.py @@ -5,10 +5,12 @@ from bpy.props import PointerProperty, CollectionProperty, \ StringProperty, BoolProperty, EnumProperty, FloatProperty, IntProperty from .operators.export import ExportSwarmAnimation from .operators.check import CheckSwarmAnimation +from .operators.select import SelectSwarmDrones from .operators.drone_props import DroneCustomPropsActions from .ui.drone_panel import DronePanel, CustomDroneItems from .ui.led_panel import LedPanel from .ui.swarm_panel import SwarmPanel, SwarmFilteringPanel +from .ui.operators_panel import OperatorsPanel bl_info = { "name": "clever-show animation (.anim)", @@ -167,8 +169,8 @@ class CleverLedProperties(PropertyGroup): classes1 = (CleverShowProperties, CustomDroneProperties, CleverDroneProperties, CleverLedProperties, - ExportSwarmAnimation, CheckSwarmAnimation, DroneCustomPropsActions, - SwarmPanel, CustomDroneItems, DronePanel, LedPanel, + ExportSwarmAnimation, CheckSwarmAnimation, SelectSwarmDrones, DroneCustomPropsActions, + SwarmPanel, CustomDroneItems, DronePanel, LedPanel, OperatorsPanel, ) classes2 = (SwarmFilteringPanel, ) diff --git a/blender-addon/clever-show-addon-src/operators/select.py b/blender-addon/clever-show-addon-src/operators/select.py new file mode 100644 index 0000000..541666c --- /dev/null +++ b/blender-addon/clever-show-addon-src/operators/select.py @@ -0,0 +1,20 @@ +import bpy +from bpy.types import Operator + +from .export import ExportSwarmAnimation + +class SelectSwarmDrones(Operator): + bl_idname = "clever_show.select" + bl_label = "Select clever-show drones" + + def execute(self, context): + bpy.ops.object.select_all(action='DESELECT') + drones = ExportSwarmAnimation._get_drone_objects(context) + first = True + for drone_obj in drones: + drone_obj.select_set(True) + if first: + bpy.context.view_layer.objects.active = drone_obj + first = False + + return {'FINISHED'} diff --git a/blender-addon/clever-show-addon-src/ui/operators_panel.py b/blender-addon/clever-show-addon-src/ui/operators_panel.py new file mode 100644 index 0000000..cd13448 --- /dev/null +++ b/blender-addon/clever-show-addon-src/ui/operators_panel.py @@ -0,0 +1,25 @@ +from bpy.types import Panel + + +class OperatorsPanel(Panel): + bl_space_type = 'VIEW_3D' + bl_region_type = 'UI' + bl_category = "Clever Swarm" + bl_label = "Clever Swarm Operators" + + def draw(self, context): + layout = self.layout + clever_show = context.scene.clever_show + layout.use_property_split = True + layout.use_property_decorate = False + + col = layout.column(align=True) + col.prop(clever_show, "filter_obj") + + row1 = col.row() + row1.enabled = (clever_show.filter_obj == "name") + row1.prop(clever_show, "drones_name") + + row2 = layout.row() + row2.operator("clever_show.select") + row2.enabled = (clever_show.filter_obj != "selected")