mirror of
https://github.com/CopterExpress/clever-show.git
synced 2026-05-26 07:07:58 +00:00
Addon: Added drone selection operator
This commit is contained in:
@@ -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, )
|
||||
|
||||
|
||||
20
blender-addon/clever-show-addon-src/operators/select.py
Normal file
20
blender-addon/clever-show-addon-src/operators/select.py
Normal 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'}
|
||||
25
blender-addon/clever-show-addon-src/ui/operators_panel.py
Normal file
25
blender-addon/clever-show-addon-src/ui/operators_panel.py
Normal 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")
|
||||
Reference in New Issue
Block a user