aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0309-Add-more-line-of-sight-methods.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0309-Add-more-line-of-sight-methods.patch')
-rw-r--r--patches/api/0309-Add-more-line-of-sight-methods.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/patches/api/0309-Add-more-line-of-sight-methods.patch b/patches/api/0309-Add-more-line-of-sight-methods.patch
new file mode 100644
index 0000000000..3a53cfffbb
--- /dev/null
+++ b/patches/api/0309-Add-more-line-of-sight-methods.patch
@@ -0,0 +1,48 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: TwoLeggedCat <[email protected]>
+Date: Sat, 29 May 2021 14:33:18 -0500
+Subject: [PATCH] Add more line of sight methods
+
+
+diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java
+index aa534b1a9a1fb84a2fbd4b372f313bb4b63325fa..43b53c21af01e0f496c8aaacff82dfdfadaf40f6 100644
+--- a/src/main/java/org/bukkit/RegionAccessor.java
++++ b/src/main/java/org/bukkit/RegionAccessor.java
+@@ -392,5 +392,13 @@ public interface RegionAccessor extends Keyed { // Paper
+ @NotNull
+ @Override
+ NamespacedKey getKey();
++
++ /**
++ * Tell whether a line of sight exists between the given locations
++ * @param from Location to start at
++ * @param to target Location
++ * @return whether a line of sight exists between {@code from} and {@code to}
++ */
++ public boolean lineOfSightExists(@NotNull Location from, @NotNull Location to);
+ // Paper end
+ }
+diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
+index a6c0b5e55adadd78619d251d979e9e46068a637e..d47706a915ae1bfaa3187a83cb6d35ea202c03d0 100644
+--- a/src/main/java/org/bukkit/entity/LivingEntity.java
++++ b/src/main/java/org/bukkit/entity/LivingEntity.java
+@@ -484,6 +484,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
+ */
+ public boolean hasLineOfSight(@NotNull Entity other);
+
++ // Paper start
++ /**
++ * Checks whether the living entity has block line of sight to the given block.
++ * <p>
++ * This uses the same algorithm that hostile mobs use to find the closest
++ * player.
++ *
++ * @param location the location to determine line of sight to
++ * @return true if there is a line of sight, false if not
++ */
++ public boolean hasLineOfSight(@NotNull Location location);
++ // Paper end
++
+ /**
+ * Returns if the living entity despawns when away from players or not.
+ * <p>