mirror of
https://github.com/BX-Team/DivineMC.git
synced 2025-12-21 07:49:18 +00:00
update culling worker
This commit is contained in:
@@ -10,7 +10,7 @@ import net.minecraft.world.entity.player.Player;
|
|||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import org.bxteam.divinemc.config.DivineConfig;
|
import org.bxteam.divinemc.config.DivineConfig;
|
||||||
import org.bxteam.divinemc.spark.ThreadDumperRegistry;
|
import org.bxteam.divinemc.util.NamedAgnosticThreadFactory;
|
||||||
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
@@ -33,19 +33,7 @@ public class CullTask implements Runnable {
|
|||||||
private final Vec3d aabbMin = new Vec3d(0, 0, 0);
|
private final Vec3d aabbMin = new Vec3d(0, 0, 0);
|
||||||
private final Vec3d aabbMax = new Vec3d(0, 0, 0);
|
private final Vec3d aabbMax = new Vec3d(0, 0, 0);
|
||||||
|
|
||||||
private static final Executor backgroundWorker = Executors.newCachedThreadPool(task -> {
|
private static final Executor backgroundWorker = Executors.newFixedThreadPool(DivineConfig.MiscCategory.retThreads, new NamedAgnosticThreadFactory<>("Raytrace Entity Tracker Thread", TickThread::new, DivineConfig.MiscCategory.retThreadsPriority));
|
||||||
final TickThread worker = new TickThread("Raytrace Entity Tracker Thread") {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
task.run();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
worker.setDaemon(true);
|
|
||||||
ThreadDumperRegistry.REGISTRY.add(worker.getName());
|
|
||||||
|
|
||||||
return worker;
|
|
||||||
});
|
|
||||||
|
|
||||||
private final Executor worker;
|
private final Executor worker;
|
||||||
|
|
||||||
|
|||||||
@@ -612,6 +612,8 @@ public class DivineConfig {
|
|||||||
// Raytrace Entity Tracker
|
// Raytrace Entity Tracker
|
||||||
@Experimental("Raytrace Entity Tracker")
|
@Experimental("Raytrace Entity Tracker")
|
||||||
public static boolean retEnabled = false;
|
public static boolean retEnabled = false;
|
||||||
|
public static int retThreads = 2;
|
||||||
|
public static int retThreadsPriority = Thread.NORM_PRIORITY + 2;
|
||||||
public static boolean retSkipMarkerArmorStands = true;
|
public static boolean retSkipMarkerArmorStands = true;
|
||||||
public static int retCheckIntervalMs = 10;
|
public static int retCheckIntervalMs = 10;
|
||||||
public static int retTracingDistance = 48;
|
public static int retTracingDistance = 48;
|
||||||
@@ -702,6 +704,12 @@ public class DivineConfig {
|
|||||||
private static void ret() {
|
private static void ret() {
|
||||||
retEnabled = getBoolean(ConfigCategory.MISC.key("raytrace-entity-tracker.enabled"), retEnabled,
|
retEnabled = getBoolean(ConfigCategory.MISC.key("raytrace-entity-tracker.enabled"), retEnabled,
|
||||||
"Raytrace Entity Tracker uses async ray-tracing to untrack entities players cannot see. Implementation of EntityCulling mod by tr7zw.");
|
"Raytrace Entity Tracker uses async ray-tracing to untrack entities players cannot see. Implementation of EntityCulling mod by tr7zw.");
|
||||||
|
retThreads = getInt(ConfigCategory.MISC.key("raytrace-entity-tracker.threads"), retThreads,
|
||||||
|
"The number of threads to use for raytrace entity tracker.");
|
||||||
|
retThreadsPriority = getInt(ConfigCategory.MISC.key("raytrace-entity-tracker.threads-priority"), retThreadsPriority,
|
||||||
|
"The priority of the threads used for raytrace entity tracker.",
|
||||||
|
"0 - lowest, 10 - highest, 5 - normal");
|
||||||
|
|
||||||
retSkipMarkerArmorStands = getBoolean(ConfigCategory.MISC.key("raytrace-entity-tracker.skip-marker-armor-stands"), retSkipMarkerArmorStands,
|
retSkipMarkerArmorStands = getBoolean(ConfigCategory.MISC.key("raytrace-entity-tracker.skip-marker-armor-stands"), retSkipMarkerArmorStands,
|
||||||
"Whether to skip tracing entities with marker armor stand");
|
"Whether to skip tracing entities with marker armor stand");
|
||||||
retCheckIntervalMs = getInt(ConfigCategory.MISC.key("raytrace-entity-tracker.check-interval-ms"), retCheckIntervalMs,
|
retCheckIntervalMs = getInt(ConfigCategory.MISC.key("raytrace-entity-tracker.check-interval-ms"), retCheckIntervalMs,
|
||||||
|
|||||||
Reference in New Issue
Block a user