Skip to content

Commit

Permalink
Revert loaded entity list (PaperMC#3304)
Browse files Browse the repository at this point in the history
  • Loading branch information
Spottedleaf authored May 6, 2020
1 parent fa87db6 commit e2c2347
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 259 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ index 3a88c9a67062eb73ad8257ea786efca7e7e99f65..6d3b34ead9cc95dcc1152dffa8c6c4a8
List<Entity> list = this.tracker.getPassengers();

diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index bdf835397aa691c41280f65a7785e777791b2891..d460bc62b8d89582457c1b6ab530b0ddc9971526 100644
index bdf835397aa691c41280f65a7785e777791b2891..3d31f00a22233bd885496d7aac34eb2b634c40e8 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -120,21 +120,51 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
Expand Down Expand Up @@ -173,23 +173,17 @@ index bdf835397aa691c41280f65a7785e777791b2891..d460bc62b8d89582457c1b6ab530b0dd
if (entity instanceof EntityPlayer) {
EntityPlayer entityplayer = (EntityPlayer) entity;

@@ -1594,7 +1652,48 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -1594,7 +1652,37 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
entity.tracker = null; // Paper - We're no longer tracked
}

+ // Paper start - optimised tracker
+ private final void processTrackQueue() {
+ this.world.timings.tracker1.startTiming();
+ try {
+ Entity[] entities = this.world.loadedEntities.getRawData();
+ for (int i = 0, len = this.world.loadedEntities.size(); i < len; ++i) {
+ Entity tracked = entities[i];
+ for (EntityTracker tracker : this.trackedEntities.values()) {
+ // update tracker entry
+ EntityTracker tracker = this.trackedEntities.get(tracked.getId());
+ if (tracker == null) {
+ continue;
+ }
+ tracker.updatePlayers(tracked.getPlayersInTrackRange());
+ tracker.updatePlayers(tracker.tracker.getPlayersInTrackRange());
+ }
+ } finally {
+ this.world.timings.tracker1.stopTiming();
Expand All @@ -198,13 +192,8 @@ index bdf835397aa691c41280f65a7785e777791b2891..d460bc62b8d89582457c1b6ab530b0dd
+
+ this.world.timings.tracker2.startTiming();
+ try {
+ Entity[] entities = this.world.loadedEntities.getRawData();
+ for (int i = 0, len = this.world.loadedEntities.size(); i < len; ++i) {
+ Entity tracked = entities[i];
+ EntityTracker tracker = this.trackedEntities.get(tracked.getId());
+ if (tracker != null) {
+ tracker.trackerEntry.tick();
+ }
+ for (EntityTracker tracker : this.trackedEntities.values()) {
+ tracker.trackerEntry.tick();
+ }
+ } finally {
+ this.world.timings.tracker2.stopTiming();
Expand All @@ -222,7 +211,7 @@ index bdf835397aa691c41280f65a7785e777791b2891..d460bc62b8d89582457c1b6ab530b0dd
List<EntityPlayer> list = Lists.newArrayList();
List<EntityPlayer> list1 = this.world.getPlayers();

@@ -1662,23 +1761,31 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -1662,23 +1750,31 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
PacketDebug.a(this.world, chunk.getPos());
List<Entity> list = Lists.newArrayList();
List<Entity> list1 = Lists.newArrayList();
Expand Down Expand Up @@ -266,7 +255,7 @@ index bdf835397aa691c41280f65a7785e777791b2891..d460bc62b8d89582457c1b6ab530b0dd

Iterator iterator;
Entity entity1;
@@ -1716,7 +1823,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -1716,7 +1812,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {

public class EntityTracker {

Expand All @@ -275,7 +264,7 @@ index bdf835397aa691c41280f65a7785e777791b2891..d460bc62b8d89582457c1b6ab530b0dd
private final Entity tracker;
private final int trackingDistance;
private SectionPosition e;
@@ -1733,6 +1840,42 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -1733,6 +1829,42 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
this.e = SectionPosition.a(entity);
}

Expand Down Expand Up @@ -318,7 +307,7 @@ index bdf835397aa691c41280f65a7785e777791b2891..d460bc62b8d89582457c1b6ab530b0dd
public boolean equals(Object object) {
return object instanceof PlayerChunkMap.EntityTracker ? ((PlayerChunkMap.EntityTracker) object).tracker.getId() == this.tracker.getId() : false;
}
@@ -1829,7 +1972,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -1829,7 +1961,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
int j = entity.getEntityType().getChunkRange() * 16;
j = org.spigotmc.TrackingRange.getEntityTrackingRange(entity, j); // Paper

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ index 4b341c81fc97076a69aede729008c54674fa7adf..bae9371a1e220f4fc78a3905cad24a2e

// Paper start
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index d460bc62b8d89582457c1b6ab530b0ddc9971526..4317d9b98e4a8a994bc7d215aa71489c0de3a14e 100644
index 3d31f00a22233bd885496d7aac34eb2b634c40e8..b3c9cb67664491c3a8c83a67ac0e79d48561f3fe 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -130,6 +130,17 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
Expand Down
Loading

0 comments on commit e2c2347

Please sign in to comment.