Simply Improved Terrain

Simply Improved Terrain

2M Downloads

Simply Improved Terrain prevents modded end biomes from generating when certain combinations of mods are installed

NJL5390 opened this issue · 16 comments

commented

Mod Versions used in testing (With Biomes o Plenty world type):
Simply Improved Terrain version: 0.3.1
Forge Version: 36.1.16
Endergetic Expansion version: 3.0.0
Outer End Version: 0.2.11
Abnormals Core Version: 3.1.1
Biomes O Plenty Version: 13.1.0.458
Atmospheric Version: 3.1.0
Abundance: 1.0.5
Bayou Blues: 1.0.4
Better Badlands: 2.0.3
Environmental: 1.0.0
Fruitful: 2.0.0
Allurement: 1.1.1
Autumnity: 2.1.0

Latest Log: https://gist.github.com/NJL5390/2f84ab7d2702ff931d97084ba90686ee (With the above mods)

Hi!

First of all thanks for the awesome mod! I'm very surprised I hadn't came across this mod before now as it's exactly what I've been looking for!

Secondly, I've unfortunately been having issues with biome generation in The End. Whenever I have this mod installed in my modpack. Whenever I try and explore the end, I find that I cannot locate any biomes added by other mods and can only find vanilla end biomes. This is true even when using the /locatebiome command, none are able to be found. but vanilla end biomes are located very easily, whereas modded ones such as those added by Endergetic Expansion and The Outer End are nowhere to be found.

EDIT: I have been able to narrow down the mods causing this to the list above. I will let you know if I am able to narrow this issue down any further.

Let me know if I can help out in any way and I will try my best to assist.

Thanks.

commented

Looks like the new Abnormals Core was released recently. https://www.curseforge.com/minecraft/mc-mods/abnormals-core

Going to verify everything is good on compatibility then close this issue.

commented

I've been playing with this new version for a while now and I haven't had this bug occur to me at all in that time. In fact the small update you did to your mod shortly after our last conversation seemed to be enough to fix it as even before this new abnormals core was released this issue was fixed, I haven't had this bug occur to me since you last released an update to the forge version of this mod.

But if you want to verify it for yourself then I'll happily wait for you to close the issue.

commented

After a lot of testing I seem to have narrowed down this issue to a few different mods, which I have listed in the edited comment above. I have also been able to get a log file for when this happens too: https://gist.github.com/NJL5390/2f84ab7d2702ff931d97084ba90686ee

Some screenshots of what happens when this issue happens:
2021-05-01_13 00 37
2021-05-01_13 00 48

I will provide another update to this if I am able to narrow down the culprit mods any further.

commented

After some more testing. I have been unable to narrow down this list any further, Therefore it seems to be a combination of mods together that is causing this issue and not any particular individual mod.

I have also discovered that this is not the only combination of mods that causes this issue, there are other mod combinations that seem to be causing this issue as well. But this is the narrowest list that I have been able to get together to make this issue reproducible as an example of it occurring. So unfortunately it could be some kind of issue with your mod and not necessarily any of the other ones.

I hope this helps you out with this issue. Let me know if I can be of any of further assistance in helping with this issue.

I really hope this issue gets fixed soon as I really like this mod and I'd hate to have to remove this mod so that the end biomes added by my modpack can spawn in again.

Thanks.

commented

Good find. I'll try your combination of mods. I suspect it may have something to do with mods mixing into the same method.

commented

It appears to be Outer End and its dependency Abnormals Core both causing the issue.

Outer End overwrites the biome method. If this were a Mixin that only checks and modifies the return value, it would be compatible with mods like mine that change the End island generation. There's a comment saying it's no longer needed, but they haven't removed the code yet.

But even if they removed that, Abnormals Core which they now use would still cause the issue. It uses a mixin, but it mixes into the method at the HEAD level and reiterates the Vanilla noise code, when the result really only needs to depend on the return value of whatever the existing code is.

I will test the fixes on my end, then see if I can submit them to the respective dev teams.

commented

I will test the fixes on my end, then see if I can submit them to the respective dev teams.

Awesome, I appreciate you working so hard to get this issue fixed! Thanks a lot!

commented

Hmm... tried replacing the code in Abnormals Core with this. End Biomes still spawned without Simply Improved Terrain, but they wouldn't spawn with it. Tried both @At("TAIL") and @At("RETURN"). Tested with Endergetic Expansion 3.0.0.

    @Inject(at = @At("TAIL"), method = "getNoiseBiome(III)Lnet/minecraft/world/biome/Biome;", cancellable = true)
    private void addEndBiomes(int x, int y, int z, CallbackInfoReturnable<Biome> info) {
        Biome oldBiome = (Biome)info.getReturnValue();
        Biome newBiome = getNoiseBiome(x, z);
        
        boolean island = (oldBiome == this.endHighlandsBiome || oldBiome == this.endMidlandsBiome);
        boolean notStillChorus = (newBiome != this.endMidlandsBiome);
        if (island && notStillChorus) {
            info.setReturnValue(newBiome);
            return;
        }
        
        if (oldBiome == this.endBarrensBiome && notStillChorus) {
            info.setReturnValue(newBiome);
            return;
        }
    }

Going to keep looking for a solution.

commented

You'll find a solution, don't worry. I have faith in you! :)

If you need me to test anything or help out in any way then just let me know. I don't really have any coding experience but I can test whatever needs tested and I'll be willing to help out in whatever way I can!

commented

Actually, good news:
image
All I need to do is replace my @ Inject with an @ Overwrite, then make a PR to Abnormals to change their @ Inject to a return based one.

commented

I put the PR in for Abnormals Core. Now just have to wait for if it's merged, and when its next update to CurseForge is. I'll get the update to this mod on CurseForge shortly.

team-abnormals/blueprint#100

commented

Thanks for your help with this! I greatly appreciate it and I look forward to seeing your plans for this mod in the future!

Cheers!

commented

Also as a heads up, it seems that the latest abnormals core changes something that Outer End (which depends on it) doesn't like. This isn't related to my PR change, but might require a separate fix on one of the mods' ends.
image

commented

It turns out that Mixins responding to the return values of other Mixins isn't a currently supported feature. I'm going to try to either add a mapper that specifically looks for the Abnormals Core code, or create a separate, dedicated mod to fixing both problems.

commented

Oh right, I should clarify that it was the one produced by cloning the repository and building it myself. The version number it lists is 3.2.0, so it may be either a coming change in the 3.2.0 version, or it may be a bug that'll get resolved before 3.2.0 actually gets released.

commented

Which version of abnormals core? 3.1.1? Cos I'm using both mods right now and it's working fine on my end.

Thanks for letting me know about this anyway, I'll keep an eye out for it.