Fix some stuff about ChunkHot API
This commit is contained in:
@@ -6,10 +6,10 @@ Subject: [PATCH] KioCG ChunkHot API
|
|||||||
|
|
||||||
diff --git a/src/main/java/com/kiocg/ChunkHot.java b/src/main/java/com/kiocg/ChunkHot.java
|
diff --git a/src/main/java/com/kiocg/ChunkHot.java b/src/main/java/com/kiocg/ChunkHot.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..99d6d4e02362fb8a1c82ce288a15800e044c7cc8
|
index 0000000000000000000000000000000000000000..53b4397997bc9b9b9d88e48304b37a2590161906
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/com/kiocg/ChunkHot.java
|
+++ b/src/main/java/com/kiocg/ChunkHot.java
|
||||||
@@ -0,0 +1,86 @@
|
@@ -0,0 +1,90 @@
|
||||||
+package com.kiocg;
|
+package com.kiocg;
|
||||||
+
|
+
|
||||||
+import java.util.Arrays;
|
+import java.util.Arrays;
|
||||||
@@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..99d6d4e02362fb8a1c82ce288a15800e
|
|||||||
+ // 用于每个具体统计的计算
|
+ // 用于每个具体统计的计算
|
||||||
+ private long nanos;
|
+ private long nanos;
|
||||||
+ // 当前统计是否进行中
|
+ // 当前统计是否进行中
|
||||||
+ private boolean started = false;
|
+ private volatile boolean started = false;
|
||||||
+
|
+
|
||||||
+ /**
|
+ /**
|
||||||
+ * 更新区间下标
|
+ * 更新区间下标
|
||||||
@@ -49,6 +49,10 @@ index 0000000000000000000000000000000000000000..99d6d4e02362fb8a1c82ce288a15800e
|
|||||||
+ times[this.index] = 0L;
|
+ times[this.index] = 0L;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ public boolean isStarted(){
|
||||||
|
+ return this.started;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ /**
|
+ /**
|
||||||
+ * 结束当前区间的统计
|
+ * 结束当前区间的统计
|
||||||
+ * 将统计值更新入热度总值
|
+ * 将统计值更新入热度总值
|
||||||
@@ -97,7 +101,7 @@ index 0000000000000000000000000000000000000000..99d6d4e02362fb8a1c82ce288a15800e
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index f03f01e6a3a0d0c1e99dde1d102178d57f9c342b..94cf62a2bdc9a2cca09f083311de3ec72b0dd0e8 100644
|
index f03f01e6a3a0d0c1e99dde1d102178d57f9c342b..1be341252cd0db3b5166eb04f7334b3bb3c814af 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1654,6 +1654,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1654,6 +1654,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
@@ -118,7 +122,7 @@ index f03f01e6a3a0d0c1e99dde1d102178d57f9c342b..94cf62a2bdc9a2cca09f083311de3ec7
|
|||||||
// Folia - region threading
|
// Folia - region threading
|
||||||
if (region == null) this.tickRateManager.tick(); // Folia - region threading
|
if (region == null) this.tickRateManager.tick(); // Folia - region threading
|
||||||
this.tickChildren(shouldKeepTicking, region); // Folia - region threading
|
this.tickChildren(shouldKeepTicking, region); // Folia - region threading
|
||||||
@@ -1663,6 +1674,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1663,6 +1674,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
}
|
}
|
||||||
|
|
||||||
// Folia - region threading
|
// Folia - region threading
|
||||||
@@ -128,6 +132,10 @@ index f03f01e6a3a0d0c1e99dde1d102178d57f9c342b..94cf62a2bdc9a2cca09f083311de3ec7
|
|||||||
+ while (chunkIterator.hasNext()){
|
+ while (chunkIterator.hasNext()){
|
||||||
+ final net.minecraft.world.level.chunk.LevelChunk targetChunk = chunkIterator.next();
|
+ final net.minecraft.world.level.chunk.LevelChunk targetChunk = chunkIterator.next();
|
||||||
+
|
+
|
||||||
|
+ if (!targetChunk.getChunkHot().isStarted()){
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ targetChunk.getChunkHot().stop();
|
+ targetChunk.getChunkHot().stop();
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
|||||||
Reference in New Issue
Block a user