jsorrell / CarpetSkyAdditions

Empty world generation with new ways to obtain resources
MIT License
428 stars 87 forks source link

"Coral Utopia" advancement bug report + question regarding suitability value #139

Closed uixeL closed 10 months ago

uixeL commented 10 months ago

Any blocks placed in "high suitability" seem to grant the advancement, not only calcite.

Now for the question: could you share more info in mod features doc regarding suitability? How does it exactly depend on temperature and continentalness? (what's the formula?) What is the minimum suitability needed to get the aforementioned advancement? How does the chance of converting upon a random tick depend on suitability?

Thank you in advance for your answer.

jsorrell commented 10 months ago

Thanks for reporting the bug.

The math is defined in this file: https://github.com/jsorrell/CarpetSkyAdditions/blob/main/src/main/java/com/jsorrell/carpetskyadditions/helpers/CoralSpreader.java

In pseudocode:

if dimension is not overworld then
    suitability = 0
else if flat world then
    suitability = 0.5
else
    # This value is clamped between 0 and 1
    suitability = 1 - ((temperature - 0.65)^2 + (continentalness + 0.3)^2)

The chance of conversion upon a random tick is suitability * 0.49 + 0.01

jsorrell commented 10 months ago

Oh, and the advancement triggers at 99%. I'll add this info to the docs.