From 2524cf273b9e47db1e2d3c6c2a021402686b5bf5 Mon Sep 17 00:00:00 2001 From: newthead Date: Thu, 15 Mar 2012 21:26:09 -0700 Subject: [PATCH] Added new item render interfaces to Forge client --- .../src/forge/ICustomItemRenderer.java | 8 --- .../src/forge/IEntityItemRenderer.java | 8 +++ .../src/forge/IEquippedItemRenderer.java | 8 +++ .../src/forge/IInventoryItemRenderer.java | 8 +++ .../src/forge/MinecraftForgeClient.java | 61 +++++++++++++++++-- 5 files changed, 80 insertions(+), 13 deletions(-) delete mode 100755 forge/forge_client/src/net/minecraft/src/forge/ICustomItemRenderer.java create mode 100644 forge/forge_client/src/net/minecraft/src/forge/IEntityItemRenderer.java create mode 100644 forge/forge_client/src/net/minecraft/src/forge/IEquippedItemRenderer.java create mode 100644 forge/forge_client/src/net/minecraft/src/forge/IInventoryItemRenderer.java 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;