<commit_before>--- ../src_base/minecraft/net/minecraft/block/BlockSnow.java
+++ ../src_work/minecraft/net/minecraft/block/BlockSnow.java
@@ -88,8 +88,12 @@
      */
     public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
     {
-        int l = par1World.getBlockId(par2, par3 - 1, par4);
-        return l == 0 ? false : (l == this.blockID && (par1World.getBlockMetadata(par2, par3 - 1, par4) & 7) == 7 ? true : (l != Block.leaves.blockID && !Block.blocksList[l].isOpaqueCube() ? false : par1World.getBlockMaterial(par2, par3 - 1, par4).blocksMovement()));
+        int l = par1World.getBlockId(par2, par3 - 1, par4);        
+        Block block = Block.blocksList[l];
+        if (block == null) return false;
+        if (block == this && (par1World.getBlockMetadata(par2, par3 - 1, par4) & 7) == 7) return true;
+        if (block.isLeaves(par1World, par2, par3 - 1, par4) && Block.blocksList[l].isOpaqueCube()) return false;
+        return par1World.getBlockMaterial(par2, par3 - 1, par4).blocksMovement();
     }
 
     /**
@@ -108,7 +112,6 @@
     {
         if (!this.canPlaceBlockAt(par1World, par2, par3, par4))
         {
-            this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0);
             par1World.func_94571_i(par2, par3, par4);
             return false;
         }
@@ -124,11 +127,8 @@
      */
     public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
     {
-        int i1 = Item.snowball.itemID;
-        int j1 = par6 & 7;
-        this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(i1, j1 + 1, 0));
+        super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6);
         par1World.func_94571_i(par3, par4, par5);
-        par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1);
     }
 
     /**
@@ -144,7 +144,7 @@<commit_msg>Fix logic inversion that allowed SnowMen to create snow on hoppers.<commit_after>--- ../src_base/minecraft/net/minecraft/block/BlockSnow.java
+++ ../src_work/minecraft/net/minecraft/block/BlockSnow.java
@@ -88,8 +88,12 @@
      */
     public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
     {
-        int l = par1World.getBlockId(par2, par3 - 1, par4);
-        return l == 0 ? false : (l == this.blockID && (par1World.getBlockMetadata(par2, par3 - 1, par4) & 7) == 7 ? true : (l != Block.leaves.blockID && !Block.blocksList[l].isOpaqueCube() ? false : par1World.getBlockMaterial(par2, par3 - 1, par4).blocksMovement()));
+        int l = par1World.getBlockId(par2, par3 - 1, par4);        
+        Block block = Block.blocksList[l];
+        if (block == null) return false;
+        if (block == this && (par1World.getBlockMetadata(par2, par3 - 1, par4) & 7) == 7) return true;
+        if (!block.isLeaves(par1World, par2, par3 - 1, par4) && !Block.blocksList[l].isOpaqueCube()) return false;
+        return par1World.getBlockMaterial(par2, par3 - 1, par4).blocksMovement();
     }
 
     /**
@@ -108,7 +112,6 @@
     {
         if (!this.canPlaceBlockAt(par1World, par2, par3, par4))
         {
-            this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0);
             par1World.func_94571_i(par2, par3, par4);
             return false;
         }
@@ -124,11 +127,8 @@
      */
     public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
     {
-        int i1 = Item.snowball.itemID;
-        int j1 = par6 & 7;
-        this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(i1, j1 + 1, 0));
+        super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6);
         par1World.func_94571_i(par3, par4, par5);
-        par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1);
     }
 
     /**
@@ -144,7 +144,7 @@
{'fraction_non_alphanumeric': 0.15215189873417723, 'fraction_numerical': 0.06734177215189874, 'mean_word_length': 2.7772466539196943, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2366833', 'n_tokens_mistral': 1527, 'n_tokens_neox': 1435, 'n_words': 302}