Show command visuals when inspecting blocks.
This commit is contained in:
parent
f43e5e0bc6
commit
2f742a77a2
@ -8,9 +8,10 @@ import traceback
|
|||||||
from PySide import QtGui
|
from PySide import QtGui
|
||||||
from mcedit2.command import SimpleRevisionCommand
|
from mcedit2.command import SimpleRevisionCommand
|
||||||
from mcedit2.rendering import depths
|
from mcedit2.rendering import depths
|
||||||
|
from mcedit2.rendering.command_visuals import CommandVisuals
|
||||||
from mcedit2.rendering.scenegraph import scenenode
|
from mcedit2.rendering.scenegraph import scenenode
|
||||||
from mcedit2.rendering.selection import SelectionBoxNode
|
from mcedit2.rendering.selection import SelectionBoxNode
|
||||||
|
from mcedit2.util.commandblock import ParseCommand
|
||||||
from mcedit2.widgets.inspector.tileentities.chest import ChestEditorWidget, DispenserEditorWidget, HopperEditorWidget
|
from mcedit2.widgets.inspector.tileentities.chest import ChestEditorWidget, DispenserEditorWidget, HopperEditorWidget
|
||||||
from mcedit2.util.load_ui import load_ui
|
from mcedit2.util.load_ui import load_ui
|
||||||
from mcedit2.widgets.inspector.tileentities.command import CommandBlockEditorWidget
|
from mcedit2.widgets.inspector.tileentities.command import CommandBlockEditorWidget
|
||||||
@ -67,6 +68,8 @@ class InspectorWidget(QtGui.QWidget):
|
|||||||
|
|
||||||
self.overlayNode.addChild(self.selectionNode)
|
self.overlayNode.addChild(self.selectionNode)
|
||||||
|
|
||||||
|
self.commandBlockVisualsNode = None
|
||||||
|
|
||||||
self.chunkTabWidget.currentChanged.connect(self.chunkTabDidChange)
|
self.chunkTabWidget.currentChanged.connect(self.chunkTabDidChange)
|
||||||
|
|
||||||
self.terrainPopulatedInput.toggled.connect(self.terrainPopulatedDidChange)
|
self.terrainPopulatedInput.toggled.connect(self.terrainPopulatedDidChange)
|
||||||
@ -81,8 +84,14 @@ class InspectorWidget(QtGui.QWidget):
|
|||||||
def show(self, *args, **kwargs):
|
def show(self, *args, **kwargs):
|
||||||
super(InspectorWidget, self).show(*args, **kwargs)
|
super(InspectorWidget, self).show(*args, **kwargs)
|
||||||
self.overlayNode.visible = True
|
self.overlayNode.visible = True
|
||||||
|
|
||||||
|
def clearVisuals(self):
|
||||||
|
if self.commandBlockVisualsNode:
|
||||||
|
self.overlayNode.removeChild(self.commandBlockVisualsNode)
|
||||||
|
self.commandBlockVisualsNode = None
|
||||||
|
|
||||||
def inspectBlock(self, pos):
|
def inspectBlock(self, pos):
|
||||||
|
self.clearVisuals()
|
||||||
self.entity = None
|
self.entity = None
|
||||||
|
|
||||||
self.stackedWidget.setCurrentWidget(self.pageInspectBlock)
|
self.stackedWidget.setCurrentWidget(self.pageInspectBlock)
|
||||||
@ -139,9 +148,20 @@ class InspectorWidget(QtGui.QWidget):
|
|||||||
blockBox = BoundingBox((x, y, z), (1, 1, 1))
|
blockBox = BoundingBox((x, y, z), (1, 1, 1))
|
||||||
|
|
||||||
self.selectionNode.selectionBox = blockBox
|
self.selectionNode.selectionBox = blockBox
|
||||||
|
if self.tileEntity is not None:
|
||||||
|
if self.tileEntity.id == "Control":
|
||||||
|
try:
|
||||||
|
commandObj = ParseCommand(self.tileEntity.Command)
|
||||||
|
visuals = CommandVisuals((x, y, z), commandObj)
|
||||||
|
self.commandBlockVisualsNode = visuals
|
||||||
|
self.overlayNode.addChild(visuals)
|
||||||
|
except Exception as e:
|
||||||
|
log.warn("Failed to parse command.", exc_info=1)
|
||||||
|
|
||||||
|
|
||||||
def inspectEntity(self, entity):
|
def inspectEntity(self, entity):
|
||||||
self.tileEntity = None
|
self.tileEntity = None
|
||||||
|
self.clearVisuals()
|
||||||
|
|
||||||
self.entity = entity
|
self.entity = entity
|
||||||
self.stackedWidget.setCurrentWidget(self.pageInspectEntity)
|
self.stackedWidget.setCurrentWidget(self.pageInspectEntity)
|
||||||
@ -165,6 +185,8 @@ class InspectorWidget(QtGui.QWidget):
|
|||||||
self.selectionNode.selectionBox = entityBox
|
self.selectionNode.selectionBox = entityBox
|
||||||
|
|
||||||
def inspectChunk(self, cx, cz):
|
def inspectChunk(self, cx, cz):
|
||||||
|
self.clearVisuals()
|
||||||
|
|
||||||
dim = self.editorSession.currentDimension
|
dim = self.editorSession.currentDimension
|
||||||
if dim.containsChunk(cx, cz):
|
if dim.containsChunk(cx, cz):
|
||||||
chunk = dim.getChunk(cx, cz)
|
chunk = dim.getChunk(cx, cz)
|
||||||
|
Reference in New Issue
Block a user