From 03afa71b61d4b3348b036cec44f4b30e0331cf7a Mon Sep 17 00:00:00 2001 From: Byteflux Date: Tue, 14 Jul 2015 10:03:45 -0700 Subject: [PATCH] Optimize getCubes() diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 9bf13b5..dff3424 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1162,11 +1162,12 @@ public abstract class World implements IBlockAccess { int cx = chunkx << 4; for ( int chunkz = ( i1 >> 4 ); chunkz <= ( ( j1 - 1 ) >> 4 ); chunkz++ ) { - if ( !this.isChunkLoaded( chunkx, chunkz, true ) ) + Chunk chunk = this.getChunkIfLoaded( chunkx, chunkz ); + if ( chunk == null ) { // PaperSpigot start if (entity.loadChunks) { - ((ChunkProviderServer) entity.world.chunkProvider).getChunkAt(chunkx, chunkz); + chunk = ((ChunkProviderServer) entity.world.chunkProvider).getChunkAt(chunkx, chunkz); } else { entity.inUnloadedChunk = true; // PaperSpigot - Remove entities in unloaded chunks continue; @@ -1174,7 +1175,6 @@ public abstract class World implements IBlockAccess { // PaperSpigot end } int cz = chunkz << 4; - Chunk chunk = this.getChunkAt( chunkx, chunkz ); // Compute ranges within chunk int xstart = ( i < cx ) ? cx : i; int xend = ( j < ( cx + 16 ) ) ? j : ( cx + 16 ); @@ -1221,6 +1221,8 @@ public abstract class World implements IBlockAccess { } // Spigot end + if (entity instanceof EntityItem) return arraylist; // PaperSpigot - Optimize item movement + double d0 = 0.25D; List list = this.getEntities(entity, axisalignedbb.grow(d0, d0, d0)); -- 2.5.1