diff options
Diffstat (limited to 'src/main/java/gregtech/api/interfaces/IGT_ItemWithMaterialRenderer.java')
-rw-r--r-- | src/main/java/gregtech/api/interfaces/IGT_ItemWithMaterialRenderer.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/interfaces/IGT_ItemWithMaterialRenderer.java b/src/main/java/gregtech/api/interfaces/IGT_ItemWithMaterialRenderer.java new file mode 100644 index 0000000000..4bf0311544 --- /dev/null +++ b/src/main/java/gregtech/api/interfaces/IGT_ItemWithMaterialRenderer.java @@ -0,0 +1,68 @@ +package gregtech.api.interfaces; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.common.render.items.GT_GeneratedMaterial_Renderer; + +public interface IGT_ItemWithMaterialRenderer { + + /** + * @return If allow using {@link gregtech.common.render.items.GT_MetaGenerated_Item_Renderer} to render item + */ + boolean shouldUseCustomRenderer(int aMetaData); + + /** + * @return Custom renderer of the Material with offset < 32000 + */ + GT_GeneratedMaterial_Renderer getMaterialRenderer(int aMetaData); + + /** + * If this returns false, renderer falls back to {@link gregtech.common.render.items.GT_GeneratedItem_Renderer} + */ + boolean allowMaterialRenderer(int aMetaData); + + /** + * @return Icon the Material is going to be rendered with + */ + IIcon getIcon(int aMetaData, int pass); + + /** + * @return Icon of the Overlay (or null if there is no Icon) + */ + IIcon getOverlayIcon(int aMetaData, int pass); + + /** + * @return Color Modulation the Material is going to be rendered with. + */ + short[] getRGBa(ItemStack aStack); + + @SideOnly(Side.CLIENT) + default int getSpriteNumber() { + if (this instanceof Item) { + return ((Item) this).getSpriteNumber(); + } else { + throw new RuntimeException(String.format("Class %s does not extend Item!", getClass())); + } + } + + @SideOnly(Side.CLIENT) + default boolean requiresMultipleRenderPasses() { + if (this instanceof Item) { + return ((Item) this).requiresMultipleRenderPasses(); + } else { + throw new RuntimeException(String.format("Class %s does not extend Item!", getClass())); + } + } + + default int getRenderPasses(int metadata) { + if (this instanceof Item) { + return ((Item) this).getRenderPasses(metadata); + } else { + throw new RuntimeException(String.format("Class %s does not extend Item!", getClass())); + } + } +} |