Add coordinate inputs to block inspector

This commit is contained in:
David Vierra 2015-12-07 19:16:21 -10:00
parent d299a9a37d
commit aefa3f774b
2 changed files with 51 additions and 13 deletions

View File

@ -41,9 +41,12 @@
</widget>
</item>
<item>
<widget class="QLabel" name="blockXLabel">
<property name="text">
<string>(x)</string>
<widget class="QSpinBox" name="blockXSpinBox">
<property name="minimum">
<number>-2147483647</number>
</property>
<property name="maximum">
<number>2147483647</number>
</property>
</widget>
</item>
@ -55,9 +58,12 @@
</widget>
</item>
<item>
<widget class="QLabel" name="blockYLabel">
<property name="text">
<string>(y)</string>
<widget class="QSpinBox" name="blockYSpinBox">
<property name="minimum">
<number>-2147483647</number>
</property>
<property name="maximum">
<number>2147483647</number>
</property>
</widget>
</item>
@ -69,9 +75,12 @@
</widget>
</item>
<item>
<widget class="QLabel" name="blockZLabel">
<property name="text">
<string>(z)</string>
<widget class="QSpinBox" name="blockZSpinBox">
<property name="minimum">
<number>-2147483647</number>
</property>
<property name="maximum">
<number>2147483647</number>
</property>
</widget>
</item>

View File

@ -15,6 +15,7 @@ from mcedit2.ui.inspector import Ui_inspectorWidget
from mcedit2.util.commandblock import ParseCommand
from mcedit2.widgets.inspector.tileentities.chest import ChestEditorWidget, DispenserEditorWidget, HopperEditorWidget
from mcedit2.widgets.inspector.tileentities.command import CommandBlockEditorWidget
from mceditlib.geometry import Vector
from mceditlib.selection import BoundingBox
log = logging.getLogger(__name__)
@ -59,6 +60,7 @@ class InspectorWidget(QtGui.QWidget, Ui_inspectorWidget):
self.tileEntity = None
self.entity = None
self.blockPos = None
self.currentChunk = None
@ -78,7 +80,31 @@ class InspectorWidget(QtGui.QWidget, Ui_inspectorWidget):
self.lightPopulatedInput.toggled.connect(self.lightPopulatedDidChange)
self.inhabitedTimeInput.valueChanged.connect(self.inhabitedTimeDidChange)
self.updateTimeInput.valueChanged.connect(self.updateTimeDidChange)
self.blockXSpinBox.valueChanged.connect(self.blockXChanged)
self.blockYSpinBox.valueChanged.connect(self.blockYChanged)
self.blockZSpinBox.valueChanged.connect(self.blockZChanged)
def _changed(self, value, idx):
if self.blockPos is None:
return
if self.blockPos[0] == value:
return
pos = list(self.blockPos)
pos[idx] = value
self.inspectBlock(Vector(*pos))
def blockXChanged(self, value):
self._changed(value, 0)
def blockYChanged(self, value):
self._changed(value, 1)
def blockZChanged(self, value):
self._changed(value, 2)
def hide(self, *args, **kwargs):
super(InspectorWidget, self).hide(*args, **kwargs)
self.overlayNode.visible = False
@ -94,13 +120,14 @@ class InspectorWidget(QtGui.QWidget, Ui_inspectorWidget):
def inspectBlock(self, pos):
self.clearVisuals()
self.blockPos = pos
self.entity = None
self.stackedWidget.setCurrentWidget(self.pageInspectBlock)
x, y, z = pos
self.blockXLabel.setText(str(x))
self.blockYLabel.setText(str(y))
self.blockZLabel.setText(str(z))
self.blockXSpinBox.setValue(x)
self.blockYSpinBox.setValue(y)
self.blockZSpinBox.setValue(z)
blockID = self.editorSession.currentDimension.getBlockID(x, y, z)
blockData = self.editorSession.currentDimension.getBlockData(x, y, z)
@ -123,6 +150,7 @@ class InspectorWidget(QtGui.QWidget, Ui_inspectorWidget):
self.blockEditorWidget = None
self.tileEntity = self.editorSession.currentDimension.getTileEntity(pos)
log.info("Inspecting TileEntity %s at %s", self.tileEntity, pos)
if self.tileEntity is not None:
editorClass = tileEntityEditorClasses.get(self.tileEntity.id)
@ -157,6 +185,7 @@ class InspectorWidget(QtGui.QWidget, Ui_inspectorWidget):
visuals = CommandVisuals((x, y, z), commandObj)
self.commandBlockVisualsNode = visuals
self.overlayNode.addChild(visuals)
self.editorSession.updateView()
except Exception as e:
log.warn("Failed to parse command.", exc_info=1)