Snownee / Loquat

Area management mod for Minecraft map makers.
Other
3 stars 1 forks source link

Delay When Activating Area Events #9

Open TheVisionaryOne opened 6 months ago

TheVisionaryOne commented 6 months ago

Mod loader

Forge

Minecraft version

1.20.1

Mod version

2.1.1

Modloader version

Fabric Loader 0.15.10, Fabric API 0.92.1

Modpack info

Pack Still In-Dev :)

If bug:

If bug: The latest.log file

https://pastebin.com/srq9yZs9

Issue description

Area events are triggered with varying delay. Sometimes up to 10 blocks after entering/exiting an area. Seems to be related to player speed/velocity, and when a player's feet touch the ground.

I first noticed this delay when trying to change the player's gravity, using the Gravity Changer mod. To test player speed/velocity theory, I used Bing Bing Wahoo's Long Jump mechanic. Example: https://youtu.be/A-VSkjUl9mc

At first, I wondered if this was an issue with Gravity Changer's command having a delay. However, when using the Gravity Changer command in chat, it is actually lightning-fast. It has virtually zero delay compared to when the command is triggered by Loquat.

This delay is less noticeable when testing a more basic command (such as /say). However, it is very much still there, and seems to vary quite a bit in delay time. Example: https://youtu.be/iiT6hq6kfEo

After testing this issue in the two videos above, I was also able to reproduce this delay in a minimal test environment with just the relevant mods and their dependencies. The log I've attached is from that test, since the log from the video recordings was cluttered with information from irrelevant mods.

This delay becomes increasingly detrimental when trying to create complex systems using Loquat, as the effect compounds with each area the player enters/exits. It creates a less-than-ideal experience, which is a shame considering how revolutionary and well-crafted this mod seems. I absolutely love this mod, and hope there's some way to solve this!

Snownee commented 6 months ago

you can change the option positionCheckInterval in config at the moment. I will try to find a better solution for this in the future