From ba16c817acf62503637710ec64d69c02cd4f6fbc Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Mon, 26 Jan 2015 19:09:22 +0000 Subject: [PATCH] Trodden Dirt now expands to a full block if there's a block above it. --- .../common/block/decor/BlockDirtPath.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/vazkii/botania/common/block/decor/BlockDirtPath.java b/src/main/java/vazkii/botania/common/block/decor/BlockDirtPath.java index c45204250..0c0013c4b 100644 --- a/src/main/java/vazkii/botania/common/block/decor/BlockDirtPath.java +++ b/src/main/java/vazkii/botania/common/block/decor/BlockDirtPath.java @@ -11,6 +11,7 @@ */ package vazkii.botania.common.block.decor; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -52,6 +53,24 @@ public class BlockDirtPath extends BlockMod implements ILexiconable { entity.motionZ *= speed; } + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + Block blockAbove = world.getBlock(x, y + 1, z); + if(blockAbove.isSideSolid(world, x, y + 1, z, ForgeDirection.DOWN)) + setBlockBounds(0F, 0F, 0F, 1F, 1, 1F); + else setBlockBounds(0F, 0F, 0F, 1F, 15F / 16F, 1F); + } + + @Override + public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) { + return side == ForgeDirection.DOWN; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + setBlockBoundsBasedOnState(world, x, y, z); + } + @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1);