--- a/net/minecraft/block/PistonBlockStructureHelper.java
+++ b/net/minecraft/block/PistonBlockStructureHelper.java
@@ -48,7 +48,7 @@
       } else {
          for(int i = 0; i < this.field_177258_e.size(); ++i) {
             BlockPos blockpos = this.field_177258_e.get(i);
-            if (func_227029_a_(this.field_177261_a.func_180495_p(blockpos).func_177230_c()) && !this.func_177250_b(blockpos)) {
+            if (this.field_177261_a.func_180495_p(blockpos).isStickyBlock() && !this.func_177250_b(blockpos)) {
                return false;
             }
          }
@@ -57,24 +57,9 @@
       }
    }
 
-   private static boolean func_227029_a_(Block p_227029_0_) {
-      return p_227029_0_ == Blocks.field_180399_cE || p_227029_0_ == Blocks.field_226907_mc_;
-   }
-
-   private static boolean func_227030_a_(Block p_227030_0_, Block p_227030_1_) {
-      if (p_227030_0_ == Blocks.field_226907_mc_ && p_227030_1_ == Blocks.field_180399_cE) {
-         return false;
-      } else if (p_227030_0_ == Blocks.field_180399_cE && p_227030_1_ == Blocks.field_226907_mc_) {
-         return false;
-      } else {
-         return func_227029_a_(p_227030_0_) || func_227029_a_(p_227030_1_);
-      }
-   }
-
    private boolean func_177251_a(BlockPos p_177251_1_, Direction p_177251_2_) {
       BlockState blockstate = this.field_177261_a.func_180495_p(p_177251_1_);
-      Block block = blockstate.func_177230_c();
-      if (blockstate.func_196958_f()) {
+      if (field_177261_a.func_175623_d(p_177251_1_)) {
          return true;
       } else if (!PistonBlock.func_185646_a(blockstate, this.field_177261_a, p_177251_1_, this.field_177257_d, false, p_177251_2_)) {
          return true;
@@ -87,12 +72,12 @@
          if (i + this.field_177258_e.size() > 12) {
             return false;
          } else {
-            while(func_227029_a_(block)) {
+            BlockState oldState;
+            while(blockstate.isStickyBlock()) {
                BlockPos blockpos = p_177251_1_.func_177967_a(this.field_177257_d.func_176734_d(), i);
-               Block block1 = block;
+               oldState = blockstate;
                blockstate = this.field_177261_a.func_180495_p(blockpos);
-               block = blockstate.func_177230_c();
-               if (blockstate.func_196958_f() || !func_227030_a_(block1, block) || !PistonBlock.func_185646_a(blockstate, this.field_177261_a, blockpos, this.field_177257_d, false, this.field_177257_d.func_176734_d()) || blockpos.equals(this.field_177259_b)) {
+               if (blockstate.isAir(this.field_177261_a, blockpos) || !oldState.canStickTo(blockstate) || !PistonBlock.func_185646_a(blockstate, this.field_177261_a, blockpos, this.field_177257_d, false, this.field_177257_d.func_176734_d()) || blockpos.equals(this.field_177259_b)) {
                   break;
                }
 
@@ -119,7 +104,7 @@
 
                   for(int k = 0; k <= j + l; ++k) {
                      BlockPos blockpos2 = this.field_177258_e.get(k);
-                     if (func_227029_a_(this.field_177261_a.func_180495_p(blockpos2).func_177230_c()) && !this.func_177250_b(blockpos2)) {
+                     if (this.field_177261_a.func_180495_p(blockpos2).isStickyBlock() && !this.func_177250_b(blockpos2)) {
                         return false;
                      }
                   }
@@ -128,7 +113,7 @@
                }
 
                blockstate = this.field_177261_a.func_180495_p(blockpos1);
-               if (blockstate.func_196958_f()) {
+               if (blockstate.isAir(field_177261_a, blockpos1)) {
                   return true;
                }
 
@@ -173,7 +158,7 @@
          if (direction.func_176740_k() != this.field_177257_d.func_176740_k()) {
             BlockPos blockpos = p_177250_1_.func_177972_a(direction);
             BlockState blockstate1 = this.field_177261_a.func_180495_p(blockpos);
-            if (func_227030_a_(blockstate1.func_177230_c(), blockstate.func_177230_c()) && !this.func_177251_a(blockpos, direction)) {
+            if (blockstate1.canStickTo(blockstate) && !this.func_177251_a(blockpos, direction)) {
                return false;
             }
          }
