From 9ad459ca9dd3756f801f9f8932af9a828109f5f7 Mon Sep 17 00:00:00 2001 From: Evoluseis Date: Mon, 17 Dec 2018 19:16:46 -0500 Subject: SPIGOT-2151: Add support for getting simple bounding box of a block --- src/main/java/org/bukkit/block/Block.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java index 24100a6a..6041a66c 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/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(); } -- cgit v1.2.3