mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-17 06:48:23 +01:00
dd60ba4869
The lighting queue spreads out the processing of light updates across multiple ticks based on how much free time the server has left at the end of the tick.
66 lines
No EOL
2.5 KiB
Diff
66 lines
No EOL
2.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Joseph Hirschfeld <joe@ibj.io>
|
|
Date: Thu, 3 Mar 2016 02:39:54 -0600
|
|
Subject: [PATCH] Change implementation of (tile)entity removal list
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
|
import org.bukkit.generator.ChunkGenerator;
|
|
// CraftBukkit end
|
|
|
|
+// Paper start
|
|
+import java.util.Set;
|
|
+import com.google.common.collect.Sets;
|
|
+// Paper end
|
|
+
|
|
public abstract class World implements IBlockAccess {
|
|
|
|
private int a = 63;
|
|
@@ -0,0 +0,0 @@ public abstract class World implements IBlockAccess {
|
|
}
|
|
};
|
|
// Spigot end
|
|
- protected final List<Entity> f = Lists.newArrayList();
|
|
+ protected final Set<Entity> f = Sets.newHashSet(); // Paper
|
|
//public final List<TileEntity> tileEntityList = Lists.newArrayList(); // Paper - Remove unused list
|
|
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
|
|
private final List<TileEntity> b = Lists.newArrayList();
|
|
- private final List<TileEntity> tileEntityListUnload = Lists.newArrayList();
|
|
+ private final Set<TileEntity> tileEntityListUnload = Sets.newHashSet(); // Paper
|
|
public final List<EntityHuman> players = Lists.newArrayList();
|
|
public final List<Entity> j = Lists.newArrayList();
|
|
protected final IntHashMap<Entity> entitiesById = new IntHashMap();
|
|
@@ -0,0 +0,0 @@ public abstract class World implements IBlockAccess {
|
|
|
|
int j;
|
|
|
|
- for (i = 0; i < this.f.size(); ++i) {
|
|
- entity = (Entity) this.f.get(i);
|
|
- int k = entity.ab;
|
|
+ // Paper start - Set based removal lists
|
|
+ for (Entity e : this.f) {
|
|
+ j = e.getChunkX();
|
|
+ int k = e.getChunkZ();
|
|
|
|
- j = entity.ad;
|
|
- if (entity.aa && this.isChunkLoaded(k, j, true)) {
|
|
- this.getChunkAt(k, j).b(entity);
|
|
+ if (e.aa && this.isChunkLoaded(k, j, true)) {
|
|
+ this.getChunkAt(k, j).b(e);
|
|
}
|
|
}
|
|
|
|
- for (i = 0; i < this.f.size(); ++i) {
|
|
- this.c((Entity) this.f.get(i));
|
|
+ for (Entity e : this.f) {
|
|
+ this.c(e);
|
|
}
|
|
+ // Paper end
|
|
|
|
this.f.clear();
|
|
this.l();
|
|
--
|