Browse Source

Map loaded updated

magicbox-1.5.2
MagicBot 1 year ago
parent
commit
73b6854266
  1. 37
      src/engine/util/MapLoader.java

37
src/engine/util/MapLoader.java

@ -103,31 +103,38 @@ public enum MapLoader { @@ -103,31 +103,38 @@ public enum MapLoader {
if (Files.isRegularFile(filePath)) {
File imageFile = filePath.toFile();
BufferedImage heightmapImage;
try {
BufferedImage heightmapImage = ImageIO.read(imageFile);
heightmapImage = ImageIO.read(imageFile);
} catch (IOException e) {
throw new RuntimeException(e);
}
// Generate pixel data for this heightmap. RPG channels are all the same
// in this greyscale TGA heightmap. We will choose red.
int fileName = Integer.parseInt(imageFile.getName().substring(0, imageFile.getName().lastIndexOf(".")));
boolean singleBandRaster = heightmapImage.getRaster().getNumBands() == 1;
int color;
short[][] colorData = new short[heightmapImage.getWidth()][heightmapImage.getHeight()];
// Generate pixel data for this heightmap.
for (int y = 0; y < heightmapImage.getHeight(); y++)
for (int x = 0; x < heightmapImage.getWidth(); x++) {
short[][] colorData = new short[heightmapImage.getWidth()][heightmapImage.getHeight()];
Color color = new Color(heightmapImage.getRGB(x, y));
colorData[x][y] = (short) color.getRed();
}
for (int y = 0; y < heightmapImage.getHeight(); y++)
for (int x = 0; x < heightmapImage.getWidth(); x++) {
// Insert color data into lookup table
if (singleBandRaster)
color = heightmapImage.getRaster().getSample(x, y, 0);
else
color = new Color(heightmapImage.getRGB(x, y)).getRed();
int heightMapID = Integer.parseInt(imageFile.getName().substring(0, imageFile.getName().lastIndexOf(".")));
Terrain._heightmap_pixel_cache.put(heightMapID, colorData);
colorData[x][y] = (short) color;
}
} catch (IOException e) {
Logger.error(e);
}
// Add pixel for this TGA image into the collection
Terrain._heightmap_pixel_cache.put(fileName, colorData);
}
}); // Try with resources block
} catch (IOException e) {

Loading…
Cancel
Save