From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath <blake.galbreath@gmail.com> Date: Fri, 14 May 2021 13:42:06 -0500 Subject: [PATCH] Add Mob#lookAt API diff --git a/src/main/java/org/bukkit/entity/Mob.java b/src/main/java/org/bukkit/entity/Mob.java index d726453c041a980576312b6bee96a07837f37974..7d4ce660adb21e579e564796568945ee20f0ca59 100644 --- a/src/main/java/org/bukkit/entity/Mob.java +++ b/src/main/java/org/bukkit/entity/Mob.java @@ -23,6 +23,88 @@ public interface Mob extends LivingEntity, Lootable { * @return True if mob is exposed to daylight */ boolean isInDaylight(); + + /** + * Instruct this Mob to look at a specific Location + * <p> + * Useful when implementing custom mob goals + * + * @param location location to look at + */ + void lookAt(@NotNull org.bukkit.Location location); + + /** + * Instruct this Mob to look at a specific Location + * <p> + * Useful when implementing custom mob goals + * + * @param location location to look at + * @param headRotationSpeed head rotation speed + * @param maxHeadPitch max head pitch rotation + */ + void lookAt(@NotNull org.bukkit.Location location, float headRotationSpeed, float maxHeadPitch); + + /** + * Instruct this Mob to look at a specific Entity + * <p> + * If a LivingEntity, look at eye location + * <p> + * Useful when implementing custom mob goals + * + * @param entity entity to look at + */ + void lookAt(@NotNull Entity entity); + + /** + * Instruct this Mob to look at a specific Entity + * <p> + * If a LivingEntity, look at eye location + * <p> + * Useful when implementing custom mob goals + * + * @param entity entity to look at + * @param headRotationSpeed head rotation speed + * @param maxHeadPitch max head pitch rotation + */ + void lookAt(@NotNull Entity entity, float headRotationSpeed, float maxHeadPitch); + + /** + * Instruct this Mob to look at a specific position + * <p> + * Useful when implementing custom mob goals + * + * @param x x coordinate + * @param y y coordinate + * @param z z coordinate + */ + void lookAt(double x, double y, double z); + + /** + * Instruct this Mob to look at a specific position + * <p> + * Useful when implementing custom mob goals + * + * @param x x coordinate + * @param y y coordinate + * @param z z coordinate + * @param headRotationSpeed head rotation speed + * @param maxHeadPitch max head pitch rotation + */ + void lookAt(double x, double y, double z, float headRotationSpeed, float maxHeadPitch); + + /** + * Gets the head rotation speed + * + * @return the head rotation speed + */ + int getHeadRotationSpeed(); + + /** + * Gets the max head pitch rotation + * + * @return the max head pitch rotation + */ + int getMaxHeadPitch(); // Paper end /**