package joshie.harvest.core.base.item;
import joshie.harvest.core.base.block.BlockHFBase;
import joshie.harvest.core.base.block.BlockHFEnum;
import joshie.harvest.core.util.interfaces.ICreativeSorted;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import javax.annotation.Nonnull;
import static joshie.harvest.core.lib.HFModInfo.MODID;
public class ItemBlockHF<B extends BlockHFBase> extends ItemBlock implements ICreativeSorted {
private final B block;
public ItemBlockHF(B block) {
super(block);
this.block = block;
setHasSubtypes(true);
if (block instanceof BlockHFEnum) {
((BlockHFEnum)block).registerSellables(this);
}
}
@Override
@Nonnull
public String getItemStackDisplayName(ItemStack stack) {
return block.getItemStackDisplayName(stack);
}
@Override
@Nonnull
public B getBlock() {
return block;
}
@Override
public int getMetadata(int damage) {
return damage;
}
@Override
public int getEntityLifespan(ItemStack itemStack, World world) {
return block.getEntityLifeSpan(itemStack, world);
}
@Override
@Nonnull
public String getUnlocalizedName(ItemStack stack) {
return block.getUnlocalizedName(stack);
}
@Override
public int getSortValue(ItemStack stack) {
return block.getSortValue(stack);
}
public void register(String name) {
setUnlocalizedName(name.replace("_", "."));
setRegistryName(new ResourceLocation(MODID, name));
GameRegistry.register(this);
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
block.registerModels(this, name);
}
}
}