PrettyPipes/src/main/java/de/ellpeck/prettypipes/entities/PipeFrameRenderer.java

43 lines
2.2 KiB
Java
Raw Normal View History

2020-04-20 03:37:23 +02:00
package de.ellpeck.prettypipes.entities;
import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.renderer.entity.ItemFrameRenderer;
import net.minecraft.entity.item.ItemFrameEntity;
import net.minecraft.util.Direction;
2020-09-22 19:14:07 +02:00
import net.minecraft.util.math.vector.Matrix4f;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Vector3f;
2020-04-20 03:37:23 +02:00
public class PipeFrameRenderer extends ItemFrameRenderer {
public PipeFrameRenderer(EntityRendererManager renderManagerIn) {
super(renderManagerIn, Minecraft.getInstance().getItemRenderer());
}
@Override
public void render(ItemFrameEntity entityIn, float entityYaw, float partialTicks, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int packedLightIn) {
super.render(entityIn, entityYaw, partialTicks, matrixStackIn, bufferIn, packedLightIn);
matrixStackIn.push();
Direction direction = entityIn.getHorizontalFacing();
2020-09-22 19:14:07 +02:00
Vector3d vec3d = this.getRenderOffset(entityIn, partialTicks);
2020-04-20 03:37:23 +02:00
matrixStackIn.translate(-vec3d.getX(), -vec3d.getY(), -vec3d.getZ());
2020-04-20 16:07:44 +02:00
matrixStackIn.translate(direction.getXOffset() * 0.46875, direction.getYOffset() * 0.46875, direction.getZOffset() * 0.46875);
2020-04-20 03:37:23 +02:00
matrixStackIn.rotate(Vector3f.XP.rotationDegrees(entityIn.rotationPitch));
matrixStackIn.rotate(Vector3f.YP.rotationDegrees(180.0F - entityIn.rotationYaw));
FontRenderer font = this.getFontRendererFromRenderManager();
int amount = ((PipeFrameEntity) entityIn).getAmount();
2020-04-20 13:12:26 +02:00
String ammountStrg = amount < 0 ? "?" : String.valueOf(amount);
2020-04-20 03:37:23 +02:00
float x = 0.5F - font.getStringWidth(ammountStrg) / 2F;
2020-09-22 19:14:07 +02:00
Matrix4f matrix4f = matrixStackIn.getLast().getMatrix();
2020-04-20 16:07:44 +02:00
matrixStackIn.translate(0, 0.285F, 0.415F);
2020-04-20 03:37:23 +02:00
matrixStackIn.scale(-0.02F, -0.02F, 0.02F);
font.renderString(ammountStrg, x, 0, 0xFFFFFF, true, matrix4f, bufferIn, false, 0, packedLightIn);
matrixStackIn.pop();
}
}