TerraFirmaCraft

TerraFirmaCraft

2M Downloads

Un-Normalized Return Values for Biome Temperature

DonBruce64 opened this issue ยท 1 comments

commented

Immersive Vehicles Dev here. Wanted to submit a bug report for a mod incompatibility between your mod and mine that was recently brought to my attention.

In my mod, I have engines that have temperature. This temperature is based off of numerous factors, one of which is the temp of the air around the engine. To get this temp I call this method:
vehicle.world.getBiome(vehicle.getPosition()).getTemperature(vehicle.getPosition())

The problem is, all the code that's associated with that method assumes that Vanilla-like temperatures will be returned. These are in the range of -1.0 to 2.0. This has worked fine, but it appears a recent update of TFC has changed the return values of that function to be in Celcius, not the normal Vanilla normalized scale. This causes my engines to immediately overheat as 25 is far outside the normal expected return range for that call. The specific location of this call, best I can tell, is here:

@Override
public float getTemperature(BlockPos pos)
{
return ClimateTFC.getActualTemp(pos);
}

I've only recently had comments about this, so I can only assume it's a recent change that caused this return value to be outside the regular range. User who first reported this was running 1.12.2-0.29.3.118, but other versions may be affected.

commented

Huh. This was changed in e701466 so TFC can have proper seasonal / location dependent rain / snow, as World delegates a lot of methods to biome temperature, which is not suitable for our purposes. However, I don't see any situation in which we call this from our temperature calculation code, which means we should be normalizing to the vanilla scale here regardless of other mod's potentially using it.