Map loaded updated

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