From aea8d637ea3e14255fdd011ef1ae38b4b7066b9e Mon Sep 17 00:00:00 2001 From: makamys Date: Sun, 14 Aug 2022 05:35:32 +0200 Subject: Disable vanilla chunk mesh construction Improves chunk update performance --- .../java/makamys/neodymium/mixin/MixinTessellator.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/main/java/makamys/neodymium/mixin') diff --git a/src/main/java/makamys/neodymium/mixin/MixinTessellator.java b/src/main/java/makamys/neodymium/mixin/MixinTessellator.java index 15f71da..cdd4ffe 100644 --- a/src/main/java/makamys/neodymium/mixin/MixinTessellator.java +++ b/src/main/java/makamys/neodymium/mixin/MixinTessellator.java @@ -1,10 +1,12 @@ package makamys.neodymium.mixin; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import makamys.neodymium.config.Config; import makamys.neodymium.ducks.ITessellator; import makamys.neodymium.renderer.ChunkMesh; import net.minecraft.client.renderer.Tessellator; @@ -14,10 +16,20 @@ abstract class MixinTessellator implements ITessellator { private boolean nd$captureMeshes; - @Inject(method = "draw", at = @At(value = "HEAD")) + @Shadow protected abstract void reset(); + + @Shadow private boolean isDrawing; + + @Inject(method = "draw", at = @At(value = "HEAD"), cancellable = true) private void preDraw(CallbackInfoReturnable cir) { if(nd$captureMeshes) { ChunkMesh.preTessellatorDraw((Tessellator)(Object)this); + + if(Config.enabled && !Config.enableVanillaChunkMeshes) { + isDrawing = false; + reset(); + cir.setReturnValue(0); + } } } -- cgit