CivClassic / Citadel

A Minecraft plugin to protect your chests and builds using in-game materials. Requires an attacker to break each block a certain number of times. Built for Paper 1.16.5
BSD 3-Clause "New" or "Revised" License
1 stars 21 forks source link

Special blocks do not respect reinforcement physics #31

Closed Protonull closed 4 years ago

Protonull commented 4 years ago

Break a block underneath some reinforced gravel and the gravel appears to break, will remain as a ghost block until the chunk is reloaded, and the reinforcement is ticked.

Additionally reinforcements do not seem to absorb explosive damage as they used to, so if a creeper explodes within your house, your floor's reinforcements will be ticked, but the ground underneath your house have a crater.

Protonull commented 4 years ago

Clarification: the explosive damage thing is only true for special blocks like gravel

Protonull commented 4 years ago

Correction: the explosive damage is true for all blocks with low blast resistance, such as with gravel and sand which have a blast resistance of 0.6 and 0.5 respectively. Seemingly any block below a blast resistance of 6 will not fully absorb an explosion, thus allowing the blocks behind it to be damaged too, thus when the reinforced blocks are removed from the damage list, the blocks behind them remain and get removed. One possible solution for this would be to, while a block is reinforced, increase that block's blast resistance to that of End Stone (9).

Protonull commented 4 years ago

Break a block underneath some reinforced gravel and the gravel appears to break, will remain as a ghost block until the chunk is reloaded, and the reinforcement is ticked.

Fixed with #32

Maxopoly commented 4 years ago

Re: Explosions

I think ideally we'd be doing entirely custom tracing for explosion damage detection to allow dealing more damage to nearby blocks with TNT. Possibly also allow damaging reinforcements of blocks that cant be broken by TNT. That's just a nice to have though and until then I'd just call the current behavior a feature. Any block that'd get destroyed by the explosion in vanilla will have its reinforcement damaged

Maxopoly commented 4 years ago

Partially solved and superceded by https://github.com/CivClassic/Citadel/issues/33