Collapse some one-child nodes in WorldScene into their parents
This commit is contained in:
parent
983bec64ff
commit
df15798a6e
@ -206,19 +206,17 @@ class WorldScene(scenenode.Node):
|
|||||||
self.depthOffset = DepthOffset(DepthOffsets.Renderer)
|
self.depthOffset = DepthOffset(DepthOffsets.Renderer)
|
||||||
self.addState(self.depthOffset)
|
self.addState(self.depthOffset)
|
||||||
|
|
||||||
self.textureAtlasNode = Node()
|
|
||||||
self.textureAtlasState = TextureAtlasState(textureAtlas)
|
self.textureAtlasState = TextureAtlasState(textureAtlas)
|
||||||
self.textureAtlasNode.addState(self.textureAtlasState)
|
self.addState(self.textureAtlasState)
|
||||||
self.addChild(self.textureAtlasNode)
|
|
||||||
|
|
||||||
self.renderstateNodes = {}
|
self.renderstateNodes = {}
|
||||||
for rsClass in renderstates.allRenderstates:
|
for rsClass in renderstates.allRenderstates:
|
||||||
rsNode = Node()
|
groupNode = ChunkGroupNode()
|
||||||
rsNode.addState(rsClass())
|
groupNode.name = rsClass.__name__
|
||||||
self.textureAtlasNode.addChild(rsNode)
|
groupNode.addState(rsClass())
|
||||||
self.renderstateNodes[rsClass] = rsNode
|
self.addChild(groupNode)
|
||||||
|
self.renderstateNodes[rsClass] = groupNode
|
||||||
|
|
||||||
self.groupNodes = {} # by renderstate
|
|
||||||
self.chunkRenderInfo = {}
|
self.chunkRenderInfo = {}
|
||||||
self.visibleLayers = set(Layer.DefaultVisibleLayers)
|
self.visibleLayers = set(Layer.DefaultVisibleLayers)
|
||||||
|
|
||||||
@ -244,11 +242,7 @@ class WorldScene(scenenode.Node):
|
|||||||
return self.chunkRenderInfo.iterkeys()
|
return self.chunkRenderInfo.iterkeys()
|
||||||
|
|
||||||
def getRenderstateGroup(self, rsClass):
|
def getRenderstateGroup(self, rsClass):
|
||||||
groupNode = self.groupNodes.get(rsClass)
|
groupNode = self.renderstateNodes.get(rsClass)
|
||||||
if groupNode is None:
|
|
||||||
groupNode = ChunkGroupNode()
|
|
||||||
self.groupNodes[rsClass] = groupNode
|
|
||||||
self.renderstateNodes[rsClass].addChild(groupNode)
|
|
||||||
|
|
||||||
return groupNode
|
return groupNode
|
||||||
|
|
||||||
@ -256,7 +250,7 @@ class WorldScene(scenenode.Node):
|
|||||||
"""
|
"""
|
||||||
Discard the chunk at the given position from the scene
|
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)
|
groupNode.discardChunkNode(cx, cz)
|
||||||
self.chunkRenderInfo.pop((cx, cz), None)
|
self.chunkRenderInfo.pop((cx, cz), None)
|
||||||
|
|
||||||
@ -265,7 +259,7 @@ class WorldScene(scenenode.Node):
|
|||||||
self.discardChunk(cx, cz)
|
self.discardChunk(cx, cz)
|
||||||
|
|
||||||
def discardAllChunks(self):
|
def discardAllChunks(self):
|
||||||
for groupNode in self.groupNodes.itervalues():
|
for groupNode in self.renderstateNodes.itervalues():
|
||||||
groupNode.clear()
|
groupNode.clear()
|
||||||
self.chunkRenderInfo.clear()
|
self.chunkRenderInfo.clear()
|
||||||
|
|
||||||
@ -343,7 +337,7 @@ class WorldScene(scenenode.Node):
|
|||||||
else:
|
else:
|
||||||
self.visibleLayers.discard(layerName)
|
self.visibleLayers.discard(layerName)
|
||||||
|
|
||||||
for groupNode in self.groupNodes.itervalues():
|
for groupNode in self.renderstateNodes.itervalues():
|
||||||
groupNode.setLayerVisible(layerName, visible)
|
groupNode.setLayerVisible(layerName, visible)
|
||||||
|
|
||||||
def setVisibleLayers(self, layerNames):
|
def setVisibleLayers(self, layerNames):
|
||||||
|
Reference in New Issue
Block a user