Peculiar behavior when detecting rapidly fired snowball hits
I've made a datapack where you can throw a snowball and it will destroy the block which the snowball hit. It's based on CloudWolf's passenger concept, but I've added a bit of raycasting to make block detection more reliable.
- How it's supposed to work:
When a snowball hits a block it should destroy that block.
- What works so far:
If I fire snowballs slowly, it works flawlessly. Block is successfully detected and destroyed.
- What goes wrong:
If i stand still, aim at a specific spot, and fire snowballs rapidly (achieved by holding right click), then the snowballs don't break the blocks. After I stop firing, the last fired snowball does break the block at which i was aiming.
Honestly, I have no idea why it goes wrong. Possible points of failure could be transferring momentum to the marker entity, or the recursive nature of the raycast, etc. I've included a zip file of the datapack, made for version 1.20.4.
Continue to help post