Package net.minestom.server.collision
Class BoundingBox
java.lang.Object
net.minestom.server.collision.BoundingBox
- All Implemented Interfaces:
Shape
See https://wiki.vg/Entity_metadata#Mobs_2
-
Nested Class Summary
-
Constructor Summary
ConstructorDescriptionBoundingBox
(double width, double height, double depth) BoundingBox
(double width, double height, double depth, Point offset) -
Method Summary
Modifier and TypeMethodDescriptionboolean
boundingBoxRayIntersectionCheck
(Vec start, Vec direction, Pos position) @NotNull BoundingBox
contract
(double x, double y, double z) Creates a newBoundingBox
with a contracted size.double
depth()
boolean
@NotNull BoundingBox
expand
(double x, double y, double z) Creates a newBoundingBox
with an expanded size.static @NotNull BoundingBox
fromPoints
(@NotNull Point a, @NotNull Point b) static @Nullable BoundingBox
fromPose
(Entity.Pose pose) getBlocks
(Point point, BoundingBox.AxisMask axisMask, double axis) double
height()
boolean
intersectBox
(@NotNull Point positionRelative, @NotNull BoundingBox boundingBox) Checks if two bounding boxes intersect.boolean
intersectBoxSwept
(@NotNull Point rayStart, @NotNull Point rayDirection, @NotNull Point shapePos, @NotNull BoundingBox moving, @NotNull SweepResult finalResult) Checks if a moving bounding box will hit this shape.boolean
isOccluded
(@NotNull Shape shape, @NotNull BlockFace face) double
maxX()
double
maxY()
double
maxZ()
double
minX()
double
minY()
double
minZ()
@NotNull Point
Relative End@NotNull Point
Relative StarttoString()
double
width()
@NotNull BoundingBox
withOffset
(Point offset) Creates a newBoundingBox
with an offset.Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.minestom.server.collision.Shape
intersectEntity, isFaceFull
-
Constructor Details
-
BoundingBox
-
BoundingBox
public BoundingBox(double width, double height, double depth)
-
-
Method Details
-
isOccluded
- Specified by:
isOccluded
in interfaceShape
-
intersectBox
@Experimental public boolean intersectBox(@NotNull @NotNull Point positionRelative, @NotNull @NotNull BoundingBox boundingBox) Description copied from interface:Shape
Checks if two bounding boxes intersect.- Specified by:
intersectBox
in interfaceShape
- Parameters:
positionRelative
- Relative position of bounding box to check withboundingBox
- Bounding box to check for intersections with- Returns:
- is an intersection found
-
intersectBoxSwept
@Experimental public boolean intersectBoxSwept(@NotNull @NotNull Point rayStart, @NotNull @NotNull Point rayDirection, @NotNull @NotNull Point shapePos, @NotNull @NotNull BoundingBox moving, @NotNull @NotNull SweepResult finalResult) Description copied from interface:Shape
Checks if a moving bounding box will hit this shape.- Specified by:
intersectBoxSwept
in interfaceShape
- Parameters:
rayStart
- Position of the moving shaperayDirection
- Movement vectorshapePos
- Position of this shapemoving
- Bounding Box of moving shapefinalResult
- Stores final SweepResult- Returns:
- is an intersection found
-
boundingBoxRayIntersectionCheck
-
relativeStart
Description copied from interface:Shape
Relative Start- Specified by:
relativeStart
in interfaceShape
- Returns:
- Start of shape
-
relativeEnd
Description copied from interface:Shape
Relative End- Specified by:
relativeEnd
in interfaceShape
- Returns:
- End of shape
-
toString
-
expand
Creates a newBoundingBox
with an expanded size.- Parameters:
x
- the X offsety
- the Y offsetz
- the Z offset- Returns:
- a new
BoundingBox
expanded
-
contract
Creates a newBoundingBox
with a contracted size.- Parameters:
x
- the X offsety
- the Y offsetz
- the Z offset- Returns:
- a new bounding box contracted
-
withOffset
Creates a newBoundingBox
with an offset.- Parameters:
offset
- the offset- Returns:
- a new bounding box with an offset.
-
width
public double width() -
height
public double height() -
depth
public double depth() -
minX
public double minX() -
maxX
public double maxX() -
minY
public double minY() -
maxY
public double maxY() -
minZ
public double minZ() -
maxZ
public double maxZ() -
getBlocks
-
getBlocks
-
equals
-
fromPose
-
fromPoints
@NotNull public static @NotNull BoundingBox fromPoints(@NotNull @NotNull Point a, @NotNull @NotNull Point b)
-