54 lines
2.0 KiB
Diff
54 lines
2.0 KiB
Diff
|
From 22571c3bfdb223adc2c19395bbaa4739a534c593 Mon Sep 17 00:00:00 2001
|
||
|
From: Alfie Cleveland <alfeh@me.com>
|
||
|
Date: Mon, 31 Jul 2017 00:45:37 +0100
|
||
|
Subject: [PATCH] Optimise BiomeCache
|
||
|
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/server/BiomeCache.java b/src/main/java/net/minecraft/server/BiomeCache.java
|
||
|
index 833854f5f..aad52cc81 100644
|
||
|
--- a/src/main/java/net/minecraft/server/BiomeCache.java
|
||
|
+++ b/src/main/java/net/minecraft/server/BiomeCache.java
|
||
|
@@ -3,11 +3,16 @@ package net.minecraft.server;
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.List;
|
||
|
|
||
|
+import org.bukkit.craftbukkit.util.LongHash;
|
||
|
+
|
||
|
+import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
|
||
|
+import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
||
|
+
|
||
|
public class BiomeCache {
|
||
|
|
||
|
private final WorldChunkManager a;
|
||
|
private long b;
|
||
|
- private LongHashMap c = new LongHashMap();
|
||
|
+ private Long2ObjectMap c = new Long2ObjectOpenHashMap(); // MineHQ
|
||
|
private List d = new ArrayList();
|
||
|
|
||
|
public BiomeCache(WorldChunkManager worldchunkmanager) {
|
||
|
@@ -17,8 +22,10 @@ public class BiomeCache {
|
||
|
public BiomeCacheBlock a(int i, int j) {
|
||
|
i >>= 4;
|
||
|
j >>= 4;
|
||
|
- long k = (long) i & 4294967295L | ((long) j & 4294967295L) << 32;
|
||
|
- BiomeCacheBlock biomecacheblock = (BiomeCacheBlock) this.c.getEntry(k);
|
||
|
+ // MineHQ start
|
||
|
+ long k = LongHash.toLong(i, j);
|
||
|
+ BiomeCacheBlock biomecacheblock = (BiomeCacheBlock) this.c.get(k);
|
||
|
+ // MineHQ end
|
||
|
|
||
|
if (biomecacheblock == null) {
|
||
|
biomecacheblock = new BiomeCacheBlock(this, i, j);
|
||
|
@@ -47,7 +54,7 @@ public class BiomeCache {
|
||
|
|
||
|
if (l > 30000L || l < 0L) {
|
||
|
this.d.remove(k--);
|
||
|
- long i1 = (long) biomecacheblock.c & 4294967295L | ((long) biomecacheblock.d & 4294967295L) << 32;
|
||
|
+ long i1 = LongHash.toLong(biomecacheblock.c, biomecacheblock.d); // MineHQ
|
||
|
|
||
|
this.c.remove(i1);
|
||
|
}
|
||
|
--
|
||
|
2.13.3
|
||
|
|