papermc/patches/api/0308-Add-Mob-lookAt-API.patch
2021-06-21 09:57:15 -07:00

99 lines
3 KiB
Diff

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