[Bf-extensions-cvs] [bca9889b] master: OscurartTools/overrides: Now support linked collections

Eugenio Pignataro noreply at git.blender.org
Fri Aug 9 16:25:15 CEST 2019


Commit: bca9889b7b6c737bd4b12e32f2fec55353457afb
Author: Eugenio Pignataro
Date:   Fri Aug 9 11:25:08 2019 -0300
Branches: master
https://developer.blender.org/rBAbca9889b7b6c737bd4b12e32f2fec55353457afb

OscurartTools/overrides: Now support linked collections

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

M	oscurart_tools/render/material_overrides.py

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

diff --git a/oscurart_tools/render/material_overrides.py b/oscurart_tools/render/material_overrides.py
index 45545f8c..3cfd68fd 100644
--- a/oscurart_tools/render/material_overrides.py
+++ b/oscurart_tools/render/material_overrides.py
@@ -1,28 +1,33 @@
 # ------------------------------------------------
 
 
-obDict = []
+obDict = {}
 import bpy
 from bpy.app.handlers import persistent
 
 
 @persistent
 def ApplyOverrides(dummy):
-    global obDict    
+    global obDict 
+
+    for override in bpy.context.scene.ovlist:
+        for ob in bpy.data.collections[override.grooverride].objects:
+            if ob.type == "MESH":
+                obDict[ob] = ob.data.materials[0]
+
     for override in bpy.context.scene.ovlist:
+        obMss = {}
         for ob in bpy.data.collections[override.grooverride].objects:
-            obMss = {}
-            for i,ms in enumerate(ob.material_slots):
-                obMss[i] = ms.material
-                ms.material = bpy.data.materials[override.matoverride]      
-            obDict.append([ob,obMss])  
+            if ob.type == "MESH":
+                obMss[ob] = ob.data.materials[0]
+                ob.data.materials[0] = bpy.data.materials[override.matoverride] 
 
 @persistent
 def RestoreOverrides(dummy):
     global obDict
-    for ob in obDict:
-        for ms,material in ob[1].items():
-            ob[0].material_slots[ms].material = material
+    for ob,mat in obDict.items():
+        if ob.type == "MESH":
+            ob.data.materials[0] = mat
             
 
 # ---------------------------------------------------



More information about the Bf-extensions-cvs mailing list