Open DUDEbehindDUDE opened 1 year ago
Honestly I'm not entirely sure about this. For leaf colors, there's not much we can do at this time. Perhaps we could do some weirdness with custom blocks for the leaf colors, though this would be quite specialized and likely require some sort of extension if we ever did allow it. See https://github.com/GeyserMC/Geyser/pull/3505.
For water color, this would require more investigation. Though it seems water color is sent over the network for biomes, I am not entirely sure the client respects this. For reference, over the network these currently look like:
{
"bamboo_jungle": {
"ash": 0.0f,
"blue_spores": 0.0f,
"depth": 0.1f,
"downfall": 0.9f,
"height": 0.2f,
"minecraft:climate": {
"ash": 0.0f,
"blue_spores": 0.0f,
"downfall": 0.9f,
"red_spores": 0.0f,
"snow_accumulation_max": 0.125f,
"snow_accumulation_min": 0.0f,
"temperature": 0.95f,
"white_ash": 0.0f
},
"minecraft:overworld_generation_rules": {
"extended_edge_transformation": [
{
"condition": "{"all_of":[{"operator":1,"subject":0,"test":"has_biome_tag","value":"jungle"},{"operator":1,"subject":0,"test":"has_biome_tag","value":"ocean"},{"any_of":[{"operator":1,"subject":0,"test":"has_biome_tag","value":"forest"},{"operator":0,"subject":0,"test":"has_biome_tag","value":"cold"},{"operator":0,"subject":0,"test":"has_biome_tag","value":"hills"},{"operator":0,"subject":0,"test":"has_biome_tag","value":"mega"},{"operator":0,"subject":0,"test":"has_biome_tag","value":"mutated"},{"operator":0,"subject":0,"test":"has_biome_tag","value":"birch"}]}]}
",
"min_passing_neighbors": 1i,
"transforms_into": [
{
"biome": "jungle_edge",
"weight": 1i
}
]
}
],
"hills_transformation": [
{
"biome": "bamboo_jungle_hills",
"weight": 1i
}
]
},
"name_hash": "bamboo_jungle",
"rain": 1b,
"red_spores": 0.0f,
"tags": [
"animal",
"bamboo",
"jungle",
"monster",
"overworld"
],
"temperature": 0.95f,
"waterColorA": 0.65f,
"waterColorB": 0.7725491f,
"waterColorG": 0.63529414f,
"waterColorR": 0.078431375f,
"waterTransparency": 0.65f,
"white_ash": 0.0f
}
}
However, confusingly there is also a file called biome_client.json
that ships with the vanilla resources and seems to contain, among other things, water surface color. See https://github.com/Mojang/bedrock-samples/blob/main/resource_pack/biomes_client.json.
So I would say grass and leaf colors is missing client feature, while water might be doable with some investigation (though if it's defined through biomes_client.json
we'd either have to generate a resource pack on the fly or the server would need to provide one).
Yes, water colors are definitely possible (I have some very old proof-of-concept code for it). I am also not aware of leaf/grass colors being customizable on Bedrock, so I never bothered moving forward with the water color support.
Maybe Geyser auto creating a texterpack when the server checks the datapacks and sees custom biome mappings.
What feature do you want to see added?
In Java edition, the color of grass, leaves, and I believe water as well can be defined in custom biomes. Currently, grass and leaf colors of new biomes added by datapacks/mods aren't reflected in bedrock. This is really apparent in some datapacks such as Terralith. For example, here is Terralith's "moonlight grove" on Java vs how it looks on Bedrock:
Here is another comparison between Java and Bedrock respectively in the "forested highlands" biome (also from Terralith) with the temperate highlands in the background:
Water color also probably has the same problem too, but I haven't tested that.
Are there any alternatives?
Resource packs, maybe? But I don't know where to begin on this.