TACT - Tiny Alex's Caves Tweaks

TACT - Tiny Alex's Caves Tweaks

3M Downloads

Underground Cabins spawning in AC biomes

emihead opened this issue · 5 comments

commented

Hi, I already mentioned this in my previous issue about mob spawns but I wanted to come back and ask about it again since it was never really resolved.
With this mod installed, I'm getting Underground Cabin spawns in AC's cave biomes. I'm not entirely sure if this is related to TACT - AC has a has_no_underground_cabins tag which includes all of the cave biomes, but it's possible that it's somehow being overridden by has_underground_cabins?
This would be a fault of AC's tbh. I assume they must have made the tag before deciding to remove is_overworld from the cave biomes and didn't bother making sure it cancelled out has_underground_cabins, since removing is_overworld had the same effect. That's just speculation, though.
What I'm trying to say is I'm curious if this issue could be related to TACT, and if it is, if there's a method using a datapack or other mod to prevent the cabins from spawning in these biomes.

commented

I just took a look at the actual structure json for the underground cabin and it seems it's only checking for has_underground_cabins. I believe this may actually be a vanilla Minecraft limitation rather than an AC issue then, since it doesn't seem like there's any way to exclude specific biomes from structure generation from what I can tell - so the only way around this without other mods, to my understanding, would be to edit the has_underground_cabins tag to include every biome but the Alex's Caves biomes.
I wonder if it'd be possible for TACT to do this automatically? Something like Biome Spawn Point does, where it makes a list of every registered biome at some point and adds them all to the tag excluding the AC ones. There might be a simpler way, I dunno. At the same time though, if this is something you expect modpack authors to do manually, I understand. In that case, it could be nice to include a disclaimer about it, though.

commented

You can use KubeJS or CraftTweaker iirc to remove entries from tags easily. This is what packmakers do to fine tune their modpacks. You can also use a datapack and override has_underground_cabins tag with setting replace to true and then specifying all biomes you want the cabin in so it only spawns in those exact biomes for your pack.

commented

Also you never said what mod the underground cabin is from as there’s a few mods with them. So I can’t look into it anyway without knowing source of structure

commented

Also, I just checked
https://github.com/AlexModGuy/AlexsCaves/blob/5d739a1218f8d733cd6d611975ca006d67b6ac76/src/main/java/com/github/alexmodguy/alexscaves/server/level/structure/UndergroundCabinStructure.java#L43

Their cabin already will refuse to spawn in alexs cave biomes because it checks at runtime if the spot is valid. So I am not sure why you mention even having a problem with the cabins in the first place

made PR to Alex's Caves for using the holderset system but functionally, there is no change in gameplay for the tag since Alex's Caves was already checking the spot's biomes
https://github.com/AlexModGuy/AlexsCaves/pull/1398/files

Closing as I do not see any bug/issue with the cabin spawning

commented

Ok so underground cabin is in Alex's Caves. I don't actually play Alex's Caves so I don't know everything it has.

Forge does allow for custom holdersets so in theory, you can modify the structure json to exclude another tag entries
image

In testing, it works so I'll add that to TACT and possibly PR to Alex's Caves itself