if (weather.isSnowingAt(x, y, z)) {
//Try to find the surface
for (int dy = 1; dy < 16; dy++) {
if (region.containsBlock(x, y - dy, z)) {
Block block = region.getBlock(x, y - dy, z);
BlockMaterial mat = block.getMaterial();
if (mat instanceof VanillaBlockMaterial) {
VanillaBlockMaterial vbm = (VanillaBlockMaterial) mat;
//Place snow ontop of solid
if (vbm.canSupport(VanillaMaterials.SNOW, BlockFace.TOP)) {
Block above = block.translate(BlockFace.TOP);