[Bf-extensions-cvs] [d48ae596] master: Overrides New Feature: Change object material

Eugenio Pignataro noreply at git.blender.org
Tue Jun 30 17:43:27 CEST 2020


Commit: d48ae596b0571643a95de0eacf8be2285693f1c1
Author: Eugenio Pignataro
Date:   Tue Jun 30 12:43:20 2020 -0300
Branches: master
https://developer.blender.org/rBAd48ae596b0571643a95de0eacf8be2285693f1c1

Overrides New Feature: Change object material

===================================================================

M	oscurart_tools/render/material_overrides.py

===================================================================

diff --git a/oscurart_tools/render/material_overrides.py b/oscurart_tools/render/material_overrides.py
index e35a6d8f..3ba5b17c 100644
--- a/oscurart_tools/render/material_overrides.py
+++ b/oscurart_tools/render/material_overrides.py
@@ -14,19 +14,25 @@ def ApplyOverrides(dummy):
         
         # set collections clean name
         collClean = override.colloverride   
+        obClean = override.oboverride
         
-        for ob in collClean.all_objects:
-            if ob.type == "MESH":
-                if not ob.hide_viewport and not ob.hide_render:
-                    obDict.append([ob,[mat for mat in ob.data.materials]])
-            if ob.type == "EMPTY":
-                if not ob.instance_collection == None:
-                        for iob in ob.instance_collection.all_objects:
-                            if iob.type == "MESH":
-                                if not iob.hide_viewport and not iob.hide_render:
-                                    obDict.append([iob,[mat for mat in iob.data.materials]])                  
-                            
-
+        
+        
+        if collClean != None:
+            for ob in collClean.all_objects:
+                if ob.type == "MESH": #si es un mesh
+                    if not ob.hide_viewport and not ob.hide_render:
+                        obDict.append([ob,[mat for mat in ob.data.materials]])
+                if ob.type == "EMPTY": #si es un coleccion instance
+                    if not ob.instance_collection == None:
+                            for iob in ob.instance_collection.all_objects:
+                                if iob.type == "MESH":
+                                    if not iob.hide_viewport and not iob.hide_render:
+                                        obDict.append([iob,[mat for mat in iob.data.materials]])                  
+        else:
+            obDict.append([obClean,[mat for mat in obClean.data.materials]])    
+            
+            
     for override in bpy.context.scene.ovlist:
         
         # set collections clean name
@@ -34,19 +40,24 @@ def ApplyOverrides(dummy):
         # set material clean name    
         matClean = override.matoverride      
             
-        
-        for ob in collClean.all_objects:
-            if ob.type == "MESH":
-                if not ob.hide_viewport and not ob.hide_render:
-                    for i,mat  in enumerate(ob.data.materials):
-                        ob.data.materials[i] = matClean
-            if ob.type == "EMPTY":
-                if not ob.instance_collection == None:
-                        for iob in ob.instance_collection.all_objects:
-                            if iob.type == "MESH":
-                                if not iob.hide_viewport and not iob.hide_render:
-                                    for i,mat  in enumerate(iob.data.materials):
-                                        iob.data.materials[i] = matClean                 
+        if collClean != None:
+            for ob in collClean.all_objects:
+                if ob.type == "MESH":
+                    if not ob.hide_viewport and not ob.hide_render:
+                        for i,mat  in enumerate(ob.data.materials):
+                            ob.data.materials[i] = matClean
+                if ob.type == "EMPTY":
+                    if not ob.instance_collection == None:
+                            for iob in ob.instance_collection.all_objects:
+                                if iob.type == "MESH":
+                                    if not iob.hide_viewport and not iob.hide_render:
+                                        for i,mat  in enumerate(iob.data.materials):
+                                            iob.data.materials[i] = matClean    
+        else:
+            if obClean.type == "MESH":
+                if not obClean.hide_viewport and not obClean.hide_render:  
+                      for i,mat  in enumerate(obClean.data.materials):   
+                             obClean.data.materials[i] = matClean                                                
 
 
 @persistent
@@ -69,7 +80,12 @@ class OscOverridesProp(bpy.types.PropertyGroup):
                 name="Collection Override",
                 type=bpy.types.Collection,
                 description="All objects in this collection will be override",
-                )   
+                )  
+    oboverride: bpy.props.PointerProperty(
+                name="Object Override",
+                type=bpy.types.Object,
+                description="Only this object will be override.",
+                )                  
     matoverride: bpy.props.PointerProperty(
                 name="Material Override",
                 type=bpy.types.Material,
@@ -99,6 +115,7 @@ class OVERRIDES_PT_OscOverridesGUI(bpy.types.Panel):
         for i, m in enumerate(bpy.context.scene.ovlist):
             colrow = col.row(align=1)
             colrow.prop(m, "colloverride", text="")  
+            colrow.prop(m, "oboverride", text="") 
             colrow.prop(m, "matoverride", text="")                      
             if i != len(bpy.context.scene.ovlist) - 1:
                 pa = colrow.operator(



More information about the Bf-extensions-cvs mailing list