mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
106 lines
2.6 KiB
Java
106 lines
2.6 KiB
Java
package com.hbm.items.special;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map.Entry;
|
|
|
|
import com.hbm.inventory.material.MaterialShapes;
|
|
import com.hbm.inventory.material.Mats;
|
|
import com.hbm.inventory.material.NTMMaterial;
|
|
import com.hbm.lib.RefStrings;
|
|
import com.hbm.util.I18nUtil;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
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 net.minecraft.util.StatCollector;
|
|
|
|
public class ItemAutogen extends Item {
|
|
|
|
MaterialShapes shape;
|
|
|
|
private HashMap<NTMMaterial, String> textureOverrides = new HashMap();
|
|
private HashMap<NTMMaterial, IIcon> iconOverrides = new HashMap();
|
|
|
|
public ItemAutogen(MaterialShapes shape) {
|
|
this.setHasSubtypes(true);
|
|
this.shape = shape;
|
|
}
|
|
|
|
/** add override texture */
|
|
public ItemAutogen aot(NTMMaterial mat, String tex) {
|
|
textureOverrides.put(mat, tex);
|
|
return this;
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public void registerIcons(IIconRegister reg) {
|
|
super.registerIcons(reg);
|
|
|
|
for(Entry<NTMMaterial, String> tex : textureOverrides.entrySet()) {
|
|
iconOverrides.put(tex.getKey(), reg.registerIcon(RefStrings.MODID + ":" + tex.getValue()));
|
|
}
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void getSubItems(Item item, CreativeTabs tab, List list) {
|
|
|
|
for(NTMMaterial mat : Mats.orderedList) {
|
|
if(mat.shapes.contains(this.shape)) {
|
|
list.add(new ItemStack(item, 1, mat.id));
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public IIcon getIconFromDamage(int meta) {
|
|
|
|
NTMMaterial mat = Mats.matById.get(meta);
|
|
|
|
if(mat != null) {
|
|
IIcon override = iconOverrides.get(mat);
|
|
if(override != null) {
|
|
return override;
|
|
}
|
|
}
|
|
|
|
return this.itemIcon;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public int getColorFromItemStack(ItemStack stack, int layer) {
|
|
|
|
if(this.getIconFromDamage(stack.getItemDamage()) != this.itemIcon) {
|
|
return 0xffffff; //custom textures don't need tints
|
|
}
|
|
|
|
NTMMaterial mat = Mats.matById.get(stack.getItemDamage());
|
|
|
|
if(mat != null) {
|
|
return mat.solidColor;
|
|
}
|
|
|
|
return 0xffffff;
|
|
}
|
|
|
|
@Override
|
|
public String getItemStackDisplayName(ItemStack stack) {
|
|
|
|
NTMMaterial mat = Mats.matById.get(stack.getItemDamage());
|
|
|
|
if(mat == null) {
|
|
return "UNDEFINED";
|
|
}
|
|
|
|
String matName = I18nUtil.resolveKey(mat.getUnlocalizedName());
|
|
return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", matName);
|
|
}
|
|
}
|