forked from MagicBane/Server
Map loaded updated
This commit is contained in:
@@ -103,31 +103,38 @@ public enum MapLoader {
|
||||
if (Files.isRegularFile(filePath)) {
|
||||
File imageFile = filePath.toFile();
|
||||
|
||||
BufferedImage heightmapImage;
|
||||
|
||||
try {
|
||||
BufferedImage 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);
|
||||
|
||||
heightmapImage = ImageIO.read(imageFile);
|
||||
} 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
|
||||
|
||||
} catch (IOException e) {
|
||||
|
||||
Reference in New Issue
Block a user