Closed LambdAurora closed 1 year ago
When the biome generates but cannot be found and the features do not appear (which I'm guessing from your screenshot is the case), it tends to mean the registry entry resolved for the noise parameters is not literally the same one in the registry at world generation time. Minecraft will sometimes directly and indirecftly compare registry entries with .equals()
which may return false even though the content of the registry entry is identical.
It's been a while since I dealt with this in Fabric, because after I reported the problem, they added some code to prevent it; I will have to investigate.
Registry entries used by Biolith are resolved when the server world is created:
@Mixin(ServerWorld.class)
public class MixinServerWorld {
@Inject(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/world/ServerChunkManager;<init>(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/world/level/storage/LevelStorage$Session;Lcom/mojang/datafixers/DataFixer;Lnet/minecraft/structure/StructureTemplateManager;Ljava/util/concurrent/Executor;Lnet/minecraft/world/gen/chunk/ChunkGenerator;IIZLnet/minecraft/server/WorldGenerationProgressListener;Lnet/minecraft/world/chunk/ChunkStatusChangeListener;Ljava/util/function/Supplier;)V", shift = At.Shift.BY, by = 2))
private void biolith$ServerWorld(CallbackInfo ci) {
BiomeCoordinator.handleWorldStarting((ServerWorld)(Object) this);
}
}
So probably the first thing I need to figure out is whether Quilt or Minecraft (when running with Quilt) modify the biome registry after this point.
I believe that we don't modify the registry at this point as we tend to respect registry freezing.
In that case I don't know what is going on here and have some work cut out for me... Biolith has been tested quite a bit with the Terraformers mods in Fabric 1.19.3 and 1.19.4 so there is some difference, probably an order of operations thing, I have to figure out.
The latest Quilt versions place, generate, and locate just like they should with Traverse and Terrestria using Biolith, so if you didn't fix this issue I probably need to take a look at Wandering Wizardry.
I guess it's something to do with that mod. To be honest, I only used it to test Quilt's fix for #1, wasn't aware I could've used Traverse or Terrestria to test.
Yes, they package Biolith for the surface rules and surface builder interfaces, so if TerraBlender is not present, as of 1.19.4 they will fall back on Biolith for biome placement.
Fixed by 7c4abd1aeabc0930a495cd176dc264a0f5963265
While testing for a potential fix to #1 in QSL itself, I tried to use the same mods that caused issues, as you can see I did find a fix since I'm in a world. But more on-topic, I am unable to locate the biome added using Biolith despite being literally in the biome, using the latest experimental build in the releases.