diff --git a/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java b/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java
index e758362a3..4ce568b70 100644
--- a/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java
+++ b/src/main/java/net/minecraft/client/render/block/model/StandardBlockModel.java
@@ -29,139 +29,92 @@ public class StandardBlockModel<T extends Block> extends BlockModel<T>{
     }
 
     @Override
-    public void renderBlockOnInventory(Tessellator tessellator, int metadata, float brightness, float alpha, @Nullable Integer lightmapCoordinate) {
-        if(renderBlocks.useInventoryTint)
-        {
-            int color = BlockColorDispatcher.getInstance().getDispatch(block).getFallbackColor(metadata);
-            float r = (float)(color >> 16 & 0xff) / 255F;
-            float g = (float)(color >> 8 & 0xff) / 255F;
-            float b = (float)(color & 0xff) / 255F;
-            GL11.glColor4f(r * brightness, g * brightness, b * brightness, alpha);
-        } else {
-            GL11.glColor4f(brightness, brightness, brightness, alpha);
-        }
-        float yOffset = 0.5F;
+	public void renderBlockOnInventory(Tessellator tessellator, int metadata, float brightness, float alpha, @Nullable Integer lightmapCoordinate) {
+		if(renderBlocks.useInventoryTint) {
+			int color = BlockColorDispatcher.getInstance().getDispatch(block).getFallbackColor(metadata);
+			float r = (float) (color >> 16 & 0xff) / 255F;
+			float g = (float) (color >> 8 & 0xff) / 255F;
+			float b = (float) (color & 0xff) / 255F;
+			GL11.glColor4f(r * brightness, g * brightness, b * brightness, alpha);
+		}else {
+			GL11.glColor4f(brightness, brightness, brightness, alpha);
+		}
+		float yOffset = 0.5F;
 
-        setBlockBoundsForItemRender();
-        GL11.glTranslatef(-0.5F, 0.0F - yOffset, -0.5F);
+		setBlockBoundsForItemRender();
+		GL11.glTranslatef(-0.5F, 0.0F - yOffset, -0.5F);
 
-        tessellator.startDrawingQuads();
-        if (LightmapHelper.isLightmapEnabled() && lightmapCoordinate != null){
-            tessellator.setLightmapCoord(lightmapCoordinate);
-        }
-        tessellator.setNormal(0.0F, -1F, 0.0F);
-        renderBottomFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockTextureFromSideAndMetadata(Side.BOTTOM, metadata));
-        tessellator.draw();
+		if(LightmapHelper.isLightmapEnabled() && lightmapCoordinate != null) {
+			LightmapHelper.setLightmapCoord(lightmapCoordinate);
+		}
 
-        tessellator.startDrawingQuads();
-        if (LightmapHelper.isLightmapEnabled() && lightmapCoordinate != null){
-            tessellator.setLightmapCoord(lightmapCoordinate);
-        }
-        tessellator.setNormal(0.0F, 1.0F, 0.0F);
-        renderTopFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockTextureFromSideAndMetadata(Side.TOP, metadata));
-        tessellator.draw();
+		tessellator.startDrawingQuads();
 
-        tessellator.startDrawingQuads();
-        if (LightmapHelper.isLightmapEnabled() && lightmapCoordinate != null){
-            tessellator.setLightmapCoord(lightmapCoordinate);
-        }
-        tessellator.setNormal(0.0F, 0.0F, -1F);
-        renderNorthFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockTextureFromSideAndMetadata(Side.NORTH, metadata));
-        tessellator.draw();
+		tessellator.setNormal(0.0f, -1.0f, 0.0f);
+		renderBottomFace(tessellator, block, 0.0, 0.0, 0.0, getBlockTextureFromSideAndMetadata(Side.BOTTOM, metadata));
 
-        tessellator.startDrawingQuads();
-        if (LightmapHelper.isLightmapEnabled() && lightmapCoordinate != null){
-            tessellator.setLightmapCoord(lightmapCoordinate);
-        }
-        tessellator.setNormal(0.0F, 0.0F, 1.0F);
-        renderSouthFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockTextureFromSideAndMetadata(Side.SOUTH, metadata));
-        tessellator.draw();
+		tessellator.setNormal(0.0f, 1.0f, 0.0f);
+		renderTopFace(tessellator, block, 0.0, 0.0, 0.0, getBlockTextureFromSideAndMetadata(Side.TOP, metadata));
 
-        tessellator.startDrawingQuads();
-        if (LightmapHelper.isLightmapEnabled() && lightmapCoordinate != null){
-            tessellator.setLightmapCoord(lightmapCoordinate);
-        }
-        tessellator.setNormal(-1F, 0.0F, 0.0F);
-        renderWestFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockTextureFromSideAndMetadata(Side.WEST, metadata));
-        tessellator.draw();
+		tessellator.setNormal(0.0f, 0.0f, -1.0f);
+		renderNorthFace(tessellator, block, 0.0, 0.0, 0.0, getBlockTextureFromSideAndMetadata(Side.NORTH, metadata));
 
-        tessellator.startDrawingQuads();
-        if (LightmapHelper.isLightmapEnabled() && lightmapCoordinate != null){
-            tessellator.setLightmapCoord(lightmapCoordinate);
-        }
-        tessellator.setNormal(1.0F, 0.0F, 0.0F);
-        renderEastFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockTextureFromSideAndMetadata(Side.EAST, metadata));
-        tessellator.draw();
+		tessellator.setNormal(0.0f, 0.0f, 1.0f);
+		renderSouthFace(tessellator, block, 0.0, 0.0, 0.0, getBlockTextureFromSideAndMetadata(Side.SOUTH, metadata));
 
-        if (hasOverbright()){
-            brightness = 1f;
-            if(renderBlocks.useInventoryTint)
-            {
-                int color = BlockColorDispatcher.getInstance().getDispatch(block).getFallbackColor(metadata);
-                float r = (float)(color >> 16 & 0xff) / 255F;
-                float g = (float)(color >> 8 & 0xff) / 255F;
-                float b = (float)(color & 0xff) / 255F;
-                GL11.glColor4f(r * brightness, g * brightness, b * brightness, alpha);
-            } else {
-                GL11.glColor4f(brightness, brightness, brightness, alpha);
-            }
+		tessellator.setNormal(-1.0f, 0.0f, 0.0f);
+		renderWestFace(tessellator, block, 0.0, 0.0, 0.0, getBlockTextureFromSideAndMetadata(Side.WEST, metadata));
 
-            int overbrightLMC = 0;
-            if (LightmapHelper.isLightmapEnabled()){
-                overbrightLMC = LightmapHelper.getLightmapCoord(15, 15);
-            }
+		tessellator.setNormal(1.0f, 0.0f, 0.0f);
+		renderEastFace(tessellator, block, 0.0, 0.0, 0.0, getBlockTextureFromSideAndMetadata(Side.EAST, metadata));
 
-            tessellator.startDrawingQuads();
-            if (LightmapHelper.isLightmapEnabled()){
-                tessellator.setLightmapCoord(overbrightLMC);
-            }
-            tessellator.setNormal(0.0F, -1F, 0.0F);
-            renderBottomFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockOverbrightTextureFromSideAndMeta(Side.BOTTOM, metadata));
-            tessellator.draw();
+		tessellator.draw();
 
