aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0284-Add-Mob-lookAt-API.patch
blob: 0dd512690588c16d329c157ca98a11832e40427b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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 7eee2e561346ac1d672f9652edb78e76c910fc9d..11b6d1aba7d1f6ae1f3c822193486f5a1478e105 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
+     * <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
     /**
      * Instructs this Mob to set the specified LivingEntity as its target.