1.17.1, 21w41a, 21w44a, 1.18 Release Candidate 3
A multitude of cold biomes are configured to tint water a deeper blue than normal. However, this only applies to some biomes - others (notably including the cold mountain biomes added in 1.18) just use the default water color instead, which is wrong.
This table details what biomes use what approximate colors. Also refer to the screenshots attached to this ticket.
|minecraft:plains||Default||Included here for reference|
|minecraft:ocean||Default||Included here for reference|
|minecraft:deep_ocean||Default||Included here for reference|
|minecraft:river||Default||Included here for reference|
|minecraft:cold_ocean||Slightly bluer than default|
|minecraft:deep_cold_ocean||Slightly bluer than default|
|minecraft:frozen_ocean||Moderately bluer than default|
|minecraft:deep_frozen_ocean||Moderately bluer than default|
|minecraft:frozen_river||Moderately bluer than default|
|minecraft:snowy_taiga||Slightly bluer than default|
|minecraft:snowy_beach||Slightly bluer than default|
The biomes marked in the above table would use water colors which are bluer than default.
Said biomes just reuse the default water coloring, causing inconsistencies.
There are several ways in which this could be fixed. I have listed three different methods below, starting with the most basic and ending with the most preferable.
The first, and worst, approach would be to simply changing the marked biomes to use a slightly bluer water color instead of having them just use the default color water uses. This way they'd line up with other cold biomes.
A better idea than this, though, would be to port the water colors from Bedrock Edition, which are defined for a much more diverse set of biomes than is currently the case on Java Edition. With 1.18 making major changes to biomes and aiming for seed parity, not only would this be another step towards parity, but could also fix other biome color bugs such as
MC-130445 and MC-194412. A list can be found here: https://minecraft.fandom.com/wiki/Tint#Water_3
- Click on the wiki link above
- Modify each biome's json file to set their respective water colors to the respective values in the above Bedrock Edition table (which should include the biomes considered inconsistent here)
The final proposed fix requires code changes, but would prevent any future cases similar to this bug from happening, as only a small subset of biomes would require an explicit override for the biome color. All of the problem biomes mentioned within this ticket would be fixed automatically, due to not belonging to this subset.
This would specifically involve the use an an unused, since-removed water colormap file that existed in versions from Beta 1.6 Test Build 3 and was removed in 1.6 (13w24a) due to ultimately being unused at the time. Originally intended for use on biome-specific water colors (like was done for grass and leaves at the time), the snippet of code that referenced it also went unused.
This file could be reimplemented into modern versions to handle water colors for most biomes (with swamps being the only exception that would need an explicit definition, as well as possibly nether and end biomes if parity is also desired). As such, manually-specified water color values could be removed from all other biomes, as this colormap file would fill in for them instead.
- Obtain the file from any version that has it (such as 1.5.2) - it can be found as [jar]/misc/watercolor.png
- Place this file into the current version and rename it: [jar]/assets/minecraft/textures/colormap/water.png
- Remove the explicitly defined water colors from all biome json files, excluding swamps
- Change the code that handles biome colors such that if no color is defined for water, it instead refers to colormap/water.png and picks a color depending on the temperature and humidity values (which is how grass and foliage are handled currently)
- (optional but recommended) Also define colors for all Nether and End biomes to be what they're defined as in Bedrock Edition, for the sake of parity, since the colormap's definitions for those might not look as good
- Rejoice in the fact that oversights like this will never crop up again in future