public static float getBiomeTemperature(World world, BlockPos pos) { return world.getBiomeGenForCoords(pos).getFloatTemperature(pos) * FLOAT_TEMP_TO_CELSIUS; }
@Override protected void placeFootprintBlock(EntityTameableDragon dragon, BlockPos blockPos) { // place snow layer blocks, but only if the biome is cold enough World world = dragon.worldObj; if (world.getBiome(blockPos).getFloatTemperature(blockPos) > 0.8f) { return; } Block footprint = Blocks.SNOW_LAYER; if (!footprint.canPlaceBlockAt(world, blockPos)) { return; } world.setBlockState(blockPos, footprint.getDefaultState()); }
if (Biomes.OCEAN.getFloatTemperature(blockpos$mutableblockpos.setPos(x, j1, z)) < 0.15F) { iblockstate = ICE; } else {
BlockPos pos = center.add(x, 0, z); Biome biome = world.getBiome(pos); int colour = biome.getSkyColorByTemp(biome.getFloatTemperature(pos)); r += (colour & 0xFF0000) >> 16; g += (colour & 0x00FF00) >> 8;
@Override public boolean canSnowAt(@Nonnull BlockPos pos, boolean checkLight) { Biome biome = world.getBiome(pos); if (!biome.canRain() || biome.isHighHumidity()) { return super.canSnowAt(pos, checkLight); } else if (biome.isSnowyBiome()) { Weather weather = HFApi.calendar.getWeather(world); return !weather.isRain() && super.canSnowAt(pos, checkLight); } else { Weather weather = HFApi.calendar.getWeather(world); float f = biome.getFloatTemperature(pos); if (weather.isSnow() && f > 0.15F) { if (!checkLight) { return true; } else { if (pos.getY() >= 0 && pos.getY() < 256 && world.getLightFor(EnumSkyBlock.BLOCK, pos) < 10) { IBlockState iblockstate = world.getBlockState(pos); if (iblockstate.getBlock() != Blocks.SNOW_LAYER && iblockstate.getBlock().isReplaceable(world, pos) && Blocks.SNOW_LAYER.canPlaceBlockAt(world, pos)) { HFApi.tickable.addTickable(world, pos, SnowLoader.INSTANCE); return true; } } return false; } } else return super.canSnowAt(pos, checkLight); } }
} else { Weather weather = HFApi.calendar.getWeather(world); float f = biome.getFloatTemperature(pos); if (weather.isSnow() && f > 0.15F) { if (pos.getY() >= 0 && pos.getY() < 256 && world.getLightFor(EnumSkyBlock.BLOCK, pos) < 10) {