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 handlePerspective(IBakedModel model, ItemCameraTransforms.TransformType cameraTransformType) { return IPerspectiveAwareModel.MapWrapper.handlePerspective(model, TransformUtils.DEFAULT_ITEM.getTransforms(), cameraTransformType); } }