From 735b461673c9452b8831fdbbfc675b87fdfd5441 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 14 May 2021 13:42:06 -0500 Subject: [PATCH] Add Mob#lookAt API --- .../src/main/java/org/bukkit/entity/Mob.java | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/paper-api/src/main/java/org/bukkit/entity/Mob.java b/paper-api/src/main/java/org/bukkit/entity/Mob.java index ef89a82669..5fd723c9fd 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Mob.java +++ b/paper-api/src/main/java/org/bukkit/entity/Mob.java @@ -27,6 +27,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 + *

+ * 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 + *

+ * 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 + *

+ * If a LivingEntity, look at eye location + *

+ * 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 + *

+ * If a LivingEntity, look at eye location + *

+ * 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 + *

+ * 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 + *

+ * 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 /** * Instructs this Mob to set the specified LivingEntity as its target.