aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/unapplied/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/unapplied/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch')
-rw-r--r--patches/unapplied/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch182
1 files changed, 182 insertions, 0 deletions
diff --git a/patches/unapplied/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/unapplied/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch
new file mode 100644
index 0000000000..53018a8cb6
--- /dev/null
+++ b/patches/unapplied/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch
@@ -0,0 +1,182 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: BillyGalbreath <[email protected]>
+Date: Mon, 3 Sep 2018 18:13:53 -0500
+Subject: [PATCH] Add ray tracing methods to LivingEntity
+
+
+diff --git a/src/main/java/com/destroystokyo/paper/block/TargetBlockInfo.java b/src/main/java/com/destroystokyo/paper/block/TargetBlockInfo.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..c896d172519a8552a132031cb956378db272878f
+--- /dev/null
++++ b/src/main/java/com/destroystokyo/paper/block/TargetBlockInfo.java
+@@ -0,0 +1,67 @@
++package com.destroystokyo.paper.block;
++
++import org.bukkit.FluidCollisionMode;
++import org.bukkit.block.Block;
++import org.bukkit.block.BlockFace;
++import org.jetbrains.annotations.NotNull;
++
++/**
++ * Represents information about a targeted block
++ * @deprecated use {@link org.bukkit.util.RayTraceResult}
++ */
++@Deprecated(forRemoval = true)
++public class TargetBlockInfo {
++ private final Block block;
++ private final BlockFace blockFace;
++
++ public TargetBlockInfo(@NotNull Block block, @NotNull BlockFace blockFace) {
++ this.block = block;
++ this.blockFace = blockFace;
++ }
++
++ /**
++ * Get the block that is targeted
++ *
++ * @return Targeted block
++ */
++ @NotNull
++ public Block getBlock() {
++ return block;
++ }
++
++ /**
++ * Get the targeted BlockFace
++ *
++ * @return Targeted blockface
++ */
++ @NotNull
++ public BlockFace getBlockFace() {
++ return blockFace;
++ }
++
++ /**
++ * Get the relative Block to the targeted block on the side it is targeted at
++ *
++ * @return Block relative to targeted block
++ */
++ @NotNull
++ public Block getRelativeBlock() {
++ return block.getRelative(blockFace);
++ }
++
++ /**
++ * @deprecated use {@link org.bukkit.FluidCollisionMode}
++ */
++ @Deprecated(forRemoval = true)
++ public enum FluidMode {
++ NEVER(FluidCollisionMode.NEVER),
++ SOURCE_ONLY(FluidCollisionMode.SOURCE_ONLY),
++ ALWAYS(FluidCollisionMode.ALWAYS);
++
++ public final FluidCollisionMode bukkit;
++
++ FluidMode(FluidCollisionMode bukkit) {
++ this.bukkit = bukkit;
++ }
++ }
++}
+diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
+index 97d0f82041a229e85217a7e575bf003eddc31b70..8a18f269ee1767d57367160cb0e3513a4e2969fb 100644
+--- a/src/main/java/org/bukkit/entity/LivingEntity.java
++++ b/src/main/java/org/bukkit/entity/LivingEntity.java
+@@ -83,6 +83,98 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
+ @NotNull
+ public Block getTargetBlock(@Nullable Set<Material> transparent, int maxDistance);
+
++ // Paper start
++ /**
++ * Gets the block that the living entity has targeted, ignoring fluids
++ *
++ * @param maxDistance this is the maximum distance to scan
++ * @return block that the living entity has targeted,
++ * or null if no block is within maxDistance
++ * @deprecated use {@link #getTargetBlockExact(int)}
++ */
++ @Deprecated(forRemoval = true)
++ @Nullable
++ public default Block getTargetBlock(int maxDistance) {
++ return getTargetBlock(maxDistance, com.destroystokyo.paper.block.TargetBlockInfo.FluidMode.NEVER);
++ }
++
++ /**
++ * Gets the block that the living entity has targeted
++ *
++ * @param maxDistance this is the maximum distance to scan
++ * @param fluidMode whether to check fluids or not
++ * @return block that the living entity has targeted,
++ * or null if no block is within maxDistance
++ * @deprecated use {@link #getTargetBlockExact(int, FluidCollisionMode)}
++ */
++ @Deprecated(forRemoval = true)
++ @Nullable
++ public Block getTargetBlock(int maxDistance, @NotNull com.destroystokyo.paper.block.TargetBlockInfo.FluidMode fluidMode);
++
++ /**
++ * Gets the blockface of that block that the living entity has targeted, ignoring fluids
++ *
++ * @param maxDistance this is the maximum distance to scan
++ * @return blockface of the block that the living entity has targeted,
++ * or null if no block is targeted
++ */
++ @Nullable
++ public default org.bukkit.block.BlockFace getTargetBlockFace(int maxDistance) {
++ return getTargetBlockFace(maxDistance, org.bukkit.FluidCollisionMode.NEVER);
++ }
++
++ /**
++ * Gets the blockface of that block that the living entity has targeted
++ *
++ * @param maxDistance this is the maximum distance to scan
++ * @param fluidMode whether to check fluids or not
++ * @return blockface of the block that the living entity has targeted,
++ * or null if no block is targeted
++ * @deprecated use {@link #getTargetBlockFace(int, FluidCollisionMode)}
++ */
++ @Deprecated(forRemoval = true)
++ @Nullable
++ public org.bukkit.block.BlockFace getTargetBlockFace(int maxDistance, @NotNull com.destroystokyo.paper.block.TargetBlockInfo.FluidMode fluidMode);
++
++ /**
++ * Gets the blockface of that block that the living entity has targeted
++ *
++ * @param maxDistance this is the maximum distance to scan
++ * @param fluidMode whether to check fluids or not
++ * @return blockface of the block that the living entity has targeted,
++ * or null if no block is targeted
++ */
++ @Nullable
++ public org.bukkit.block.BlockFace getTargetBlockFace(int maxDistance, @NotNull FluidCollisionMode fluidMode);
++
++ /**
++ * Gets information about the block the living entity has targeted, ignoring fluids
++ *
++ * @param maxDistance this is the maximum distance to scan
++ * @return TargetBlockInfo about the block the living entity has targeted,
++ * or null if no block is targeted
++ * @deprecated use {@link #rayTraceBlocks(double)}
++ */
++ @Deprecated(forRemoval = true)
++ @Nullable
++ public default com.destroystokyo.paper.block.TargetBlockInfo getTargetBlockInfo(int maxDistance) {
++ return getTargetBlockInfo(maxDistance, com.destroystokyo.paper.block.TargetBlockInfo.FluidMode.NEVER);
++ }
++
++ /**
++ * Gets information about the block the living entity has targeted
++ *
++ * @param maxDistance this is the maximum distance to scan
++ * @param fluidMode whether to check fluids or not
++ * @return TargetBlockInfo about the block the living entity has targeted,
++ * or null if no block is targeted
++ * @deprecated use {@link #rayTraceBlocks(double, FluidCollisionMode)}
++ */
++ @Deprecated(forRemoval = true)
++ @Nullable
++ public com.destroystokyo.paper.block.TargetBlockInfo getTargetBlockInfo(int maxDistance, @NotNull com.destroystokyo.paper.block.TargetBlockInfo.FluidMode fluidMode);
++ // Paper end
++
+ /**
+ * Gets the last two blocks along the living entity's line of sight.
+ * <p>