mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-31 21:37:39 +01:00
#621: Add Block#getCollisionShape and associated API
By: konsolas <vincentyntang@gmail.com>
This commit is contained in:
parent
34291f36d1
commit
6b0ff8582b
@ -15,6 +15,7 @@ import org.bukkit.metadata.Metadatable;
|
||||
import org.bukkit.util.BoundingBox;
|
||||
import org.bukkit.util.RayTraceResult;
|
||||
import org.bukkit.util.Vector;
|
||||
import org.bukkit.util.VoxelShape;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@ -501,4 +502,13 @@ public interface Block extends Metadatable {
|
||||
*/
|
||||
@NotNull
|
||||
BoundingBox getBoundingBox();
|
||||
|
||||
/**
|
||||
* Gets the collision shape of this block.
|
||||
*
|
||||
* @return a {@link VoxelShape} representing the collision shape of this
|
||||
* block.
|
||||
*/
|
||||
@NotNull
|
||||
VoxelShape getCollisionShape();
|
||||
}
|
||||
|
30
paper-api/src/main/java/org/bukkit/util/VoxelShape.java
Normal file
30
paper-api/src/main/java/org/bukkit/util/VoxelShape.java
Normal file
@ -0,0 +1,30 @@
|
||||
package org.bukkit.util;
|
||||
|
||||
import java.util.Collection;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A shape made out of voxels.
|
||||
*
|
||||
* For example, used to represent the detailed collision shape of blocks.
|
||||
*/
|
||||
public interface VoxelShape {
|
||||
|
||||
/**
|
||||
* Converts this shape into a collection of {@link BoundingBox} equivalent
|
||||
* to the shape: a bounding box intersects with this block shape if it
|
||||
* intersects with any of the shape's bounding boxes.
|
||||
*
|
||||
* @return shape converted to bounding boxes
|
||||
*/
|
||||
@NotNull
|
||||
public Collection<BoundingBox> getBoundingBoxes();
|
||||
|
||||
/**
|
||||
* Checks if the given bounding box intersects this block shape.
|
||||
*
|
||||
* @param other bounding box to test
|
||||
* @return true if other overlaps this, false otherwise
|
||||
*/
|
||||
public boolean overlaps(@NotNull BoundingBox other);
|
||||
}
|
Loading…
Reference in New Issue
Block a user