From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: BillyGalbreath 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 ef89a82669a6c5bf911827b90facf36a2ff26e91..5fd723c9fdda81595db8b150d967ff3bd5cea608 100644 --- a/src/main/java/org/bukkit/entity/Mob.java +++ b/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.