The camera entity is now thePlayer

This commit is contained in:
johni0702
2015-08-17 18:32:36 +02:00
parent dcd4cbdfaa
commit d687748629
8 changed files with 95 additions and 118 deletions

View File

@@ -1,18 +0,0 @@
package eu.crushedpixel.replaymod.mixin;
import eu.crushedpixel.replaymod.replay.ReplayHandler;
import net.minecraft.client.entity.EntityPlayerSP;
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.CallbackInfo;
@Mixin(EntityPlayerSP.class)
public abstract class MixinEntityPlayerSP {
@Inject(method = "onLivingUpdate", at = @At("HEAD"), cancellable = true)
public void isInReplay(CallbackInfo ci) {
if (ReplayHandler.isInReplay()) {
ci.cancel();
}
}
}

View File

@@ -108,13 +108,13 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti
ci.cancel();
return; // No spectator hands during 360° view, we wouldn't even know where to put it
}
Entity currentEntity = ReplayHandler.getCurrentEntity();
Entity currentEntity = Minecraft.getMinecraft().getRenderViewEntity();
if (!ReplayHandler.isCamera() && currentEntity instanceof EntityPlayer) {
renderPass = handler.data == StereoscopicOpenGlFrameCapturer.Data.LEFT_EYE ? 1 : 0;
spectatorRenderer.renderSpectatorHand((EntityPlayer) currentEntity, partialTicks, renderPass);
}
} else if (ReplayHandler.isInReplay() && !ReplayHandler.isCamera()) {
Entity currentEntity = ReplayHandler.getCurrentEntity();
Entity currentEntity = Minecraft.getMinecraft().getRenderViewEntity();
if (!ReplayHandler.isCamera() && currentEntity instanceof EntityPlayer) {
spectatorRenderer.renderSpectatorHand((EntityPlayer) currentEntity, partialTicks, renderPass);
}

View File

@@ -0,0 +1,33 @@
package eu.crushedpixel.replaymod.mixin;
import eu.crushedpixel.replaymod.entities.CameraEntity;
import eu.crushedpixel.replaymod.replay.ReplayHandler;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.multiplayer.PlayerControllerMP;
import net.minecraft.client.network.NetHandlerPlayClient;
import net.minecraft.stats.StatFileWriter;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(PlayerControllerMP.class)
public abstract class MixinPlayerControllerMP {
@Shadow
private Minecraft mc;
@Shadow
private NetHandlerPlayClient netClientHandler;
@Inject(method = "func_178892_a", at=@At("HEAD"), cancellable = true)
public void createReplayCamera(World worldIn, StatFileWriter statFileWriter, CallbackInfoReturnable<EntityPlayerSP> ci) {
if (ReplayHandler.isInReplay()) {
ci.setReturnValue(new CameraEntity(mc, worldIn, netClientHandler, statFileWriter));
ci.cancel();
}
}
}