Improved code structure for shading map.
World layering improved by adjusting desert sand thickness and lowering overall mountain peak height.
This commit is contained in:
parent
7d985f4489
commit
262a83c7e9
@ -68,13 +68,23 @@ public class IslandMapItem extends MapRenderer implements VariedItem {
|
|||||||
for (int y = 0; y < 128; y ++) {
|
for (int y = 0; y < 128; y ++) {
|
||||||
int actualX = blocksPerPixel * (x - Byte.MAX_VALUE/2) + map.getCenterX();
|
int actualX = blocksPerPixel * (x - Byte.MAX_VALUE/2) + map.getCenterX();
|
||||||
int actualZ = blocksPerPixel * (y - Byte.MAX_VALUE/2) + map.getCenterZ();
|
int actualZ = blocksPerPixel * (y - Byte.MAX_VALUE/2) + map.getCenterZ();
|
||||||
byte baseColorVal = canvas.getBasePixel(x, y);
|
|
||||||
Color baseColor = MapPalette.getColor(baseColorVal);
|
|
||||||
Point2 pCoords = new Point2(actualX, actualZ);
|
Point2 pCoords = new Point2(actualX, actualZ);
|
||||||
IslandInformation info = islandInformationManager.getIslandInformation(pCoords, false);
|
IslandInformation info = islandInformationManager.getIslandInformation(pCoords, false);
|
||||||
if (info != null) {
|
if (info != null) {
|
||||||
Color mixed = new Color((int) Math.min(255, baseColor.getRed() * 1.5f), (int) Math.min(255, baseColor.getGreen() * 0.7f), (int) Math.min(255, baseColor.getBlue() * 0.44f));
|
byte baseColorVal = canvas.getBasePixel(x, y);
|
||||||
canvas.setPixel(x, y, MapPalette.matchColor(mixed));
|
Color mainColor = new Color(255, 120, 70);
|
||||||
|
Color baseColor = null;
|
||||||
|
if (baseColorVal != 0) {
|
||||||
|
baseColor = MapPalette.getColor(baseColorVal);
|
||||||
|
} else {
|
||||||
|
baseColor = new Color(1f, 1f, 1f);
|
||||||
|
}
|
||||||
|
Color resultingColor = new Color(
|
||||||
|
(mainColor.getRed() * baseColor.getRed())/(255f * 255f),
|
||||||
|
(mainColor.getGreen() * baseColor.getGreen())/(255f * 255f),
|
||||||
|
(mainColor.getBlue() * baseColor.getBlue())/(255f * 255f)
|
||||||
|
);
|
||||||
|
canvas.setPixel(x, y, MapPalette.matchColor(resultingColor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ public class WorldLayerShader {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (mainBiomeName.contains("mountain")) {
|
} else if (mainBiomeName.contains("mountain")) {
|
||||||
if (y > (maxHeight * 0.48d) - getNormalizedNoise(worldX, worldZ, 2.2f) * 8d) {
|
if (y > (maxHeight * 0.36d) - getNormalizedNoise(worldX, worldZ, 2.2f) * 8d) {
|
||||||
res = Material.STONE.createBlockData();
|
res = Material.STONE.createBlockData();
|
||||||
} else if (y > highestPoint - getSurfaceThickness(worldX, worldZ, mainBiome)) {
|
} else if (y > highestPoint - getSurfaceThickness(worldX, worldZ, mainBiome)) {
|
||||||
res = getSurfaceMaterial(mainBiome).createBlockData();
|
res = getSurfaceMaterial(mainBiome).createBlockData();
|
||||||
@ -98,7 +98,7 @@ public class WorldLayerShader {
|
|||||||
return Material.SAND;
|
return Material.SAND;
|
||||||
} else if (biome == Biome.ICE_SPIKES) {
|
} else if (biome == Biome.ICE_SPIKES) {
|
||||||
return Material.SNOW_BLOCK;
|
return Material.SNOW_BLOCK;
|
||||||
} else if (biomeName.contains("ocean")) {
|
} else if (biomeName.contains("ocean") || biomeName.contains("gravelly")) {
|
||||||
return Material.GRAVEL;
|
return Material.GRAVEL;
|
||||||
} else if (biomeName.contains("stone")) {
|
} else if (biomeName.contains("stone")) {
|
||||||
return Material.STONE;
|
return Material.STONE;
|
||||||
@ -109,8 +109,10 @@ public class WorldLayerShader {
|
|||||||
public int getSurfaceThickness(int worldX, int worldZ, Biome biome) {
|
public int getSurfaceThickness(int worldX, int worldZ, Biome biome) {
|
||||||
String biomeName = biome.toString().toLowerCase();
|
String biomeName = biome.toString().toLowerCase();
|
||||||
|
|
||||||
if (biomeName.contains("beach")) {
|
if (biomeName.contains("beach") || biomeName.contains("desert")) {
|
||||||
return (int) (getNormalizedNoise(worldX, worldZ, 1.3f) * 5) + 4;
|
return (int) (getNormalizedNoise(worldX, worldZ, 1.3f) * 5) + 4;
|
||||||
|
} else if (biomeName.contains("gravelly")) {
|
||||||
|
return (int) (getNormalizedNoise(worldX, worldZ, 1.3f) * 5);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user