From 4de933516e1fff40215c21549eb8c17dec935df8 Mon Sep 17 00:00:00 2001 From: johni0702 Date: Sat, 3 Sep 2016 11:56:12 +0200 Subject: [PATCH] Move remaining mixins to replay module --- .../com/replaymod/core/LoadingPlugin.java | 1 - .../replay}/mixin/MixinGuiSpectator.java | 3 ++- .../replay/mixin/MixinRenderArrow.java | 22 +++++++++++++++++++ .../replay}/mixin/MixinRenderManager.java | 2 +- .../replay}/mixin/MixinViewFrustum.java | 10 ++++----- .../replaymod/mixin/MixinMinecraft.java | 17 -------------- .../replaymod/mixin/MixinRenderArrow.java | 19 ---------------- .../resources/mixins.replay.replaymod.json | 6 ++++- src/main/resources/mixins.replaymod.json | 14 ------------ 9 files changed, 35 insertions(+), 59 deletions(-) rename src/main/java/{eu/crushedpixel/replaymod => com/replaymod/replay}/mixin/MixinGuiSpectator.java (88%) create mode 100644 src/main/java/com/replaymod/replay/mixin/MixinRenderArrow.java rename src/main/java/{eu/crushedpixel/replaymod => com/replaymod/replay}/mixin/MixinRenderManager.java (96%) rename src/main/java/{eu/crushedpixel/replaymod => com/replaymod/replay}/mixin/MixinViewFrustum.java (94%) delete mode 100644 src/main/java/eu/crushedpixel/replaymod/mixin/MixinMinecraft.java delete mode 100644 src/main/java/eu/crushedpixel/replaymod/mixin/MixinRenderArrow.java delete mode 100644 src/main/resources/mixins.replaymod.json diff --git a/src/main/java/com/replaymod/core/LoadingPlugin.java b/src/main/java/com/replaymod/core/LoadingPlugin.java index dd08d463..af86c1ee 100755 --- a/src/main/java/com/replaymod/core/LoadingPlugin.java +++ b/src/main/java/com/replaymod/core/LoadingPlugin.java @@ -16,7 +16,6 @@ public class LoadingPlugin implements IFMLLoadingPlugin { public LoadingPlugin() { MixinBootstrap.init(); - MixinEnvironment.getDefaultEnvironment().addConfiguration("mixins.replaymod.json"); MixinEnvironment.getDefaultEnvironment().addConfiguration("mixins.recording.replaymod.json"); MixinEnvironment.getDefaultEnvironment().addConfiguration("mixins.render.replaymod.json"); MixinEnvironment.getDefaultEnvironment().addConfiguration("mixins.replay.replaymod.json"); diff --git a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinGuiSpectator.java b/src/main/java/com/replaymod/replay/mixin/MixinGuiSpectator.java similarity index 88% rename from src/main/java/eu/crushedpixel/replaymod/mixin/MixinGuiSpectator.java rename to src/main/java/com/replaymod/replay/mixin/MixinGuiSpectator.java index 5965ad48..081c702c 100644 --- a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinGuiSpectator.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinGuiSpectator.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.mixin; +package com.replaymod.replay.mixin; import com.replaymod.replay.camera.CameraEntity; import net.minecraft.client.Minecraft; @@ -16,6 +16,7 @@ public abstract class MixinGuiSpectator { @Inject(method = "func_175260_a", at = @At("HEAD"), cancellable = true) public void isInReplay(int i, CallbackInfo ci) { + // Prevent spectator gui from opening while in a replay if (field_175268_g.thePlayer instanceof CameraEntity) { ci.cancel(); } diff --git a/src/main/java/com/replaymod/replay/mixin/MixinRenderArrow.java b/src/main/java/com/replaymod/replay/mixin/MixinRenderArrow.java new file mode 100644 index 00000000..03787d5d --- /dev/null +++ b/src/main/java/com/replaymod/replay/mixin/MixinRenderArrow.java @@ -0,0 +1,22 @@ +package com.replaymod.replay.mixin; + +import com.replaymod.replay.ReplayModReplay; +import net.minecraft.client.renderer.culling.ICamera; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderArrow; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.entity.Entity; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(RenderArrow.class) +public abstract class MixinRenderArrow extends Render { + protected MixinRenderArrow(RenderManager renderManager) { + super(renderManager); + } + + @Override + public boolean shouldRender(Entity entity, ICamera camera, double camX, double camY, double camZ) { + // Force arrows to always render, otherwise they stop rendering when you get close to them + return ReplayModReplay.instance.getReplayHandler() != null || super.shouldRender(entity, camera, camX, camY, camZ); + } +} diff --git a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinRenderManager.java b/src/main/java/com/replaymod/replay/mixin/MixinRenderManager.java similarity index 96% rename from src/main/java/eu/crushedpixel/replaymod/mixin/MixinRenderManager.java rename to src/main/java/com/replaymod/replay/mixin/MixinRenderManager.java index 35a69c17..5c738d72 100644 --- a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinRenderManager.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinRenderManager.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.mixin; +package com.replaymod.replay.mixin; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.entity.RenderManager; diff --git a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinViewFrustum.java b/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java similarity index 94% rename from src/main/java/eu/crushedpixel/replaymod/mixin/MixinViewFrustum.java rename to src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java index 2ffcd735..94e44a58 100644 --- a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinViewFrustum.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java @@ -1,5 +1,6 @@ -package eu.crushedpixel.replaymod.mixin; +package com.replaymod.replay.mixin; +import com.replaymod.replay.ReplayModReplay; import net.minecraft.client.renderer.RenderGlobal; import net.minecraft.client.renderer.ViewFrustum; import net.minecraft.client.renderer.chunk.IRenderChunkFactory; @@ -38,10 +39,9 @@ public abstract class MixinViewFrustum { */ @Inject(method = "updateChunkPositions", at = @At("HEAD"), cancellable = true) public void fixedUpdateChunkPositions(double viewEntityX, double viewEntityZ, CallbackInfo ci) { - // TODO -// if (!ReplayHandler.isInReplay()) { -// return; -// } + if (ReplayModReplay.instance.getReplayHandler() == null) { + return; + } int i = MathHelper.floor_double(viewEntityX) - 8; int j = MathHelper.floor_double(viewEntityZ) - 8; diff --git a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinMinecraft.java b/src/main/java/eu/crushedpixel/replaymod/mixin/MixinMinecraft.java deleted file mode 100644 index 8b0a71ff..00000000 --- a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinMinecraft.java +++ /dev/null @@ -1,17 +0,0 @@ -package eu.crushedpixel.replaymod.mixin; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.SoundHandler; -import net.minecraft.entity.player.EntityPlayer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(Minecraft.class) -public class MixinMinecraft { - @Redirect(method = "runGameLoop", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/audio/SoundHandler;setListener(Lnet/minecraft/entity/player/EntityPlayer;F)V")) - public void setSoundSystemListener(SoundHandler soundHandler, EntityPlayer listener, float renderPartialTicks) { - //TODO might no longer be necessary? -// soundHandler.setListener(ReplayHandler.isInReplay() ? ReplayHandler.getCameraEntity() : listener, renderPartialTicks); - } -} diff --git a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinRenderArrow.java b/src/main/java/eu/crushedpixel/replaymod/mixin/MixinRenderArrow.java deleted file mode 100644 index 3482eeea..00000000 --- a/src/main/java/eu/crushedpixel/replaymod/mixin/MixinRenderArrow.java +++ /dev/null @@ -1,19 +0,0 @@ -package eu.crushedpixel.replaymod.mixin; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.entity.RenderArrow; -import net.minecraft.client.renderer.entity.RenderManager; -import org.spongepowered.asm.mixin.Mixin; - -@Mixin(RenderArrow.class) -public abstract class MixinRenderArrow extends Render { - protected MixinRenderArrow(RenderManager renderManager) { - super(renderManager); - } - - // TODO -// @Override -// public boolean shouldRender(Entity entity, ICamera camera, double camX, double camY, double camZ) { -// return ReplayHandler.isInReplay() || super.shouldRender(entity, camera, camX, camY, camZ); -// } -} diff --git a/src/main/resources/mixins.replay.replaymod.json b/src/main/resources/mixins.replay.replaymod.json index 219d0632..9adbc7f7 100644 --- a/src/main/resources/mixins.replay.replaymod.json +++ b/src/main/resources/mixins.replay.replaymod.json @@ -2,9 +2,13 @@ "required": true, "package": "com.replaymod.replay.mixin", "mixins": [ + "MixinGuiSpectator", "MixinPlayerControllerMP", + "MixinRenderArrow", "MixinRenderItem", - "MixinTileEntityEndPortalRenderer" + "MixinRenderManager", + "MixinTileEntityEndPortalRenderer", + "MixinViewFrustum" ], "server": [], "client": [], diff --git a/src/main/resources/mixins.replaymod.json b/src/main/resources/mixins.replaymod.json deleted file mode 100644 index 2ec008cd..00000000 --- a/src/main/resources/mixins.replaymod.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "required": true, - "package": "eu.crushedpixel.replaymod.mixin", - "mixins": [ - "MixinGuiSpectator", - "MixinMinecraft", - "MixinRenderArrow", - "MixinRenderManager", - "MixinViewFrustum" - ], - "server": [], - "client": [], - "refmap": "mixins.replaymod.refmap.json" -} \ No newline at end of file