Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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()
Exemplo n.º 6
0
    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()
Exemplo n.º 7
0
    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()
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
    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)
Exemplo n.º 10
0
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
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
    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()
Exemplo n.º 13
0
 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()
Exemplo n.º 14
0
    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()
Exemplo n.º 15
0
    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...')
Exemplo n.º 16
0
    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]))
Exemplo n.º 17
0
def test_TileSet_boxsize():
    mytileset = tile_set.TileSet(gettestdata('testTiles.png'))
    assert mytileset.boxsize == 32
Exemplo n.º 18
0
def test_TileSet_length():
    mytileset = tile_set.TileSet(gettestdata('testTiles.png'))
    assert len(mytileset.tileset) == 3
Exemplo n.º 19
0
    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)
Exemplo n.º 20
0
    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]))