package com.uadaf.astral.render;
import codechicken.lib.render.CCRenderState;
import codechicken.lib.util.TransformUtils;
import com.google.common.collect.ImmutableList;
import com.uadaf.astral.registry.ItemRegistry;
import keri.ninetaillib.render.registry.IItemRenderingHandler;
import keri.ninetaillib.render.util.VertexUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IPerspectiveAwareModel;
import net.minecraftforge.client.model.ItemLayerModel;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.opengl.GL11;
import javax.vecmath.Matrix4f;
@SideOnly(Side.CLIENT)
public class AstralManipulatorRenderer implements IItemRenderingHandler {
@Override
public void renderItem(CCRenderState renderState, ItemStack stack) {
Tessellator.getInstance().draw();
IBakedModel model = new ItemLayerModel(ImmutableList.of(new ResourceLocation(ItemRegistry.astralManipulator.frame.getIconName()), new ResourceLocation(ItemRegistry.astralManipulator.gem.getIconName())))
.bake(TransformUtils.DEFAULT_ITEM, DefaultVertexFormats.ITEM, input -> Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(input.toString()));
GlStateManager.pushMatrix();
GlStateManager.translate(0.5D, 0.5D, 0.5D);
Minecraft.getMinecraft().getRenderItem().renderItem(stack, model);
GlStateManager.popMatrix();
Tessellator.getInstance().getBuffer().begin(GL11.GL_QUADS, VertexUtils.getFormatWithLightMap(DefaultVertexFormats.ITEM));
}
@Override
public Pair<? extends IBakedModel, Matrix4f> handlePerspective(IBakedModel model, ItemCameraTransforms.TransformType cameraTransformType) {
return IPerspectiveAwareModel.MapWrapper.handlePerspective(model, TransformUtils.DEFAULT_ITEM.getTransforms(), cameraTransformType);
}
}
Comments