mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-21 15:59:26 +00:00
42 lines
1.9 KiB
Diff
42 lines
1.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Samsuik <kfian294ma4@gmail.com>
|
|
Date: Fri, 13 Sep 2024 17:22:51 +0100
|
|
Subject: [PATCH] Optimise entity scheduler ticking
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/threadedregions/EntityScheduler.java b/src/main/java/io/papermc/paper/threadedregions/EntityScheduler.java
|
|
index c03608fec96b51e1867f43d8f42e5aefb1520e46..543251fc4973157dbb239729e656a8820fe88654 100644
|
|
--- a/src/main/java/io/papermc/paper/threadedregions/EntityScheduler.java
|
|
+++ b/src/main/java/io/papermc/paper/threadedregions/EntityScheduler.java
|
|
@@ -50,6 +50,22 @@ public final class EntityScheduler {
|
|
this.entity = Validate.notNull(entity);
|
|
}
|
|
|
|
+ // Sakura start - optimise entity scheduler ticking
|
|
+ public boolean hasTask() {
|
|
+ return !this.currentlyExecuting.isEmpty() || !this.oneTimeDelayed.isEmpty();
|
|
+ }
|
|
+
|
|
+ private void newScheduledTask() {
|
|
+ net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> {
|
|
+ Entity handle = this.entity.getHandleRaw();
|
|
+ net.minecraft.server.level.ServerLevel level = (net.minecraft.server.level.ServerLevel) handle.level();
|
|
+ ca.spottedleaf.moonrise.patches.chunk_system.level.entity.server.ServerEntityLookup entityLookup = (ca.spottedleaf.moonrise.patches.chunk_system.level.entity.server.ServerEntityLookup) level.moonrise$getEntityLookup();
|
|
+
|
|
+ entityLookup.entityStartScheduled(handle);
|
|
+ });
|
|
+ }
|
|
+ // Sakura end - optimise entity scheduler ticking
|
|
+
|
|
/**
|
|
* Retires the scheduler, preventing new tasks from being scheduled and invoking the retired callback
|
|
* on all currently scheduled tasks.
|
|
@@ -128,6 +144,7 @@ public final class EntityScheduler {
|
|
return new ArrayList<>();
|
|
}).add(task);
|
|
}
|
|
+ this.newScheduledTask(); // Sakura - optimise entity scheduler ticking
|
|
|
|
return true;
|
|
}
|