aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0384-Don-t-run-entity-collision-code-if-not-needed.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0384-Don-t-run-entity-collision-code-if-not-needed.patch')
-rw-r--r--patches/server/0384-Don-t-run-entity-collision-code-if-not-needed.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/patches/server/0384-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0384-Don-t-run-entity-collision-code-if-not-needed.patch
new file mode 100644
index 0000000000..11403f5b9a
--- /dev/null
+++ b/patches/server/0384-Don-t-run-entity-collision-code-if-not-needed.patch
@@ -0,0 +1,30 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Spottedleaf <[email protected]>
+Date: Wed, 15 Apr 2020 17:56:07 -0700
+Subject: [PATCH] Don't run entity collision code if not needed
+
+Will not run if max entity craming is disabled and
+the max collisions per entity is less than or equal to 0
+
+diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
+index a5b532a6051f9313bb5042bf61712015768b5426..9a7d2b0d84ce422afa96b5c07c972e52c6ac00ed 100644
+--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
++++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
+@@ -3337,10 +3337,16 @@ public abstract class LivingEntity extends Entity {
+ protected void serverAiStep() {}
+
+ protected void pushEntities() {
++ // Paper start - don't run getEntities if we're not going to use its result
++ int i = this.level.getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING);
++ if (i <= 0 && level.paperConfig().collisions.maxEntityCollisions <= 0) {
++ return;
++ }
++ // Paper end - don't run getEntities if we're not going to use its result
+ List<Entity> list = this.level.getEntities((Entity) this, this.getBoundingBox(), EntitySelector.pushableBy(this));
+
+ if (!list.isEmpty()) {
+- int i = this.level.getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING);
++ // Paper - move up
+ int j;
+
+ if (i > 0 && list.size() > i - 1 && this.random.nextInt(4) == 0) {