Compare commits
5 Commits
dev-multit
...
doggy-dev/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c4362d0cb | ||
|
|
6183877840 | ||
|
|
f8c45602df | ||
|
|
e2591a635b | ||
|
|
218206b54b |
@@ -26,7 +26,7 @@ This plugin provides the following optimizations:
|
|||||||
- [ ] World tick scheduler
|
- [ ] World tick scheduler
|
||||||
- [x] Smarter statistics-ticking
|
- [x] Smarter statistics-ticking
|
||||||
- [ ] Async Pathfinding
|
- [ ] Async Pathfinding
|
||||||
- [ ] Multithreaded Tracker
|
- [x] Multithreaded Tracker
|
||||||
|
|
||||||
**NOTE: This mod may or may not alter the default behaviors of some mob AI.**
|
**NOTE: This mod may or may not alter the default behaviors of some mob AI.**
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import javax.annotation.Nullable;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.CompletionException;
|
import java.util.concurrent.CompletionException;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
||||||
import java.util.function.BooleanSupplier;
|
import java.util.function.BooleanSupplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
// Nitori Copyright (C) 2024 Gensokyo Reimagined
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
package net.gensokyoreimagined.nitori.core;
|
||||||
|
|
||||||
|
import io.papermc.paper.chunk.system.io.RegionFileIOThread;
|
||||||
|
import org.objectweb.asm.Opcodes;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Coerce;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
|
||||||
|
@Mixin(io.papermc.paper.chunk.system.io.RegionFileIOThread.class)
|
||||||
|
public class MixinRegionFileIOThread {
|
||||||
|
// What if we didn't care about the region file calculation?
|
||||||
|
@Redirect(method = "loadDataAsyncInternal", at = @At(value = "FIELD", target = "Lio/papermc/paper/chunk/system/io/RegionFileIOThread$ImmediateCallbackCompletion;regionFileCalculation:Ljava/lang/Boolean;", opcode = Opcodes.GETFIELD))
|
||||||
|
private Boolean trickSkipCheck(@Coerce Object ignored) {
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// What if we didn't need to set the region file calculation?
|
||||||
|
@Redirect(method = "loadDataAsyncInternal", at = @At(value = "FIELD", target = "Lio/papermc/paper/chunk/system/io/RegionFileIOThread$ImmediateCallbackCompletion;needsRegionFileTest:Z", opcode = Opcodes.GETFIELD))
|
||||||
|
private boolean trickSkipCheck2(@Coerce Object ignored) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// What if we didn't check if the region file exists?
|
||||||
|
@Redirect(method = "loadDataAsyncInternal", at = @At(value = "INVOKE", target = "Lio/papermc/paper/chunk/system/io/RegionFileIOThread;doesRegionFileExist(IIZLio/papermc/paper/chunk/system/io/RegionFileIOThread$ChunkDataController;)Ljava/lang/Boolean;"))
|
||||||
|
private Boolean trickSkipCheck3(int chunkX, int chunkZ, boolean intendingToBlock, RegionFileIOThread.ChunkDataController taskController) {
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
"MixinSpongeSIMD",
|
"MixinSpongeSIMD",
|
||||||
"MixinWorldGenRegion",
|
"MixinWorldGenRegion",
|
||||||
"ChunkMapMixin",
|
"ChunkMapMixin",
|
||||||
"ChunkMapMixin$TrackedEntity"
|
"ChunkMapMixin$TrackedEntity",
|
||||||
|
"MixinRegionFileIOThread"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user