minecraft-src/net/minecraft/world/entity/ai/goal/RandomLookAroundGoal.java
2025-07-04 01:41:11 +03:00

45 lines
1,010 B
Java

package net.minecraft.world.entity.ai.goal;
import java.util.EnumSet;
import net.minecraft.world.entity.Mob;
public class RandomLookAroundGoal extends Goal {
private final Mob mob;
private double relX;
private double relZ;
private int lookTime;
public RandomLookAroundGoal(Mob mob) {
this.mob = mob;
this.setFlags(EnumSet.of(Goal.Flag.MOVE, Goal.Flag.LOOK));
}
@Override
public boolean canUse() {
return this.mob.getRandom().nextFloat() < 0.02F;
}
@Override
public boolean canContinueToUse() {
return this.lookTime >= 0;
}
@Override
public void start() {
double d = (Math.PI * 2) * this.mob.getRandom().nextDouble();
this.relX = Math.cos(d);
this.relZ = Math.sin(d);
this.lookTime = 20 + this.mob.getRandom().nextInt(20);
}
@Override
public boolean requiresUpdateEveryTick() {
return true;
}
@Override
public void tick() {
this.lookTime--;
this.mob.getLookControl().setLookAt(this.mob.getX() + this.relX, this.mob.getEyeY(), this.mob.getZ() + this.relZ);
}
}