public Tile[][] getNewWorld(int width, int height) {
		MapGenerator g = new MapGenerator(seed);
		int[][] mapData = g.generateWorld(width/10, height/10);
		width = mapData.length * 10;
		height = mapData[0].length * 10;
		
		//Resets the spawn points.
		this.resetSpawnPoints();
		
		//Create grass everywhere.
		Tile[][] tiles = new Tile[width][height];
		for(int x = 0; x < tiles.length; x++) {
			for(int y = 0; y < tiles[0].length; y++) {
				tiles[x][y] = new Tile(new Position(x, y), 0);
			}
		}
				
		//Loops through every tileset and adds the right tiles.
		for(int x = 0; x < mapData.length; x++) {
			for(int y = 0; y < mapData[0].length; y++) {
				//Adds water.
				if(mapData[x][y] == MapGenerator.WATER) {
					addTiles(tiles, x*10, y*10, "lots/water.lot");
				}
				//Adds shorelines.
				else if(mapData[x][y] == MapGenerator.SHORE) {
					this.buildDynamicTile(tiles, mapData, x, y, BASE_SHORE, MapGenerator.WATER, false);
				}
				//Adds the right road part to the world.
				if(mapData[x][y] == MapGenerator.ROAD) {
					this.buildDynamicTile(tiles, mapData, x, y, BASE_ROAD, MapGenerator.ROAD, false);
				}
				else if(mapData[x][y] == MapGenerator.HOUSE) {
					this.tryPlaceBuilding(tiles, mapData, x, y, BASE_RESIDENTIAL, MapGenerator.HOUSE);
				}
			}
		}
				
		return tiles;
	}