Switch core to 1.14 (generated via ./gradlew :1.14:setCoreVersion)

This commit is contained in:
Jonas Herzig
2019-05-10 14:09:22 +02:00
parent 7f7d33def8
commit 7cbf7f7c94
183 changed files with 3250 additions and 3250 deletions

View File

@@ -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();

View File

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

View File

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

View File

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

View File

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

View File

@@ -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")

View File

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

View File

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

View File

@@ -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) {}

View File

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