mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
18c3716c49
This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. We also store counts by type to further enable other performance optimizations in later patches.
32 lines
1.3 KiB
Diff
32 lines
1.3 KiB
Diff
From 95dfc2d6b2593ea2603bc30932824b855b8bb672 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Tue, 22 Mar 2016 00:33:47 -0400
|
|
Subject: [PATCH] Use a Shared Random for Entities
|
|
|
|
Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index b4ad611fc..4a08db5ba 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -46,6 +46,7 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper
|
|
|
|
// CraftBukkit start
|
|
private static final int CURRENT_LEVEL = 2;
|
|
+ public static Random SHARED_RANDOM = new Random(); // Paper
|
|
static boolean isLevelAtLeast(NBTTagCompound tag, int level) {
|
|
return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
|
|
}
|
|
@@ -171,7 +172,7 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper
|
|
this.length = 1.8F;
|
|
this.ax = 1;
|
|
this.ay = 1.0F;
|
|
- this.random = new Random();
|
|
+ this.random = SHARED_RANDOM; // Paper
|
|
this.fireTicks = -this.getMaxFireTicks();
|
|
this.justCreated = true;
|
|
this.uniqueID = MathHelper.a(this.random);
|
|
--
|
|
2.18.0
|
|
|