package com.agilemods.materiamuto.common.item.prefab; import com.agilemods.materiamuto.common.lib.LibMisc; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import java.util.List; public abstract class MMSubItem extends MMItem { private IIcon iconOverride; protected IIcon[] icons; public MMSubItem() { setHasSubtypes(true); setMaxDamage(0); } @Override public String getUnlocalizedName(ItemStack itemStack) { int meta = itemStack.getItemDamage(); if (meta < 0 || meta >= getNames().length) { meta = 0; } return super.getUnlocalizedName() + "." + getNames()[meta]; } @Override public IIcon getIconFromDamage(int damage) { if (iconOverride != null) { return iconOverride; } if (damage < 0 || damage >= getNames().length) { damage = 0; } return icons[damage]; } @Override public void registerIcons(IIconRegister register) { icons = new IIcon[getNames().length]; if (getIconPrefix() != null && !getIconPrefix().isEmpty()) { for (int i = 0; i < getNames().length; i++) { icons[i] = register.registerIcon(LibMisc.RESOURCE_PREFIX + getIconPrefix() + "/" + getNames()[i]); } } else if (getOverrideIcon() != null && !getOverrideIcon().isEmpty()) { iconOverride = register.registerIcon(LibMisc.RESOURCE_PREFIX + getOverrideIcon()); } } @Override public void getSubItems(Item item, CreativeTabs creativeTabs, List list) { for (int meta = 0; meta < getNames().length; ++meta) { list.add(new ItemStack(item, 1, meta)); } } public String getOverrideIcon() { return null; } public abstract String[] getNames(); public abstract String getIconPrefix(); }