From c3cc0f09b0bcc0b21478def0b640d8df972bfebe Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Fri, 20 Feb 2015 21:33:36 +1100
Subject: [PATCH] Use Standard List for EntitySlices.


diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 994903f..022ba31 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -31,7 +31,7 @@ public class Chunk {
     public final int locZ;
     private boolean k;
     public final Map<BlockPosition, TileEntity> tileEntities;
-    public final EntitySlice<Entity>[] entitySlices;
+    public final List<Entity>[] entitySlices; // Spigot
     private boolean done;
     private boolean lit;
     private boolean p;
@@ -80,14 +80,14 @@ public class Chunk {
         this.tileEntities = Maps.newHashMap();
         this.v = 4096;
         this.w = Queues.newConcurrentLinkedQueue();
-        this.entitySlices = (EntitySlice[]) (new EntitySlice[16]);
+        this.entitySlices = (List[]) (new List[16]); // Spigot
         this.world = world;
         this.locX = i;
         this.locZ = j;
         this.heightMap = new int[256];
 
         for (int k = 0; k < this.entitySlices.length; ++k) {
-            this.entitySlices[k] = new EntitySlice(Entity.class);
+            this.entitySlices[k] = new org.bukkit.craftbukkit.util.UnsafeList(); // Spigot
         }
 
         Arrays.fill(this.f, -999);
@@ -924,12 +924,12 @@ public class Chunk {
         j = MathHelper.clamp(j, 0, this.entitySlices.length - 1);
 
         for (int k = i; k <= j; ++k) {
-            Iterator iterator = this.entitySlices[k].c(oclass).iterator();
+            Iterator iterator = this.entitySlices[k].iterator(); // Spigot
 
             while (iterator.hasNext()) {
                 Entity entity = (Entity) iterator.next();
 
-                if (entity.getBoundingBox().b(axisalignedbb) && (predicate == null || predicate.apply((T) entity))) { // CraftBukkit - fix decompile error
+                if (oclass.isInstance(entity) && entity.getBoundingBox().b(axisalignedbb) && (predicate == null || predicate.apply((T) entity))) { // CraftBukkit - fix decompile error // Spigot
                     list.add((T) entity); // Fix decompile error
                 }
             }
@@ -1309,7 +1309,7 @@ public class Chunk {
         return this.tileEntities;
     }
 
-    public EntitySlice<Entity>[] getEntitySlices() {
+    public List<Entity>[] getEntitySlices() {
         return this.entitySlices;
     }
 
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 0143623..621a717 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -141,9 +141,9 @@ public class ActivationRange
      */
     private static void activateChunkEntities(Chunk chunk)
     {
-        for ( EntitySlice slice : chunk.entitySlices )
+        for ( List<Entity> slice : chunk.entitySlices )
         {
-            for ( Entity entity : (Set<Entity>) slice )
+            for ( Entity entity : slice )
             {
                 if ( MinecraftServer.currentTick > entity.activatedTick )
                 {
-- 
2.1.4