mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
118 lines
3.3 KiB
Java
118 lines
3.3 KiB
Java
package com.hbm.items.machine;
|
|
|
|
import java.util.List;
|
|
|
|
import com.hbm.items.special.ItemNuclearWaste;
|
|
import com.hbm.main.MainRegistry;
|
|
|
|
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.entity.player.EntityPlayer;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.EnumChatFormatting;
|
|
import net.minecraft.util.IIcon;
|
|
|
|
public class ItemRBMKPellet extends ItemNuclearWaste {
|
|
|
|
public String fullName = "";
|
|
protected boolean hasXenon = true;
|
|
|
|
public ItemRBMKPellet(String fullName) {
|
|
this.fullName = fullName;
|
|
this.setHasSubtypes(true);
|
|
this.setMaxDamage(0);
|
|
this.setCreativeTab(MainRegistry.controlTab);
|
|
}
|
|
|
|
public ItemRBMKPellet disableXenon() {
|
|
this.hasXenon = false;
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void getSubItems(Item item, CreativeTabs tabs, List list) {
|
|
for(int i = 0; i < (this.hasXenon ? 10 : 5); ++i) {
|
|
list.add(new ItemStack(item, 1, i));
|
|
}
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private IIcon[] enrichmentOverlays;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
private IIcon xenonOverlay;
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void registerIcons(IIconRegister iconRegister) {
|
|
super.registerIcons(iconRegister);
|
|
|
|
this.enrichmentOverlays = new IIcon[5];
|
|
|
|
for(int i = 0; i < enrichmentOverlays.length; i++) {
|
|
enrichmentOverlays[i] = iconRegister.registerIcon("hbm:rbmk_pellet_overlay_e" + i);
|
|
}
|
|
|
|
if(this.hasXenon)
|
|
xenonOverlay = iconRegister.registerIcon("hbm:rbmk_pellet_overlay_xenon");
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public boolean requiresMultipleRenderPasses() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public int getRenderPasses(int meta) {
|
|
return hasXenon(meta) ? 3 : 2;
|
|
}
|
|
|
|
@Override
|
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
|
super.addInformation(stack, player, list, bool);
|
|
|
|
list.add(EnumChatFormatting.ITALIC + this.fullName);
|
|
list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[0]);
|
|
|
|
int meta = rectify(stack.getItemDamage());
|
|
|
|
switch(meta % 5) {
|
|
case 0: list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[1]); break;
|
|
case 1: list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[2]); break;
|
|
case 2: list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[3]); break;
|
|
case 3: list.add(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[4]); break;
|
|
case 4: list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[5]); break;
|
|
}
|
|
|
|
if(hasXenon(meta))
|
|
list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[6]);
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public IIcon getIconFromDamageForRenderPass(int meta, int pass) {
|
|
|
|
if(pass == 0)
|
|
return this.itemIcon;
|
|
|
|
if(pass == 2)
|
|
return this.xenonOverlay;
|
|
|
|
return this.enrichmentOverlays[rectify(meta) % 5];
|
|
}
|
|
|
|
public static boolean hasXenon(int meta) {
|
|
return rectify(meta) >= 5;
|
|
}
|
|
|
|
public static int rectify(int meta) {
|
|
return Math.abs(meta) % 10;
|
|
}
|
|
}
|