001/** 002 * This software is provided under the terms of the Minecraft Forge Public 003 * License v1.0. 004 */ 005 006package net.minecraftforge.client; 007 008import org.lwjgl.opengl.Display; 009 010import net.minecraft.block.Block; 011import net.minecraft.entity.Entity; 012import net.minecraft.item.Item; 013import net.minecraft.item.ItemStack; 014import net.minecraft.client.renderer.RenderBlocks; 015import net.minecraft.world.World; 016import net.minecraftforge.client.IItemRenderer.ItemRenderType; 017import net.minecraftforge.common.MinecraftForge; 018 019public class MinecraftForgeClient 020{ 021 /** 022 * NO-OP now. Not needed with new texturing system in MC 1.5 023 */ 024 @Deprecated // without replacement 025 public static void preloadTexture(String texture) 026 { 027// ForgeHooksClient.engine().getTexture(texture); 028 } 029 030 private static IItemRenderer[] customItemRenderers = new IItemRenderer[Item.itemsList.length]; 031 032 /** 033 * Register a custom renderer for a specific item. This can be used to 034 * render the item in-world as an EntityItem, when the item is equipped, or 035 * when the item is in an inventory slot. 036 * @param itemID The item ID (shifted index) to handle rendering. 037 * @param renderer The IItemRenderer interface that handles rendering for 038 * this item. 039 */ 040 public static void registerItemRenderer(int itemID, IItemRenderer renderer) 041 { 042 customItemRenderers[itemID] = renderer; 043 } 044 045 public static IItemRenderer getItemRenderer(ItemStack item, ItemRenderType type) 046 { 047 IItemRenderer renderer = customItemRenderers[item.itemID]; 048 if (renderer != null && renderer.handleRenderType(item, type)) 049 { 050 return customItemRenderers[item.itemID]; 051 } 052 return null; 053 } 054 055 public static int getRenderPass() 056 { 057 return ForgeHooksClient.renderPass; 058 } 059}