From 014a21b295a4e71adf33d7815a63f0e3e39e21f9 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sun, 15 Aug 2021 04:06:14 -0400 Subject: [PATCH] Remove manual stack walking for bottom layers. --- korman/exporter/material.py | 4 +--- korman/exporter/mesh.py | 8 +------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/korman/exporter/material.py b/korman/exporter/material.py index 997bbc1..c9815bd 100644 --- a/korman/exporter/material.py +++ b/korman/exporter/material.py @@ -1192,9 +1192,7 @@ class MaterialConverter: except IndexError: return None else: - while layer.underLay is not None: - layer = layer.underLay.object - return layer + return layer.bottomOfStack.object def get_bump_layer(self, bo): return self._bump_mats.get(bo, None) diff --git a/korman/exporter/mesh.py b/korman/exporter/mesh.py index c8d3d9e..8b831aa 100644 --- a/korman/exporter/mesh.py +++ b/korman/exporter/mesh.py @@ -41,18 +41,12 @@ class _GeoSpan: """Determines the color all vertex colors should be multipled by in this span.""" if self.geospan.props & plGeometrySpan.kDiffuseFoldedIn: color = bm.diffuse_color - base_layer = self._find_bottom_of_stack() + base_layer = self.geospan.material.object.layers[0].object.bottomOfStack.object return (color.r, color.b, color.g, base_layer.opacity) if not bo.plasma_modifiers.lighting.preshade: return (0.0, 0.0, 0.0, 0.0) return (1.0, 1.0, 1.0, 1.0) - def _find_bottom_of_stack(self) -> plLayerInterface: - base_layer = self.geospan.material.object.layers[0].object - while base_layer.underLay is not None: - base_layer = base_layer.underLay.object - return base_layer - class _RenderLevel: MAJOR_OPAQUE = 0