Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pathing differs from vanilla in lithium 0.5-0.5.4 #185

Closed
mrmangohands opened this issue Jan 5, 2021 · 3 comments
Closed

Pathing differs from vanilla in lithium 0.5-0.5.4 #185

mrmangohands opened this issue Jan 5, 2021 · 3 comments
Labels
T-bug Type: Bug

Comments

@mrmangohands
Copy link
Member

mrmangohands commented Jan 5, 2021

Earlier today I received a report of a pathing difference using lithium on 1.16.1: in vanilla piglins would not cross a 1 block walkway adjacent to lava to reach the player, as seen here https://clips.twitch.tv/EnchantingInventiveDogDAESuppy, whereas with lithium they would, visible here https://clips.twitch.tv/EnchantingDarlingMuleKappaPride.

The list of node types checked for getNodeTypeFromNeighbors in LandPathNodeMakerMixin was expanded to include WATER_BORDER in 1.16-pre3, and more notably from 1.16-pre5-20w29a lava returns LAVA (value -1) instead of DANGER_FIRE, causing the discrepency seen above. The original lithium code was based off 20w19a, but was updated to include the WATER_BORDER check in e3de204, fixing one half of the issue, while the other was no longer an issue in 1.16.2+.

I'm aware that releases for older versions are unsupported, so I'll be addressing it in a fork for the speedrunning community, but wanted to make an issue for documentation purposes.

Edit: fixed in mrmangohands/lithium-fabric@339111b, didn't reference the issue in the commit to avoid spamming when I rebase :P

Edit 2: Iteration order also hasn't matched vanilla from 0.5-0.6.0, fixed in 590174d

@mrmangohands mrmangohands added the T-bug Type: Bug label Jan 5, 2021
@amnotbananaama
Copy link
Contributor

Given how complex pathfinding is, and how difficult it can be to find minute deviations from vanilla, this might be a perfect use case for the test suite that @2No2Name has been working on

@2No2Name
Copy link
Member

2No2Name commented Jan 5, 2021

Thank you for the detailed bugreport

Regarding the test suite, I will wait for the changes of at least the next snapshot before publishing it. But you can already send me structure block files that contain a structure that can be activated by replacing all red terracotta with a redstone block and that activates a noteblock on top of an emerald block on success (failure is timeout based).

@2No2Name
Copy link
Member

As this is already fixed in the recent versions it is recommended to either update to a more recent version.
I see you have fixed it already in your fork. However if there are any users who do not want to use a fork, they can also just disable the mixin using the lithum properties file by adding the line mixin.ai.pathing=false to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-bug Type: Bug
Projects
None yet
Development

No branches or pull requests

3 participants