Switch core to 1.14 (generated via ./gradlew :1.14:setCoreVersion)
This commit is contained in:
@@ -6,7 +6,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
//#if MC<11400
|
||||
import com.replaymod.compat.oranges17animations.HideInvisibleEntities;
|
||||
//$$ import com.replaymod.compat.oranges17animations.HideInvisibleEntities;
|
||||
//#endif
|
||||
|
||||
//#if MC<11300
|
||||
@@ -27,7 +27,7 @@ public class ReplayModCompat implements Module {
|
||||
//#endif
|
||||
new DisableFastRender().register();
|
||||
//#if MC<11400
|
||||
new HideInvisibleEntities().register();
|
||||
//$$ new HideInvisibleEntities().register();
|
||||
//#endif
|
||||
//#if MC<11300
|
||||
//$$ DisableBetterSprinting.register();
|
||||
|
||||
@@ -3,11 +3,11 @@ package com.replaymod.compat.optifine;
|
||||
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||
import com.replaymod.core.versions.MCVer;
|
||||
import com.replaymod.render.events.ReplayRenderCallback;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
|
||||
public class DisableFastRender extends EventRegistrations {
|
||||
|
||||
private final Minecraft mc = Minecraft.getInstance();
|
||||
private final MinecraftClient mc = MinecraftClient.getInstance();
|
||||
|
||||
private boolean wasFastRender = false;
|
||||
|
||||
@@ -16,8 +16,8 @@ public class DisableFastRender extends EventRegistrations {
|
||||
if (!MCVer.hasOptifine()) return;
|
||||
|
||||
try {
|
||||
wasFastRender = (boolean) OptifineReflection.gameSettings_ofFastRender.get(mc.gameSettings);
|
||||
OptifineReflection.gameSettings_ofFastRender.set(mc.gameSettings, false);
|
||||
wasFastRender = (boolean) OptifineReflection.gameSettings_ofFastRender.get(mc.options);
|
||||
OptifineReflection.gameSettings_ofFastRender.set(mc.options, false);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -28,7 +28,7 @@ public class DisableFastRender extends EventRegistrations {
|
||||
if (!MCVer.hasOptifine()) return;
|
||||
|
||||
try {
|
||||
OptifineReflection.gameSettings_ofFastRender.set(mc.gameSettings, wasFastRender);
|
||||
OptifineReflection.gameSettings_ofFastRender.set(mc.options, wasFastRender);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.replaymod.compat.optifine;
|
||||
|
||||
import net.minecraft.client.GameSettings;
|
||||
import net.minecraft.client.options.GameOptions;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@@ -15,7 +15,7 @@ public class OptifineReflection {
|
||||
// this throws an ignored ClassNotFoundException if Optifine isn't installed
|
||||
Class.forName("Config");
|
||||
|
||||
gameSettings_ofFastRender = GameSettings.class.getDeclaredField("ofFastRender");
|
||||
gameSettings_ofFastRender = GameOptions.class.getDeclaredField("ofFastRender");
|
||||
gameSettings_ofFastRender.setAccessible(true);
|
||||
} catch (ClassNotFoundException ignore) {
|
||||
// no optifine installed
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
//#if MC<11400
|
||||
package com.replaymod.compat.oranges17animations;
|
||||
|
||||
import com.replaymod.replay.camera.CameraEntity;
|
||||
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.client.event.RenderLivingEvent;
|
||||
import net.minecraftforge.eventbus.api.EventPriority;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
|
||||
import static com.replaymod.core.versions.MCVer.*;
|
||||
|
||||
/**
|
||||
* Orange seems to have copied vast parts of the RendererLivingEntity into their ArmorAnimation class which cancels the RenderLivingEvent.Pre and calls its own code instead.
|
||||
* This breaks our mixin which assures that, even though the camera is in spectator mode, it cannot see invisible entities.
|
||||
*
|
||||
* To fix this issue, we simply cancel the RenderLivingEvent.Pre before it gets to ArmorAnimation if the entity is invisible.
|
||||
*/
|
||||
public class HideInvisibleEntities extends EventRegistrations {
|
||||
private final Minecraft mc = Minecraft.getInstance();
|
||||
private final boolean modLoaded = isModLoaded("animations");
|
||||
|
||||
@SubscribeEvent(priority = EventPriority.HIGH)
|
||||
public void preRenderLiving(RenderLivingEvent.Pre event) {
|
||||
if (modLoaded) {
|
||||
if (mc.player instanceof CameraEntity && getEntity(event).isInvisible()) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//$$ package com.replaymod.compat.oranges17animations;
|
||||
//$$
|
||||
//$$ import com.replaymod.replay.camera.CameraEntity;
|
||||
//$$ import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||
//$$ import net.minecraft.client.Minecraft;
|
||||
//$$ import net.minecraftforge.client.event.RenderLivingEvent;
|
||||
//$$ import net.minecraftforge.eventbus.api.EventPriority;
|
||||
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
//$$
|
||||
//$$ import static com.replaymod.core.versions.MCVer.*;
|
||||
//$$
|
||||
//$$ /**
|
||||
//$$ * Orange seems to have copied vast parts of the RendererLivingEntity into their ArmorAnimation class which cancels the RenderLivingEvent.Pre and calls its own code instead.
|
||||
//$$ * This breaks our mixin which assures that, even though the camera is in spectator mode, it cannot see invisible entities.
|
||||
//$$ *
|
||||
//$$ * To fix this issue, we simply cancel the RenderLivingEvent.Pre before it gets to ArmorAnimation if the entity is invisible.
|
||||
//$$ */
|
||||
//$$ public class HideInvisibleEntities extends EventRegistrations {
|
||||
//$$ private final Minecraft mc = Minecraft.getInstance();
|
||||
//$$ private final boolean modLoaded = isModLoaded("animations");
|
||||
//$$
|
||||
//$$ @SubscribeEvent(priority = EventPriority.HIGH)
|
||||
//$$ public void preRenderLiving(RenderLivingEvent.Pre event) {
|
||||
//$$ if (modLoaded) {
|
||||
//$$ if (mc.player instanceof CameraEntity && getEntity(event).isInvisible()) {
|
||||
//$$ event.setCanceled(true);
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$ }
|
||||
//$$ }
|
||||
//#endif
|
||||
|
||||
@@ -3,22 +3,22 @@ package com.replaymod.compat.shaders;
|
||||
|
||||
import com.replaymod.render.hooks.EntityRendererHandler;
|
||||
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import static com.replaymod.core.versions.MCVer.getRenderPartialTicks;
|
||||
|
||||
//#if MC>=11400
|
||||
//$$ import com.replaymod.core.events.PreRenderCallback;
|
||||
import com.replaymod.core.events.PreRenderCallback;
|
||||
//#else
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
//$$ import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
//#endif
|
||||
|
||||
public class ShaderBeginRender extends EventRegistrations {
|
||||
|
||||
private final Minecraft mc = Minecraft.getInstance();
|
||||
private final MinecraftClient mc = MinecraftClient.getInstance();
|
||||
|
||||
/**
|
||||
* Invokes Shaders#beginRender when rendering a video,
|
||||
@@ -26,19 +26,19 @@ public class ShaderBeginRender extends EventRegistrations {
|
||||
* which we're not calling during rendering.
|
||||
*/
|
||||
//#if MC>=11400
|
||||
//$$ { on(PreRenderCallback.EVENT, this::onRenderTickStart); }
|
||||
//$$ private void onRenderTickStart() {
|
||||
{ on(PreRenderCallback.EVENT, this::onRenderTickStart); }
|
||||
private void onRenderTickStart() {
|
||||
//#else
|
||||
@SubscribeEvent
|
||||
public void onRenderTickStart(TickEvent.RenderTickEvent event) {
|
||||
if (event.phase != TickEvent.Phase.START) return;
|
||||
//$$ @SubscribeEvent
|
||||
//$$ public void onRenderTickStart(TickEvent.RenderTickEvent event) {
|
||||
//$$ if (event.phase != TickEvent.Phase.START) return;
|
||||
//#endif
|
||||
if (ShaderReflection.shaders_beginRender == null) return;
|
||||
if (ShaderReflection.config_isShaders == null) return;
|
||||
|
||||
try {
|
||||
// check if video is being rendered
|
||||
if (((EntityRendererHandler.IEntityRenderer) mc.entityRenderer).replayModRender_getHandler() == null)
|
||||
if (((EntityRendererHandler.IEntityRenderer) mc.gameRenderer).replayModRender_getHandler() == null)
|
||||
return;
|
||||
|
||||
// check if Shaders are enabled
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//#if MC>=10800
|
||||
package com.replaymod.compat.shaders;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -37,7 +37,7 @@ public class ShaderReflection {
|
||||
shaders_isShadowPass = shadersClass.getDeclaredField("isShadowPass");
|
||||
shaders_isShadowPass.setAccessible(true);
|
||||
|
||||
shaders_beginRender = shadersClass.getDeclaredMethod("beginRender", Minecraft.class, float.class, long.class);
|
||||
shaders_beginRender = shadersClass.getDeclaredMethod("beginRender", MinecraftClient.class, float.class, long.class);
|
||||
shaders_beginRender.setAccessible(true);
|
||||
|
||||
renderGlobal_chunksToUpdateForced = Class.forName("net.minecraft.client.renderer.RenderGlobal")
|
||||
|
||||
@@ -4,7 +4,7 @@ package com.replaymod.compat.shaders.mixin;
|
||||
import com.replaymod.compat.shaders.ShaderReflection;
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import com.replaymod.replay.ReplayModReplay;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
@@ -14,10 +14,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
public abstract class MixinShaderEntityRenderer {
|
||||
|
||||
//#if MC>=11400
|
||||
//$$ @Inject(method = "renderCenter", at = @At("HEAD"))
|
||||
@Inject(method = "renderCenter", at = @At("HEAD"))
|
||||
//#else
|
||||
//#if MC>=11300
|
||||
@Inject(method = "updateCameraAndRender(FJ)V", at = @At("HEAD"))
|
||||
//$$ @Inject(method = "updateCameraAndRender(FJ)V", at = @At("HEAD"))
|
||||
//#else
|
||||
//$$ @Inject(method = "renderWorldPass", at = @At("HEAD"))
|
||||
//#endif
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
package com.replaymod.compat.shaders.mixin;
|
||||
|
||||
import com.replaymod.render.hooks.EntityRendererHandler;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.chunk.RenderChunk;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.chunk.ChunkRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(RenderChunk.class)
|
||||
@Mixin(ChunkRenderer.class)
|
||||
public abstract class MixinShaderRenderChunk {
|
||||
|
||||
private final Minecraft mc = Minecraft.getInstance();
|
||||
private final MinecraftClient mc = MinecraftClient.getInstance();
|
||||
|
||||
/**
|
||||
* Changes the RenderChunk#isPlayerUpdate method that Optifine adds
|
||||
@@ -23,7 +23,7 @@ public abstract class MixinShaderRenderChunk {
|
||||
private void replayModCompat_disableIsPlayerUpdate(CallbackInfoReturnable<Boolean> ci) {
|
||||
// TODO: Update to 1.12 once optifine is available
|
||||
// TODO: We're on 1.13 now and haven't gotten any 1.12 complaints, so 1.12 is probably working but 1.13?
|
||||
if (((EntityRendererHandler.IEntityRenderer) mc.entityRenderer).replayModRender_getHandler() == null) return;
|
||||
if (((EntityRendererHandler.IEntityRenderer) mc.gameRenderer).replayModRender_getHandler() == null) return;
|
||||
ci.setReturnValue(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ package com.replaymod.compat.shaders.mixin;
|
||||
|
||||
import com.replaymod.compat.shaders.ShaderReflection;
|
||||
import com.replaymod.render.hooks.EntityRendererHandler;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.WorldRenderer;
|
||||
import net.minecraft.client.renderer.culling.ICamera;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.WorldRenderer;
|
||||
import net.minecraft.client.render.VisibleRegion;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
@@ -13,37 +13,37 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
//#if MC>=11400
|
||||
//$$ import net.minecraft.client.render.Camera;
|
||||
import net.minecraft.client.render.Camera;
|
||||
//#else
|
||||
import net.minecraft.entity.Entity;
|
||||
//$$ import net.minecraft.entity.Entity;
|
||||
//#endif
|
||||
|
||||
@Mixin(WorldRenderer.class)
|
||||
public abstract class MixinShaderRenderGlobal {
|
||||
|
||||
private final Minecraft mc = Minecraft.getInstance();
|
||||
private final MinecraftClient mc = MinecraftClient.getInstance();
|
||||
|
||||
@Shadow
|
||||
public boolean displayListEntitiesDirty;
|
||||
public boolean terrainUpdateNecessary;
|
||||
|
||||
@Inject(method = "setupTerrain", at = @At("HEAD"), cancellable = true)
|
||||
@Inject(method = "setUpTerrain", at = @At("HEAD"), cancellable = true)
|
||||
public void replayModCompat_setupTerrain(
|
||||
//#if MC>=11400
|
||||
//$$ Camera viewEntity,
|
||||
Camera viewEntity,
|
||||
//#else
|
||||
Entity viewEntity,
|
||||
//$$ Entity viewEntity,
|
||||
//#if MC>=11300
|
||||
float partialTicks,
|
||||
//$$ float partialTicks,
|
||||
//#else
|
||||
//$$ double partialTicks,
|
||||
//#endif
|
||||
//#endif
|
||||
ICamera camera,
|
||||
VisibleRegion camera,
|
||||
int frameCount,
|
||||
boolean playerSpectator,
|
||||
CallbackInfo ci
|
||||
) {
|
||||
if (((EntityRendererHandler.IEntityRenderer) mc.entityRenderer).replayModRender_getHandler() == null) return;
|
||||
if (((EntityRendererHandler.IEntityRenderer) mc.gameRenderer).replayModRender_getHandler() == null) return;
|
||||
if (ShaderReflection.shaders_isShadowPass == null) return;
|
||||
|
||||
// when called by the shadow pass, displayListEntitiesDirty can't be set to false, as no chunk updates
|
||||
@@ -51,7 +51,7 @@ public abstract class MixinShaderRenderGlobal {
|
||||
// set it to false manually to exit the loop imposed by MixinRenderGlobal#replayModRender_setupTerrain.
|
||||
try {
|
||||
if ((boolean) ShaderReflection.shaders_isShadowPass.get(null) == true) {
|
||||
this.displayListEntitiesDirty = false;
|
||||
this.terrainUpdateNecessary = false;
|
||||
}
|
||||
} catch (IllegalAccessException ignore) {}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.replaymod.compat.shaders.mixin;
|
||||
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Pseudo;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
@@ -8,10 +8,10 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
//#if MC>=11400
|
||||
//$$ import com.replaymod.core.events.PreRenderHandCallback;
|
||||
import com.replaymod.core.events.PreRenderHandCallback;
|
||||
//#else
|
||||
import com.replaymod.core.versions.MCVer;
|
||||
import net.minecraftforge.client.ForgeHooksClient;
|
||||
//$$ import com.replaymod.core.versions.MCVer;
|
||||
//$$ import net.minecraftforge.client.ForgeHooksClient;
|
||||
//#endif
|
||||
|
||||
@Pseudo
|
||||
@@ -24,10 +24,10 @@ public abstract class MixinShadersRender {
|
||||
@Inject(method = "renderHand0", at = @At("HEAD"), cancellable = true, remap = false)
|
||||
private static void replayModCompat_disableRenderHand0(GameRenderer er, float partialTicks, int renderPass, CallbackInfo ci) {
|
||||
//#if MC>=11400
|
||||
//$$ if (PreRenderHandCallback.EVENT.invoker().preRenderHand()) {
|
||||
if (PreRenderHandCallback.EVENT.invoker().preRenderHand()) {
|
||||
//#else
|
||||
//#if MC>=11300
|
||||
if (ForgeHooksClient.renderFirstPersonHand(MCVer.getMinecraft().renderGlobal, partialTicks)) {
|
||||
//$$ if (ForgeHooksClient.renderFirstPersonHand(MCVer.getMinecraft().renderGlobal, partialTicks)) {
|
||||
//#else
|
||||
//$$ if (ForgeHooksClient.renderFirstPersonHand(MCVer.getMinecraft().renderGlobal, partialTicks, renderPass)) {
|
||||
//#endif
|
||||
|
||||
Reference in New Issue
Block a user