def isCellOnLand(self, position): """ Checks if the given position is a valid position for a start cell (must not be a water cell). """ areaTypesCodes = checks.getGroundTypes() return self.cells[str(position[0])][str(position[1])][0] is not areaTypesCodes['water']
def _exportWorldCreation(self, thread, db, name): """ Method to export the world in the DB. """ c = db.cursor() thread.notifyProgressLocal.emit(0, "Regions creation") # Create main region query = str("INSERT INTO region (region_name) VALUES (?)") c.execute(query, [name]) thread.notifyProgressLocal.emit(33, "Area types creation") # Create area types query = "INSERT INTO area_type (name) VALUES " areaTypesCodes = checks.getGroundTypes() valuesInsert = list() for t in self._placesTypes.keys(): valuesInsert.append("('" + t + "')") values = list() for t in areaTypesCodes: valuesInsert.append("(?)") values.append(t) query = query + ', '.join(valuesInsert) print valuesInsert c.execute(query, values) thread.notifyProgressLocal.emit(66, "Areas creation") # Get area types IDs query = "SELECT id_area_type, name FROM area_type" c.execute(query) result = c.fetchall() areaTypes = dict() for r in result: if r[1] in areaTypesCodes: code = areaTypesCodes[r[1]] areaTypes[code] = {'id_area_type': r[0], 'name': r[1]} # Open text file containing cells infos query = "INSERT INTO area (id_area_type, id_region, container, x, y, directions) VALUES (?, ?, ?, ?, ?, ?)" nbAreas = 0 for x in self.cells: for y in self.cells[x]: t = areaTypes[self.cells[x][y][0]] if t['name'] == 'water': continue nbAreas = nbAreas + 1 areas = [ areaTypes[self.cells[x][y][0]]['id_area_type'], 1, "world", x, y, self.cells[x][y][1] ] c.execute(query, areas) thread.notifyProgressLocal.emit(100, "Finished")