From 8e65ec71cbe3cd64383740f0ec6b505683d89f1e Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Mon, 17 Dec 2018 19:16:46 -0500 Subject: [PATCH] SPIGOT-2151: Add support for getting simple bounding box of a block By: Evoluseis --- .../src/main/java/org/bukkit/block/Block.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/paper-api/src/main/java/org/bukkit/block/Block.java b/paper-api/src/main/java/org/bukkit/block/Block.java index 24100a6a0b..6041a66c9e 100644 --- a/paper-api/src/main/java/org/bukkit/block/Block.java +++ b/paper-api/src/main/java/org/bukkit/block/Block.java @@ -10,6 +10,7 @@ import org.bukkit.Location; import org.bukkit.block.data.BlockData; import org.bukkit.inventory.ItemStack; import org.bukkit.metadata.Metadatable; +import org.bukkit.util.BoundingBox; import org.bukkit.util.RayTraceResult; import org.bukkit.util.Vector; @@ -384,4 +385,20 @@ public interface Block extends Metadatable { * @return the ray trace hit result, or null if there is no hit */ RayTraceResult rayTrace(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode); + + /** + * Gets the approximate bounding box for this block. + *

+ * This isn't exact as some blocks {@link org.bukkit.block.data.type.Stairs} + * contain many bounding boxes to establish their complete form. + * + * Also, the box may not be exactly the same as the collision shape (such as + * cactus, which is 16/16 of a block with 15/16 collisional bounds). + * + * This method will return an empty bounding box if the geometric shape of + * the block is empty (such as air blocks). + * + * @return the approximate bounding box of the block + */ + BoundingBox getBoundingBox(); }