From ca24944ba98f745b47e77fb86cd9911cd07dfa36 Mon Sep 17 00:00:00 2001 From: md_5 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 db7f6bc..2141126 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 tileEntities; - public final EntitySlice[] entitySlices; // CraftBukkit - public + public final List[] entitySlices; // Spigot private boolean done; private boolean lit; private boolean p; @@ -80,7 +80,7 @@ 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; @@ -88,7 +88,7 @@ public class Chunk { /* CraftBukkit start 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 } // CraftBukkit end */ @@ -926,12 +926,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 } } @@ -1311,7 +1311,7 @@ public class Chunk { return this.tileEntities; } - public EntitySlice[] getEntitySlices() { + public List[] getEntitySlices() { return this.entitySlices; } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java index c143d01..4ac27d0 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -157,7 +157,7 @@ public class ChunkProviderServer implements IChunkProvider { // CraftBukkit start - moved from Chunk. for (int k = 0; k < chunk.entitySlices.length; ++k) { - chunk.entitySlices[k] = new EntitySlice(Entity.class); + chunk.entitySlices[k] = new org.bukkit.craftbukkit.util.UnsafeList(); // Spigot } // CraftBukkit end chunk.addEntities(); diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java index 4e47890..1f6212e 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -402,7 +402,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { public void loadEntities(Chunk chunk, NBTTagCompound nbttagcompound, World world) { // moved from Chunk. for (int k = 0; k < chunk.entitySlices.length; ++k) { - chunk.entitySlices[k] = new EntitySlice(Entity.class); + chunk.entitySlices[k] = new org.bukkit.craftbukkit.util.UnsafeList(); // Spigot } // CraftBukkit end world.timings.syncChunkLoadEntitiesTimer.startTiming(); // Spigot 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 slice : chunk.entitySlices ) { - for ( Entity entity : (Set) slice ) + for ( Entity entity : slice ) { if ( MinecraftServer.currentTick > entity.activatedTick ) { -- 2.1.0