Lithium (Fabric)

Lithium (Fabric)

22M Downloads

Pathing differs from vanilla in lithium 0.5-0.5.4

mrmangohands opened this issue ยท 3 comments

commented

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

commented

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

commented

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).

commented

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.