Refactor PendingImportNode to contain a translate node rather than be one
This commit is contained in:
parent
a91d6b3441
commit
cc569bce1c
@ -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:
|
||||||
|
Reference in New Issue
Block a user