Therighthon / ArborFirmaCraft

Tree addon for TFC
MIT License
0 stars 1 forks source link

Villages generate with vanilla stone and tree types. #8

Open iyloMC opened 2 months ago

iyloMC commented 2 months ago

Hello, I'm using the Gravitas2 modpack and would very much like to use ArborFirmaCraft in that pack. The problem is, with AFC installed, villages no longer generate using local wood and stone types, and use their vanilla counterparts instead.

Images of the issue: https://imgur.com/a/PWHZySK

Therighthon commented 2 months ago

Hello, I'm using the Gravitas2 modpack and would very much like to use ArborFirmaCraft in that pack. The problem is, with AFC installed, villages no longer generate using local wood and stone types, and use their vanilla counterparts instead.

Images of the issue: https://imgur.com/a/PWHZySK

Not having looked into this, this is probably going to be a problem with Gravitas as much as it's a problem with AFC, but obviously they aren't going to fix this for a mod that's not in their pack...

Odds are I am not going to be fixing this because it is a very niche case, and is probably hard to fix on my end. I'd say you should look into it, but if I remember correctly gravitas is ARR and maybe isn't open source? Idk, point is don't wait up at night wondering if I am fixing this, im probably not

iyloMC commented 2 months ago

I have already spoken with the development team of Gravitas about this issue, I believe they might be interested in adding the mod to their pack. The issue lies in the way AFC changes TFC's chunk data, which is apparently in a way that Gravitas can't hook into for their village generation. I will look into a way to fix it myself

Therighthon commented 2 months ago

I have already spoken with the development team of Gravitas about this issue, I believe they might be interested in adding the mod to their pack. The issue lies in the way AFC changes TFC's chunk data, which is apparently in a way that Gravitas can't hook into for their village generation. I will look into a way to fix it myself

Okay, I just took a quick look at this, and as I suspected this probably needs to be fixed on Gravitas's end:

The simplest fix, which seems to give different but not unreasonable wood types compared to the trees that actually are generating nearby is to do replace this line: https://github.com/AllTheMods/Gravitas2/blob/7140ea8d033c48792cb6b5eba8aa197272f8e226/kubejs/server_scripts/worldgen/match_villages_wood.js#L15C10-L15C22

With this: .get("afc:normal_forest")

A better fix would be to actually modify the script so that depending on whether the biome is an alpine, swampy, or normal height biome it will look at afc:alpine_forest, afc:swamp_forest, or afc:normal forest respectively.

Here's an example of the trees mismatching in an alpine village (though one kapok does generate inside the village): image

It does seem like there are some other issues with this, though, like it doesn't seem that ATM knows what to do when the local tree type is added by AFC, as this village seems to have part of a house generating in a kapok area, and the rest all of the wood is replaced with air, which makes me think it tried to replace the blocks with "tfc:wood/log/eucalyptus" when that block doesn't exist and they want "afc:wood/log/eucalyptus". I don't know enough about kubejs scripting stuff to track this down much further, but I figured that might be a helpful start. image

Also of note, is that a most villages do seem to work with this change, but like in this one the vanilla sandstone blocks aren't being replaced properly, which I doubt is my fault: image