Fix hands being visible during 360° rendering
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,8 +20,6 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.storage.MapData;
|
||||
import net.minecraftforge.client.event.RenderHandEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||
@@ -33,7 +31,6 @@ public class SpectatorRenderer {
|
||||
private EntityPlayer currentPlayer;
|
||||
|
||||
public SpectatorRenderer() {
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
FMLCommonHandler.instance().bus().register(this);
|
||||
}
|
||||
|
||||
@@ -99,19 +96,6 @@ public class SpectatorRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void renderHandEvent(RenderHandEvent event) {
|
||||
if(!ReplayHandler.isInReplay() || ReplayHandler.isCamera()) {
|
||||
return;
|
||||
}
|
||||
|
||||
EntityPlayer entityPlayer = getSpectatedPlayer();
|
||||
if(entityPlayer == null) return;
|
||||
|
||||
renderSpectatorHand(entityPlayer, event.partialTicks, event.renderPass);
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void renderItemInFirstPerson(float partialTicks) {
|
||||
EntityPlayer entityPlayer = getSpectatedPlayer();
|
||||
@@ -538,7 +522,6 @@ public class SpectatorRenderer {
|
||||
}
|
||||
|
||||
public void cleanup() {
|
||||
MinecraftForge.EVENT_BUS.unregister(this);
|
||||
FMLCommonHandler.instance().bus().unregister(this);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user