Skip to content

Instantly share code, notes, and snippets.

@Tebreca
Created January 25, 2020 12:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tebreca/28ae1e005f66270427e664f17e10c8b9 to your computer and use it in GitHub Desktop.
Save Tebreca/28ae1e005f66270427e664f17e10c8b9 to your computer and use it in GitHub Desktop.
package com.bteteam.bte.client;
import com.bteteam.bte.blocks.tileentities.TileEntityInfernalForge;
import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.ItemCameraTransforms;
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
import net.minecraft.item.ItemStack;
import org.apache.commons.lang3.tuple.Pair;
import javax.vecmath.Matrix4f;
import java.nio.FloatBuffer;
public class RenderInfernalForge extends TileEntityRenderer<TileEntityInfernalForge> {
@Override
public void render(TileEntityInfernalForge te, double x, double y, double z, float partialTicks, int destroyStage) {
if (!te.getStackHandler().getStackInSlot(0).isEmpty()) {
ItemStack item = te.getStackHandler().getStackInSlot(0);
Minecraft mc = Minecraft.getInstance();
Pair<? extends IBakedModel, Matrix4f> pair = mc.getItemRenderer().getModelWithOverrides(item).getBakedModel().handlePerspective(ItemCameraTransforms.TransformType.GROUND);
if (pair.getRight() != null) {
GlStateManager.multMatrix(toBuffer(pair.getRight()));
}
GlStateManager.pushMatrix();
GlStateManager.translated(x + 0.5, y + 0.6, z + 0.5);
mc.getItemRenderer().renderItem(item, pair.getLeft());
GlStateManager.popMatrix();
}
}
FloatBuffer toBuffer(Matrix4f matrix) {
return FloatBuffer.allocate(16).put(new float[]{
matrix.m00, matrix.m01, matrix.m02, matrix.m03,
matrix.m10, matrix.m11, matrix.m12, matrix.m13,
matrix.m20, matrix.m21, matrix.m22, matrix.m23,
matrix.m30, matrix.m31, matrix.m32, matrix.m33});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment