def __init__(self,parent=None, mapAtStart=None, nothis=False, myMap=None, indicative=1, **kwargs): QtWidgets.QWidget.__init__(self, parent, **kwargs) self.myMap = myMap self.mapAtStart = mapAtStart self.nothis = nothis self.gamefolder = current_project.settings["gamefolder"] if(self.nothis is False): self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet elif(self.mapAtStart != None): self.currentLevel = mapfile.MapFormat() self.currentLevel.load(game_init.getLevelPathFromInitFile( self.gamefolder, self.mapAtStart)) self.currentTileSet = tile_set.TileSet(os.path.join( self.gamefolder, self.currentLevel.tileImage), self.currentLevel.palette) else: self.currentLevel = mapfile.MapFormat() self.currentTileSet = tile_set.TileSet(os.path.join( self.gamefolder, self.currentLevel.tileImage), self.currentLevel.palette) self.scrollArea = QtWidgets.QScrollArea() self.myMiniMapWidget = MiniMapWidget(self.currentLevel, self.currentTileSet, None, indicative) self.myMiniMapWidget.selectedTile.connect(self.emitSelectedTile) self.scrollArea.setWidget(self.myMiniMapWidget) self.VBox = QtWidgets.QVBoxLayout(self) self.VBox.setAlignment(QtCore.Qt.AlignTop) self.VBox.addWidget(self.scrollArea)
def updatePal(self, palfile, gamefolder): mypal = palette_format.PaletteFormat() mypal.load(palfile) tilePalette = mypal.gettiles() imageFile = os.path.join(gamefolder, mypal.getimg()) self.tileSetInstance = tile_set.TileSet(imageFile, tilePalette) if len(self.PaletteTileList) > 0: for wdgt in self.PaletteTileList: self.Grid.removeWidget(wdgt) wdgt.deleteLater() wdgt.setParent(None) wdgt = None self.PaletteTileList = [] for i in range(len(self.tileSetInstance.tileset)): self.PaletteTileList.append(base_tile.QTile()) self.Grid.addWidget(self.PaletteTileList[-1], i / self.cn, i % self.cn) self.PaletteTileList[-1].initTile(self.tileSetInstance.tileset, i, 0, self.tileSetInstance.boxsize, [i, 0, 0, 0, 0], self.scale) width = self.cn * self.tileSetInstance.boxsize * self.scale height = tMat.divideRoundUp( len(self.tileSetInstance.tileset), self.cn) * self.tileSetInstance.boxsize * self.scale self.PaletteItems.resize(width, height)
def __init__(self, filelist, **kwargs): #super().__init__(None, **kwargs) QtWidgets.QMainWindow.__init__(self, None, **kwargs) #self.resize(1024, 768) cmd.initUndoStack(self) cmd.getWindowTitleHandler(self) self.setWindowIcon(QtGui.QIcon(Icon())) self.levelName = "newFile" current_project.settings["workingFile"] = self.levelName + ".map.json" self.myMap = mapfile.MapFormat(self) self.myMap.new(self.levelName, 10, 10) self.scrollArea = QtWidgets.QScrollArea(self) # get tileset file and split it in images that can be pointed self.myTileSet = tile_set.TileSet(self.myMap.tileImage, self.myMap.palette) self.myMapWidget = MapWidget(self) self.scrollArea.setWidget(self.myMapWidget) self.setCentralWidget(self.scrollArea) self.FancyWindow(self) self.setAcceptDrops(True) self.settings = QtCore.QSettings("FGMK", "fgmkEditor") self.firsttime = self.loadSettings() self.opemFileIfDropped(filelist)
def updateMap(self, levelIndex): if (str(self.comboBox.itemText(levelIndex)) != "this"): self.currentLevel = mapfile.MapFormat() self.currentLevel.load( game_init.getLevelPathFromInitFile( self.gamefolder, self.comboBox.itemText(levelIndex))) self.currentTileSet = tile_set.TileSet( os.path.join(current_project.settings["gamefolder"], self.currentLevel.tileImage), self.currentLevel.palette) else: if (self.selectStartPosition == None): if (self.edit == None): #Journey to get the map #ActionsWidget -> tinyActionsWdgt -> EventsWidget -> Editor self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet else: #Journey to get the map #ActionsWidget -> tinyActionsWdgt -> EventsWidget -> Editor self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet else: self.currentLevel = self.parent.myMap self.currentTileSet = self.parent.myTileSet self.myMiniMapWidget.DrawMap(self.currentLevel, self.currentTileSet)
def openFileByName(self, filename): if(filename=="newFile.map.json"): return if os.path.isfile(filename): current_project.settings["gamefolder"] = os.path.abspath( os.path.join(os.path.dirname(str(filename)), "../../")) current_project.settings["workingFile"] = filename self.setWindowTitle(current_project.settings["workingFile"]) self.myMap.load(current_project.settings["workingFile"]) self.myTileSet = tile_set.TileSet(os.path.join( current_project.settings["gamefolder"], self.myMap.tileImage), self.myMap.palette) self.myMapWidget.DrawMap(self) self.gridViewAction.setChecked(False) # gambiarra self.myPaletteWidget.drawPalette(self.myTileSet) self.myEventsWidget.updateEventsList() self.myEventsWidget.enableButtonsBecauseEventsList() self.myCharasPalWidget.reinit() game_init.regenerateInit() hasinit = self.myMapExplorerWidget.reloadInitFile() self.setEnabledAll(hasinit == True) cmd.clearCommandStack() self.firsttime = False self.changeTileCurrent(0) if(hasinit): self.myServer.runServer(os.path.abspath(current_project.settings["gamefolder"])) else: self.myServer.stopServer()
def LoadImage(self,img=None): if(img!=None): self.img = os.path.join(current_project.settings['gamefolder'], self.pal.imgloag(img)) self.pal.imgloag(self.img) self.t = tile_set.TileSet(os.path.join(current_project.settings['gamefolder'],self.img)) self.TileWidth = int(self.t.imageFile.size[0]/self.t.boxsize) self.TileHeight = int(self.t.imageFile.size[1]/self.t.boxsize) self.DrawPal()
def __init__(self, parent=None, **kwargs): #super().__init__(parent, **kwargs) QtWidgets.QWidget.__init__(self, parent, **kwargs) self.menuTileset = tile_set.TileSet( getdata.path('map_explorer_icons.png')) self.scale = 0.5 iconGrid = QtWidgets.QGridLayout() iconHBoxL = QtWidgets.QHBoxLayout() iconHBoxL.setAlignment(QtCore.Qt.AlignLeft) iconGrid.addLayout(iconHBoxL, 0, 0, QtCore.Qt.AlignLeft) iconHBoxR = QtWidgets.QHBoxLayout() iconHBoxR.setAlignment(QtCore.Qt.AlignRight) iconGrid.addLayout(iconHBoxR, 0, 1, QtCore.Qt.AlignRight) #the last element will be left at the right corner #I want the trash to be always the last element iconName = ["new", "open", "trash"] iconHelp = [ "creates a new map file", "opens a map file. Same as double clicking.", "deletes a map file." ] self.menuIcons = [] for i in range(len(iconName)): self.menuIcons.append(base_tile.QTile(self)) self.menuIcons[-1].initTile(self.menuTileset.tileset, 0, 0, self.menuTileset.boxsize, [0, 0, i + 1, 0, 0], self.scale) self.menuIcons[-1].setObjectName(iconName[i]) self.menuIcons[-1].setToolTip(iconName[i] + "\nWhen clicked, " + iconHelp[i]) self.menuIcons[-1].clicked.connect(self.clickedOnIcon) if (i < len(iconName) - 1): iconHBoxL.addWidget(self.menuIcons[-1]) else: iconHBoxR.addWidget(self.menuIcons[-1]) self.parent = parent self.LvlLWidget = QtWidgets.QListWidget(self) self.VBox = QtWidgets.QVBoxLayout(self) self.VBox.setAlignment(QtCore.Qt.AlignTop) self.VBox.addLayout(iconGrid) self.VBox.addWidget(self.LvlLWidget) self.levelList = [] self.mapForOpen = '' self.LvlLWidget.itemDoubleClicked.connect(self.openMapItem) #self.LvlLWidget.itemClicked.connect(self.doubleClickedForOpen) self.show()
def updateMap(self, mapname): if (str(mapname) != "this"): self.currentLevel = mapfile.MapFormat() self.currentLevel.load(game_init.getLevelPathFromInitFile( self.gamefolder, mapname)) self.currentTileSet = tile_set.TileSet(os.path.join( self.gamefolder, self.currentLevel.tileImage), self.currentLevel.palette) else: self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet self.myMiniMapWidget.DrawMap(self.currentLevel, self.currentTileSet)
def updateMap(self, levelIndex): if (str(self.comboBox.itemText(levelIndex)) != "this"): self.currentLevel = mapfile.MapFormat() self.currentLevel.load( game_init.getLevelPathFromInitFile( self.gamefolder, self.comboBox.itemText(levelIndex))) self.currentTileSet = tile_set.TileSet( os.path.join(current_project.settings["gamefolder"], self.currentLevel.tileImage), self.currentLevel.palette) else: self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet self.myMiniMapWidget.DrawMap(self.currentLevel, self.currentTileSet)
def test_TileSet_checkEmptyTile(): """ The first 32x32 box in the tileset is empty. So we will compare with the emptyTile in tileset. The difference should be empty because images are equal """ mytileset = tile_set.TileSet(gettestdata('testTiles.png')) expected_empty_tile = mytileset.tileset[0][0] empty_tile = tile_set.emptyTile diff = ImageChops.difference(empty_tile, expected_empty_tile) assert diff.getbbox() == None
def test_TileSet_checkFilledTile(): """ The second 32x32 box in the tileset contains a tile ocuppying 32x32 space. So we will compare with the emptyTile in tileset. The difference should be a 32x32 box starting from zero. """ mytileset = tile_set.TileSet(gettestdata('testTiles.png')) expected_filled_tile = mytileset.tileset[1][0] empty_tile = tile_set.emptyTile diff = ImageChops.difference(empty_tile, expected_filled_tile) assert diff.getbbox() == (0, 0, 32, 32)
def __init__(self, parent=None, **kwargs): #super().__init__(parent, **kwargs) QtWidgets.QWidget.__init__(self, parent, **kwargs) self.parent = parent self.scale = 2 self.toolTileset = tile_set.TileSet(getdata.path('tools.png')) self.FBox = FlowLayout(self) TOOLSTARTINGTILE = 6 ToolsName = [ "pen", "dropper", "bucket", "line", "rectangle", "charaplacer", "pan" ] ToolsHelp = [ "click to change tile to selected tile", "click to get tile type and set to selected tile", "click to fill area with selected tile", "click once to set starting point and again to set ending point", "click once to set first corner and again to set opposing corner", "places a chara on a selected spot", "click and hold to pan the map" ] self.MaxTools = len(ToolsName) self.ToolTile = [] self.lastLeftClickTool = 0 self.lastLeftClickTool = 1 for i in range(self.MaxTools): self.ToolTile.append(base_tile.QTile(self)) self.ToolTile[-1].initTile(self.toolTileset.tileset, 0, 0, self.toolTileset.boxsize, [0, 0, TOOLSTARTINGTILE + i, 0, 0], self.scale) self.ToolTile[-1].setObjectName(ToolsName[i]) self.ToolTile[-1].setToolTip(ToolsName[i] + "\nWhen selected, " + ToolsHelp[i]) self.ToolTile[-1].clicked.connect(self.toolLeftClicked) self.ToolTile[-1].rightClicked.connect(self.toolRightClicked) self.FBox.addWidget(self.ToolTile[-1]) self.updateToolTiles() self.show()
def __newFile(self, returnedNFD): current_project.settings["gamefolder"] = str(returnedNFD["gameFolder"]) self.levelName = str(returnedNFD["name"]) current_project.settings["workingFile"] = os.path.join( current_project.settings["gamefolder"], fifl.LEVELS, self.levelName + ".map.json") self.setWindowTitle(current_project.settings["workingFile"]) palette = os.path.join( current_project.settings["gamefolder"], fifl.LEVELS,returnedNFD["palette"]) self.myMap.new(self.levelName, returnedNFD[ "width"], returnedNFD["height"], palette) self.myTileSet = tile_set.TileSet(os.path.join( current_project.settings["gamefolder"], self.myMap.tileImage), self.myMap.palette) self.myMapWidget.DrawMap(self) self.gridViewAction.setChecked(False) # gambiarra self.myPaletteWidget.drawPalette(self.myTileSet) self.myEventsWidget.updateEventsList() self.myCharasPalWidget.reinit() game_init.regenerateInit() hasinit = self.myMapExplorerWidget.reloadInitFile() self.setEnabledAll(hasinit == True) self.changeTileCurrent(0) cmd.clearCommandStack()
def __init__(self, **kwargs): #super().__init__(parent, **kwargs) ActionDialog.__init__(self, **kwargs) self.initFile = game_init.openInitFile(self.gamefolder) self.useCurrentPlace = "current" self.LabelText1 = QtWidgets.QLabel( "Select where is the tile to change:") self.LabelText2 = QtWidgets.QLabel("Select to what type change:") self.LabelText3 = QtWidgets.QLabel("Change to modify colision layer:") self.LabelText4 = QtWidgets.QLabel( "Select if event should also change:") self.comboBox = QtWidgets.QComboBox() self.colisionList = ["keep", "noColision", "collidable"] if (self.nothis is False): self.levelsList = ["this"] else: self.levelsList = [] for level in self.initFile['LevelsList']: self.levelsList.append(level) for level in self.levelsList: self.comboBox.addItem(str(level)) self.scrollArea = QtWidgets.QScrollArea() if (self.nothis is False): self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet else: self.currentLevel = mapfile.MapFormat() self.currentLevel.load( game_init.getLevelPathFromInitFile(self.gamefolder, self.comboBox.itemText(0))) self.currentTileSet = tile_set.TileSet( os.path.join(current_project.settings["gamefolder"], self.currentLevel.tileImage), self.currentLevel.palette) self.myMiniMapWidget = miniWdgt.MiniMapWidget(self.currentLevel, self.currentTileSet, self) self.eventList = self.currentLevel.getTileListFromLayer(EVENTSLAYER)[:] self.eventList.insert(0, "remove") self.eventList.insert(0, "keep") self.eventList = [str(x) for x in self.eventList] self.checkbox = QtWidgets.QCheckBox("instead use event location", self) self.scrollArea.setWidget(self.myMiniMapWidget) self.myMiniMapWidget.selectedTile.connect(self.setTeleportPlace) self.LineTextPlace = QtWidgets.QLineEdit() self.myMiniPaletteWidget = miniWdgt.MiniPaletteWidget( self.currentTileSet, self) self.myMiniPaletteWidget.selectedTilePalette.connect( self.setTileToChange) self.LineTextTile = QtWidgets.QLineEdit() self.comboBoxLayers = QtWidgets.QComboBox() for layer in mapfile.LayersNameViewable: self.comboBoxLayers.addItem(str(layer)) self.comboBoxColision = QtWidgets.QComboBox() for item in self.colisionList: self.comboBoxColision.addItem(str(item)) self.comboBoxEvent = QtWidgets.QComboBox() for item in self.eventList: self.comboBoxEvent.addItem(str(item)) self.buttonBox = QtWidgets.QDialogButtonBox( QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) self.comboBox.currentIndexChanged.connect(self.updateMap) self.checkbox.stateChanged.connect(self.checkboxChanged) self.checkbox.setCheckState(QtCore.Qt.Checked) self.LineTextPlace.setReadOnly(True) self.LineTextTile.setReadOnly(True) if (self.edit != None): self.myMiniPaletteWidget.setImageCurrent(int(self.edit[0])) for idx, val in enumerate(mapfile.LayersNameViewable): if (val == self.edit[1]): self.comboBoxLayers.setCurrentIndex(idx) for idx, val in enumerate(self.colisionList): if (val == self.edit[2]): self.comboBoxColision.setCurrentIndex(idx) for idx, val in enumerate(self.eventList): if (val == self.edit[3]): self.comboBoxEvent.setCurrentIndex(idx) if (self.edit[4] != self.useCurrentPlace): self.checkbox.setCheckState(QtCore.Qt.Unchecked) self.LineTextPlace.setText("{0};{1};{2}".format( self.edit[4], self.edit[5], self.edit[6])) for idx, val in enumerate(self.levelsList): if (val == self.edit[6]): self.comboBox.setCurrentIndex(idx) self.myMiniMapWidget.changeSelectXY(int(self.edit[4]), int(self.edit[5])) else: self.checkbox.setCheckState(QtCore.Qt.Checked) self.VBox.addWidget(self.LabelText1) self.VBox.addWidget(self.comboBox) self.VBox.addWidget(self.scrollArea) self.VBox.addWidget(self.LineTextPlace) self.VBox.addWidget(self.checkbox) self.VBox.addWidget(self.LabelText2) self.VBox.addWidget(self.myMiniPaletteWidget) self.VBox.addWidget(self.LineTextTile) self.VBox.addWidget(self.comboBoxLayers) self.VBox.addWidget(self.LabelText3) self.VBox.addWidget(self.comboBoxColision) self.VBox.addWidget(self.LabelText4) self.VBox.addWidget(self.comboBoxEvent) self.VBox.addWidget(self.buttonBox) self.setGeometry(300, 200, 350, 650) self.setWindowTitle('Select what tile and where to change to...') self.setTileToChange()
def __init__(self, **kwargs): #super().__init__(parent, **kwargs) ActionDialog.__init__(self, **kwargs) self.initFile = game_init.openInitFile(self.gamefolder) self.useCurrentPlace = "current" self.LabelText1 = QtWidgets.QLabel("Select the map for tile change:") self.LabelText2 = QtWidgets.QLabel("What type to change from?") self.LabelText3 = QtWidgets.QLabel("To what type change to?") self.LabelText4 = QtWidgets.QLabel("Change to modify collision layer:") self.LabelText5 = QtWidgets.QLabel( "Select if event should also change:") self.levelSelector = miniWdgt.levelSelector(nothis=self.nothis) self.collisionList = ["keep", "nocollision", "collidable"] self.scrollArea = QtWidgets.QScrollArea() if (self.nothis is False): self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet else: self.currentLevel = mapfile.MapFormat() self.currentLevel.load( game_init.getLevelPathFromInitFile( self.gamefolder, self.levelSelector.itemText(0))) self.currentTileSet = tile_set.TileSet( os.path.join(current_project.settings["gamefolder"], self.currentLevel.tileImage), self.currentLevel.palette) self.myMiniMapWidget = miniWdgt.MiniMapWidget(self.currentLevel, self.currentTileSet, self, indicativeToUse=0) self.eventList = self.currentLevel.getTileListFromLayer(EVENTSLAYER)[:] self.eventList.insert(0, "remove") self.eventList.insert(0, "keep") self.eventList = [str(x) for x in self.eventList] self.scrollArea.setWidget(self.myMiniMapWidget) self.oriMPWidget = miniWdgt.MiniPaletteWidget(self.currentTileSet, self) self.newMPWidget = miniWdgt.MiniPaletteWidget(self.currentTileSet, self) self.comboBoxLayers = QtWidgets.QComboBox() for layer in mapfile.LayersNameViewable: self.comboBoxLayers.addItem(str(layer)) self.comboBoxCollision = QtWidgets.QComboBox() for item in self.collisionList: self.comboBoxCollision.addItem(str(item)) self.comboBoxEvent = QtWidgets.QComboBox() for item in self.eventList: self.comboBoxEvent.addItem(str(item)) self.levelSelector.currentIndexChanged.connect(self.updateMap) if (self.edit != None): self.levelSelector.edit(self.edit[5]) self.oriMPWidget.setImageCurrent(int(self.edit[0])) self.newMPWidget.setImageCurrent(int(self.edit[1])) for idx, val in enumerate(mapfile.LayersNameViewable): if (val == self.edit[2]): self.comboBoxLayers.setCurrentIndex(idx) for idx, val in enumerate(self.collisionList): if (val == self.edit[3]): self.comboBoxCollision.setCurrentIndex(idx) for idx, val in enumerate(self.eventList): if (val == self.edit[4]): self.comboBoxEvent.setCurrentIndex(idx) self.VBox.addWidget(self.LabelText1) self.VBox.addWidget(self.levelSelector) self.VBox.addWidget(self.scrollArea) self.VBox.addWidget(self.LabelText2) self.VBox.addWidget(self.oriMPWidget) self.VBox.addWidget(self.LabelText3) self.VBox.addWidget(self.newMPWidget) self.VBox.addWidget(self.comboBoxLayers) self.VBox.addWidget(self.LabelText4) self.VBox.addWidget(self.comboBoxCollision) self.VBox.addWidget(self.LabelText5) self.VBox.addWidget(self.comboBoxEvent) self.setGeometry(300, 200, 350, 650) self.setWindowTitle( 'changeAllTiles: Select what tile and where to change to...')
def __init__(self, **kwargs): #if selectStartPosition is here, we should not pass it along self.selectStartPosition = kwargs.pop('selectStartPosition', None) #super().__init__(parent, **kwargs) ActionDialog.__init__(self, **kwargs) self.initFile = game_init.openInitFile(self.gamefolder) if (self.selectStartPosition == None): self.setWindowTitle('Select where to teleport...') indicative = 1 else: self.setWindowTitle(self.selectStartPosition) indicative = 2 self.LabelText = QtWidgets.QLabel('Select where to teleport:') self.comboBox = QtWidgets.QComboBox() if (self.nothis is False): self.levelsList = ["this"] else: self.levelsList = [] for level in self.initFile['LevelsList']: self.levelsList.append(level) for level in self.levelsList: self.comboBox.addItem(str(level)) self.scrollArea = QtWidgets.QScrollArea() if (self.nothis is False): if (self.selectStartPosition == None): self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet else: self.currentLevel = self.parent.myMap self.currentTileSet = self.parent.myTileSet else: self.currentLevel = mapfile.MapFormat() self.currentLevel.load( game_init.getLevelPathFromInitFile(self.gamefolder, self.comboBox.itemText(0))) self.currentTileSet = tile_set.TileSet( os.path.join(current_project.settings["gamefolder"], self.currentLevel.tileImage), self.currentLevel.palette) self.myMiniMapWidget = miniWdgt.MiniMapWidget(self.currentLevel, self.currentTileSet, None, indicative) self.scrollArea.setWidget(self.myMiniMapWidget) self.myMiniMapWidget.selectedTile.connect(self.setTeleportPlace) self.LineText = QtWidgets.QLineEdit() self.buttonBox = QtWidgets.QDialogButtonBox( QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) self.comboBox.currentIndexChanged.connect(self.updateMap) self.LineText.setReadOnly(True) self.VBox.addWidget(self.LabelText) self.VBox.addWidget(self.comboBox) self.VBox.addWidget(self.scrollArea) self.VBox.addWidget(self.LineText) self.VBox.addWidget(self.buttonBox) self.setGeometry(300, 200, 350, 650) if (self.edit != None): self.LineText.setText("{0};{1}".format(self.edit[0], self.edit[1])) for idx, val in enumerate(self.levelsList): if (val == self.edit[2]): self.comboBox.setCurrentIndex(idx) break self.updateMap(idx) self.myMiniMapWidget.changeSelectXY(int(self.edit[0]), int(self.edit[1]))
def test_TileSet_boxsize(): mytileset = tile_set.TileSet(gettestdata('testTiles.png')) assert mytileset.boxsize == 32
def test_TileSet_length(): mytileset = tile_set.TileSet(gettestdata('testTiles.png')) assert len(mytileset.tileset) == 3
def __init__(self, **kwargs): #super().__init__(parent, **kwargs) ActionDialog.__init__(self, **kwargs) self.initFile = game_init.openInitFile(self.gamefolder) self.setWindowTitle('Select map to teleport...') self.LabelText = QtWidgets.QLabel('Select where to teleport:') self.comboBox = QtWidgets.QComboBox() if (self.nothis is False): self.levelsList = ["this"] else: self.levelsList = [] for level in self.initFile['LevelsList']: self.levelsList.append(level) for level in self.levelsList: self.comboBox.addItem(str(level)) self.scrollArea = QtWidgets.QScrollArea() if (self.nothis is False): self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet else: self.currentLevel = mapfile.MapFormat() self.currentLevel.load( game_init.getLevelPathFromInitFile(self.gamefolder, self.comboBox.itemText(0))) self.currentTileSet = tile_set.TileSet( os.path.join(current_project.settings["gamefolder"], self.currentLevel.tileImage), self.currentLevel.palette) self.myMiniMapWidget = miniWdgt.MiniMapWidget(self.currentLevel, self.currentTileSet, None, 0) self.scrollArea.setWidget(self.myMiniMapWidget) self.buttonBox = QtWidgets.QDialogButtonBox( QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) self.comboBox.currentIndexChanged.connect(self.updateMap) self.VBox.addWidget(self.LabelText) self.VBox.addWidget(self.comboBox) self.VBox.addWidget(self.scrollArea) self.VBox.addWidget(self.buttonBox) self.setGeometry(300, 200, 350, 650) if (self.edit != None): for idx, val in enumerate(self.levelsList): if (val == self.edit[0]): self.comboBox.setCurrentIndex(idx) break self.updateMap(idx)
def __init__(self, **kwargs): #if selectStartPosition is here, we should not pass it along self.selectStartPosition = kwargs.pop('selectStartPosition', None) #super().__init__(parent, **kwargs) ActionDialog.__init__(self, **kwargs) self.initFile = game_init.openInitFile(self.gamefolder) if (self.selectStartPosition == None): self.setWindowTitle('teleport: Select where to teleport...') indicative = 1 else: self.setWindowTitle(self.selectStartPosition) indicative = 2 self.LabelText = QtWidgets.QLabel('Select where to teleport:') self.levelSelector = miniWdgt.levelSelector(nothis=self.nothis) self.scrollArea = QtWidgets.QScrollArea() if (self.nothis is False): if (self.selectStartPosition == None): self.currentLevel = self.myMap self.currentTileSet = self.myMap.parent.myTileSet else: self.currentLevel = self.parent.myMap self.currentTileSet = self.parent.myTileSet else: self.currentLevel = mapfile.MapFormat() self.currentLevel.load( game_init.getLevelPathFromInitFile( self.gamefolder, self.levelSelector.itemText(0))) self.currentTileSet = tile_set.TileSet( os.path.join(current_project.settings["gamefolder"], self.currentLevel.tileImage), self.currentLevel.palette) self.myMiniMapWidget = miniWdgt.MiniMapWidget(self.currentLevel, self.currentTileSet, None, indicative) self.scrollArea.setWidget(self.myMiniMapWidget) self.myMiniMapWidget.selectedTile.connect(self.setTeleportPlace) self.LineText = QtWidgets.QLineEdit() self.levelSelector.currentIndexChanged.connect(self.updateMap) self.LineText.setReadOnly(True) self.VBox.addWidget(self.LabelText) self.VBox.addWidget(self.levelSelector) self.VBox.addWidget(self.scrollArea) self.VBox.addWidget(self.LineText) self.setGeometry(300, 200, 350, 650) if (self.edit != None): self.LineText.setText("{0};{1}".format(self.edit[0], self.edit[1])) self.levelSelector.edit(self.edit[2]) self.myMiniMapWidget.changeSelectXY(int(self.edit[0]), int(self.edit[1]))