private synchronized void createLevel(String levelPath, GameMode mode) { LevelInformation li = LevelInformation.getInfoForPath(levelPath); if (li != null) { createLevel(li, mode); return; } else if (!isMultiplayer) { showError("Missing map."); } showError("Missing map - Multiplayer"); }
private void openLevel(LevelInformation li) { BufferedImage bufferedImage = null; try { if (li.vanilla) { bufferedImage = ImageIO.read(MojamComponent.class.getResource(li.getPath())); } else { bufferedImage = ImageIO.read(new File(li.getPath())); } } catch (IOException ioe) { } int w = bufferedImage.getWidth(); int h = bufferedImage.getHeight(); int[] rgbs = new int[w * h]; bufferedImage.getRGB(0, 0, w, h, rgbs, 0, w); newLevel(); removeText(levelName); levelName = new Text(1, li.levelName, 120, 5); addText(levelName); for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { int col = rgbs[x + y * w] & 0xffffffff; // loadColorTile(col, x, y); IEditable tile = LevelUtils.getNewTileFromColor(col); draw(tile, x, y); if (tile instanceof FloorTile) { Entity entity = LevelUtils.getNewEntityFromColor(col, x, y); if (entity instanceof IEditable) { draw((IEditable) entity, x, y); } } } } }