137 lines
5.1 KiB
Java
137 lines
5.1 KiB
Java
package net.minecraftforge.client;
|
|
|
|
import net.minecraft.entity.item.EntityItem;
|
|
import net.minecraft.entity.EntityLiving;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.client.renderer.RenderBlocks;
|
|
|
|
public interface IItemRenderer
|
|
{
|
|
public enum ItemRenderType
|
|
{
|
|
/**
|
|
* Called to render an in-world item, e.g. one that has been thrown or
|
|
* dropped. The appropriate OpenGL transformations and scaling have already
|
|
* been applied, so Tessellator location (0,0,0) is the center of the
|
|
* EntityItem.
|
|
*
|
|
* Data parameters:
|
|
* RenderBlocks render - The RenderBlocks instance
|
|
* EntityItem entity - The in-world item to be rendered
|
|
*/
|
|
ENTITY,
|
|
|
|
/**
|
|
* Called to render an item currently held in-hand by a living entity. If
|
|
* rendering as a 3D block, the item will be rotated to a 45-degree angle.
|
|
* To render a 2D texture with some thickness (like default items), see
|
|
* net.minecraft.src.ItemRenderer. In either case, rendering should be done
|
|
* in local coordinates from (0,0,0)-(1,1,1).
|
|
*
|
|
* Data parameters:
|
|
* RenderBlocks render - The RenderBlocks instance
|
|
* EntityLiving entity - The entity holding this item
|
|
*/
|
|
EQUIPPED,
|
|
|
|
/**
|
|
* Called to render an item currently held in-hand by a living entity in
|
|
* first person. If rendering as a 3D block, the item will be rotated to a
|
|
* 45-degree angle. To render a 2D texture with some thickness, see
|
|
* net.minecraft.src.ItemRenderer. In either case, rendering should be done
|
|
* in local coordinates from (0,0,0)-(1,1,1).
|
|
*
|
|
* Data parameters:
|
|
* RenderBlocks render - The RenderBlocks instance
|
|
* EntityLiving entity - The entity holding this item
|
|
*/
|
|
EQUIPPED_FIRST_PERSON,
|
|
|
|
/**
|
|
* Called to render an item in a GUI inventory slot. If rendering as a 3D
|
|
* block, the appropriate OpenGL translations and scaling have already been
|
|
* applied, and the rendering should be done in local coordinates from
|
|
* (0,0,0)-(1,1,1). If rendering as a 2D texture, the rendering should be in
|
|
* GUI pixel coordinates from (0, 0, 0)-(16, 16, 0).
|
|
*
|
|
* Data parameters:
|
|
* RenderBlocks render - The RenderBlocks instance
|
|
*/
|
|
INVENTORY,
|
|
|
|
/**
|
|
* The render type used for when a ItemMap is rendered in first person,
|
|
* All appropriate rotations have been applied, and the player's hands,
|
|
* and the map BG are already rendered.
|
|
*
|
|
* Data Parameters:
|
|
* EntityPlayer player - The player holding the map
|
|
* RenderEngine engine - The RenderEngine instance
|
|
* MapData mapData - The map data
|
|
*/
|
|
FIRST_PERSON_MAP
|
|
}
|
|
|
|
public enum ItemRendererHelper
|
|
{
|
|
/**
|
|
* Determines if a rotation effect should be used when rendering an
|
|
* EntityItem, like most default blocks do.
|
|
*/
|
|
ENTITY_ROTATION,
|
|
|
|
/**
|
|
* Determines if an up-and-down bobbing effect should be used when
|
|
* rendering an EntityItem, like most default items do.
|
|
*/
|
|
ENTITY_BOBBING,
|
|
|
|
/**
|
|
* Determines if the currently equipped item should be rendered as a 3D
|
|
* block or as a 2D texture.
|
|
*/
|
|
EQUIPPED_BLOCK,
|
|
|
|
/**
|
|
* Determines if the item should equate to a block that has
|
|
* RenderBlocks.renderItemIn3d return true
|
|
*/
|
|
BLOCK_3D,
|
|
|
|
/**
|
|
* Determines if the item should be rendered in GUI inventory slots as a 3D
|
|
* block or as a 2D texture.
|
|
*/
|
|
INVENTORY_BLOCK
|
|
}
|
|
|
|
/**
|
|
* Checks if this renderer should handle a specific item's render type
|
|
* @param item The item we are trying to render
|
|
* @param type A render type to check if this renderer handles
|
|
* @return true if this renderer should handle the given render type,
|
|
* otherwise false
|
|
*/
|
|
public boolean handleRenderType(ItemStack item, ItemRenderType type);
|
|
|
|
/**
|
|
* Checks if certain helper functionality should be executed for this renderer.
|
|
* See ItemRendererHelper for more info
|
|
*
|
|
* @param type The render type
|
|
* @param item The ItemStack being rendered
|
|
* @param helper The type of helper functionality to be ran
|
|
* @return True to run the helper functionality, false to not.
|
|
*/
|
|
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper);
|
|
|
|
/**
|
|
* Called to do the actual rendering, see ItemRenderType for details on when specific
|
|
* types are run, and what extra data is passed into the data parameter.
|
|
*
|
|
* @param type The render type
|
|
* @param item The ItemStack being rendered
|
|
* @param data Extra Type specific data
|
|
*/
|
|
public void renderItem(ItemRenderType type, ItemStack item, Object... data);
|
|
}
|