Skip to content

Commit f5e3793

Browse files
committed
Allow disabling mid-tick chunk tasks
Fixes a theoretical incompatibility with Dimensional Threading (dimthread)
1 parent b9cddb6 commit f5e3793

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/main/java/com/ishland/c2me/common/config/C2MEConfig.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ public VanillaWorldGenOptimizationsConfig(CommentedConfig config) {
138138
public static class GeneralOptimizationsConfig {
139139
public final boolean optimizeAsyncChunkRequest;
140140
public final int chunkStreamVersion;
141+
public final boolean doMidTickChunkTasks;
141142

142143
public GeneralOptimizationsConfig(CommentedConfig config) {
143144
Preconditions.checkNotNull(config, "generalOptimizationsConfig config is not present");
@@ -159,6 +160,17 @@ public GeneralOptimizationsConfig(CommentedConfig config) {
159160
""",
160161
List.of(), -1,
161162
true);
163+
this.doMidTickChunkTasks = ConfigUtils.getValue(configScope, "doMidTickChunkTasks", () -> true,
164+
"""
165+
Whether to enable mid-tick chunk tasks \s
166+
Mid-tick chunk tasks is to execute chunk tasks during server tick loop \s
167+
to speed up chunk loading and generation \s
168+
This helps chunks loading and generating under high MSPT but may raise \s
169+
MSPT when chunks are loading or generating \s
170+
\s
171+
Incompatible with Dimensional Threading (dimthread)
172+
""",
173+
List.of("dimthread"), false, true);
162174
configScope.removeUnusedKeys();
163175
}
164176
}

src/main/java/com/ishland/c2me/mixin/C2MEMixinPlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
5656
return C2MEConfig.asyncSchedulingConfig.enabled;
5757
if (mixinClassName.startsWith("com.ishland.c2me.mixin.threading.lighting."))
5858
return !FabricLoader.getInstance().isModLoaded("lightbench");
59+
if (mixinClassName.startsWith("com.ishland.c2me.mixin.optimization.chunkscheduling.mid_tick_chunk_tasks."))
60+
return C2MEConfig.generalOptimizationsConfig.doMidTickChunkTasks;
5961
return true;
6062
}
6163

0 commit comments

Comments
 (0)