diff --git a/patches/minecraft/net/minecraft/block/Block.java.patch b/patches/minecraft/net/minecraft/block/Block.java.patch index 9aa0467fe9..dc49bb6c84 100644 --- a/patches/minecraft/net/minecraft/block/Block.java.patch +++ b/patches/minecraft/net/minecraft/block/Block.java.patch @@ -117,6 +117,15 @@ public float func_149638_a() { return this.field_149781_w; } +@@ -561,7 +569,7 @@ + } + } + +- return raytraceresult; ++ return p_180636_0_.func_177230_c().getRayTraceResult(p_180636_0_, p_180636_1_, p_180636_2_, p_180636_3_, p_180636_4_, raytraceresult); + } + + public void func_180652_a(World p_180652_1_, BlockPos p_180652_2_, Explosion p_180652_3_) { @@ -615,16 +623,22 @@ public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, ItemStack p_180657_6_) { p_180657_2_.func_71029_a(StatList.field_188065_ae.func_199076_b(this)); diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeBlock.java b/src/main/java/net/minecraftforge/common/extensions/IForgeBlock.java index aa2e9958a3..b905df3e33 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeBlock.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeBlock.java @@ -1084,4 +1084,21 @@ public interface IForgeBlock { return state.isTopSolid(); } + + /** + * Ray traces through the blocks collision from start vector to end vector returning a ray trace hit. + * + * @param state The current state + * @param world The current world + * @param pos Block position in world + * @param start The start vector + * @param end The end vector + * @param original The original result from {@link Block#collisionRayTrace(IBlockState, World, BlockPos, Vec3d, Vec3d)} + * @return A result that suits your block + */ + @Nullable + default RayTraceResult getRayTraceResult(IBlockState state, World world, BlockPos pos, Vec3d start, Vec3d end, RayTraceResult original) + { + return original; + } }