diff --git a/forge/forge_client/src/net/minecraft/src/forge/ICustomItemRenderer.java b/forge/forge_client/src/net/minecraft/src/forge/ICustomItemRenderer.java deleted file mode 100755 index 7f676b861..000000000 --- a/forge/forge_client/src/net/minecraft/src/forge/ICustomItemRenderer.java +++ /dev/null @@ -1,8 +0,0 @@ -package net.minecraft.src.forge; - -import net.minecraft.src.RenderBlocks; - -public interface ICustomItemRenderer -{ - public void renderInventory(RenderBlocks render, int itemID, int metadata); -} diff --git a/forge/forge_client/src/net/minecraft/src/forge/IEntityItemRenderer.java b/forge/forge_client/src/net/minecraft/src/forge/IEntityItemRenderer.java new file mode 100644 index 000000000..e517b4a65 --- /dev/null +++ b/forge/forge_client/src/net/minecraft/src/forge/IEntityItemRenderer.java @@ -0,0 +1,8 @@ +package net.minecraft.src.forge; + +import net.minecraft.src.RenderBlocks; + +public interface IEntityItemRenderer +{ + public void renderEntityItem(RenderBlocks render, int itemID, int metadata); +} diff --git a/forge/forge_client/src/net/minecraft/src/forge/IEquippedItemRenderer.java b/forge/forge_client/src/net/minecraft/src/forge/IEquippedItemRenderer.java new file mode 100644 index 000000000..d8e8d3fca --- /dev/null +++ b/forge/forge_client/src/net/minecraft/src/forge/IEquippedItemRenderer.java @@ -0,0 +1,8 @@ +package net.minecraft.src.forge; + +import net.minecraft.src.RenderBlocks; + +public interface IEquippedItemRenderer +{ + public void renderEquippedItem(RenderBlocks render, int itemID, int metadata); +} diff --git a/forge/forge_client/src/net/minecraft/src/forge/IInventoryItemRenderer.java b/forge/forge_client/src/net/minecraft/src/forge/IInventoryItemRenderer.java new file mode 100644 index 000000000..7a82b236f --- /dev/null +++ b/forge/forge_client/src/net/minecraft/src/forge/IInventoryItemRenderer.java @@ -0,0 +1,8 @@ +package net.minecraft.src.forge; + +import net.minecraft.src.RenderBlocks; + +public interface IInventoryItemRenderer +{ + public void renderInventoryItem(RenderBlocks render, int itemID, int metadata); +} diff --git a/forge/forge_client/src/net/minecraft/src/forge/MinecraftForgeClient.java b/forge/forge_client/src/net/minecraft/src/forge/MinecraftForgeClient.java index 0eeff4c4a..6f4d70be8 100755 --- a/forge/forge_client/src/net/minecraft/src/forge/MinecraftForgeClient.java +++ b/forge/forge_client/src/net/minecraft/src/forge/MinecraftForgeClient.java @@ -84,16 +84,67 @@ public class MinecraftForgeClient return ForgeHooksClient.renderPass; } - private static ICustomItemRenderer[] customItemRenderers = new ICustomItemRenderer[Item.itemsList.length]; + private static IEntityItemRenderer[] customEntityItemRenderers = new IEntityItemRenderer[Item.itemsList.length]; + private static boolean[] applyEntityItemRotation = new boolean[Item.itemsList.length]; - public static void registerCustomItemRenderer(int itemID, ICustomItemRenderer renderer) + /** Register a custom renderer for an item when it is dropped or thrown on the ground. + */ + public static void registerEntityItemRenderer(int itemID, IEntityItemRenderer renderer, boolean applyRotationEffect) { - customItemRenderers[itemID] = renderer; + customEntityItemRenderers[itemID] = renderer; + applyEntityItemRotation[itemID] = applyRotationEffect; } - public static ICustomItemRenderer getCustomItemRenderer (int itemID) + public static IEntityItemRenderer getEntityItemRenderer(int itemID) { - return customItemRenderers[itemID]; + return customEntityItemRenderers[itemID]; + } + + public boolean applyEntityItemRotationEffect(int itemID) + { + return applyEntityItemRotation[itemID]; + } + + private static IEquippedItemRenderer[] customEquippedItemRenderers = new IEquippedItemRenderer[Item.itemsList.length]; + private static boolean[] renderEquippedAsBlock = new boolean[Item.itemsList.length]; + + /** Register a custom renderer for an item that is currently held in-hand. + */ + public static void registerEquippedItemRenderer(int itemID, IEquippedItemRenderer renderer, boolean renderAsBlock) + { + customEquippedItemRenderers[itemID] = renderer; + renderEquippedAsBlock[itemID] = renderAsBlock; + } + + public static IEquippedItemRenderer getEquippedItemRenderer(int itemID) + { + return customEquippedItemRenderers[itemID]; + } + + public static boolean renderEquippedItemAsBlock(int itemID) + { + return renderEquippedAsBlock[itemID]; + } + + private static IInventoryItemRenderer[] customInventoryItemRenderers = new IInventoryItemRenderer[Item.itemsList.length]; + private static boolean[] render3dInventoryItem = new boolean[Item.itemsList.length]; + + /** Register a custom renderer for an item being displayed in an inventory slot. + */ + public static void registerInventoryItemRenderer(int itemID, IInventoryItemRenderer renderer, boolean renderIn3d) + { + customInventoryItemRenderers[itemID] = renderer; + render3dInventoryItem[itemID] = renderIn3d; + } + + public static IInventoryItemRenderer getInventoryItemRenderer(int itemID) + { + return customInventoryItemRenderers[itemID]; + } + + public static boolean renderInventoryItemIn3d(int itemID) + { + return render3dInventoryItem[itemID]; } private static boolean hasInit = false;