Files
ReplayModCinematic/src/main/java/eu/crushedpixel/replaymod/video/EntityRendererHandler.java
johni0702 78e4c36d54 Replace no name tag CT with mixin magic
Fix nametags of sneaking players being displayed even though nametags are disabled
2015-08-05 17:09:54 +02:00

83 lines
2.5 KiB
Java

package eu.crushedpixel.replaymod.video;
import eu.crushedpixel.replaymod.settings.RenderOptions;
import eu.crushedpixel.replaymod.video.capturer.CaptureData;
import eu.crushedpixel.replaymod.video.capturer.WorldRenderer;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.culling.ClippingHelper;
import org.lwjgl.util.ReadableDimension;
import java.io.IOException;
import static net.minecraft.client.renderer.GlStateManager.*;
public class EntityRendererHandler implements WorldRenderer {
public final Minecraft mc = Minecraft.getMinecraft();
@Getter
protected final RenderOptions options;
public CaptureData data;
public EntityRendererHandler(RenderOptions options) {
this.options = options;
((IEntityRenderer) mc.entityRenderer).setHandler(this);
}
public void withDisplaySize(int displayWidth, int displayHeight, Runnable runnable) {
final int prevWidth = mc.displayWidth;
final int prevHeight = mc.displayHeight;
mc.displayWidth = displayWidth;
mc.displayHeight = displayHeight;
runnable.run();
mc.displayWidth = prevWidth;
mc.displayHeight = prevHeight;
}
@Override
public void renderWorld(ReadableDimension displaySize, final float partialTicks, CaptureData data) {
this.data = data;
withDisplaySize(displaySize.getWidth(), displaySize.getHeight(), new Runnable() {
@Override
public void run() {
renderWorld(partialTicks, 0);
}
});
}
public void renderWorld(float partialTicks, long finishTimeNano) {
mc.entityRenderer.updateLightmap(partialTicks);
enableDepth();
enableAlpha();
alphaFunc(516, 0.5F);
mc.entityRenderer.renderWorldPass(2, partialTicks, finishTimeNano);
}
@Override
public void close() throws IOException {
((IEntityRenderer) mc.entityRenderer).setHandler(null);
}
public static final class NoCullingClippingHelper extends ClippingHelper {
@Override
public boolean isBoxInFrustum(double p_78553_1_, double p_78553_3_, double p_78553_5_, double p_78553_7_, double p_78553_9_, double p_78553_11_) {
return true;
}
}
public interface GluPerspective {
void gluPerspective(float fovY, float aspect, float zNear, float zFar);
}
public interface IEntityRenderer {
void setHandler(EntityRendererHandler handler);
EntityRendererHandler getHandler();
}
}