mirror of
https://github.com/PaperMC/Paper.git
synced 2025-09-02 13:23:50 -07:00
Avoid collision shapes outside world border in findFreePosition
This is to correctly adhere to Vanilla behavior.
This commit is contained in:
@@ -31633,6 +31633,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ null
|
+ null
|
||||||
+ );
|
+ );
|
||||||
+
|
+
|
||||||
|
+ final WorldBorder worldBorder = this.getWorldBorder();
|
||||||
|
+ if (worldBorder != null) {
|
||||||
|
+ aabbs.removeIf((final AABB aabb) -> {
|
||||||
|
+ return !worldBorder.isWithinBounds(aabb);
|
||||||
|
+ });
|
||||||
|
+ voxels.removeIf((final VoxelShape shape) -> {
|
||||||
|
+ return !worldBorder.isWithinBounds(shape.bounds());
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ // push voxels into aabbs
|
+ // push voxels into aabbs
|
||||||
+ for (int i = 0, len = voxels.size(); i < len; ++i) {
|
+ for (int i = 0, len = voxels.size(); i < len; ++i) {
|
||||||
+ aabbs.addAll(voxels.get(i).toAabbs());
|
+ aabbs.addAll(voxels.get(i).toAabbs());
|
||||||
|
Reference in New Issue
Block a user