From 4e4ef9052ebac129b2e792d6fd458df1e29f45d2 Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Mon, 4 May 2020 21:04:21 +0000 Subject: Refactor minecart collision detection code. (#4712) * Refactor minecart collision detection code. - Use new GetBoundingBox function. - Handle descending and ascending rails. - Snap to descending rails. * Add message for UNREACHABLE --- src/Entities/Minecart.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Entities/Minecart.h') diff --git a/src/Entities/Minecart.h b/src/Entities/Minecart.h index fe9ad8ce8..ad3b3d40d 100644 --- a/src/Entities/Minecart.h +++ b/src/Entities/Minecart.h @@ -83,8 +83,13 @@ protected: void SnapToRail(NIBBLETYPE a_RailMeta); /** Tests if a solid block is in front of a cart, and stops the cart (and returns true) if so; returns false if no obstruction */ bool TestBlockCollision(NIBBLETYPE a_RailMeta); + /** Tests if there is a block at the specified position which is impassable to minecarts */ + bool IsSolidBlockAtPosition(Vector3i a_Offset); /** Tests if a solid block is at a specific offset of the minecart position */ bool IsSolidBlockAtOffset(int a_XOffset, int a_YOffset, int a_ZOffset); + + bool IsBlockCollisionAtOffset(Vector3i a_Offset); + /** Tests if this mincecart's bounding box is intersecting another entity's bounding box (collision) and pushes mincecart away if necessary */ bool TestEntityCollision(NIBBLETYPE a_RailMeta); -- cgit v1.2.3