Fix hands always rendering with 1.16 OF shaders (fixes #280)

This commit is contained in:
Jonas Herzig
2020-07-25 19:30:09 +02:00
parent a4b6e92627
commit 8d82953c0b
2 changed files with 26 additions and 3 deletions

View File

@@ -7,6 +7,11 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=11600
//$$ import net.minecraft.client.render.Camera;
//$$ import net.minecraft.client.util.math.MatrixStack;
//#endif
//#if MC>=11400 //#if MC>=11400
import com.replaymod.core.events.PreRenderHandCallback; import com.replaymod.core.events.PreRenderHandCallback;
//#else //#else
@@ -21,8 +26,18 @@ import com.replaymod.core.events.PreRenderHandCallback;
}, remap = false) }, remap = false)
public abstract class MixinShadersRender { public abstract class MixinShadersRender {
@Inject(method = "renderHand0", at = @At("HEAD"), cancellable = true, remap = false) @Inject(method = { "renderHand0", "renderHand1" }, at = @At("HEAD"), cancellable = true, remap = false)
private static void replayModCompat_disableRenderHand0(GameRenderer er, float partialTicks, int renderPass, CallbackInfo ci) { private static void replayModCompat_disableRenderHand0(
GameRenderer er,
//#if MC>=11600
//$$ MatrixStack stack,
//$$ Camera camera,
//#endif
float partialTicks,
//#if MC<11600
int renderPass,
//#endif
CallbackInfo ci) {
//#if MC>=11400 //#if MC>=11400
if (PreRenderHandCallback.EVENT.invoker().preRenderHand()) { if (PreRenderHandCallback.EVENT.invoker().preRenderHand()) {
//#else //#else

View File

@@ -5,6 +5,7 @@ import com.replaymod.render.RenderSettings;
import com.replaymod.render.capturer.CaptureData; import com.replaymod.render.capturer.CaptureData;
import com.replaymod.render.capturer.RenderInfo; import com.replaymod.render.capturer.RenderInfo;
import com.replaymod.render.capturer.WorldRenderer; import com.replaymod.render.capturer.WorldRenderer;
import de.johni0702.minecraft.gui.utils.EventRegistrations;
import lombok.Getter; import lombok.Getter;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
@@ -15,6 +16,7 @@ import net.minecraft.client.util.math.MatrixStack;
//#if MC>=11400 //#if MC>=11400
import com.replaymod.core.events.PostRenderCallback; import com.replaymod.core.events.PostRenderCallback;
import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.events.PreRenderCallback;
import com.replaymod.core.events.PreRenderHandCallback;
//#else //#else
//#if MC>=11400 //#if MC>=11400
//$$ import net.minecraftforge.fml.hooks.BasicEventHooks; //$$ import net.minecraftforge.fml.hooks.BasicEventHooks;
@@ -25,7 +27,7 @@ import com.replaymod.core.events.PreRenderCallback;
import java.io.IOException; import java.io.IOException;
public class EntityRendererHandler implements WorldRenderer { public class EntityRendererHandler extends EventRegistrations implements WorldRenderer {
public final MinecraftClient mc = MCVer.getMinecraft(); public final MinecraftClient mc = MCVer.getMinecraft();
@Getter @Getter
@@ -42,7 +44,12 @@ public class EntityRendererHandler implements WorldRenderer {
this.settings = settings; this.settings = settings;
this.renderInfo = renderInfo; this.renderInfo = renderInfo;
//#if MC>=11400
on(PreRenderHandCallback.EVENT, () -> omnidirectional);
//#endif
((IEntityRenderer) mc.gameRenderer).replayModRender_setHandler(this); ((IEntityRenderer) mc.gameRenderer).replayModRender_setHandler(this);
register();
} }
@Override @Override
@@ -84,6 +91,7 @@ public class EntityRendererHandler implements WorldRenderer {
@Override @Override
public void close() throws IOException { public void close() throws IOException {
((IEntityRenderer) mc.gameRenderer).replayModRender_setHandler(null); ((IEntityRenderer) mc.gameRenderer).replayModRender_setHandler(null);
unregister();
} }
@Override @Override