diff --git a/src/api b/src/api index fc17b0f59..0fe49c8b9 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit fc17b0f5963e25f63c5f87400f103687d18a05aa +Subproject commit 0fe49c8b924b359c92b1d41590b4f0de16f4d9ac diff --git a/src/main/java/noppes/npcs/blocks/BlockScripted.java b/src/main/java/noppes/npcs/blocks/BlockScripted.java index 5dc6c6bfd..f1b4b9266 100644 --- a/src/main/java/noppes/npcs/blocks/BlockScripted.java +++ b/src/main/java/noppes/npcs/blocks/BlockScripted.java @@ -7,6 +7,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -40,7 +41,7 @@ public class BlockScripted extends BlockContainer { @Override public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { TileScripted tile = (TileScripted) world.getTileEntity(x, y, z); - if (tile != null && tile.isPassible) + if (tile != null && tile.isPassible && (tile.blockModel == null || tile.blockModel == Blocks.air)) return AABB_EMPTY; return AABB.getOffsetBoundingBox(x,y,z); } @@ -53,6 +54,13 @@ public class BlockScripted extends BlockContainer { return AABB.getOffsetBoundingBox(x,y,z); } + @Override + public boolean getBlocksMovement(IBlockAccess worldIn, int x, int y, int z) + { + TileScripted tile = (TileScripted) worldIn.getTileEntity(x, y, z); + return tile != null && tile.isPassible; + } + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if (world.isRemote) diff --git a/src/main/java/noppes/npcs/scripted/BlockScriptedWrapper.java b/src/main/java/noppes/npcs/scripted/BlockScriptedWrapper.java index 33b97e4c1..6c6b81605 100644 --- a/src/main/java/noppes/npcs/scripted/BlockScriptedWrapper.java +++ b/src/main/java/noppes/npcs/scripted/BlockScriptedWrapper.java @@ -81,12 +81,24 @@ public class BlockScriptedWrapper extends ScriptBlock implements IBlockScripted{ @Override public void setIsPassible(boolean bo){ + setIsPassable(bo); + } + + @Override + public boolean getIsPassible(){ + return getIsPassable(); + } + + @Override + public void setIsPassable(boolean bo){ tile.isPassible = bo; tile.needsClientUpdate = true; } @Override - public boolean getIsPassible(){ + public boolean getIsPassable(){ + if(tile == null) + return false; return tile.isPassible; } @@ -97,6 +109,8 @@ public class BlockScriptedWrapper extends ScriptBlock implements IBlockScripted{ @Override public int getLight(){ + if(tile == null) + return 0; return tile.lightValue; }