From df15798a6e86b3de4a9ba5a36178c7418c5c904a Mon Sep 17 00:00:00 2001 From: David Vierra Date: Sat, 7 Nov 2015 06:25:58 -1000 Subject: [PATCH] Collapse some one-child nodes in WorldScene into their parents --- src/mcedit2/rendering/worldscene.py | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/mcedit2/rendering/worldscene.py b/src/mcedit2/rendering/worldscene.py index 4617f51..c49eeac 100644 --- a/src/mcedit2/rendering/worldscene.py +++ b/src/mcedit2/rendering/worldscene.py @@ -206,19 +206,17 @@ class WorldScene(scenenode.Node): self.depthOffset = DepthOffset(DepthOffsets.Renderer) self.addState(self.depthOffset) - self.textureAtlasNode = Node() self.textureAtlasState = TextureAtlasState(textureAtlas) - self.textureAtlasNode.addState(self.textureAtlasState) - self.addChild(self.textureAtlasNode) + self.addState(self.textureAtlasState) self.renderstateNodes = {} for rsClass in renderstates.allRenderstates: - rsNode = Node() - rsNode.addState(rsClass()) - self.textureAtlasNode.addChild(rsNode) - self.renderstateNodes[rsClass] = rsNode + groupNode = ChunkGroupNode() + groupNode.name = rsClass.__name__ + groupNode.addState(rsClass()) + self.addChild(groupNode) + self.renderstateNodes[rsClass] = groupNode - self.groupNodes = {} # by renderstate self.chunkRenderInfo = {} self.visibleLayers = set(Layer.DefaultVisibleLayers) @@ -244,11 +242,7 @@ class WorldScene(scenenode.Node): return self.chunkRenderInfo.iterkeys() def getRenderstateGroup(self, rsClass): - groupNode = self.groupNodes.get(rsClass) - if groupNode is None: - groupNode = ChunkGroupNode() - self.groupNodes[rsClass] = groupNode - self.renderstateNodes[rsClass].addChild(groupNode) + groupNode = self.renderstateNodes.get(rsClass) return groupNode @@ -256,7 +250,7 @@ class WorldScene(scenenode.Node): """ Discard the chunk at the given position from the scene """ - for groupNode in self.groupNodes.itervalues(): + for groupNode in self.renderstateNodes.itervalues(): groupNode.discardChunkNode(cx, cz) self.chunkRenderInfo.pop((cx, cz), None) @@ -265,7 +259,7 @@ class WorldScene(scenenode.Node): self.discardChunk(cx, cz) def discardAllChunks(self): - for groupNode in self.groupNodes.itervalues(): + for groupNode in self.renderstateNodes.itervalues(): groupNode.clear() self.chunkRenderInfo.clear() @@ -343,7 +337,7 @@ class WorldScene(scenenode.Node): else: self.visibleLayers.discard(layerName) - for groupNode in self.groupNodes.itervalues(): + for groupNode in self.renderstateNodes.itervalues(): groupNode.setLayerVisible(layerName, visible) def setVisibleLayers(self, layerNames):