mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
60 lines
1.9 KiB
Java
60 lines
1.9 KiB
Java
package com.hbm.render.item;
|
|
|
|
import org.lwjgl.input.Keyboard;
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
|
import com.hbm.inventory.recipes.AssemblerRecipes;
|
|
import com.hbm.inventory.recipes.CrucibleRecipes;
|
|
import com.hbm.items.ModItems;
|
|
import com.hbm.items.machine.ItemAssemblyTemplate;
|
|
import com.hbm.render.util.RenderItemStack;
|
|
|
|
import net.minecraft.client.renderer.RenderHelper;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraftforge.client.IItemRenderer;
|
|
|
|
public class ItemRenderTemplate implements IItemRenderer {
|
|
|
|
private ItemStack currentItem;
|
|
|
|
public boolean handleRenderType(ItemStack stack, IItemRenderer.ItemRenderType type) {
|
|
|
|
if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) && (type == IItemRenderer.ItemRenderType.INVENTORY)) {
|
|
|
|
if(stack.getItem() == ModItems.assembly_template) {
|
|
ComparableStack st = ItemAssemblyTemplate.readType(stack);
|
|
this.currentItem = st != null ? st.toStack() : AssemblerRecipes.recipeList.get(stack.getItemDamage()).toStack();
|
|
}
|
|
if(stack.getItem() == ModItems.chemistry_template)
|
|
this.currentItem = new ItemStack(ModItems.chemistry_icon, 1, stack.getItemDamage());
|
|
|
|
if(stack.getItem() == ModItems.crucible_template)
|
|
this.currentItem = CrucibleRecipes.indexMapping.get(stack.getItemDamage()).icon;
|
|
|
|
if(this.currentItem != null) {
|
|
return true;
|
|
}
|
|
|
|
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType type, ItemStack stack, IItemRenderer.ItemRendererHelper renderHelper) {
|
|
return false;
|
|
}
|
|
|
|
public void renderItem(IItemRenderer.ItemRenderType type, ItemStack stack, Object... args) {
|
|
GL11.glPushMatrix();
|
|
RenderHelper.enableGUIStandardItemLighting();
|
|
|
|
if(currentItem != null)
|
|
RenderItemStack.renderItemStack(0, 0, 1.0F, currentItem);
|
|
else
|
|
RenderItemStack.renderItemStack(0, 0, 1.0F, stack);
|
|
|
|
GL11.glPopMatrix();
|
|
}
|
|
}
|