package net.glowstone.entity.ai; import net.glowstone.entity.GlowLivingEntity; public class LookAroundTask extends EntityTask { private int delay = random.nextInt(10) + 15; public LookAroundTask() { super("look_around"); } @Override public boolean isInstant() { return false; } @Override public int getDurationMin() { return 2 * 20; } @Override public int getDurationMax() { return 4 * 20; } @Override public boolean shouldStart(GlowLivingEntity entity) { EntityTask task = entity.getTaskManager().getTask("look_player"); return (task == null || !task.isExecuting()) && random.nextFloat() <= 0.1; } @Override public void start(GlowLivingEntity entity) { } @Override public void end(GlowLivingEntity entity) { delay = random.nextInt(20) + 60; } @Override public void execute(GlowLivingEntity entity) { if (random.nextFloat() <= 0.15 && delay == 0) { entity.setHeadYaw(entity.getHeadYaw() + random.nextFloat() * 179 - 90); // todo: smooth delay = 20; } if (delay > 0) delay--; } }