Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormeta-androcto <meta.androcto1@gmail.com>2016-08-12 10:26:04 +0300
committermeta-androcto <meta.androcto1@gmail.com>2016-08-12 10:26:04 +0300
commit840f04f1addce56c0449451091df1c90f6bbbaef (patch)
treeb2bfc416422764b113ce82180b81b2837016d3f3 /oscurart_tools/__init__.py
parenta04af35e720b10c776f2e0ea94a09c08cd14a842 (diff)
update oscurart tools: clean up & restore functions thanks lijenstina, oscurart
Diffstat (limited to 'oscurart_tools/__init__.py')
-rw-r--r--oscurart_tools/__init__.py218
1 files changed, 146 insertions, 72 deletions
diff --git a/oscurart_tools/__init__.py b/oscurart_tools/__init__.py
index 7c64b462..07beb3fc 100644
--- a/oscurart_tools/__init__.py
+++ b/oscurart_tools/__init__.py
@@ -20,18 +20,29 @@
bl_info = {
"name": "Oscurart Tools",
- "author": "Oscurart, CodemanX, Meta-Androcto",
- "version": (3, 2),
+ "author": "Oscurart, CodemanX",
+ "version": (3, 2, 1),
"blender": (2, 77, 0),
"location": "View3D > Tools > Oscurart Tools",
"description": "Tools for objects, render, shapes, and files.",
"warning": "",
"wiki_url":
"http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Oscurart_Tools",
+ "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/",
"category": "Object",
}
import bpy
+
+from . import oscurart_files
+from . import oscurart_meshes
+from . import oscurart_objects
+from . import oscurart_shapes
+from . import oscurart_render
+from . import oscurart_overrides
+from . import oscurart_animation
+
+import bpy
from bpy.types import (
AddonPreferences,
Panel,
@@ -44,62 +55,26 @@ from bpy.props import (
IntProperty,
)
-from . import oscurart_files
-from . import oscurart_meshes
-from . import oscurart_objects
-from . import oscurart_shapes
-from . import oscurart_render
-from . import oscurart_animation
-
-
class View3DOscPanel(PropertyGroup):
+ bl_space_type = 'VIEW_3D'
+ bl_region_type = 'TOOLS'
+
# CREA PANELES EN TOOLS
- osc_object_tools = BoolProperty(default=True)
- osc_mesh_tools = BoolProperty(default=True)
- osc_shapes_tools = BoolProperty(default=True)
- osc_render_tools = BoolProperty(default=True)
- osc_files_tools = BoolProperty(default=True)
- osc_animation_tools = BoolProperty(default=True)
-
- quick_animation_in = IntProperty(
- default=1
- )
- quick_animation_out = IntProperty(
- default=250
- )
- # SETEO VARIABLE DE ENTORNO
- SearchAndSelectOt = StringProperty(
- default="Object name initials"
- )
- # RENDER CROP
- rcPARTS = IntProperty(
- default=1,
- min=2,
- max=50,
- step=1
- )
- RenameObjectOt = StringProperty(
- default="Type here"
- )
-
-
-class VarColArchivos(PropertyGroup):
- filename = bpy.props.StringProperty(
- name="",
- default=""
- )
- value = bpy.props.IntProperty(
- name="",
- default=10
- )
- fullpath = bpy.props.StringProperty(
- name="",
- default=""
- )
- checkbox = bpy.props.BoolProperty(
- name="",
- default=True
- )
+ osc_object_tools = BoolProperty(default=False)
+ osc_mesh_tools = BoolProperty(default=False)
+ osc_shapes_tools = BoolProperty(default=False)
+ osc_render_tools = BoolProperty(default=False)
+ osc_files_tools = BoolProperty(default=False)
+ osc_overrides_tools = BoolProperty(default=False)
+ osc_animation_tools = BoolProperty(default=False)
+
+ # PARA ESCENAS NUEVAS
+ overrides = bpy.props.StringProperty(default="[]")
+
+
+class OscOverridesProp(PropertyGroup):
+ matoverride = bpy.props.StringProperty()
+ grooverride = bpy.props.StringProperty()
# PANELES
@@ -123,6 +98,7 @@ class OscPanelControl(Panel):
col.prop(oscurart, "osc_animation_tools", text="Animation", icon="POSE_DATA")
col.prop(oscurart, "osc_render_tools", text="Render", icon="SCENE")
col.prop(oscurart, "osc_files_tools", text="Files", icon="IMASEL")
+ col.prop(oscurart, "osc_overrides_tools", text="Overrides", icon="GREASEPENCIL")
class OscPanelObject(Panel):
@@ -149,10 +125,10 @@ class OscPanelObject(Panel):
colrow = col.row(align=1)
colrow.operator("object.objects_to_groups", icon="GROUP")
colrow = col.row(align=1)
- colrow.prop(bpy.context.scene.oscurart, "SearchAndSelectOt", text="")
+ colrow.prop(bpy.context.scene, "SearchAndSelectOt", text="")
colrow.operator("object.search_and_select_osc", icon="ZOOM_SELECTED")
colrow = col.row(align=1)
- colrow.prop(bpy.context.scene.oscurart, "RenameObjectOt", text="")
+ colrow.prop(bpy.context.scene, "RenameObjectOt", text="")
colrow.operator("object.rename_objects_osc", icon="SHORTDISPLAY")
col.operator(
"object.distribute_osc",
@@ -267,6 +243,14 @@ class OscPanelRender(Panel):
"render.copy_render_settings_osc",
icon="LIBRARY_DATA_DIRECT",
text="Copy Cycles Settings").mode = "cycles"
+ col.operator(
+ "file.create_batch_maker_osc",
+ icon="LINENUMBERS_ON",
+ text="Make Render Batch")
+ col.operator(
+ "file.create_batch_python",
+ icon="LINENUMBERS_ON",
+ text="Make Python Batch")
colrow = col.row(align=1)
colrow.operator(
"render.render_all_scenes_osc",
@@ -286,7 +270,7 @@ class OscPanelRender(Panel):
colrow = col.row(align=1)
colrow.operator("render.render_crop_osc", icon="RENDER_REGION")
- colrow.prop(bpy.context.scene.oscurart, "rcPARTS", text="Parts")
+ colrow.prop(bpy.context.scene, "rcPARTS", text="Parts")
boxcol = layout.box().column(align=1)
colrow = boxcol.row(align=1)
@@ -296,7 +280,7 @@ class OscPanelRender(Panel):
text="Selected Scenes").frametype = False
colrow.operator(
"render.render_selected_scenes_osc",
- text="> Frame").frametype = True
+ text="> Fame").frametype = True
for sc in bpy.data.scenes[:]:
boxcol.prop(sc, "use_render_scene", text=sc.name)
@@ -317,8 +301,58 @@ class OscPanelFiles(Panel):
def draw(self, context):
layout = self.layout
col = layout.column(align=1)
+ col.operator("file.save_incremental_osc", icon="NEW")
col.operator("image.reload_images_osc", icon="IMAGE_COL")
col.operator("file.sync_missing_groups", icon="LINK_AREA")
+ col = layout.column(align=1)
+ colrow = col.row(align=1)
+ colrow.prop(bpy.context.scene, "oscSearchText", text="")
+ colrow.prop(bpy.context.scene, "oscReplaceText", text="")
+ col.operator("file.replace_file_path_osc", icon="SHORTDISPLAY")
+
+
+class OscPanelOverrides(Panel):
+ bl_idname = "Oscurart Overrides"
+ bl_label = "Overrides Tools"
+ bl_category = "Oscurart Tools"
+ bl_space_type = 'VIEW_3D'
+ bl_region_type = 'TOOLS'
+ bl_options = {'DEFAULT_CLOSED'}
+
+ @classmethod
+ def poll(cls, context):
+ return context.scene.oscurart.osc_overrides_tools
+
+ def draw(self, context):
+ layout = self.layout
+ box = layout.box()
+ col = box.column(align=1)
+
+ # col.operator("render.overrides_set_list", text="Create Override
+ # List", icon="GREASEPENCIL")
+ col.label(text="Active Scene: " + bpy.context.scene.name)
+ col.label(text="Example: [[Group,Material]]")
+ col.prop(bpy.context.scene.oscurart, "overrides", text="")
+ col.operator(
+ "render.check_overrides",
+ text="Check List",
+ icon="ZOOM_ALL")
+ col.operator("render.overrides_on", text="On / Off", icon="QUIT")
+ col.label(
+ text=str("OVERRIDES: ON" if bpy.use_overrides else "OVERRIDES: OFF"))
+
+ box = layout.box()
+ boxcol = box.column(align=1)
+ boxcol.label(text="Danger Zone")
+ boxcolrow = boxcol.row(align=1)
+ boxcolrow.operator(
+ "render.apply_overrides",
+ text="Apply Overrides",
+ icon="ERROR")
+ boxcolrow.operator(
+ "render.restore_overrides",
+ text="Restore Overrides",
+ icon="ERROR")
class OscPanelAnimation(Panel):
@@ -340,8 +374,43 @@ class OscPanelAnimation(Panel):
col.operator("anim.quick_parent_osc", icon="OUTLINER_DATA_POSE")
row = col.row(align=1)
- row.prop(bpy.context.scene.oscurart, "quick_animation_in", text="")
- row.prop(bpy.context.scene.oscurart, "quick_animation_out", text="")
+ row.prop(bpy.context.scene, "quick_animation_in", text="")
+ row.prop(bpy.context.scene, "quick_animation_out", text="")
+
+
+# Addons Preferences Update Panel
+
+def update_panel(self, context):
+ try:
+ bpy.utils.unregister_class(OscPanelControl)
+ bpy.utils.unregister_class(OscPanelObject)
+ bpy.utils.unregister_class(OscPanelMesh)
+ bpy.utils.unregister_class(OscPanelShapes)
+ bpy.utils.unregister_class(OscPanelRender)
+ bpy.utils.unregister_class(OscPanelFiles)
+ bpy.utils.unregister_class(OscPanelOverrides)
+ bpy.utils.unregister_class(OscPanelAnimation)
+ except:
+ pass
+
+ addon_prefs = context.user_preferences.addons[__name__].preferences
+
+ OscPanelControl.bl_category = addon_prefs.category
+ bpy.utils.register_class(OscPanelControl)
+ OscPanelObject.bl_category = addon_prefs.category
+ bpy.utils.register_class(OscPanelObject)
+ OscPanelMesh.bl_category = addon_prefs.category
+ bpy.utils.register_class(OscPanelMesh)
+ OscPanelShapes.bl_category = addon_prefs.category
+ bpy.utils.register_class(OscPanelShapes)
+ OscPanelRender.bl_category = addon_prefs.category
+ bpy.utils.register_class(OscPanelRender)
+ OscPanelFiles.bl_category = addon_prefs.category
+ bpy.utils.register_class(OscPanelFiles)
+ OscPanelOverrides.bl_category = addon_prefs.category
+ bpy.utils.register_class(OscPanelOverrides)
+ OscPanelAnimation.bl_category = addon_prefs.category
+ bpy.utils.register_class(OscPanelAnimation)
class OscurartToolsAddonPreferences(bpy.types.AddonPreferences):
@@ -349,13 +418,15 @@ class OscurartToolsAddonPreferences(bpy.types.AddonPreferences):
# when defining this in a submodule of a python package.
bl_idname = __name__
- category = StringProperty(
+ category = bpy.props.StringProperty(
name="Category",
description="Choose a name for the category of the panel",
default="Oscurart Tools",
+ update=update_panel,
)
def draw(self, context):
+
layout = self.layout
row = layout.row()
col = row.column()
@@ -368,20 +439,23 @@ class OscurartToolsAddonPreferences(bpy.types.AddonPreferences):
def register():
bpy.utils.register_module(__name__)
- bpy.types.Scene.oscurart = bpy.props.PointerProperty(
- type=View3DOscPanel
- )
- bpy.types.Scene.use_render_scene = bpy.props.BoolProperty()
+ bpy.types.Scene.oscurart = bpy.props.PointerProperty(type=View3DOscPanel)
+
+ bpy.types.Scene.ovlist = bpy.props.CollectionProperty(type=OscOverridesProp)
- bpy.types.Scene.broken_files = bpy.props.CollectionProperty(
- type=VarColArchivos
- )
+ bpy.types.Scene.quick_animation_in = bpy.props.IntProperty(default=1)
+ bpy.types.Scene.quick_animation_out = bpy.props.IntProperty(default=250)
+
+ # SETEO VARIABLE DE ENTORNO
+ bpy.types.Scene.SearchAndSelectOt = bpy.props.StringProperty(
+ default="Object name initials")
def unregister():
del bpy.types.Scene.oscurart
- del bpy.types.Scene.use_render_scene
- del bpy.types.Scene.broken_files
+ del bpy.types.Scene.quick_animation_in
+ del bpy.types.Scene.quick_animation_out
+ del bpy.types.Scene.SearchAndSelectOt
bpy.utils.unregister_module(__name__)