YUNG-GANG / YUNGs-Better-Caves

Minecraft mod that completely overhauls cave generation
https://www.curseforge.com/minecraft/mc-mods/yungs-better-caves
GNU Lesser General Public License v3.0
102 stars 51 forks source link

Caverns in ocean biomes have walls on chunk borders with OTG #53

Closed Zerrox0 closed 4 years ago

Zerrox0 commented 4 years ago

First of all, awesome mod, I love it. Therefore I hope this issue can be resolved quickly, maybe it's even a config error on my side.

I setup the caverns to be quite large and also allow them to spawn higher up, but now I've run into a problem: While some caverns work fine, most of them, especially bigger ones get solid stone walls on all 4 chunk edges, with the occasional cave forming a hole through it.

2020-05-15_18 52 53 2020-05-15_18 53 06 2020-05-15_18 53 40

I'm using the latest version for 1.12.2 and have a few other mods installed. The terrain generator is Biome Bundle, a pack for Open Terrain Generator. I will try to reproduce it with just Better Caves installed next, and share my results here.

This is my config file.

Btw, sorry if I got the terminology wrong. I think caverns are the underground type that I'm experiencing this issue with. Correct me if I'm wrong.

Zerrox0 commented 4 years ago

With only Better Cave installed, I'm not running into the issue. I'll try to figure out which mod it is conflicting with to cause this.

Zerrox0 commented 4 years ago

Seems to happen only below ocean biomes in otg worlds. Tested this with only OTG, Biome Bundle and Better Caves. I also tried a different OTG preset. Same story.

Zerrox0 commented 4 years ago

Also other biomes, basically all deep water masses. Vanilla uses deep ocean for all oceans deeper than 35 or so, and in that case the caverns seem to be filled with water every time, the borders don't happen. Correct me if I'm wrong about any of this.

So maybe it's about the caverns closing off to the top below normal oceans, when the caverns are not filled with water?

I'm just throwing in some ideas, I don't know how exactly your cave-generation works, or what causes the issue exactly.

yungnickyoung commented 4 years ago

Is this with or without flooded underground enabled? The issue is most likely a bug with flooded caverns trying to close off to avoid contact with non-flooded caverns. EDIT: sorry just saw you included the config

Zerrox0 commented 4 years ago

Flooded underground is enabled, but flooded underground doesn't seem to generate in OTG worlds. At least I've not seen it yet, and I've explored a lot in specator mode. Do flooded undergrounds possibly only generate below the deep ocean biome? Because I've also not seen that in the OTG world.

Edit: The bug occurs below the normal "ocean" biome, and even though the setting is enabled, the caves aren't flooded.

yungnickyoung commented 4 years ago

They generate in all ocean biomes. So it could be a problem with how OTG overrides biome placement. Try disabling flooded underground as a workaround for now. I think that may eliminate the issue.

Zerrox0 commented 4 years ago

The workaround works, thank you very much.

If there's any way I can help to fix the issue with flooded underground in OTG worlds, feel free to ask, I'll be happy to assist.

PG85 commented 4 years ago

Hey guys, OTG dev here, thanks for reporting this and sorry for the late reply. I'm guessing that Yung's tries to detect a vanilla Ocean biome, and doesn't detect that OTG's ocean biomes are in fact Ocean biomes. Could this be the case, and how/where/when does Yung query the biome at a given coordinate, for flooded underground? Are you querying the Forge biome dictionary (not biome registry) to see if the biome has the "OCEAN" biome dictionary tag? That would work for custom ocean biomes too.

Just guessing here ofc, I can take a better look if you can point me to the relevant code, thanks!

yungnickyoung commented 4 years ago

Hey, the following is how I check the biome. https://github.com/yungnickyoung/YUNGs-Better-Caves/blob/fd8069322e6f17ce01928b5e27537cab85a4a02f/src/main/java/com/yungnickyoung/minecraft/bettercaves/world/CaveCarverController.java#L164

I didn't realize this wouldn't work for modded biomes. Should I add an OR to that condition to check if the biome has the biome dictionary OCEAN tag as well?

PG85 commented 4 years ago

Hey @yungnickyoung , it depends on how you'd like the feature to behave. In this case, it'll only apply to biome classes that have overridden the getTempCategory method to return TempCategory.Ocean, which is the case for the vanilla ocean biomes, but may not be for custom biomes added by mods (OTG doesn't do this fe). Forge Biome Dictionary id's/tags are a more common way to add labels to biomes so they can be targeted based on those labels.

See: https://github.com/MinecraftForge/MinecraftForge/blob/1.12.x/src/main/java/net/minecraftforge/common/BiomeDictionary.java.

You can target lots of different things with biome dict id's/tags, so it's a pretty handy feature :).

yungnickyoung commented 4 years ago

Ahh alright, yeah that fixed it. I only just found out about the Biome Dictionary a few weeks ago when porting my mineshaft mod to 1.12. At the time of adding the flooded caves feature, I assumed the convention for modded biomes was to set the TempCategory accordingly, and I never verified that assumption. My apologies for sending people your way for this, and thanks for your help!

PG85 commented 4 years ago

No worries, glad to help, cheers :).