From e270969fd17f098f91e287a3d9fc2ac211ea6651 Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 23 Nov 2020 21:04:39 -0700 Subject: [PATCH] Update snowable blocks even with physics disabled. --- .../com/dfsek/terra/population/SnowPopulator.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/dfsek/terra/population/SnowPopulator.java b/src/main/java/com/dfsek/terra/population/SnowPopulator.java index 700a71894..5e6860d37 100644 --- a/src/main/java/com/dfsek/terra/population/SnowPopulator.java +++ b/src/main/java/com/dfsek/terra/population/SnowPopulator.java @@ -12,6 +12,9 @@ import org.bukkit.Chunk; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Snowable; import org.jetbrains.annotations.NotNull; import org.polydev.gaea.generation.GenerationPhase; import org.polydev.gaea.population.GaeaBlockPopulator; @@ -66,7 +69,14 @@ public class SnowPopulator extends GaeaBlockPopulator { if(random.nextInt(100) >= biome.getSnow().getSnowChance(y)) continue; if(blacklistSpawn.contains(b.getType()) || b.isPassable()) continue; - chunk.getBlock(x, ++y, z).setBlockData(DataUtil.SNOW, biome.getSnow().doPhysics()); + boolean phys = biome.getSnow().doPhysics(); + b.getRelative(BlockFace.UP).setBlockData(DataUtil.SNOW, phys); + if(!phys) { + BlockData data = b.getBlockData(); + if(data instanceof Snowable) { + ((Snowable) data).setSnowy(true); + } + } } } }