diff options
author | makamys <makamys@outlook.com> | 2021-05-07 10:22:11 +0200 |
---|---|---|
committer | makamys <makamys@outlook.com> | 2021-05-07 14:14:58 +0200 |
commit | 17056d8f4a8e3679d7d77a67c65016eee497b8f4 (patch) | |
tree | 41f7960b135da14f849c97f4cd3a7b9699fcc277 /src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java | |
parent | c233ea31da07957d8872d3859d6e75b99937becd (diff) | |
download | Neodymium-17056d8f4a8e3679d7d77a67c65016eee497b8f4.tar.gz Neodymium-17056d8f4a8e3679d7d77a67c65016eee497b8f4.tar.bz2 Neodymium-17056d8f4a8e3679d7d77a67c65016eee497b8f4.zip |
Refactor MyRenderer to use a singleton instead of being static
This should help with memory leaks and clean up the code a bit
Diffstat (limited to 'src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java')
-rw-r--r-- | src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java b/src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java index abfcc4e..988b478 100644 --- a/src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java +++ b/src/main/java/makamys/lodmod/mixin/MixinWorldRenderer.java @@ -11,6 +11,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import makamys.lodmod.LODMod; import makamys.lodmod.ducks.ITessellator; import makamys.lodmod.ducks.IWorldRenderer; import makamys.lodmod.renderer.ChunkMesh; @@ -55,18 +56,24 @@ abstract class MixinWorldRenderer implements IWorldRenderer { @Inject(method = "updateRenderer", at = @At(value = "HEAD")) private void preUpdateRenderer(CallbackInfo ci) { - chunkMeshes.clear(); + if(LODMod.isActive()) { + chunkMeshes.clear(); + } } @Inject(method = "updateRenderer", at = @At(value = "TAIL")) private void postUpdateRenderer(CallbackInfo ci) { - MyRenderer.onWorldRendererPost(WorldRenderer.class.cast(this)); - chunkMeshes.clear(); + if(LODMod.isActive()) { + LODMod.renderer.onWorldRendererPost(WorldRenderer.class.cast(this)); + chunkMeshes.clear(); + } } @Inject(method = "postRenderBlocks", at = @At(value = "HEAD")) private void prePostRenderBlocks(CallbackInfo ci) { - chunkMeshes.add(((ITessellator)Tessellator.instance).toChunkMesh()); + if(LODMod.isActive()) { + chunkMeshes.add(((ITessellator)Tessellator.instance).toChunkMesh()); + } } @Redirect(method = "postRenderBlocks", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/Tessellator;draw()I")) @@ -107,7 +114,9 @@ abstract class MixinWorldRenderer implements IWorldRenderer { @Inject(method = "setDontDraw", at = @At(value = "HEAD")) private void preSetDontDraw(CallbackInfo ci) { - MyRenderer.onDontDraw(WorldRenderer.class.cast(this)); + if(LODMod.isActive()) { + LODMod.renderer.onDontDraw(WorldRenderer.class.cast(this)); + } } @Override |