From fad89626e5f060df90d2ad8ba29b3ce157f80b8f Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Sat, 27 Feb 2021 19:45:00 +0100 Subject: [PATCH] Move 1.7.10 code from MixinEntityRenderer to Mixin_ForceChunkLoading --- .../render/mixin/MixinEntityRenderer.java | 11 -------- .../resources/mixins.render.replaymod.json | 2 +- .../render/hooks/ForceChunkLoadingHook.java | 6 +++++ .../render/mixin/Mixin_ForceChunkLoading.java | 27 +++++++++++++++++++ 4 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 versions/1.7.10/src/main/java/com/replaymod/render/mixin/Mixin_ForceChunkLoading.java diff --git a/src/main/java/com/replaymod/render/mixin/MixinEntityRenderer.java b/src/main/java/com/replaymod/render/mixin/MixinEntityRenderer.java index a2161e3d..348f86e8 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinEntityRenderer.java +++ b/src/main/java/com/replaymod/render/mixin/MixinEntityRenderer.java @@ -73,17 +73,6 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti return replayModRender_handler; } - //#if MC<=10710 - //$$ @Redirect(method = "renderWorld", at = @At(value = "INVOKE",target = - //$$ "Lnet/minecraft/client/renderer/RenderGlobal;updateRenderers(Lnet/minecraft/entity/EntityLivingBase;Z)Z")) - //$$ private boolean replayModRender_updateAllChunks(RenderGlobal self, EntityLivingBase view, boolean renderAllChunks) { - //$$ if (replayModRender_handler != null) { - //$$ renderAllChunks = true; - //$$ } - //$$ return self.updateRenderers(view, renderAllChunks); - //$$ } - //#endif - @Inject(method = "renderHand", at = @At("HEAD"), cancellable = true) private void replayModRender_renderSpectatorHand( //#if MC>=11500 diff --git a/src/main/resources/mixins.render.replaymod.json b/src/main/resources/mixins.render.replaymod.json index c22eb4f9..72c246e8 100644 --- a/src/main/resources/mixins.render.replaymod.json +++ b/src/main/resources/mixins.render.replaymod.json @@ -8,6 +8,7 @@ "Mixin_ChromaKeyDisableFog", "Mixin_ChromaKeyForceSky", "Mixin_CubicRotation", + "Mixin_ForceChunkLoading", "Mixin_SkipBlockOutlinesDuringRender", //#if MC>=10800 //#if MC>=11500 @@ -16,7 +17,6 @@ //$$ "ChunkRenderDispatcherAccessor", //$$ "MixinChunkRenderWorker", //#endif - "Mixin_ForceChunkLoading", //#endif //#if MC>=11400 "Mixin_PreserveDepthDuringHandRendering", diff --git a/versions/1.7.10/src/main/java/com/replaymod/render/hooks/ForceChunkLoadingHook.java b/versions/1.7.10/src/main/java/com/replaymod/render/hooks/ForceChunkLoadingHook.java index 670c7426..eb4134eb 100644 --- a/versions/1.7.10/src/main/java/com/replaymod/render/hooks/ForceChunkLoadingHook.java +++ b/versions/1.7.10/src/main/java/com/replaymod/render/hooks/ForceChunkLoadingHook.java @@ -3,9 +3,15 @@ package com.replaymod.render.hooks; import net.minecraft.client.renderer.RenderGlobal; public class ForceChunkLoadingHook { + private final RenderGlobal hooked; + public ForceChunkLoadingHook(RenderGlobal renderGlobal) { + this.hooked = renderGlobal; + + IForceChunkLoading.from(renderGlobal).replayModRender_setHook(this); } public void uninstall() { + IForceChunkLoading.from(hooked).replayModRender_setHook(null); } } diff --git a/versions/1.7.10/src/main/java/com/replaymod/render/mixin/Mixin_ForceChunkLoading.java b/versions/1.7.10/src/main/java/com/replaymod/render/mixin/Mixin_ForceChunkLoading.java new file mode 100644 index 00000000..3d319182 --- /dev/null +++ b/versions/1.7.10/src/main/java/com/replaymod/render/mixin/Mixin_ForceChunkLoading.java @@ -0,0 +1,27 @@ +package com.replaymod.render.mixin; + +import com.replaymod.render.hooks.ForceChunkLoadingHook; +import com.replaymod.render.hooks.IForceChunkLoading; +import net.minecraft.client.renderer.RenderGlobal; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +@Mixin(RenderGlobal.class) +public abstract class Mixin_ForceChunkLoading implements IForceChunkLoading { + private ForceChunkLoadingHook replayModRender_hook; + + @Override + public void replayModRender_setHook(ForceChunkLoadingHook hook) { + this.replayModRender_hook = hook; + } + + @ModifyVariable(method = "updateRenderers", at = @At("HEAD"), argsOnly = true) + private boolean replayModRender_updateAllChunks(boolean renderAllChunks) { + if (replayModRender_hook != null) { + renderAllChunks = true; + } + return renderAllChunks; + } +} +