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:
authorEugenio Pignataro <info@oscurart.com.ar>2019-08-09 17:25:08 +0300
committerEugenio Pignataro <info@oscurart.com.ar>2019-08-09 17:25:08 +0300
commitbca9889b7b6c737bd4b12e32f2fec55353457afb (patch)
tree20882f8ab922df56e83498ee37183c17918a68ba
parent7008857ef02c89def879d25aa5ba14c35293c0f3 (diff)
OscurartTools/overrides: Now support linked collections
-rw-r--r--oscurart_tools/render/material_overrides.py25
1 files changed, 15 insertions, 10 deletions
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
# ---------------------------------------------------