Move 1.7.10 code from MixinEntityRenderer to Mixin_ForceChunkLoading

This commit is contained in:
Jonas Herzig
2021-02-27 19:45:00 +01:00
parent e7a1fafdf9
commit fad89626e5
4 changed files with 34 additions and 12 deletions

View File

@@ -73,17 +73,6 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti
return replayModRender_handler; 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) @Inject(method = "renderHand", at = @At("HEAD"), cancellable = true)
private void replayModRender_renderSpectatorHand( private void replayModRender_renderSpectatorHand(
//#if MC>=11500 //#if MC>=11500

View File

@@ -8,6 +8,7 @@
"Mixin_ChromaKeyDisableFog", "Mixin_ChromaKeyDisableFog",
"Mixin_ChromaKeyForceSky", "Mixin_ChromaKeyForceSky",
"Mixin_CubicRotation", "Mixin_CubicRotation",
"Mixin_ForceChunkLoading",
"Mixin_SkipBlockOutlinesDuringRender", "Mixin_SkipBlockOutlinesDuringRender",
//#if MC>=10800 //#if MC>=10800
//#if MC>=11500 //#if MC>=11500
@@ -16,7 +17,6 @@
//$$ "ChunkRenderDispatcherAccessor", //$$ "ChunkRenderDispatcherAccessor",
//$$ "MixinChunkRenderWorker", //$$ "MixinChunkRenderWorker",
//#endif //#endif
"Mixin_ForceChunkLoading",
//#endif //#endif
//#if MC>=11400 //#if MC>=11400
"Mixin_PreserveDepthDuringHandRendering", "Mixin_PreserveDepthDuringHandRendering",

View File

@@ -3,9 +3,15 @@ package com.replaymod.render.hooks;
import net.minecraft.client.renderer.RenderGlobal; import net.minecraft.client.renderer.RenderGlobal;
public class ForceChunkLoadingHook { public class ForceChunkLoadingHook {
private final RenderGlobal hooked;
public ForceChunkLoadingHook(RenderGlobal renderGlobal) { public ForceChunkLoadingHook(RenderGlobal renderGlobal) {
this.hooked = renderGlobal;
IForceChunkLoading.from(renderGlobal).replayModRender_setHook(this);
} }
public void uninstall() { public void uninstall() {
IForceChunkLoading.from(hooked).replayModRender_setHook(null);
} }
} }

View File

@@ -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;
}
}