Refactor PendingImportNode to contain a translate node rather than be one

This commit is contained in:
David Vierra 2015-10-01 17:49:02 -10:00
parent a91d6b3441
commit cc569bce1c

View File

@ -11,6 +11,7 @@ from mcedit2.editorsession import PendingImport
from mcedit2.editortools import EditorTool from mcedit2.editortools import EditorTool
from mcedit2.command import SimpleRevisionCommand from mcedit2.command import SimpleRevisionCommand
from mcedit2.rendering.scenegraph.matrix import TranslateNode from mcedit2.rendering.scenegraph.matrix import TranslateNode
from mcedit2.rendering.scenegraph.scenenode import Node
from mcedit2.rendering.selection import SelectionBoxNode, SelectionFaceNode, boxFaceUnderCursor from mcedit2.rendering.selection import SelectionBoxNode, SelectionFaceNode, boxFaceUnderCursor
from mcedit2.rendering.scenegraph import scenenode from mcedit2.rendering.scenegraph import scenenode
from mcedit2.rendering.depths import DepthOffset from mcedit2.rendering.depths import DepthOffset
@ -81,23 +82,24 @@ class MoveFinishCommand(SimpleRevisionCommand):
self.moveTool.removePendingImport(self.pendingImport) self.moveTool.removePendingImport(self.pendingImport)
class PendingImportNode(TranslateNode): class PendingImportNode(Node):
def __init__(self, pendingImport, textureAtlas): def __init__(self, pendingImport, textureAtlas):
super(PendingImportNode, self).__init__() super(PendingImportNode, self).__init__()
self.pendingImport = pendingImport self.pendingImport = pendingImport
self.pos = pendingImport.pos
dim = pendingImport.sourceDim dim = pendingImport.sourceDim
self.positionTranslateNode = TranslateNode()
self.addChild(self.positionTranslateNode)
self.worldSceneTranslateNode = TranslateNode() self.worldSceneTranslateNode = TranslateNode()
self.worldScene = WorldScene(dim, textureAtlas, bounds=pendingImport.selection) self.worldScene = WorldScene(dim, textureAtlas, bounds=pendingImport.selection)
self.worldScene.depthOffsetNode.depthOffset = DepthOffset.PreviewRenderer self.worldScene.depthOffsetNode.depthOffset = DepthOffset.PreviewRenderer
self.worldSceneTranslateNode.translateOffset = -self.pendingImport.selection.origin self.worldSceneTranslateNode.translateOffset = -self.pendingImport.selection.origin
self.worldSceneTranslateNode.addChild(self.worldScene) self.worldSceneTranslateNode.addChild(self.worldScene)
self.addChild(self.worldSceneTranslateNode) self.positionTranslateNode.addChild(self.worldSceneTranslateNode)
box = BoundingBox((0, 0, 0), pendingImport.bounds.size) box = BoundingBox(self.pos, pendingImport.bounds.size)
self.outlineNode = SelectionBoxNode() self.outlineNode = SelectionBoxNode()
self.outlineNode.filled = False self.outlineNode.filled = False
self.outlineNode.selectionBox = box self.outlineNode.selectionBox = box
@ -107,17 +109,22 @@ class PendingImportNode(TranslateNode):
self.faceHoverNode.selectionBox = box self.faceHoverNode.selectionBox = box
self.addChild(self.faceHoverNode) self.addChild(self.faceHoverNode)
self.pos = pendingImport.pos
self.loader = WorldLoader(self.worldScene, self.loader = WorldLoader(self.worldScene,
list(pendingImport.selection.chunkPositions())) list(pendingImport.selection.chunkPositions()))
self.loader.timer.start() self.loader.timer.start()
@property @property
def pos(self): def pos(self):
return self.translateOffset return self.positionTranslateNode.translateOffset
@pos.setter @pos.setter
def pos(self, value): def pos(self, value):
self.translateOffset = value self.positionTranslateNode.translateOffset = value
bounds = BoundingBox(value, self.pendingImport.bounds.size)
self.outlineNode.selectionBox = bounds
self.faceHoverNode.selectionBox = bounds
def hoverFace(self, face): def hoverFace(self, face):
if face is not None: if face is not None: