From 769f18ee617f43dbbb925e732110fdf2f42771ca Mon Sep 17 00:00:00 2001 From: LexManos Date: Tue, 11 Sep 2012 15:52:04 -0700 Subject: [PATCH] Implemented isBlockFoliage for pull #141 --- patches/common/net/minecraft/src/Block.java.patch | 13 ++++++++++++- patches/common/net/minecraft/src/World.java.patch | 9 +++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/patches/common/net/minecraft/src/Block.java.patch b/patches/common/net/minecraft/src/Block.java.patch index c22971c276..66bc502f5d 100644 --- a/patches/common/net/minecraft/src/Block.java.patch +++ b/patches/common/net/minecraft/src/Block.java.patch @@ -104,7 +104,7 @@ { ItemStack var8 = this.createStackedBlock(par6); -@@ -1249,4 +1257,669 @@ +@@ -1249,4 +1257,680 @@ canBlockGrass[0] = true; StatList.initBreakableStats(); } @@ -772,5 +772,16 @@ + } + + return new ItemStack(id, 1, getDamageValue(world, x, y, z)); ++ } ++ ++ /** ++ * Used by getTopSolidOrLiquidBlock while placing biome decorations, villages, etc ++ * Also used to determine if the player can spawn on this block. ++ * ++ * @return False to disallow spawning ++ */ ++ public boolean isBlockFoliage(World world, int x, int y, int z) ++ { ++ return false; + } } diff --git a/patches/common/net/minecraft/src/World.java.patch b/patches/common/net/minecraft/src/World.java.patch index 5e8c6034f0..6b71393883 100644 --- a/patches/common/net/minecraft/src/World.java.patch +++ b/patches/common/net/minecraft/src/World.java.patch @@ -93,6 +93,15 @@ } this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity); +@@ -1730,7 +1759,7 @@ + { + int var5 = var3.getBlockID(par1, var4, par2); + +- if (var5 != 0 && Block.blocksList[var5].blockMaterial.blocksMovement() && Block.blocksList[var5].blockMaterial != Material.leaves) ++ if (var5 != 0 && Block.blocksList[var5].blockMaterial.blocksMovement() && Block.blocksList[var5].blockMaterial != Material.leaves && !Block.blocksList[var5].isBlockFoliage(this, par1, var4, par2)) + { + return var4 + 1; + } @@ -1887,7 +1916,7 @@ if (var8 != null)