Addon: Added drone selection operator

This commit is contained in:
Artem30801
2020-08-18 18:52:36 +03:00
parent 053095415a
commit 2bc7428826
3 changed files with 49 additions and 2 deletions

View File

@@ -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, )

View File

@@ -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'}

View File

@@ -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")