ItemStackUtils.java 文件源码

java
阅读 26 收藏 0 点赞 0 评论 0

项目:Industrial-Foregoing 作者:
@SideOnly(Side.CLIENT)
public static void renderItemIntoGUI(ItemStack stack, int x, int y, int gl) {
    GlStateManager.pushMatrix();
    RenderHelper.enableGUIStandardItemLighting();
    RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
    Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
    Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).setBlurMipmap(false, false);
    GlStateManager.enableRescaleNormal();
    GlStateManager.enableAlpha();
    GlStateManager.alphaFunc(516, 0.1F);
    GlStateManager.enableBlend();
    GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
    GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
    IBakedModel bakedmodel = renderItem.getItemModelWithOverrides(stack, null, null);
    GlStateManager.translate((float) x, (float) y, 100.0F + renderItem.zLevel);
    GlStateManager.translate(8.0F, 8.0F, 0.0F);
    GlStateManager.scale(1.0F, -1.0F, 1.0F);
    GlStateManager.scale(16.0F, 16.0F, 16.0F);
    if (bakedmodel.isGui3d()) {
        GlStateManager.enableLighting();
    } else {
        GlStateManager.disableLighting();
    }
    bakedmodel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(bakedmodel, ItemCameraTransforms.TransformType.GUI, false);
    if (!stack.isEmpty()) {
        GlStateManager.pushMatrix();
        GlStateManager.translate(-0.5F, -0.5F, -0.5F);
        if (bakedmodel.isBuiltInRenderer()) {
            GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
            GlStateManager.enableRescaleNormal();
            TileEntityItemStackRenderer.instance.renderByItem(stack);
        } else {
            Tessellator tessellator = Tessellator.getInstance();
            BufferBuilder vertexbuffer = tessellator.getBuffer();
            vertexbuffer.begin(gl, DefaultVertexFormats.ITEM);
            for (EnumFacing enumfacing : EnumFacing.values()) {
                renderQuads(vertexbuffer, bakedmodel.getQuads(null, enumfacing, 0L), -1, stack);
            }
            renderQuads(vertexbuffer, bakedmodel.getQuads(null, null, 0L), -1, stack);
            tessellator.draw();
        }
        GlStateManager.popMatrix();
    }
    GlStateManager.disableAlpha();
    GlStateManager.disableRescaleNormal();
    GlStateManager.disableLighting();
    GlStateManager.popMatrix();
    Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
    Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).restoreLastBlurMipmap();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号