-            tessellator.startDrawingQuads();
-            if (LightmapHelper.isLightmapEnabled()){
-                tessellator.setLightmapCoord(overbrightLMC);
-            }
-            tessellator.setNormal(0.0F, 1.0F, 0.0F);
-            renderTopFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockOverbrightTextureFromSideAndMeta(Side.TOP, metadata));
-            tessellator.draw();
+		if(hasOverbright()) {
+//			GL11.glDisable(GL11.GL_LIGHTING);
+			
+			brightness = 1.0f;
+			if(renderBlocks.useInventoryTint) {
+				int color = BlockColorDispatcher.getInstance().getDispatch(block).getFallbackColor(metadata);
+				float r = (float) (color >> 16 & 0xff) / 255F;
+				float g = (float) (color >> 8 & 0xff) / 255F;
+				float b = (float) (color & 0xff) / 255F;
+				GL11.glColor4f(r * brightness, g * brightness, b * brightness, alpha);
+			}else {
+				GL11.glColor4f(brightness, brightness, brightness, alpha);
+			}
 
-            tessellator.startDrawingQuads();
-            if (LightmapHelper.isLightmapEnabled()){
-                tessellator.setLightmapCoord(overbrightLMC);
-            }
-            tessellator.setNormal(0.0F, 0.0F, -1F);
-            renderNorthFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockOverbrightTextureFromSideAndMeta(Side.NORTH, metadata));
-            tessellator.draw();
+			if(LightmapHelper.isLightmapEnabled()) {
+				LightmapHelper.setLightmapCoord(15, 15);
+			}
 
-            tessellator.startDrawingQuads();
-            if (LightmapHelper.isLightmapEnabled()){
-                tessellator.setLightmapCoord(overbrightLMC);
-            }
-            tessellator.setNormal(0.0F, 0.0F, 1.0F);
-            renderSouthFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockOverbrightTextureFromSideAndMeta(Side.SOUTH, metadata));
-            tessellator.draw();
+			tessellator.startDrawingQuads();
 
-            tessellator.startDrawingQuads();
-            if (LightmapHelper.isLightmapEnabled()){
-                tessellator.setLightmapCoord(overbrightLMC);
-            }
-            tessellator.setNormal(-1F, 0.0F, 0.0F);
-            renderWestFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockOverbrightTextureFromSideAndMeta(Side.WEST, metadata));
-            tessellator.draw();
+			tessellator.setNormal(0.0f, -1.0f, 0.0f);
+			renderBottomFace(tessellator, block, 0.0, 0.0, 0.0, getBlockOverbrightTextureFromSideAndMeta(Side.BOTTOM, metadata));
 
-            tessellator.startDrawingQuads();
-            if (LightmapHelper.isLightmapEnabled()){
-                tessellator.setLightmapCoord(overbrightLMC);
-            }
-            tessellator.setNormal(1.0F, 0.0F, 0.0F);
-            renderEastFace(tessellator, block, 0.0D, 0.0D, 0.0D, getBlockOverbrightTextureFromSideAndMeta(Side.EAST, metadata));
-            tessellator.draw();
-        }
+			tessellator.setNormal(0.0f, 1.0f, 0.0f);
+			renderTopFace(tessellator, block, 0.0, 0.0, 0.0, getBlockOverbrightTextureFromSideAndMeta(Side.TOP, metadata));
 
