def __init__(self): """ An action that can be bound to a keypress or mouse button click, drag, or movement with the bound key or button held. """ super(ViewAction, self).__init__() if self.settingsKey is not None: settings = Settings() prefix = "keybindings/" try: modifiers = int( settings.value(prefix + self.settingsKey + "/modifiers", self.modifiers)) button = int( settings.value(prefix + self.settingsKey + "/button", self.button)) key = int( settings.value(prefix + self.settingsKey + "/key", self.key)) except Exception as e: log.error("Error while reading key binding:") else: self.modifiers = modifiers self.button = button self.key = key
def loadSettings(self): settings = Settings() state = settings.value("mainwindow/state", None) if state: self.restoreState(state) geometry = settings.value("mainwindow/geometry", None) if geometry: self.restoreGeometry(geometry)
def chooseOpenWorld(self): startingDir = Settings().value("open_world_dialog/starting_dir", os.path.expanduser("~")) result = QtGui.QFileDialog.getOpenFileName(self.mainWindow, self.tr("Open World, Level or Schematic"), startingDir, "All files (*.*)") if result: filename = result[0] if filename: dirname, basename = os.path.split(filename) if basename in ("level.dat", "level.dat_old"): dirname, basename = os.path.split(filename) Settings().setValue("open_world_dialog/starting_dir", dirname) self.loadFile(filename)
def __init__(self, name, parent, shortcutName=None, *args, **kwargs): super(MCEAction, self).__init__(name, parent, *args, **kwargs) self.shortcutName = shortcutName if shortcutName: settings = Settings() settingsKey = "keybinding/" + shortcutName option = settings.getOption(settingsKey) _binding_names[shortcutName] = name shortcutString = option.value() if shortcutString is not None: self.setShortcut(QtGui.QKeySequence(shortcutString)) option.valueChanged.connect(self.shortcutChanged)
def parseArgs(self, argv): parser = argparse.ArgumentParser() parser.add_argument("filename", nargs="*", help="A list of filenames to open") parser.add_argument("-resetPrefs", action='store_true', help="Reset MCEdit preferences") parser.add_argument( "-eval", type=str, help="Code to evaluate in context of current session") parser.add_argument("-view", action='store_true', help="Open the given filenames read-only") self.args = parser.parse_args(argv[1:]) if self.args.resetPrefs: Settings().clear() for filename in self.args.filename: try: # we use `unicode` filenames, but argv is `str` # should only get `str` on linux/osx - need to get wargv on windows if isinstance(filename, str): filename = filename.decode(sys.getfilesystemencoding()) if os.path.exists(filename): self.commandLineWorlds.append(filename) else: log.info("File not found: %s", filename) except EnvironmentError as e: log.info("%r", e) except UnicodeDecodeError as e: log.info("%r", e)
def parseArgs(self, argv): parser = argparse.ArgumentParser() parser.add_argument("filename", nargs="*", help="A list of filenames to open") parser.add_argument("-resetPrefs", type=bool, help="Reset MCEdit preferences") parser.add_argument( "-eval", type=str, help="Code to evaluate in context of current session") self.args = parser.parse_args(argv[1:]) if self.args.resetPrefs: Settings().clear() for filename in self.args.filename: try: if os.path.exists(filename): self.commandLineWorlds.append(filename) else: log.info("File not found: %s", filename) except EnvironmentError as e: log.info("%r", e)
def setBinding(self, button, key, modifiers): self.button = button self.key = key self.modifiers = modifiers if self.settingsKey is not None: settings = Settings() prefix = "keybindings/" settings.setValue(prefix + self.settingsKey + "/button", self.button) settings.setValue(prefix + self.settingsKey + "/key", self.key) settings.setValue(prefix + self.settingsKey + "/modifiers", int(self.modifiers))
def import_(self): # prompt for a file to import startingDir = Settings().value("import_dialog/starting_dir", getUserSchematicsDirectory()) result = QtGui.QFileDialog.getOpenFileName(QtGui.qApp.mainWindow, self.tr("Import"), startingDir, "All files (*.*)") if result: filename = result[0] if filename: self.importSchematic(filename)
def __init__(self): """ An action that can be bound to a keypress or mouse button click, drag, or movement with the bound key or button held. """ super(ViewAction, self).__init__() if self.settingsKey is not None: settings = Settings() prefix = "keybindings/" try: modifiers = int(settings.value(prefix + self.settingsKey + "/modifiers", self.modifiers)) button = int(settings.value(prefix + self.settingsKey + "/button", self.button)) key = int(settings.value(prefix + self.settingsKey + "/key", self.key)) except Exception as e: log.error("Error while reading key binding:") else: self.modifiers = modifiers self.button = button self.key = key
def export(self): # prompt for filename and format. maybe use custom browser to save to export library?? startingDir = Settings().value("import_dialog/starting_dir", getUserSchematicsDirectory()) result = QtGui.QFileDialog.getSaveFileName(QtGui.qApp.mainWindow, self.tr("Export Schematic"), startingDir, "Schematic files (*.schematic)") if result: filename = result[0] if filename: task = self.currentDimension.exportSchematicIter(self.currentSelection) schematic = showProgress("Copying...", task) schematic.saveToFile(filename)
def viewDidChange(self, view): self.miniMap.centerOnPoint(view.viewCenter()) Settings().setValue("mainwindow/currentview", view.viewID) if self.editorSession.currentTool: view.setToolCursor(self.editorSession.currentTool.cursorNode) overlayNodes = [ tool.overlayNode for tool in self.editorSession.tools if tool.overlayNode is not None ] overlayNodes.insert(0, self.editorSession.editorOverlay) view.setToolOverlays(overlayNodes) view.setFocus()
settings.setValue("mainwindow/state", self.saveState()) settings.setValue("mainwindow/geometry", self.saveGeometry()) settings.sync() def closeEvent(self, event): self.saveSettings() for editor in MCEditApp.app.sessions: if not editor.closeTab(): event.ignore() return MCEditApp.app.quit() LangSetting = Settings().getOption("app_language", str) class MCEditApp(QtGui.QApplication): def __init__(self, argv): super(MCEditApp, self).__init__(argv) MCEditApp.app = self self.ensureSingle() self.commandLineWorlds = [] self.parseArgs(argv) log.warn("UserFilesDirectory: %s", getUserFilesDirectory()) # --- Translations ---
from mcedit2.rendering.workplane import WorkplaneNode from mcedit2.util import profiler from mcedit2.util.settings import Settings from mcedit2.widgets.layout import Column, Row from mcedit2.widgets.spinslider import SpinSlider from mceditlib import faces from mceditlib.geometry import Vector from mceditlib.util.lazyprop import lazyprop from mcedit2.worldview.viewcontrols import ViewControls from mcedit2.worldview.worldview import WorldView, iterateChunks, anglesToVector from mcedit2.worldview.viewaction import ViewAction log = logging.getLogger(__name__) settings = Settings().getNamespace("worldview/camera") ViewDistanceSetting = settings.getOption("view_distance", int, 12) PerspectiveSetting = settings.getOption("perspective", bool, True) StickyMouselookSetting = settings.getOption("sticky_mouselook", bool, True) class CameraWorldViewFrame(QtGui.QWidget): def __init__(self, dimension, textureAtlas, geometryCache, shareGLWidget, *args, **kwargs): super(CameraWorldViewFrame, self).__init__(*args, **kwargs) self.worldView = view = CameraWorldView(dimension, textureAtlas, geometryCache, shareGLWidget) auxControlWidget = QtGui.QWidget()
from mcedit2.rendering import cubes from mcedit2.rendering.selection import SelectionScene, SelectionFaceNode from mcedit2.ui.selection_coord_widget import Ui_selectionCoordWidget from mcedit2.util.glutils import gl from mcedit2.rendering.depths import DepthOffsets from mcedit2.rendering.scenegraph import scenenode, rendernode from mcedit2.util.settings import Settings from mcedit2.widgets.layout import Column from mcedit2.widgets.shapewidget import ShapeWidget from mceditlib import faces from mceditlib.geometry import Vector from mceditlib.selection import BoundingBox log = logging.getLogger(__name__) SelectionOptions = Settings().getNamespace("select_tool") ClassicSelectionOption = SelectionOptions.getOption("classic_selection", bool, False) StickySelectionOption = SelectionOptions.getOption("sticky_selection", bool, False) class SelectionCoordinateWidget(QtGui.QWidget, Ui_selectionCoordWidget): def __init__(self, *args, **kwargs): super(SelectionCoordinateWidget, self).__init__(*args, **kwargs) self.setupUi(self) self.xMinInput.valueChanged.connect(self.setMinX) self.yMinInput.valueChanged.connect(self.setMinY) self.zMinInput.valueChanged.connect(self.setMinZ) self.xMaxInput.valueChanged.connect(self.setMaxX) self.yMaxInput.valueChanged.connect(self.setMaxY) self.zMaxInput.valueChanged.connect(self.setMaxZ)
from mcedit2.util.worldloader import LoaderTimer from mcedit2.widgets.layout import Column, Row, setWidgetError from mcedit2.worldview.minimap import MinimapWorldView from mceditlib.anvil.adapter import AnvilWorldAdapter from mceditlib.geometry import Vector from mceditlib.exceptions import LevelFormatError, PlayerNotFound from mceditlib import worldeditor import logging from mceditlib.findadapter import isLevel from mceditlib.worldeditor import WorldEditor log = logging.getLogger(__name__) WorldListSettings = Settings().getNamespace('world_list') WorldListSettings.allSavesFolders = WorldListSettings.getOption('saves_folders', 'json', []) WorldListSettings.currentSavesFolder = WorldListSettings.getOption('current_saves_folder', unicode, '') WorldListSettings.lastChosenSavesFolder = WorldListSettings.getOption('last_chosen_saves_folder', unicode, '') class WorldListItemWidget(QtGui.QWidget): doubleClicked = QtCore.Signal() def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.displayNameLabel = QtGui.QLabel("namenamename") self.lastPlayedLabel = QtGui.QLabel("lastplayed") self.versionInfoLabel = QtGui.QLabel("version") #self.sizeLabel = QtGui.QLabel(self.tr("Calculating area..."))
from mcedit2.worldview.minimap import MinimapWorldView from mcedit2.worldview.overhead import OverheadWorldViewFrame from mceditlib import util, nbt, faces from mceditlib.anvil.biome_types import BiomeTypes from mceditlib.geometry import Vector from mceditlib.operations import ComposeOperations from mceditlib.operations.entity import RemoveEntitiesOperation from mceditlib.selection import BoundingBox from mceditlib.exceptions import PlayerNotFound, ChunkNotPresent from mceditlib.revisionhistory import UndoFolderExists, RevisionChanges from mceditlib.worldeditor import WorldEditor from mceditlib.blocktypes import BlockType log = logging.getLogger(__name__) sessionSettings = Settings().getNamespace("editorsession") currentViewSetting = sessionSettings.getOption("currentview", unicode, "cam") # An EditorSession is a world currently opened for editing, the state of the editor including the # current selection box, the editor tab containing its viewports, its command history, its shared OpenGL context, # a separate instance of each editor tool (why?), and the ChunkLoader that coordinates loading # chunks into its viewports. class PendingImport(object): def __init__(self, schematic, pos, text): self.text = text self.pos = pos self.schematic = schematic def __repr__(self): return "%s(%r, %r)" % (self.__class__.__name__, self.schematic, self.pos)
from PySide.QtCore import Qt from PySide import QtGui, QtCore from mcedit2.rendering.layers import Layer from mcedit2.util import profiler from mcedit2.util.settings import Settings from mcedit2.widgets.layout import Column, Row from mcedit2.util.lazyprop import lazyprop from mcedit2.worldview.viewcontrols import ViewControls from mcedit2.worldview.worldview import WorldView, iterateChunks, LayerToggleGroup from mcedit2.worldview.viewaction import ViewAction log = logging.getLogger(__name__) settings = Settings() ViewDistanceSetting = settings.getOption("worldview/camera/view_distance", int, 32) PerspectiveSetting = settings.getOption("worldview/camera/perspective", bool, True) class CameraWorldViewFrame(QtGui.QWidget): def __init__(self, dimension, geometryCache, resourceLoader, shareGLWidget, *args, **kwargs): super(CameraWorldViewFrame, self).__init__(*args, **kwargs) self.worldView = view = CameraWorldView(dimension, geometryCache, resourceLoader, shareGLWidget) self.viewControls = ViewControls(view) ViewDistanceSetting.connectAndCall(view.setViewDistance) viewDistanceInput = QtGui.QSpinBox(minimum=2, maximum=64, singleStep=2) viewDistanceInput.setValue(self.worldView.viewDistance)
""" appsettings """ from __future__ import absolute_import, division, print_function import logging from mcedit2.util.settings import Settings log = logging.getLogger(__name__) RecentFilesSetting = Settings().getOption('open_world_dialog/recent_files', "json", []) EnableLightingSetting = Settings().getOption('editor/enable_lighting', bool, True) DevModeSetting = Settings().getOption('editor/developer_mode', bool, False)
""" appsettings """ from __future__ import absolute_import, division, print_function import logging from mcedit2.util.settings import Settings log = logging.getLogger(__name__) RecentFilesSetting = Settings().getOption('open_world_dialog/recent_files', "json", [])
from mcedit2.rendering import cubes from mcedit2.rendering.selection import SelectionScene, SelectionFaceNode from mcedit2.ui.selection_coord_widget import Ui_selectionCoordWidget from mcedit2.util.glutils import gl from mcedit2.rendering.depths import DepthOffsets from mcedit2.rendering.scenegraph import scenenode, rendernode from mcedit2.util.settings import Settings from mcedit2.widgets.layout import Column from mcedit2.widgets.shapewidget import ShapeWidget from mceditlib import faces from mceditlib.geometry import Vector from mceditlib.selection import BoundingBox log = logging.getLogger(__name__) SelectionOptions = Settings().getNamespace("select_tool") ClassicSelectionOption = SelectionOptions.getOption("classic_selection", bool, False) StickySelectionOption = SelectionOptions.getOption("sticky_selection", bool, False) class SelectionCoordinateWidget(QtGui.QWidget, Ui_selectionCoordWidget): def __init__(self, *args, **kwargs): super(SelectionCoordinateWidget, self).__init__(*args, **kwargs) self.setupUi(self) self.xMinInput.valueChanged.connect(self.setMinX) self.yMinInput.valueChanged.connect(self.setMinY) self.zMinInput.valueChanged.connect(self.setMinZ) self.xMaxInput.valueChanged.connect(self.setMaxX)
from PySide import QtGui, QtCore from mcedit2.sentry import get_sentry_client from mcedit2.ui.dialogs.error_dialog import Ui_errorDialog from mcedit2.util import qglcontext from mcedit2.util.resources import isSrcCheckout from mcedit2.util.screen import centerWidgetInScreen from mcedit2.util.settings import Settings from mcedit2.util.showprogress import MCEProgressDialog log = logging.getLogger(__name__) _errorShown = False settings = Settings() ReportErrorSetting = settings.getOption("errors/reporting_enabled", bool, True) def showErrorDialog(text, tb=None, fatal=True, report=True): global _errorShown if tb is None: tb = sys.exc_info() _errorShown = True grabber = QtGui.QWidget.mouseGrabber() if grabber: grabber.releaseMouse() dialog = ErrorDialog(text, tb, fatal, report) dialog.exec_()
from mcedit2.worldview.minimap import MinimapWorldView from mcedit2.worldview.overhead import OverheadWorldViewFrame from mceditlib import util from mceditlib.anvil.biome_types import BiomeTypes from mceditlib.geometry import Vector from mceditlib.operations import ComposeOperations from mceditlib.operations.entity import RemoveEntitiesOperation from mceditlib.selection import BoundingBox from mceditlib.exceptions import PlayerNotFound from mceditlib.revisionhistory import UndoFolderExists, RevisionChanges from mceditlib.worldeditor import WorldEditor from mceditlib.blocktypes import BlockType log = logging.getLogger(__name__) sessionSettings = Settings().getNamespace("editorsession") currentViewSetting = sessionSettings.getOption("currentview", unicode, "cam") # An EditorSession is a world currently opened for editing, the state of the editor including the # current selection box, the editor tab containing its viewports, its command history, its shared OpenGL context, # a separate instance of each editor tool (why?), and the ChunkLoader that coordinates loading # chunks into its viewports. class PendingImport(object): def __init__(self, schematic, pos, text): self.text = text self.pos = pos self.schematic = schematic def __repr__(self): return "%s(%r, %r)" % (self.__class__.__name__, self.schematic, self.pos)
import os import imp from mcedit2 import editortools from mcedit2.editortools import generate from mcedit2.util import load_ui from mcedit2.util.settings import Settings from mcedit2.widgets import inspector from mceditlib.anvil import entities log = logging.getLogger(__name__) import sys sys.dont_write_bytecode = True settings = Settings().getNamespace("plugins") enabledPluginsSetting = settings.getOption("enabled_plugins", "json", {}) autoReloadSetting = settings.getOption("auto_reload", bool, True) # *** plugins dialog will need to: # v get a list of (plugin display name, plugin reference, isEnabled) tuples for loaded and # unloaded plugins. # v enable or disable a plugin using its reference # - reload a plugin # - find out if a plugin was removed from the folder or failed to compile or run # - install a new plugin using a file chooser # - open the plugins folder(s) in Finder/Explorer # *** on startup: # v scan all plugins dirs for plugins
def __init__(self, editorSession): """ :type editorSession: mcedit2.editorsession.EditorSession :rtype: EditorTab """ settings = Settings() QtGui.QWidget.__init__(self) self.setContentsMargins(0, 0, 0, 0) self.editorSession = editorSession self.editorSession.dimensionChanged.connect(self.dimensionDidChange) self.debugLastCenters = [] self.viewButtonGroup = QtGui.QButtonGroup(self) self.viewButtonToolbar = QtGui.QToolBar() self.viewButtons = {} self.viewFrames = [] self.views = [] for name, handler in ( ("2D", self.showCutawayView), ("Over", self.showOverheadView), # ("Iso", self.showIsoView), ("Cam", self.showCameraView), # ("4-up", self.showFourUpView), ): button = QtGui.QToolButton(text=name, checkable=True) button.clicked.connect(handler) self.viewButtonGroup.addButton(button) self.viewButtonToolbar.addWidget(button) self.viewButtons[name] = button self.viewStack = QtGui.QStackedWidget() self.miniMap = MinimapWorldView(editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache) self.miniMapDockWidget = QtGui.QDockWidget("Minimap", objectName="MinimapWidget", floating=True) self.miniMapDockWidget.setWidget(self.miniMap) self.miniMapDockWidget.setFixedSize(256, 256) self.viewFrames.append(self.miniMap) self.toolOptionsArea = QtGui.QScrollArea() self.toolOptionsArea.setWidgetResizable(True) self.toolOptionsDockWidget = QtGui.QDockWidget("Tool Options", objectName="ToolOptionsWidget", floating=True) self.toolOptionsDockWidget.setWidget(self.toolOptionsArea) editorSession.dockWidgets.append((Qt.LeftDockWidgetArea, self.miniMapDockWidget)) editorSession.dockWidgets.append((Qt.LeftDockWidgetArea, self.toolOptionsDockWidget)) editorSession.loader.addClient(self.miniMap) self.overheadViewFrame = OverheadWorldViewFrame(editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache, self.miniMap) self.overheadViewFrame.worldView.viewID = "Over" self._addView(self.overheadViewFrame) self.cutawayViewFrame = CutawayWorldViewFrame(editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache, self.miniMap) self.cutawayViewFrame.worldView.viewID = "2D" self._addView(self.cutawayViewFrame) # # self.fourUpViewFrame = FourUpWorldViewFrame(editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache, self.miniMap) # self.fourUpViewFrame.worldView.viewID = "4-up" # self._addView(self.fourUpViewFrame) self.cameraViewFrame = CameraWorldViewFrame(editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache, self.miniMap) self.cameraViewFrame.worldView.viewID = "Cam" self.cameraView = self.cameraViewFrame.worldView self._addView(self.cameraViewFrame) self.viewStack.currentChanged.connect(self._viewChanged) self.viewChanged.connect(self.viewDidChange) self.setLayout(Column(self.viewButtonToolbar, Row(self.viewStack, margin=0), margin=0)) currentViewName = settings.value("mainwindow/currentview", "Cam") if currentViewName not in self.viewButtons: currentViewName = "Cam" self.viewButtons[currentViewName].click()
def saveSettings(self): settings = Settings() settings.setValue("mainwindow/state", self.saveState()) settings.setValue("mainwindow/geometry", self.saveGeometry()) settings.sync()
def __init__(self, editorSession): """ :type editorSession: mcedit2.editorsession.EditorSession :rtype: EditorTab """ settings = Settings() QtGui.QWidget.__init__(self) self.setContentsMargins(0, 0, 0, 0) self.editorSession = editorSession self.editorSession.dimensionChanged.connect(self.dimensionDidChange) self.debugLastCenters = [] self.viewButtonGroup = QtGui.QButtonGroup(self) self.viewButtonToolbar = QtGui.QToolBar() self.viewButtons = {} self.viewFrames = [] self.views = [] for name, handler in ( ("2D", self.showCutawayView), ("Over", self.showOverheadView), # ("Iso", self.showIsoView), ("Cam", self.showCameraView), # ("4-up", self.showFourUpView), ): button = QtGui.QToolButton(text=name, checkable=True) button.clicked.connect(handler) self.viewButtonGroup.addButton(button) self.viewButtonToolbar.addWidget(button) self.viewButtons[name] = button self.viewStack = QtGui.QStackedWidget() self.miniMap = MinimapWorldView(editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache) self.miniMapDockWidget = QtGui.QDockWidget("Minimap", objectName="MinimapWidget", floating=True) self.miniMapDockWidget.setWidget(self.miniMap) self.miniMapDockWidget.setFixedSize(256, 256) self.viewFrames.append(self.miniMap) self.toolOptionsArea = QtGui.QScrollArea() self.toolOptionsArea.setWidgetResizable(True) self.toolOptionsDockWidget = QtGui.QDockWidget( "Tool Options", objectName="ToolOptionsWidget", floating=True) self.toolOptionsDockWidget.setWidget(self.toolOptionsArea) editorSession.dockWidgets.append( (Qt.LeftDockWidgetArea, self.miniMapDockWidget)) editorSession.dockWidgets.append( (Qt.LeftDockWidgetArea, self.toolOptionsDockWidget)) editorSession.loader.addClient(self.miniMap) self.overheadViewFrame = OverheadWorldViewFrame( editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache, self.miniMap) self.overheadViewFrame.worldView.viewID = "Over" self._addView(self.overheadViewFrame) self.cutawayViewFrame = CutawayWorldViewFrame( editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache, self.miniMap) self.cutawayViewFrame.worldView.viewID = "2D" self._addView(self.cutawayViewFrame) # # self.fourUpViewFrame = FourUpWorldViewFrame(editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache, self.miniMap) # self.fourUpViewFrame.worldView.viewID = "4-up" # self._addView(self.fourUpViewFrame) self.cameraViewFrame = CameraWorldViewFrame( editorSession.currentDimension, editorSession.textureAtlas, editorSession.geometryCache, self.miniMap) self.cameraViewFrame.worldView.viewID = "Cam" self.cameraView = self.cameraViewFrame.worldView self._addView(self.cameraViewFrame) self.viewStack.currentChanged.connect(self._viewChanged) self.viewChanged.connect(self.viewDidChange) self.setLayout( Column(self.viewButtonToolbar, Row(self.viewStack, margin=0), margin=0)) currentViewName = settings.value("mainwindow/currentview", "Cam") if currentViewName not in self.viewButtons: currentViewName = "Cam" self.viewButtons[currentViewName].click()
def ChangeBinding(shortcutName, shortcutString): settings = Settings() settings.setValue("keybinding/" + shortcutName, shortcutString)
from mcedit2.util import profiler from mcedit2.util.settings import Settings from mcedit2.widgets.layout import Column, Row from mcedit2.widgets.spinslider import SpinSlider from mceditlib import faces from mceditlib.geometry import Vector from mceditlib.util.lazyprop import lazyprop from mcedit2.worldview.viewcontrols import ViewControls from mcedit2.worldview.worldview import WorldView, iterateChunks, anglesToVector from mcedit2.worldview.viewaction import ViewAction log = logging.getLogger(__name__) settings = Settings().getNamespace("worldview/camera") ViewDistanceSetting = settings.getOption("view_distance", int, 12) PerspectiveSetting = settings.getOption("perspective", bool, True) class CameraWorldViewFrame(QtGui.QWidget): def __init__(self, dimension, textureAtlas, geometryCache, shareGLWidget, *args, **kwargs): super(CameraWorldViewFrame, self).__init__(*args, **kwargs) self.worldView = view = CameraWorldView(dimension, textureAtlas, geometryCache, shareGLWidget) self.viewControls = ViewControls(view) ViewDistanceSetting.connectAndCall(view.setViewDistance) viewDistanceInput = QtGui.QSpinBox(minimum=2, maximum=64, singleStep=2) viewDistanceInput.setValue(self.worldView.viewDistance)
def LogViewFrame(parent): class _LogViewFrame(QtGui.QWidget, Ui_logView): pass logWidget = _LogViewFrame() logWidget.setupUi(logWidget) moduleNames = set() logListModel = LogModel() logListView = logWidget.logListView logListView.autoScrollLog = True assert isinstance(logListView, QtGui.QListView) proxy = LogViewProxyModel() proxy.setSourceModel(logListModel) logListView.setModel(proxy) # obj = logListView.__class__ # for name2 in dir(obj): # obj2 = getattr(obj, name2) # if isinstance(obj2, QtCore.Signal): # print ("SIGNAL", name2) def sliderMoved(value): #log.debug("sliderMoved %s %s", value, logListView.verticalScrollBar().maximum()) logListView.autoScrollLog = ( logListView.verticalScrollBar().maximum() - value < 4.0) logListView.verticalScrollBar().valueChanged.connect(sliderMoved) logListView.lastScrollTime = time.time() def updateLog(): if logListView.autoScrollLog: # QListView.scrollToBottom is expensive! Only call it once per second. t = time.time() if logListView.lastScrollTime + 1 < t: logListView.lastScrollTime = t logListView.scrollToBottom() #for item in logListModel.records: # name = item.record.name # if name not in moduleNames: # moduleNames.add(name) # logWidget.moduleNamesBox.addItem(name) logWidget.updateLog = updateLog logListModel.dataChanged.connect(updateLog) def toggleLevel(level): def _toggle(checked): if checked: proxy.blockedLevels.discard(level) else: proxy.blockedLevels.add(level) proxy.invalidateFilter() updateLog() setValue(level, checked) return _toggle settings = Settings() def getValue(level, default): return int( settings.value("log/showlevel/%s" % logging.getLevelName(level), default)) def setValue(level, value): settings.setValue("log/showlevel/%s" % logging.getLevelName(level), int(value)) def setup(button, level): button.toggled.connect(toggleLevel(level)) button.setChecked(bool(getValue(level, 1))) setup(logWidget.debugsButton, logging.DEBUG) setup(logWidget.infosButton, logging.INFO) setup(logWidget.warningsButton, logging.WARN) setup(logWidget.errorsButton, logging.ERROR) setup(logWidget.errorsButton, logging.CRITICAL) return logWidget
from mcedit2.util import profiler from mcedit2.util.settings import Settings from mcedit2.widgets.layout import Column, Row from mcedit2.widgets.spinslider import SpinSlider from mceditlib import faces from mceditlib.geometry import Vector from mceditlib.util.lazyprop import lazyprop from mcedit2.worldview.viewcontrols import ViewControls from mcedit2.worldview.worldview import WorldView, iterateChunks, anglesToVector from mcedit2.worldview.viewaction import ViewAction log = logging.getLogger(__name__) settings = Settings().getNamespace("worldview/camera") ViewDistanceSetting = settings.getOption("view_distance", int, 12) PerspectiveSetting = settings.getOption("perspective", bool, True) StickyMouselookSetting = settings.getOption("sticky_mouselook", bool, True) class CameraWorldViewFrame(QtGui.QWidget): def __init__(self, dimension, textureAtlas, geometryCache, shareGLWidget, *args, **kwargs): super(CameraWorldViewFrame, self).__init__(*args, **kwargs) self.worldView = view = CameraWorldView(dimension, textureAtlas, geometryCache, shareGLWidget) auxControlWidget = QtGui.QWidget() StickyMouselookSetting.connectAndCall(view.setStickyMouselook)
if chunk.HeightMap is not None: ix, iz = pos[0] & 0xf, pos[2] & 0xf #log.info("HeightMap (%s:%s): \n%s", cPos, (ix, iz), chunk.HeightMap) desc += "\tHeightMap(%s:%s): %d" % (cPos, (ix, iz), chunk.HeightMap[iz, ix]) desc += "\tName: %s" % dim.blocktypes[result.Blocks[0], result.Data[0]].displayName return desc except ChunkNotPresent: return "Chunk not present." except (EnvironmentError, LevelFormatError) as e: return "Error describing block: %r" % e except Exception as e: log.exception("Error describing block: %r", e) return "Error describing block: %r" % e LayerToggleOptions = Settings().getNamespace("layertoggleoptions") class LayerToggleGroup(QtCore.QObject): def __init__(self, *args, **kwargs): super(LayerToggleGroup, self).__init__(*args, **kwargs) self.actions = {} self.actionGroup = QtGui.QActionGroup(self) self.actionGroup.setExclusive(False) self.options = {} for layer in Layer.AllLayers: option = LayerToggleOptions.getOption("%s_visible" % layer, bool, True) self.options[layer] = option action = QtGui.QAction(layer, self) action.setCheckable(True) action.setChecked(option.value())
from mcedit2.widgets.layout import Column, Row, setWidgetError from mcedit2.worldview.minimap import MinimapWorldView from mceditlib.anvil.adapter import AnvilWorldAdapter from mceditlib.geometry import Vector from mceditlib.exceptions import LevelFormatError, PlayerNotFound from mceditlib import worldeditor import logging from mceditlib.findadapter import isLevel from mceditlib.nbt import NBTFormatError from mceditlib.worldeditor import WorldEditor log = logging.getLogger(__name__) WorldListSettings = Settings().getNamespace('world_list') WorldListSettings.allSavesFolders = WorldListSettings.getOption( 'saves_folders', 'json', []) WorldListSettings.currentSavesFolder = WorldListSettings.getOption( 'current_saves_folder', unicode, '') WorldListSettings.lastChosenSavesFolder = WorldListSettings.getOption( 'last_chosen_saves_folder', unicode, '') class WorldListItemWidget(QtGui.QWidget): doubleClicked = QtCore.Signal() def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.displayNameLabel = QtGui.QLabel("namenamename")
from mcedit2 import editortools from mcedit2.editortools import generate from mcedit2.plugins import command from mcedit2.util import load_ui from mcedit2.util.settings import Settings from mcedit2.widgets import inspector from mceditlib.anvil import entities log = logging.getLogger(__name__) import sys sys.dont_write_bytecode = True settings = Settings().getNamespace("plugins") enabledPluginsSetting = settings.getOption("enabled_plugins", "json", {}) autoReloadSetting = settings.getOption("auto_reload", bool, True) # *** plugins dialog will need to: # v get a list of (plugin display name, plugin reference, isEnabled) tuples for loaded and # unloaded plugins. # v enable or disable a plugin using its reference # - reload a plugin # - find out if a plugin was removed from the folder or failed to compile or run # - install a new plugin using a file chooser # - open the plugins folder(s) in Finder/Explorer # *** on startup: # v scan all plugins dirs for plugins
from mcedit2.command import SimplePerformCommand from mcedit2.rendering import worldscene, scenegraph from mcedit2.rendering.depths import DepthOffset from mcedit2.util.load_ui import load_ui, registerCustomWidget from mcedit2.util.settings import Settings from mcedit2.util.showprogress import showProgress from mcedit2.util.worldloader import WorldLoader from mcedit2.widgets.layout import Row from mceditlib.geometry import Vector from mceditlib.selection import ShapedSelection, BoundingBox from mceditlib.util import exhaust log = logging.getLogger(__name__) BrushModeSetting = Settings().getOption("editortools/brush/mode") BrushShapeSetting = Settings().getOption("editortools/brush/shape") BrushSizeSetting = Settings().getOption("editortools/brush/size") class BrushCommand(SimplePerformCommand): def __init__(self, editorSession, points, options): """ :type editorSession: mcedit2.editorsession.EditorSession :type points: list :type options: dict :return: :rtype: """ super(BrushCommand, self).__init__(editorSession) # if options is None: options = {}
import numpy from PySide.QtCore import Qt from PySide import QtGui, QtCore from mcedit2.util import profiler from mcedit2.util.settings import Settings from mcedit2.widgets.layout import Column, Row from mceditlib.util.lazyprop import lazyprop from mcedit2.worldview.viewcontrols import ViewControls from mcedit2.worldview.worldview import WorldView, iterateChunks from mcedit2.worldview.viewaction import ViewAction log = logging.getLogger(__name__) settings = Settings() ViewDistanceSetting = settings.getOption("worldview/camera/view_distance", int, 32) PerspectiveSetting = settings.getOption("worldview/camera/perspective", bool, True) class CameraWorldViewFrame(QtGui.QWidget): def __init__(self, dimension, geometryCache, resourceLoader, shareGLWidget, *args, **kwargs): super(CameraWorldViewFrame, self).__init__(*args, **kwargs) self.worldView = view = CameraWorldView(dimension, geometryCache, resourceLoader, shareGLWidget) self.viewControls = ViewControls(view)