Removed collision optimizations
This commit is contained in:
@@ -1,99 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Sauve <paul@technove.co>
|
||||
Date: Sun, 9 May 2021 18:35:05 -0500
|
||||
Subject: [PATCH] Pufferfish Make EntityCollisionContext a live representation
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/phys/shapes/EntityCollisionContext.java b/src/main/java/net/minecraft/world/phys/shapes/EntityCollisionContext.java
|
||||
index 88a4a72bb390947dc17e5da09a99b2d1b3ac4621..284c76ddb9724b44bb2e93f590685c728e843e6d 100644
|
||||
--- a/src/main/java/net/minecraft/world/phys/shapes/EntityCollisionContext.java
|
||||
+++ b/src/main/java/net/minecraft/world/phys/shapes/EntityCollisionContext.java
|
||||
@@ -17,50 +17,69 @@ public class EntityCollisionContext implements CollisionContext {
|
||||
return defaultValue;
|
||||
}
|
||||
};
|
||||
- private final boolean descending;
|
||||
- private final double entityBottom;
|
||||
- private final ItemStack heldItem;
|
||||
- private final Predicate<FluidState> canStandOnFluid;
|
||||
+ // Pufferfish start - remove these and pray no plugin uses them
|
||||
+ // private final boolean descending;
|
||||
+ // private final double entityBottom;
|
||||
+ // private final ItemStack heldItem;
|
||||
+ // private final Predicate<FluidState> canStandOnFluid;
|
||||
+ // Pufferfish end
|
||||
@Nullable
|
||||
private final Entity entity;
|
||||
|
||||
protected EntityCollisionContext(boolean descending, double minY, ItemStack heldItem, Predicate<FluidState> walkOnFluidPredicate, @Nullable Entity entity) {
|
||||
- this.descending = descending;
|
||||
- this.entityBottom = minY;
|
||||
- this.heldItem = heldItem;
|
||||
- this.canStandOnFluid = walkOnFluidPredicate;
|
||||
+ // Pufferfish start - remove these
|
||||
+ // this.descending = descending;
|
||||
+ // this.entityBottom = minY;
|
||||
+ // this.heldItem = heldItem;
|
||||
+ // this.canStandOnFluid = walkOnFluidPredicate;
|
||||
+ // Pufferfish end
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
protected EntityCollisionContext(Entity entity) {
|
||||
- this(
|
||||
- entity.isDescending(),
|
||||
- entity.getY(),
|
||||
- entity instanceof LivingEntity ? ((LivingEntity)entity).getMainHandItem() : ItemStack.EMPTY,
|
||||
- entity instanceof LivingEntity ? ((LivingEntity)entity)::canStandOnFluid : fluidState -> false,
|
||||
- entity
|
||||
- );
|
||||
+ // Pufferfish start - remove this
|
||||
+ // this(
|
||||
+ // entity.isDescending(),
|
||||
+ // entity.getY(),
|
||||
+ // entity instanceof LivingEntity ? ((LivingEntity)entity).getMainHandItem() : ItemStack.EMPTY,
|
||||
+ // entity instanceof LivingEntity ? ((LivingEntity)entity)::canStandOnFluid : fluidState -> false,
|
||||
+ // entity
|
||||
+ // );
|
||||
+ // Pufferfish end
|
||||
+ this.entity = entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isHoldingItem(Item item) {
|
||||
- return this.heldItem.is(item);
|
||||
+ // Pufferfish start
|
||||
+ Entity entity = this.entity;
|
||||
+ if (entity instanceof LivingEntity livingEntity) {
|
||||
+ return livingEntity.getMainHandItem().is(item);
|
||||
+ }
|
||||
+ return ItemStack.EMPTY.is(item);
|
||||
+ // Pufferfish end
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canStandOnFluid(FluidState stateAbove, FluidState state) {
|
||||
- return this.canStandOnFluid.test(state) && !stateAbove.getType().isSame(state.getType());
|
||||
+ // Pufferfish start
|
||||
+ Entity entity = this.entity;
|
||||
+ if (entity instanceof LivingEntity livingEntity) {
|
||||
+ return livingEntity.canStandOnFluid(state) && !stateAbove.getType().isSame(state.getType());
|
||||
+ }
|
||||
+ return false;
|
||||
+ // Pufferfish end
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDescending() {
|
||||
- return this.descending;
|
||||
+ return this.entity != null && this.entity.isDescending(); // Pufferfish
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAbove(VoxelShape shape, BlockPos pos, boolean defaultValue) {
|
||||
- return this.entityBottom > (double)pos.getY() + shape.max(Direction.Axis.Y) - 1.0E-5F;
|
||||
+ return (this.entity == null ? -Double.MAX_VALUE : entity.getY()) > (double)pos.getY() + shape.max(Direction.Axis.Y) - 1.0E-5F; // Pufferfish
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..fa30e8dc39a2d4bd1399e41230b307b1
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index bf38bbd0d0abf5e73c94e0f9d1f4462cccd6a105..af61cfe8330c3aecc348bfe40838d25755621333 100644
|
||||
index 4e8892326bfadfb0f1baf672908bc282f11103b1..8b71a68944c80043d979b8eb107c0cc094843fcf 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -75,28 +75,41 @@ public class ActivationRange
|
||||
@@ -425,7 +425,7 @@ index b3377ed06d703f54e01ba174e5a06dc928cdff96..80af7979f9a2078a6c40c958ced1d487
|
||||
+ // KioCG end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
||||
index bc944fec524d79fd6e5fc01a808e4d13153afc05..095e68ff301a5bbba2eff0a867d0a3df786a5f0f 100644
|
||||
index c1b0cf6e09914404d1fcf302af03666342e1dc30..dd6c872b8e655119edab5f978067381a287d70ca 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
||||
@@ -429,4 +429,11 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
||||
Reference in New Issue
Block a user