IvTextureCreatorMC.java 文件源码

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

项目:IvToolkit 作者:
public static BufferedImage getImage(IResourceManager resourceManager, ResourceLocation location, Logger logger) throws IOException
{
    ITextureObject textureObject = Minecraft.getMinecraft().getTextureManager().getTexture(location);

    if (textureObject instanceof ThreadDownloadImageData)
    {
        return ReflectionHelper.getPrivateValue(ThreadDownloadImageData.class, (ThreadDownloadImageData) textureObject, "bufferedImage", "field_110560_d");
    }
    else if (textureObject instanceof LayeredTexture)
    {
        BufferedImage bufferedimage = null;

        for (Object layeredTextureNameObj : ((LayeredTexture) textureObject).layeredTextureNames)
        {
            String layeredTextureName = (String) layeredTextureNameObj;

            if (layeredTextureName != null)
            {
                try (InputStream inputstream = resourceManager.getResource(new ResourceLocation(layeredTextureName)).getInputStream())
                {
                    BufferedImage bufferImageLayer = ImageIO.read(inputstream);

                    if (bufferedimage == null)
                    {
                        bufferedimage = new BufferedImage(bufferImageLayer.getWidth(), bufferImageLayer.getHeight(), 2);
                    }

                    bufferedimage.getGraphics().drawImage(bufferImageLayer, 0, 0, null);
                }
            }
        }

        return bufferedimage;
    }
    else if (textureObject instanceof PreBufferedTexture)
    {
        return ((PreBufferedTexture) textureObject).getBufferedImage();
    }
    else
    {
        IResource iresource = resourceManager.getResource(location);

        try (InputStream inputstream = iresource.getInputStream())
        {
            return ImageIO.read(inputstream);
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号