-        GL11.glTranslatef(0.5F, 0.5F, 0.5F);
-    }
+			tessellator.setNormal(0.0f, 0.0f, -1.0f);
+			renderNorthFace(tessellator, block, 0.0, 0.0, 0.0, getBlockOverbrightTextureFromSideAndMeta(Side.NORTH, metadata));
+
+			tessellator.setNormal(0.0f, 0.0f, 1.0f);
+			renderSouthFace(tessellator, block, 0.0, 0.0, 0.0, getBlockOverbrightTextureFromSideAndMeta(Side.SOUTH, metadata));
+
+			tessellator.setNormal(-1.0f, 0.0f, 0.0f);
+			renderWestFace(tessellator, block, 0.0, 0.0, 0.0, getBlockOverbrightTextureFromSideAndMeta(Side.WEST, metadata));
+
+			tessellator.setNormal(1.0f, 0.0f, 0.0f);
+			renderEastFace(tessellator, block, 0.0, 0.0, 0.0, getBlockOverbrightTextureFromSideAndMeta(Side.EAST, metadata));
+
+			tessellator.draw();
+			
+//			GL11.glEnable(GL11.GL_LIGHTING);
+		}
+
+		GL11.glTranslatef(0.5F, 0.5F, 0.5F);
+	}
 
     @Override
     public boolean shouldItemRender3d() {
diff --git a/src/main/java/net/minecraft/core/block/FlowerBlock.java b/src/main/java/net/minecraft/core/block/FlowerBlock.java
index 9dd508b68..682a27acf 100644
--- a/src/main/java/net/minecraft/core/block/FlowerBlock.java
+++ b/src/main/java/net/minecraft/core/block/FlowerBlock.java
@@ -4,6 +4,8 @@ import java.util.Random;
 
 import net.minecraft.core.block.material.Material;
 import net.minecraft.core.block.tag.BlockTags;
+import net.minecraft.core.data.gamerule.GameRule;
+import net.minecraft.core.data.gamerule.GameRules;
 import net.minecraft.core.entity.player.Player;
 import net.minecraft.core.enums.EnumDropCause;
 import net.minecraft.core.item.IBonemealable;
@@ -71,7 +73,7 @@ public class FlowerBlock extends Block implements IBonemealable
     {
         func_268_h(world, x, y, z);
         
-        if (world.getSeasonManager().getCurrentSeason() != null && ((world.getBlockMetadata(x, y, z) & 0b1000_000) == 0) && world.getSeasonManager().getCurrentSeason().killFlowers && killedByWeather && rand.nextInt(256) == 0)
+        if (world.getGameRuleValue(GameRules.DO_SEASONAL_GROWTH) && world.getSeasonManager().getCurrentSeason() != null && ((world.getBlockMetadata(x, y, z) & 0b1000_000) == 0) && world.getSeasonManager().getCurrentSeason().killFlowers && killedByWeather && rand.nextInt(256) == 0)
         {
         	world.setBlockWithNotify(x, y, z, 0);
         }
diff --git a/src/main/java/net/minecraft/core/block/SaplingPalmBlock.java b/src/main/java/net/minecraft/core/block/SaplingPalmBlock.java
index 6c71d2c3c..d5eee8e85 100644
--- a/src/main/java/net/minecraft/core/block/SaplingPalmBlock.java
+++ b/src/main/java/net/minecraft/core/block/SaplingPalmBlock.java
@@ -17,7 +17,7 @@ public class SaplingPalmBlock extends SaplingBaseBlock {
 	public void growTree(World world, int x, int y, int z, Random random) {
     	boolean big = world.getBlockId(x, y - 1, z) != Blocks.SAND.id;
     	
-    	new WorldFeatureTreePalm(Blocks.LOG_PALM, Blocks.LEAVES_PALM, big, true).place(world, random, x, y, z);
+    	new WorldFeatureTreePalm(Blocks.LOG_PALM, Blocks.LEAVES_PALM, big, true, false).place(world, random, x, y, z);
 	}
 
 }
diff --git a/src/main/java/net/minecraft/core/entity/Entity.java b/src/main/java/net/minecraft/core/entity/Entity.java
index 172db6565..20f667b75 100644
--- a/src/main/java/net/minecraft/core/entity/Entity.java
+++ b/src/main/java/net/minecraft/core/entity/Entity.java
@@ -502,64 +502,58 @@ public abstract class Entity
 		boolean touchedWall = oldXd != xd || oldZd != zd;
 		
 		// Handle steps
-        if(footSize > 0.0f && touchedGround && touchedWall && (isSneaking() || ySlideOffset < 0.05f))
-        {
-            double oldX = xd;
-            double oldY = yd;
-            double oldZ = zd;
-            xd = oldXd;
-            yd = footSize;
-            zd = oldZd;
-            AABB axisalignedbb1 = bb.copy();
-            bb.setBB(bbCopy);
-            List<AABB> list1 = world.getCubes(this, bb.expand(xd, 0.0, zd));
-            for (int i = 0; i < list1.size(); i++) {
-                yd = list1.get(i).clipYCollide(bb, yd);
-            }
+		if(footSize > 0.0f && touchedGround && touchedWall && (isSneaking() || ySlideOffset < 0.05f)) {
+			double oldX = xd;
+			double oldY = yd;
+			double oldZ = zd;
+			xd = oldXd;
+			yd = footSize;
+			zd = oldZd;
+			AABB axisalignedbb1 = bb.copy();
+			bb.setBB(bbCopy);
+			cubes = world.getCubes(this, bb.expand(xd, 0.0, zd));
+			for(int i = 0; i < cubes.size(); i++) {
+				yd = cubes.get(i).clipYCollide(bb, yd);
+			}
 
-            bb.move(0.0D, yd, 0.0D);
-            if(!slide && oldYd != yd)
-            {
-                xd = yd = zd = 0.0D;
-            }
-            for (int i = 0; i < list1.size(); i++) {
-                xd = list1.get(i).clipXCollide(bb, xd);
-            }
+			bb.move(0.0D, yd, 0.0D);
+			if(!slide && oldYd != yd) {
+				xd = yd = zd = 0.0D;
+			}
+			for(int i = 0; i < cubes.size(); i++) {
+				xd = cubes.get(i).clipXCollide(bb, xd);
+			}
 
-            bb.move(xd, 0.0D, 0.0D);
-            if(!slide && oldXd != xd)
-            {
-                xd = yd = zd = 0.0D;
-            }
-            for (int i = 0; i < list1.size(); i++) {
-                zd = list1.get(i).clipZCollide(bb, zd);
-            }
+			bb.move(xd, 0.0D, 0.0D);
+			if(!slide && oldXd != xd) {
+				xd = yd = zd = 0.0D;
+			}
+			for(int i = 0; i < cubes.size(); i++) {
+				zd = cubes.get(i).clipZCollide(bb, zd);
+			}
 
-            bb.move(0.0D, 0.0D, zd);
-            if(!slide && oldZd != zd)
-            {
-                xd = yd = zd = 0.0D;
-            }
-            if(!slide && oldYd != yd)
-            {
-                xd = yd = zd = 0.0D;
-            } else
-            {
-                yd = -footSize;
-                for (AABB aabb : list1) {
-                    yd = aabb.clipYCollide(bb, yd);
-                }
+			bb.move(0.0D, 0.0D, zd);
+			if(!slide && oldZd != zd) {
+				xd = yd = zd = 0.0D;
+			}
+			if(!slide && oldYd != yd) {
+				xd = yd = zd = 0.0D;
+			}else {
+				yd = -footSize;
+				for(AABB aabb : cubes) {
+					yd = aabb.clipYCollide(bb, yd);
+				}
 
-                bb.move(0.0D, yd, 0.0D);
-            }
-            if(oldX * oldX + oldZ * oldZ >= xd * xd + zd * zd)
-            {
-                xd = oldX;
-                yd = oldY;
-                zd = oldZ;
-                bb.setBB(axisalignedbb1);
-            }
-        }
+				bb.move(0.0D, yd, 0.0D);
+			}
+			cubes = world.getCubes(this, bb);
+			if(oldX * oldX + oldZ * oldZ >= xd * xd + zd * zd || cubes.size() > 0) {
+				xd = oldX;
+				yd = oldY;
+				zd = oldZ;
+				bb.setBB(axisalignedbb1);
+			}
+		}
         //fix for entity jitter when blasted by cannonballs (can cause some client-side jitter when entity is under a ceiling. unsure exactly why)
         if (!this.world.isClientSide || this instanceof Player || !(this instanceof Mob)) {
             this.x = (bb.minX + bb.maxX) / 2D;
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeDesert.java b/src/main/java/net/minecraft/core/world/biome/BiomeDesert.java
index b1c205123..b371b04ed 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeDesert.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeDesert.java
@@ -1,12 +1,11 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.block.Block;
+import java.util.Random;
+
 import net.minecraft.core.block.Blocks;
 import net.minecraft.core.world.generate.feature.WorldFeature;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreePalm;
 
-import java.util.Random;
-
 public class BiomeDesert extends Biome
 {
 
@@ -17,6 +16,6 @@ public class BiomeDesert extends Biome
     @Override
     public WorldFeature getRandomWorldGenForTrees(Random random) {
 
-        return new WorldFeatureTreePalm(Blocks.LOG_PALM, Blocks.LEAVES_PALM, random.nextInt(10) == 0, false);
+        return new WorldFeatureTreePalm(Blocks.LOG_PALM, Blocks.LEAVES_PALM, random.nextInt(10) == 0, false, true);
     }
 }
diff --git a/src/main/java/net/minecraft/core/world/biome/BiomeRainforest.java b/src/main/java/net/minecraft/core/world/biome/BiomeRainforest.java
index 953ba12c0..b3ff065da 100644
--- a/src/main/java/net/minecraft/core/world/biome/BiomeRainforest.java
+++ b/src/main/java/net/minecraft/core/world/biome/BiomeRainforest.java
@@ -1,16 +1,15 @@
 package net.minecraft.core.world.biome;
 
-import net.minecraft.core.block.Block;
+import java.util.Random;
+
 import net.minecraft.core.block.Blocks;
+import net.minecraft.core.world.generate.feature.WorldFeature;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTree;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeFancyRainforest;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreePalm;
 import net.minecraft.core.world.generate.feature.tree.WorldFeatureTreeShrub;
-import net.minecraft.core.world.generate.feature.WorldFeature;
 import net.minecraft.core.world.generate.feature.tree.spooner.WorldFeatureSpoonerTreeRound;
 
-import java.util.Random;
-
 public class BiomeRainforest extends Biome
 {
 
@@ -26,7 +25,7 @@ public class BiomeRainforest extends Biome
 			return new WorldFeatureSpoonerTreeRound(treeHeight, Blocks.LOG_OAK.id, 0, Blocks.LEAVES_OAK.id, 0);
 		}
 		if(random.nextInt(10) == 0) {
-			return new WorldFeatureTreePalm(Blocks.LOG_PALM, Blocks.LEAVES_PALM, true, false);
+			return new WorldFeatureTreePalm(Blocks.LOG_PALM, Blocks.LEAVES_PALM, true, false, true);
 		}
 		if(random.nextInt(3) == 0) {
 			if(random.nextInt(10) == 0) {
diff --git a/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java b/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
index 648ddfb28..4e6c7371e 100644
--- a/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
+++ b/src/main/java/net/minecraft/core/world/generate/feature/tree/WorldFeatureTreePalm.java
@@ -29,6 +29,7 @@ public class WorldFeatureTreePalm extends WorldFeature {
 	protected boolean big;
 	
 	protected boolean update;
+	protected boolean checkForWater;
 	
 	/**
 	 * The position of the lowest log
@@ -54,11 +55,12 @@ public class WorldFeatureTreePalm extends WorldFeature {
 	protected Set<Integer> intSet = new HashSet<>();
 	protected List<Integer> intList = new ArrayList<>();
 	@MethodParametersAnnotation(names = {"log", "leaves", "big", "update"})
-	public WorldFeatureTreePalm(Block log, Block leaves, boolean big, boolean update) {
+	public WorldFeatureTreePalm(Block log, Block leaves, boolean big, boolean update, boolean checkForWater) {
 		this.log = log;
 		this.leaves = leaves;
 		this.update = update;
 		this.big = big;
+		this.checkForWater = checkForWater;
 	}
 
 	@Override
@@ -332,7 +334,16 @@ public class WorldFeatureTreePalm extends WorldFeature {
 	}
 	
 	public boolean canGrowOnThisBlock(int id, int x, int y, int z) {
-		return Block.hasTag(id, BlockTags.GROWS_TREES) || (id == Blocks.SAND.id && waterNearby(x, y, z));
+		if(Block.hasTag(id, BlockTags.GROWS_TREES)) {
+			return true;
+		}
+		if(id == Blocks.SAND.id) {
+			if(checkForWater && !waterNearby(x, y, z)) {
+				return false;
+			}
+			return true;
+		}
+		return false;
 	}
 	
 	public static int encode(int x, int y, int z) {
