public static World readWorldFromFile(String fileName) {
		try {
			FileReader file = new FileReader(fileName);
			BufferedReader reader = new BufferedReader(file);
			
			// Obtiene la información del mapa:
			String worldInfo = reader.readLine();
			int aux = worldInfo.indexOf('x');
			int x = Integer.parseInt(worldInfo.substring(0, aux).trim());
			worldInfo = worldInfo.substring(aux+1);
			aux = worldInfo.indexOf('x');
			int y = Integer.parseInt(worldInfo.substring(0, aux).trim());
			worldInfo = worldInfo.substring(aux+1);
			aux = worldInfo.indexOf('@');
			int z = Integer.parseInt(worldInfo.substring(0, aux).trim());
			String name = worldInfo.substring(aux+1).trim();
			
			Tile[][][] tiles = new Tile[x][y][z];
			for (int k=0; k<z; k++) {
				for (int j=0; j<y; j++) {
					String line = reader.readLine();
					for (int i=0; i<x; i++) {
						switch (line.charAt(i)) {
							case '.': tiles[i][j][k] = Tile.FLOOR; break;
							case '#': tiles[i][j][k] = Tile.DIRT; break;
							case '^': tiles[i][j][k] = Tile.STONE; break;
							case '>': tiles[i][j][k] = Tile.STAIRS_DOWN; break;
							case '<': tiles[i][j][k] = Tile.STAIRS_UP; break;
							default: tiles[i][j][k] = Tile.BOUNDS; break;
						}
					} // for
				} // for
			} // for
			reader.close();
			return new World(name, tiles);
		}
		catch (IOException e) { System.out.println(e); }
		return null;
	}