mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
Fix empty voxel shape usage (Fixes #7043)
This commit is contained in:
parent
95d881f916
commit
5ad1d9a01d
1 changed files with 12 additions and 13 deletions
|
@ -955,7 +955,7 @@ index 25b787d1b22e495fb6756e4ee909776ed8699492..042be2cf60a9d01698808d84f2e537a5
|
|||
}
|
||||
// CraftBukkit start
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 516015eb48900abaf0e2f47de4ffd10e9cf4d9a7..821c34a48127802947e293c4599e0cdaea3c040e 100644
|
||||
index e2c35ace138d7a6c41e7f07e9759f684b7152b71..9bb44918af119d9afae4a0a050c6a5381f028364 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -1076,9 +1076,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
|
||||
|
@ -1443,7 +1443,7 @@ index cdb785619b4fce3cb7f0b4a996a15fa43de5f4d1..6db47035fe940ef1f78a14cae6103e22
|
|||
+
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java
|
||||
index 9176735c08a75854209f24113b0e78332249dc4d..7213acf7ac083e37888eeba28f740c31f1fa0d34 100644
|
||||
index 9176735c08a75854209f24113b0e78332249dc4d..731c7dd15f131dc124be6af8f342b122cb89491b 100644
|
||||
--- a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java
|
||||
+++ b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java
|
||||
@@ -19,16 +19,17 @@ public final class Shapes {
|
||||
|
@ -1466,11 +1466,10 @@ index 9176735c08a75854209f24113b0e78332249dc4d..7213acf7ac083e37888eeba28f740c31
|
|||
}
|
||||
|
||||
public static VoxelShape box(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
|
||||
@@ -40,30 +41,11 @@ public final class Shapes {
|
||||
}
|
||||
@@ -41,29 +42,14 @@ public final class Shapes {
|
||||
|
||||
public static VoxelShape create(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
|
||||
- if (!(maxX - minX < 1.0E-7D) && !(maxY - minY < 1.0E-7D) && !(maxZ - minZ < 1.0E-7D)) {
|
||||
if (!(maxX - minX < 1.0E-7D) && !(maxY - minY < 1.0E-7D) && !(maxZ - minZ < 1.0E-7D)) {
|
||||
- int i = findBits(minX, maxX);
|
||||
- int j = findBits(minY, maxY);
|
||||
- int k = findBits(minZ, maxZ);
|
||||
|
@ -1487,10 +1486,10 @@ index 9176735c08a75854209f24113b0e78332249dc4d..7213acf7ac083e37888eeba28f740c31
|
|||
- } else {
|
||||
- return new ArrayVoxelShape(BLOCK.shape, (DoubleList)DoubleArrayList.wrap(new double[]{minX, maxX}), (DoubleList)DoubleArrayList.wrap(new double[]{minY, maxY}), (DoubleList)DoubleArrayList.wrap(new double[]{minZ, maxZ}));
|
||||
- }
|
||||
- } else {
|
||||
- return empty();
|
||||
- }
|
||||
+ return new io.papermc.paper.voxel.AABBVoxelShape(new AABB(minX, minY, minZ, maxX, maxY, maxZ)); // Paper
|
||||
+ return new io.papermc.paper.voxel.AABBVoxelShape(new AABB(minX, minY, minZ, maxX, maxY, maxZ)); // Paper
|
||||
} else {
|
||||
return empty();
|
||||
}
|
||||
}
|
||||
|
||||
public static VoxelShape create(AABB box) {
|
||||
|
@ -1499,7 +1498,7 @@ index 9176735c08a75854209f24113b0e78332249dc4d..7213acf7ac083e37888eeba28f740c31
|
|||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -125,6 +107,20 @@ public final class Shapes {
|
||||
@@ -125,6 +111,20 @@ public final class Shapes {
|
||||
}
|
||||
|
||||
public static boolean joinIsNotEmpty(VoxelShape shape1, VoxelShape shape2, BooleanOp predicate) {
|
||||
|
@ -1520,7 +1519,7 @@ index 9176735c08a75854209f24113b0e78332249dc4d..7213acf7ac083e37888eeba28f740c31
|
|||
if (predicate.apply(false, false)) {
|
||||
throw (IllegalArgumentException)Util.pauseInIde(new IllegalArgumentException());
|
||||
} else {
|
||||
@@ -196,6 +192,43 @@ public final class Shapes {
|
||||
@@ -196,6 +196,43 @@ public final class Shapes {
|
||||
}
|
||||
|
||||
public static VoxelShape getFaceShape(VoxelShape shape, Direction direction) {
|
||||
|
@ -1564,7 +1563,7 @@ index 9176735c08a75854209f24113b0e78332249dc4d..7213acf7ac083e37888eeba28f740c31
|
|||
if (shape == block()) {
|
||||
return block();
|
||||
} else {
|
||||
@@ -210,7 +243,7 @@ public final class Shapes {
|
||||
@@ -210,7 +247,7 @@ public final class Shapes {
|
||||
i = 0;
|
||||
}
|
||||
|
||||
|
@ -1573,7 +1572,7 @@ index 9176735c08a75854209f24113b0e78332249dc4d..7213acf7ac083e37888eeba28f740c31
|
|||
}
|
||||
}
|
||||
|
||||
@@ -235,6 +268,53 @@ public final class Shapes {
|
||||
@@ -235,6 +272,53 @@ public final class Shapes {
|
||||
}
|
||||
|
||||
public static boolean faceShapeOccludes(VoxelShape one, VoxelShape two) {
|
||||
|
|
Loading…
Reference in a new issue