This bug is in 1.7.2, and probably in all versions after as I have not seen it reported.
Blocks are not affected properly by explosions due to the following error in the Entity class:
Entity.java
public float func_145772_a(Explosion p_145772_1_, World p_145772_2_, int p_145772_3_, int p_145772_4_, int p_145772_5_, Block p_145772_6_)
{
return p_145772_6_.getExplosionResistance(this, p_145772_2_, p_145772_3_, p_145772_3_, p_145772_4_, posX, posY + getEyeHeight(), posZ);
}
Notice that par3 is passed TWICE, as in (x, x, y) for the coordinates rather than (x, y, z).
EDIT: By "not affected properly", I mean that the block's actual explosion resistance may not be taken into account, but instead will be calculated using a block at different coordinates.l
For vanilla blocks, this is never noticed because par6 is a Block, so the correct block type is used to check explosion resistance and vanilla block explosion resistance does not depend on coordinates; to test, create a block that returns different explosion resistance based on its metadata state, and the issue will quickly become clear.
Linked issues
is duplicated by 1
Comments 6
Marked MC-49412 as duplicate of this report, as this one actually explains the issue.
I've updated description with further details on how it can be replicated / tested, since there seems to be no progress yet on verifying and / or fixing this issue. Thanks for reading.
Date opened: March 3rd, 2014
Snapshots Since then: 39, plus 2 pre-releases (as of now)
Time it would take me to somehow get the code for and re-verify this issue each snapshot: approx. 30 minutes, times 39 is almost 20 hours, unpaid.
Time it would take a Mojang employee to look at the current code and verify and, if necessary, fix this issue: less than 30 seconds.
Sorry if I sound frustrated, but this is pretty absurd. I pointed out the exact line of code and problem, which would literally take less than 1/2 a minute of somebody's time at Mojang to fix or note that it was already fixed somewhere along the line, and then we could mark this as resolved. Is that so much to ask?
This has been changed some time ago. It is now:
return state.getBlock().getExplosionResistance(this);
Maybe you should use the time it took you to write that rant and look at the code instead.
Sorry, this is a duplicate of MC-49412