mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-12 15:08:27 +02:00
Developers!: You will need to clean up your work/Minecraft/1.13.2 folder for this Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: b850a822 SPIGOT-4526: Add conversion time API for Zombie & subclasses CraftBukkit Changes:38cf676e
SPIGOT-4534: CreatureSpawnEvent not being called for CHUNK_GENb446cb5d
SPIGOT-4527: Fix sponges with waterlogged blocks6ec8ea5c
SPIGOT-4526: Add conversion time API for Zombie & subclassesc64fe508
Mappings Updatea3c2ec03
Fix missing ServerListPingEvent call for legacy pings Spigot Changes: 1dc156ce Rebuild patches 140f654d Mappings Update
58 lines
2.3 KiB
Diff
58 lines
2.3 KiB
Diff
From 1739a3d8040f80e9389d2113e3e83337d8e52e90 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 214adec9b..a9239ee7b 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -73,11 +73,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
|
}
|
|
};
|
|
// Spigot end
|
|
- protected final List<Entity> g = Lists.newArrayList();
|
|
+ protected final Set<Entity> g = com.google.common.collect.Sets.newHashSet(); // Paper
|
|
public final List<TileEntity> tileEntityList = Lists.newArrayList();
|
|
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
|
|
private final List<TileEntity> c = Lists.newArrayList();
|
|
- private final List<TileEntity> tileEntityListUnload = Lists.newArrayList();
|
|
+ private final Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); // Paper
|
|
public final List<EntityHuman> players = Lists.newArrayList();
|
|
public final List<Entity> k = Lists.newArrayList();
|
|
protected final IntHashMap<Entity> entitiesById = new IntHashMap();
|
|
@@ -1095,20 +1095,20 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
|
this.entityList.removeAll(this.g);
|
|
|
|
int j;
|
|
+ // Paper start - Set based removal lists
|
|
+ for (Entity e : this.g) {
|
|
+ j = e.getChunkZ();
|
|
+ int k = e.getChunkX();
|
|
|
|
- for (i = 0; i < this.g.size(); ++i) {
|
|
- entity = (Entity) this.g.get(i);
|
|
- int k = entity.chunkX;
|
|
-
|
|
- j = entity.chunkZ;
|
|
- if (entity.inChunk && this.isChunkLoaded(k, j, true)) {
|
|
- this.getChunkAt(k, j).b(entity);
|
|
+ if (e.inChunk && this.isChunkLoaded(k, j, true)) {
|
|
+ this.getChunkAt(k, j).b(e);
|
|
}
|
|
}
|
|
|
|
- for (i = 0; i < this.g.size(); ++i) {
|
|
- this.c((Entity) this.g.get(i));
|
|
+ for (Entity e : this.g) {
|
|
+ this.c(e);
|
|
}
|
|
+ // Paper end
|
|
|
|
this.g.clear();
|
|
this.p_();
|
|
--
|
|
2.20.0
|
|
|