Fix hands being visible during 360° rendering

This commit is contained in:
johni0702
2015-08-14 16:20:14 +02:00
parent 28f4356d34
commit cf59d739b5
2 changed files with 7 additions and 25 deletions

View File

@@ -26,18 +26,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(EntityRenderer.class)
public abstract class MixinEntityRenderer implements EntityRendererHandler.IEntityRenderer, EntityRendererHandler.GluPerspective {
private EntityRendererHandler handler;
private SpectatorRenderer spectatorRenderer;
private SpectatorRenderer spectatorRenderer = new SpectatorRenderer();
@Override
public void setHandler(EntityRendererHandler handler) {
this.handler = handler;
if (spectatorRenderer != null) {
spectatorRenderer.cleanup();
spectatorRenderer = null;
}
if (handler != null) {
spectatorRenderer = new SpectatorRenderer();
}
}
@Override
@@ -112,6 +105,7 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti
private void renderSpectatorHand(float partialTicks, int renderPass, CallbackInfo ci) {
if (handler != null) {
if (handler.data instanceof CubicOpenGlFrameCapturer.Data) {
ci.cancel();
return; // No spectator hands during 360° view, we wouldn't even know where to put it
}
Entity currentEntity = ReplayHandler.getCurrentEntity();
@@ -119,6 +113,11 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti
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();
if (!ReplayHandler.isCamera() && currentEntity instanceof EntityPlayer) {
spectatorRenderer.renderSpectatorHand((EntityPlayer) currentEntity, partialTicks, renderPass);
}
}
}