From c8ff65136f23a3c2770b8d9ca508f61927f8acba Mon Sep 17 00:00:00 2001 From: md_5 Date: Mon, 19 Dec 2016 23:05:39 +1100 Subject: SPIGOT-2936: Simplify WorldBorder diff --- nms-patches/SpawnerCreature.patch | 17 ++++++----------- nms-patches/WorldBorder.patch | 23 +---------------------- 2 files changed, 7 insertions(+), 33 deletions(-) diff --git a/nms-patches/SpawnerCreature.patch b/nms-patches/SpawnerCreature.patch index 42f79568..377f8d79 100644 --- a/nms-patches/SpawnerCreature.patch +++ b/nms-patches/SpawnerCreature.patch @@ -18,22 +18,17 @@ public SpawnerCreature() {} -@@ -36,15 +42,18 @@ - for (int i1 = -8; i1 <= 8; ++i1) { - for (k = -8; k <= 8; ++k) { +@@ -38,13 +44,16 @@ boolean flag4 = i1 == -8 || i1 == 8 || k == -8 || k == 8; -- ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i1 + l, k + j); -+ // CraftBukkit start - use LongHash and LongHashSet -+ // ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i1 + l, k + j); + ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i1 + l, k + j); - if (!this.b.contains(chunkcoordintpair)) { -+ long chunkCoords = LongHash.toLong(i1 + l, k + j); ++ // CraftBukkit start - use LongHash and LongHashSet ++ long chunkCoords = LongHash.toLong(chunkcoordintpair.x, chunkcoordintpair.z); + if (!this.b.contains(chunkCoords)) { ++i; -- if (!flag4 && worldserver.getWorldBorder().isInBounds(chunkcoordintpair)) { -- PlayerChunk playerchunk = worldserver.getPlayerChunkMap().getChunk(chunkcoordintpair.x, chunkcoordintpair.z); -+ if (!flag4 && worldserver.getWorldBorder().isInBounds(i1 + l, k + j)) { // CraftBukkit -+ PlayerChunk playerchunk = worldserver.getPlayerChunkMap().getChunk(i1 + l, k + j); // CraftBukkit + if (!flag4 && worldserver.getWorldBorder().isInBounds(chunkcoordintpair)) { + PlayerChunk playerchunk = worldserver.getPlayerChunkMap().getChunk(chunkcoordintpair.x, chunkcoordintpair.z); if (playerchunk != null && playerchunk.e()) { - this.b.add(chunkcoordintpair); diff --git a/nms-patches/WorldBorder.patch b/nms-patches/WorldBorder.patch index d40f879b..8577053c 100644 --- a/nms-patches/WorldBorder.patch +++ b/nms-patches/WorldBorder.patch @@ -8,28 +8,7 @@ public WorldBorder() { this.e = this.d; -@@ -32,8 +33,19 @@ - return (double) (blockposition.getX() + 1) > this.b() && (double) blockposition.getX() < this.d() && (double) (blockposition.getZ() + 1) > this.c() && (double) blockposition.getZ() < this.e(); - } - -+ // CraftBukkit start - split method - public boolean isInBounds(ChunkCoordIntPair chunkcoordintpair) { -- return (double) chunkcoordintpair.e() > this.b() && (double) chunkcoordintpair.c() < this.d() && (double) chunkcoordintpair.f() > this.c() && (double) chunkcoordintpair.d() < this.e(); -+ return isInBounds(chunkcoordintpair.x, chunkcoordintpair.z); -+ } -+ -+ // Inlined the getters from ChunkCoordIntPair -+ public boolean isInBounds(long chunkcoords) { -+ return isInBounds(org.bukkit.craftbukkit.util.LongHash.msw(chunkcoords), org.bukkit.craftbukkit.util.LongHash.lsw(chunkcoords)); -+ } -+ -+ // Inlined the getters from ChunkCoordIntPair -+ public boolean isInBounds(int x, int z) { -+ return (double) ((x << 4) + 15) > this.b() && (double) (x << 4) < this.d() && (double) ((z << 4) + 15) > this.c() && (double) (x << 4) < this.e(); - } - - public boolean a(AxisAlignedBB axisalignedbb) { -@@ -177,6 +189,7 @@ +@@ -177,6 +178,7 @@ } public void a(IWorldBorderListener iworldborderlistener) { -- cgit v1.2.3