From 965636d583a91c3420ec69b81c47b5b961eeb7a7 Mon Sep 17 00:00:00 2001 From: makamys Date: Thu, 30 Jun 2022 11:46:32 +0200 Subject: Fix meshes not disappearing properly when emptied of blocks --- .../neodymium/mixin/MixinWorldRenderer.java | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java') diff --git a/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java b/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java index d744409..32b27a9 100644 --- a/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java +++ b/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java @@ -36,8 +36,18 @@ abstract class MixinWorldRenderer implements IWorldRenderer { private List nd$chunkMeshes; - @Inject(method = {"updateRenderer", "updateRendererSort"}, at = @At(value = "HEAD")) + @Inject(method = {"updateRenderer"}, at = @At(value = "HEAD")) private void preUpdateRenderer(CallbackInfo ci) { + preUpdateRenderer(false); + } + + @Inject(method = {"updateRendererSort"}, at = @At(value = "HEAD")) + private void preUpdateRendererSort(CallbackInfo ci) { + preUpdateRenderer(true); + } + + @Unique + private void preUpdateRenderer(boolean sort) { saveDrawnStatus(); if(Neodymium.isActive()) { @@ -49,13 +59,23 @@ abstract class MixinWorldRenderer implements IWorldRenderer { } } - @Inject(method = {"updateRenderer", "updateRendererSort"}, at = @At(value = "RETURN")) + @Inject(method = {"updateRenderer"}, at = @At(value = "RETURN")) private void postUpdateRenderer(CallbackInfo ci) { + postUpdateRenderer(false); + } + + @Inject(method = {"updateRendererSort"}, at = @At(value = "RETURN")) + private void postUpdateRendererSort(CallbackInfo ci) { + postUpdateRenderer(true); + } + + @Unique + private void postUpdateRenderer(boolean sort) { notifyIfDrawnStatusChanged(); if(Neodymium.isActive()) { if(nd$chunkMeshes != null) { - Neodymium.renderer.onWorldRendererPost(WorldRenderer.class.cast(this)); + Neodymium.renderer.onWorldRendererPost(WorldRenderer.class.cast(this), sort); Collections.fill(nd$chunkMeshes, null); } } -- cgit