Code/net/minecraft/world/entity/ai/behavior/StrollToPoi.java

31 lines
1.6 KiB
Java
Raw Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.world.entity.ai.behavior;
import net.minecraft.core.GlobalPos;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.PathfinderMob;
import net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder;
import net.minecraft.world.entity.ai.behavior.declarative.MemoryAccessor;
import net.minecraft.world.entity.ai.memory.MemoryModuleType;
import net.minecraft.world.entity.ai.memory.WalkTarget;
import org.apache.commons.lang3.mutable.MutableLong;
public class StrollToPoi {
public static BehaviorControl<PathfinderMob> create(MemoryModuleType<GlobalPos> p_259919_, float p_259285_, int p_259332_, int p_259904_) {
MutableLong mutablelong = new MutableLong(0L);
return BehaviorBuilder.create(
p_258859_ -> p_258859_.group(p_258859_.registered(MemoryModuleType.WALK_TARGET), p_258859_.present(p_259919_))
.apply(p_258859_, (p_258842_, p_258843_) -> (p_258851_, p_258852_, p_258853_) -> {
GlobalPos globalpos = p_258859_.get(p_258843_);
if (p_258851_.dimension() != globalpos.dimension() || !globalpos.pos().closerToCenterThan(p_258852_.position(), p_259904_)) {
return false;
} else if (p_258853_ <= mutablelong.getValue()) {
return true;
} else {
p_258842_.set(new WalkTarget(globalpos.pos(), p_259285_, p_259332_));
mutablelong.setValue(p_258853_ + 80L);
return true;
}
})
);
}
}