2024-06-04 11:07:53 +10:00

81 lines
2.4 KiB
Java

package com.hbm.items.block;
import java.util.List;
import com.hbm.blocks.BlockMulti;
import com.hbm.blocks.IBlockMulti;
import com.hbm.blocks.IPersistentInfoProvider;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.blocks.generic.BlockMetalFence;
import com.hbm.tileentity.IPersistentNBT;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
public class ItemBlockBase extends ItemBlock {
public ItemBlockBase(Block block) {
super(block);
if(block instanceof IBlockMulti) {
this.setMaxDamage(0);
this.setHasSubtypes(true);
}
}
@Override
public int getMetadata(int meta) {
if(field_150939_a instanceof IBlockMulti)
return meta;
else
return super.getMetadata(meta);
}
@Override
public String getUnlocalizedName(ItemStack stack) {
if(field_150939_a instanceof BlockMulti) {
return ((BlockMulti)field_150939_a).getUnlocalizedName(stack);
} else if(field_150939_a instanceof BlockMetalFence) {
return ((BlockMetalFence)field_150939_a).getUnlocalizedName(stack); // I considered reworking IBlockMulti instead but there are like a bajillion implementers
} else {
return super.getUnlocalizedName(stack);
}
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
if(field_150939_a instanceof ITooltipProvider) {
((ITooltipProvider) field_150939_a).addInformation(stack, player, list, bool);
}
if(field_150939_a instanceof IPersistentInfoProvider && stack.hasTagCompound() && stack.getTagCompound().hasKey(IPersistentNBT.NBT_PERSISTENT_KEY)) {
NBTTagCompound data = stack.getTagCompound().getCompoundTag(IPersistentNBT.NBT_PERSISTENT_KEY);
((IPersistentInfoProvider) field_150939_a).addInformation(stack, data, player, list, bool);
}
}
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int meta) {
return this.field_150939_a.getIcon(1, meta); //fuck you mojang
}
@Override
public EnumRarity getRarity(ItemStack stack) {
if(field_150939_a instanceof ITooltipProvider) {
return ((ITooltipProvider) field_150939_a).getRarity(stack);
}
return EnumRarity.common;
}
}