From 1fda177e35b058e56011a3b9b60bfe351b393f79 Mon Sep 17 00:00:00 2001 From: ognivo777 Date: Thu, 23 Dec 2021 16:56:30 +0300 Subject: [PATCH] Fix water drawing for alpha 20 --- .../org/obiz/sdtd/tool/rgwmap/MapBuilder.java | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/obiz/sdtd/tool/rgwmap/MapBuilder.java b/src/main/java/org/obiz/sdtd/tool/rgwmap/MapBuilder.java index 1586b5c..3e7f91d 100644 --- a/src/main/java/org/obiz/sdtd/tool/rgwmap/MapBuilder.java +++ b/src/main/java/org/obiz/sdtd/tool/rgwmap/MapBuilder.java @@ -86,6 +86,7 @@ public class MapBuilder { private long prevLogTime; private String lastFileName; private Color ROAD_MAIN_COLOR = new Color(141, 129, 106);; + private Color WATER_MAIN_COLOR = new Color(49, 87, 145); private Color ROAD_SECONDARY_COLOR = new Color(52, 59, 65); @@ -187,6 +188,7 @@ private void build() { drawRadiation(); applyHeightsToBiomes(); drawRoads(); + drawWater(); drawPrefabs(); log( "\n------------------- All work done! ------------------- \n\n" + " Result map image: " + lastFileName + "\n\n" + @@ -510,6 +512,36 @@ private void drawRoads() throws IOException { writeToFile("_map_with_roads", iBiomes); } + private void drawWater() throws IOException { + log("Load water file"); + BufferedImage water = ImageIO.read(new File(path + "\\splat4.png")); + log("Water loaded. Start drawing."); + +// Color roadColor; + + DataBuffer db = iBiomes.getRaster().getDataBuffer(); + + DataBuffer rdb = water.getAlphaRaster().getDataBuffer(); + + System.out.println("TEST : " + (rdb.getSize()/4-mapSize*mapSize)); + + //TODO multithread + + for (int i = 0; i < scaledSize; i++) { + for (int j = 0; j < scaledSize; j++) { + for (int k = 0; k < 4; k++) { + int c = rdb.getElem(ImageMath.xy2i(water,i*downScale, j*downScale, k)); + if(c!=0) { + db.setElem(ImageMath.xy2i(iBiomes, i, j), ImageMath.getPureIntFromRGB(WATER_MAIN_COLOR)); + } + } + } + } + log("Finish water drawing."); + + writeToFile("_map_with_water", iBiomes); + } + private void applyHeightsToBiomes() throws IOException { long start, end; @@ -530,7 +562,7 @@ private void applyHeightsToBiomes() throws IOException { for (int y = 0; y < scaledSize; y++) { if (iHeigthsRaster.getSample(x, y, 0) < waterLine && iWaterZones.getRaster().getSample(x, y, 0) > 0) { - iBiomes.setRGB(x, y, new Color(49, 87, 145).getRGB()); + iBiomes.setRGB(x, y, WATER_MAIN_COLOR.getRGB()); } } }