Skip to content

Commit 43123a7

Browse files
committed
Add activeEffects.
1 parent 5e455d7 commit 43123a7

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/main/java/baritone/pathing/movement/CalculationContext.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import baritone.utils.pathing.BetterWorldBorder;
2828
import net.minecraft.client.player.LocalPlayer;
2929
import net.minecraft.core.BlockPos;
30+
import net.minecraft.world.effect.MobEffect;
31+
import net.minecraft.world.effect.MobEffectInstance;
3032
import net.minecraft.world.item.enchantment.EnchantmentHelper;
3133
import net.minecraft.world.item.enchantment.Enchantments;
3234
import net.minecraft.world.level.Level;
@@ -35,6 +37,7 @@
3537

3638
import java.util.ArrayList;
3739
import java.util.List;
40+
import java.util.Map;
3841

3942
import static baritone.api.pathing.movement.ActionCosts.COST_INF;
4043

@@ -76,6 +79,7 @@ public class CalculationContext {
7679
public final boolean allowWalkOnMagmaBlocks;
7780
public final BetterWorldBorder worldBorder;
7881
public final boolean considerPotionEffects;
82+
public final Map<MobEffect, MobEffectInstance> activeEffects;
7983

8084
public final PrecomputedData precomputedData;
8185

@@ -127,6 +131,7 @@ public CalculationContext(IBaritone baritone, boolean forUseOnAnotherThread) {
127131
// then you get a wildly inconsistent path that isn't optimal for either scenario.
128132
this.worldBorder = new BetterWorldBorder(world.getWorldBorder());
129133
this.considerPotionEffects = Baritone.settings().considerPotionEffects.value;
134+
this.activeEffects = player.getActiveEffectsMap();
130135
}
131136

132137
public final IBaritone getBaritone() {

src/main/java/baritone/pathing/movement/movements/MovementDescend.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public static void dynamicFallCost(CalculationContext context, int x, int y, int
146146
return;
147147
}
148148
LocalPlayer player = context.getBaritone().getPlayerContext().player();
149-
if (context.considerPotionEffects && player.hasEffect(MobEffects.LEVITATION)) {
149+
if (context.considerPotionEffects && context.activeEffects.containsKey(MobEffects.LEVITATION)) {
150150
return;
151151
}
152152
double tentativeCost = WALK_OFF_BLOCK_COST + frontBreak;
@@ -166,7 +166,7 @@ public static void dynamicFallCost(CalculationContext context, int x, int y, int
166166
continue;
167167
}
168168
int unprotectedFallHeight = effectiveStartHeight - 1 - newY;
169-
if (context.considerPotionEffects && player.hasEffect(MobEffects.SLOW_FALLING)) {
169+
if (context.considerPotionEffects && context.activeEffects.containsKey(MobEffects.SLOW_FALLING)) {
170170
res.cost = tentativeCost + ActionCosts.distanceToTicks(unprotectedFallHeight, 0.01d, velocity);
171171
res.x = destX;
172172
res.y = newY + 1;

0 commit comments

Comments
 (0)