pr changes, flat array

This commit is contained in:
Colin Godsey 2018-08-15 15:07:30 -06:00
parent 064a3dc731
commit 6656d07bd2

View file

@ -1,4 +1,4 @@
From 4f16c3445f22654d43ca5b2006f45fac0e17203b Mon Sep 17 00:00:00 2001 From 7077ffc2e14e2b759174392e773d65ee8ba303a5 Mon Sep 17 00:00:00 2001
From: Colin Godsey <crgodsey@gmail.com> From: Colin Godsey <crgodsey@gmail.com>
Date: Wed, 8 Aug 2018 10:10:06 -0600 Date: Wed, 8 Aug 2018 10:10:06 -0600
Subject: [PATCH] Add entity count cache Subject: [PATCH] Add entity count cache
@ -52,7 +52,7 @@ index f525fd1b4..494759a1c 100644
if (k <= l1) { if (k <= l1) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 004c3ec47..dc301c6f4 100644 index 004c3ec47..e2d591f8f 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -11,6 +11,7 @@ import java.util.Iterator; @@ -11,6 +11,7 @@ import java.util.Iterator;
@ -113,23 +113,19 @@ index 004c3ec47..dc301c6f4 100644
return super.remove( o ); return super.remove( o );
} }
@@ -2464,6 +2497,53 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose @@ -2464,6 +2497,49 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose
return i; return i;
} }
+ // Paper start - entity count cache + // Paper start - entity count cache
+ private Map<EnumCreatureType, Integer> countCache = new EnumMap(EnumCreatureType.class); + private final int[] countCache = new int[EnumCreatureType.values().length];
+ +
+ public int getCreatureCount(EnumCreatureType type) { + public int getCreatureCount(EnumCreatureType type) {
+ Integer count = countCache.get(type); + return countCache[type.ordinal()];
+
+ return count == null ? 0 : count;
+ } + }
+ +
+ protected void updateEntityCount(EnumCreatureType type, boolean incr) { + protected void updateEntityCount(EnumCreatureType type, boolean incr) {
+ Integer countObject = countCache.get(type); + int count = countCache[type.ordinal()];
+
+ int count = countObject == null ? 0 : countObject;
+ +
+ if (incr) count++; + if (incr) count++;
+ else count--; + else count--;
@ -139,7 +135,7 @@ index 004c3ec47..dc301c6f4 100644
+ count = 0; + count = 0;
+ } + }
+ +
+ countCache.put(type, count); + countCache[type.ordinal()] = count;
+ } + }
+ +
+ protected void updateEntityCount(Entity entity, boolean incr) { + protected void updateEntityCount(Entity entity, boolean incr) {