pmmp / PocketMine-MP

A server software for Minecraft: Bedrock Edition in PHP
https://pmmp.io
GNU Lesser General Public License v3.0
3.28k stars 1.56k forks source link

Entity-block interactions might not fire for fast-moving entities #3846

Open dktapps opened 4 years ago

dktapps commented 4 years ago

Issue description

If an entity is moving at higher than 1 block per tick (20 blocks per second) on any axis, block collisions/intersections will start getting missed.

A player travelling at 1.6 blocks per tick (32 blocks per second) or more will notice that they sometimes don't get set on fire by fire blocks and such.

This happens because the block intersection checks don't account for movement and only scan the blocks that the entity is currently intersecting with at the point when the check is done, instead of checking all the blocks it passed through since last check.

Steps to reproduce the issue

  1. Use the Speed effect with a high amplifier (for example 50).
  2. Light some fires.
  3. Sprint at the fires and notice you sometimes won't get set on fire.

OS and versions

Govdim commented 4 years ago

At the moment there are a bunch of other more serious problems, but for some reason you are interested in this :/

TwistedAsylumMC commented 4 years ago

A bug is a bug, and it needs to be fixed. It doesn't matter if it is important or not but it still needs to be fixed at some point. Just because Dylan opened the issue 5 days ago, does not mean it will be fixed soon or he will be working on it instead of the more "important" ones. There is issues opened from years ago which have still not been resolved to this day.

Govdim commented 4 years ago

First, for the entire time of using this core, I did not know about this "problem" Secondly, who came up with the idea to run through fire at speed? Third, the same problem is observed in vanilla. And fourthly, this cannot be called a problem in principle, since in real life you can also run through a small fire and nothing will happen to you :)

A bug is a bug, and it needs to be fixed. It doesn't matter if it is important or not but it still needs to be fixed at some point. Just because Dylan opened the issue 5 days ago, does not mean it will be fixed soon or he will be working on it instead of the more "important" ones. There is issues opened from years ago which have still not been resolved to this day.