diff --git a/common/src/main/java/toughasnails/temperature/TemperatureHelperImpl.java b/common/src/main/java/toughasnails/temperature/TemperatureHelperImpl.java index 63b60345..3f01d702 100644 --- a/common/src/main/java/toughasnails/temperature/TemperatureHelperImpl.java +++ b/common/src/main/java/toughasnails/temperature/TemperatureHelperImpl.java @@ -19,13 +19,13 @@ import net.minecraft.world.level.block.CampfireBlock; import net.minecraft.world.level.block.CopperBulbBlock; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.Heightmap; import toughasnails.api.enchantment.TANEnchantments; import toughasnails.api.player.ITANPlayer; import toughasnails.api.potion.TANEffects; import toughasnails.api.temperature.*; import toughasnails.api.temperature.IProximityBlockModifier.Type; import toughasnails.block.entity.ThermoregulatorBlockEntity; -import toughasnails.core.ToughAsNails; import toughasnails.init.ModConfig; import toughasnails.init.ModTags; @@ -145,7 +145,7 @@ private static TemperatureLevel getBiomeTemperatureLevel(Level level, BlockPos p Holder biome = level.getBiome(pos); float biomeTemperature = biome.value().getBaseTemperature(); - if (!level.dimensionType().natural() || (pos.getY() > ModConfig.temperature.environmentalModifierAltitude || level.canSeeSky(pos))) + if (!level.dimensionType().natural() || (pos.getY() > ModConfig.temperature.environmentalModifierAltitude || pos.getY() >= level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos).below().getY())) { if (biome.is(ModTags.Biomes.ICY_BIOMES)) return TemperatureLevel.ICY; else if (biome.is(ModTags.Biomes.COLD_BIOMES)) return TemperatureLevel.COLD; @@ -191,7 +191,7 @@ private static TemperatureLevel nightModifier(Level level, BlockPos pos, Tempera boolean isNight = time >= 0.25F && time <= 0.75F; // Drop the temperature during the night - if (level.dimensionType().natural() && isNight && (pos.getY() > ModConfig.temperature.environmentalModifierAltitude || level.canSeeSky(pos))) + if (level.dimensionType().natural() && isNight && (pos.getY() > ModConfig.temperature.environmentalModifierAltitude || pos.getY() >= level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos).below().getY())) { if (current == TemperatureLevel.HOT) current = current.increment(ModConfig.temperature.nightHotTemperatureChange); @@ -347,7 +347,7 @@ protected static TemperatureLevel internalModifier(Player player, TemperatureLev private static boolean isExposedToRain(Level level, BlockPos pos) { - return level.isRaining() && level.canSeeSky(pos); + return level.isRaining() && pos.getY() >= level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos).below().getY(); } private static boolean coldEnoughToSnow(Level level, Holder biome, BlockPos pos) diff --git a/common/src/main/resources/assets/toughasnails/textures/item/thermometer_00.png b/common/src/main/resources/assets/toughasnails/textures/item/thermometer_00.png index 627d8bf8..4a8484fc 100644 Binary files a/common/src/main/resources/assets/toughasnails/textures/item/thermometer_00.png and b/common/src/main/resources/assets/toughasnails/textures/item/thermometer_00.png differ diff --git a/forge/src/main/java/toughasnails/forge/init/ModCompatibility.java b/forge/src/main/java/toughasnails/forge/init/ModCompatibility.java index c056903c..d3b949e0 100644 --- a/forge/src/main/java/toughasnails/forge/init/ModCompatibility.java +++ b/forge/src/main/java/toughasnails/forge/init/ModCompatibility.java @@ -8,6 +8,7 @@ import net.minecraft.core.Holder; import net.minecraft.world.level.Level; import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.levelgen.Heightmap; import net.minecraftforge.fml.ModList; import sereneseasons.api.season.Season; import sereneseasons.api.season.SeasonHelper; @@ -39,7 +40,7 @@ private static TemperatureLevel seasonModifier(Level level, BlockPos pos, Temper Holder biome = level.getBiome(pos); // Only adjust if above the environmental modifier altitude - if (level.dimensionType().natural() && pos.getY() <= ModConfig.temperature.environmentalModifierAltitude && !level.canSeeSky(pos)) + if (level.dimensionType().natural() && pos.getY() <= ModConfig.temperature.environmentalModifierAltitude && pos.getY() < level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos).below().getY()) return current; // Check if biome uses seasonal effects