diff options
author | Eugenio Pignataro <info@oscurart.com.ar> | 2019-08-09 17:25:08 +0300 |
---|---|---|
committer | Eugenio Pignataro <info@oscurart.com.ar> | 2019-08-09 17:25:08 +0300 |
commit | bca9889b7b6c737bd4b12e32f2fec55353457afb (patch) | |
tree | 20882f8ab922df56e83498ee37183c17918a68ba | |
parent | 7008857ef02c89def879d25aa5ba14c35293c0f3 (diff) |
OscurartTools/overrides: Now support linked collections
-rw-r--r-- | oscurart_tools/render/material_overrides.py | 25 |
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 # --------------------------------------------------- |