papermc/CraftBukkit-Patches/0020-Reduce-number-of-LivingEntity-collision-checks.patch
Aikar 8fa6448620 Fix logic error with living entity collision reduction.
The previous version missed the entire point of the change and made it only skip collision on NON living entities... which is not often at all.

It was meant to only Skip Living->Living, or else we won't get any gain...
2013-02-20 07:28:58 +11:00

37 lines
1.3 KiB
Diff

From e9079818151c8df92e2d927b0f4f3308d9cea113 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Jan 2013 19:31:14 -0500
Subject: [PATCH] Reduce number of LivingEntity collision checks.
---
src/main/java/net/minecraft/server/EntityLiving.java | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index b2481aa..bbbb008 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1402,12 +1402,20 @@ public abstract class EntityLiving extends Entity {
}
protected void bd() {
+ // Spigot start
+ boolean skip = false;
+ if (!(this instanceof EntityPlayer) && this.ticksLived % 2 != 0) {
+ skip = true;
+ }
+ // Spigot end
+
List list = this.world.getEntities(this, this.boundingBox.grow(0.20000000298023224D, 0.0D, 0.20000000298023224D));
if (list != null && !list.isEmpty()) {
for (int i = 0; i < list.size(); ++i) {
Entity entity = (Entity) list.get(i);
+ if (entity instanceof EntityLiving && skip) { continue; } // Spigot
if (entity.M()) {
this.o(entity);
}
--
1.8.1.1