def drawPalette(self, tileSetInstance): self.tileSetInstance = tileSetInstance if len(self.PaletteTileList) > 1: for wdgt in self.PaletteTileList: wdgt.deleteLater() wdgt = None self.PaletteTileList = [] i = 0 for key in sorted(tileSetInstance.tileset): self.PaletteTileList.append(base_tile.QTile(self)) self.Grid.addWidget(self.PaletteTileList[-1], i / 6, i % 6) self.PaletteTileList[-1].initTile(tileSetInstance.tileset, i, 0, tileSetInstance.boxsize, [key, 0, 0, 0, 0], 1) self.PaletteTileList[-1].clicked.connect(self.setTileCurrent) self.PaletteTileList[-1].doubleClicked.connect( self.paletteItemDoubleClicked) i += 1 self.PaletteItems.resize( 6 * tileSetInstance.boxsize, tMat.divideRoundUp(len(tileSetInstance.tileset), 6) * tileSetInstance.boxsize)
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, pMyMap, pMyTileset, parent=None, indicativeToUse=1, **kwargs): #super().__init__(parent, **kwargs) QtWidgets.QWidget.__init__(self, parent, **kwargs) self.Grid = QtWidgets.QGridLayout(self) self.Grid.setHorizontalSpacing(0) self.Grid.setVerticalSpacing(0) self.Grid.setSpacing(0) self.Grid.setContentsMargins(0, 0, 0, 0) self.pMyMap = pMyMap self.pMyTileset = pMyTileset self.TileWidth = 0 self.TileHeight = 0 self.myScale = 0.5 self.indicativeToUse = indicativeToUse if (indicativeToUse > 0): self.xclicked = base_tile.QTile(self) self.xclicked.initTile(tile_set.indicativeSet.tileset, 0, 0, 32, [indicativeToUse, 0, 0, 0, 0], 0.5) self.TileList = [] self.selectedPosition = [0, 0] self.DrawMap(pMyMap, pMyTileset)
def DrawMap(self, parent): # self.setUpdatesEnabled(False) self.setVisible(False) LayersMapTiles = parent.myMap.LayersMapTiles self.TileHeight = len(LayersMapTiles[0]) self.TileWidth = len(LayersMapTiles[0][0]) if len(self.TileList) > 1: for collum in self.TileList: for wdgt in collum: wdgt.deleteLater() wdgt = None self.TileList = [] # get the background numbers and use to get the tiles for iy in range(self.TileHeight): self.TileList.append([]) for jx in range(self.TileWidth): self.TileList[iy].append(base_tile.QTile(self)) self.Grid.addWidget(self.TileList[iy][jx], iy, jx) self.TileList[iy][jx].initTile(parent.myTileSet.tileset, jx, iy, parent.myTileSet.boxsize, LayersMapTiles[:, iy, jx], self.myScale) self.TileList[iy][jx].clicked.connect(self.TileInMapClicked) self.TileList[iy][jx].mouseMoved.connect(self.mouseMoved) self.TileList[iy][jx].rightClicked.connect( self.TileInMapRightClicked) self.resize(self.TileWidth * parent.myTileSet.boxsize * self.myScale, self.TileHeight * parent.myTileSet.boxsize * self.myScale) # self.setUpdatesEnabled(True) self.setVisible(True)
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 __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 DrawPal(self): # self.setUpdatesEnabled(False) self.setVisible(False) if len(self.TileList) > 1: for collum in self.TileList: for wdgt in collum: self.Grid.removeWidget(wdgt) wdgt.deleteLater() wdgt.hide() del wdgt wdgt = None self.TileList = [] # get the background numbers and use to get the tiles i=0 for iy in range(self.TileHeight): self.TileList.append([]) for jx in range(self.TileWidth): tiletype = self.getTileType(jx,iy) tiletype[0]=i self.TileList[iy].append(base_tile.QTile(self)) self.Grid.addWidget(self.TileList[iy][jx], iy, jx) if(i!=0): self.TileList[iy][jx].initTile(self.t.tileset, jx, iy, self.t.boxsize, tiletype, self.myScale, True) self.TileList[iy][jx].clicked.connect(self.TileClicked) self.TileList[iy][jx].rightClicked.connect( self.TileRightClicked) else: self.TileList[iy][jx].initTile(self.t.tileset, jx, iy, self.t.boxsize, [0,0,0,0,0], self.myScale, True) i+=1 self.resize(self.TileWidth * self.t.boxsize * self.myScale, self.TileHeight * self.t.boxsize * self.myScale) self.setVisible(True)
def DrawMap(self, pMyMap, pMyTileset): self.setVisible(False) if (self.pMyMap != pMyMap): self.pMyMap = pMyMap self.selectedPosition = [0, 0] self.pMyTileset = pMyTileset LayersMapTiles = self.pMyMap.LayersMapTiles tileset = self.pMyTileset.tileset boxsize = self.pMyTileset.boxsize self.TileHeight = len(LayersMapTiles[0]) self.TileWidth = len(LayersMapTiles[0][0]) if len(self.TileList) > 1: for collum in self.TileList: for wdgt in collum: self.Grid.removeWidget(wdgt) wdgt.deleteLater() wdgt.setParent(None) wdgt = None self.TileList = [] # for i in height for iy in range(self.TileHeight): # for j in width self.TileList.append([]) for jx in range(self.TileWidth): self.TileList[iy].append(base_tile.QTile(self)) self.Grid.addWidget(self.TileList[iy][jx], iy, jx) self.TileList[iy][jx].initTile(tileset, jx, iy, boxsize, LayersMapTiles[:, iy, jx], self.myScale) self.TileList[iy][jx].clicked.connect(self.TileClicked) self.resize(self.TileWidth * boxsize * self.myScale, self.TileHeight * boxsize * self.myScale) self.setVisible(True) self.changeSelectXY(self.selectedPosition[0], self.selectedPosition[1])
def drawPalette(self, tileSetInstance): self.tileSetInstance = tileSetInstance 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(tileSetInstance.tileset)): self.PaletteTileList.append(base_tile.QTile()) self.Grid.addWidget(self.PaletteTileList[-1], i / 6, i % 6) self.PaletteTileList[-1].initTile(tileSetInstance.tileset, i, 0, tileSetInstance.boxsize, [i, 0, 0, 0, 0], self.scale) self.PaletteTileList[-1].clicked.connect(self.setTileCurrent) self.PaletteItems.resize(6 * tileSetInstance.boxsize, tMat.divideRoundUp( len(tileSetInstance.tileset), 6) * tileSetInstance.boxsize)
def __init__(self, pMyTileset, parent=None, **kwargs): #super().__init__(parent, **kwargs) QtWidgets.QWidget.__init__(self, parent, **kwargs) self.VBox = QtWidgets.QVBoxLayout(self) self.tileSetInstance = pMyTileset scrollArea = QtWidgets.QScrollArea() self.scale = 1 self.PaletteItems = QtWidgets.QWidget() self.Grid = QtWidgets.QGridLayout() self.PaletteItems.setLayout(self.Grid) scrollArea.setWidget(self.PaletteItems) self.Grid.setHorizontalSpacing(0) self.Grid.setVerticalSpacing(0) self.Grid.setSpacing(0) self.Grid.setContentsMargins(0, 0, 0, 0) self.PaletteTileList = [] self.drawPalette(self.tileSetInstance) self.currentTile = 0 self.CurrentTT = base_tile.QTile(self) self.CurrentTT.initTile(self.tileSetInstance.tileset, len(self.tileSetInstance.tileset) - 1, 0, self.tileSetInstance.boxsize, [self.currentTile, 0, 0, 0, 0], self.scale * 2) self.VBox.addWidget(scrollArea) self.VBox.addWidget(self.CurrentTT) self.setMinimumSize( self.tileSetInstance.boxsize * (6 + 1) * self.scale, self.tileSetInstance.boxsize * (1 + 1) * self.scale)