Paper/patches/api/0296-Add-more-line-of-sight-methods.patch

49 lines
2.0 KiB
Diff
Raw Normal View History

2021-06-11 14:02:28 +02:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: TwoLeggedCat <80929284+TwoLeggedCat@users.noreply.github.com>
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
2023-12-05 18:33:18 +01:00
index d8b1fa79dc24138dc71e32c14bda71c1d570ed88..b68367f123f029c3ff47eab6bfabd7a894a99da4 100644
--- a/src/main/java/org/bukkit/RegionAccessor.java
+++ b/src/main/java/org/bukkit/RegionAccessor.java
2023-12-05 18:33:18 +01:00
@@ -461,5 +461,13 @@ public interface RegionAccessor extends Keyed { // Paper
2021-06-11 14:02:28 +02:00
@NotNull
@Override
NamespacedKey getKey();
2021-06-11 14:02:28 +02:00
+
+ /**
+ * 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
}
2021-06-11 14:02:28 +02:00
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index 62d0d2fe3c6dfc9faaa821bde074b623914e4a44..129df18c471f1ec0c286746953ae8803a209cfa7 100644
2021-06-11 14:02:28 +02:00
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -590,6 +590,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
2021-06-11 14:02:28 +02:00
*/
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>