56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
import importlib
|
|
|
|
import bpy
|
|
|
|
from abrasion.blender.export import export
|
|
|
|
|
|
def console_print(context, *args, **kwargs):
|
|
for a in context.screen.areas:
|
|
if a.type != 'CONSOLE':
|
|
continue
|
|
|
|
c = {}
|
|
c['area'] = a
|
|
c['space_data'] = a.spaces.active
|
|
c['region'] = a.regions[-1]
|
|
c['window'] = context.window
|
|
c['screen'] = context.screen
|
|
s = " ".join([str(arg) for arg in args])
|
|
for line in s.split("\n"):
|
|
line = '[abrasion] ' + line
|
|
bpy.ops.console.scrollback_append(c, text=line)
|
|
|
|
|
|
class OUTLINER_OT_collection_abrasion(bpy.types.Operator):
|
|
"""Foo."""
|
|
bl_idname = "outliner.collection_abrasion"
|
|
bl_label = "Export Abrasion Q3M"
|
|
|
|
@classmethod
|
|
def poll(cls, context):
|
|
return context.collection is not None
|
|
|
|
def execute(self, context):
|
|
export(
|
|
context,
|
|
context.collection.all_objects.values(),
|
|
context.collection.name,
|
|
)
|
|
return {'FINISHED'}
|
|
|
|
def menu_func(self, context):
|
|
layout = self.layout
|
|
layout.separator()
|
|
layout.operator(OUTLINER_OT_collection_abrasion.bl_idname)
|
|
|
|
def register():
|
|
bpy.utils.register_class(OUTLINER_OT_collection_abrasion)
|
|
bpy.types.OUTLINER_MT_collection.append(menu_func)
|
|
print("Abrasion: Registered.")
|
|
|
|
def unregister():
|
|
bpy.utils.unregister_class(OUTLINER_OT_collection_abrasion)
|
|
bpy.types.OUTLINER_MT_collection.remove(menu_func)
|
|
print("Abrasion: Unregistered.")
|