diff --git a/src/main/java/com/cricketcraft/chisel/Features.java b/src/main/java/com/cricketcraft/chisel/Features.java index 600a04e3..6698fce0 100644 --- a/src/main/java/com/cricketcraft/chisel/Features.java +++ b/src/main/java/com/cricketcraft/chisel/Features.java @@ -1153,7 +1153,7 @@ public enum Features { jackolantern[metadata] = (BlockCarvablePumpkin) new BlockCarvablePumpkin(true).setCreativeTab(ChiselTabs.tabOtherChiselBlocks).setHardness(1.0F).setBlockName("litpumpkin") .setCreativeTab(ChiselTabs.tabOtherChiselBlocks).setLightLevel(1.0f); jackolantern[metadata].setInformation("pumpkin/pumpkin_face_" + (metadata + 1) + "_on"); - GameRegistry.registerBlock(jackolantern[metadata], ("jackolantern" + (metadata + 1))); + GameRegistry.registerBlock(jackolantern[metadata], ItemCarvablePumpkin.class, ("jackolantern" + (metadata + 1))); Carving.chisel.addVariation("jackolantern", jackolantern[metadata], 0, (metadata + 1)); } Carving.chisel.addVariation("jackolantern", Blocks.lit_pumpkin, 0, 0); @@ -1823,7 +1823,7 @@ public enum Features { pumpkin[metadata] = (BlockCarvablePumpkin) new BlockCarvablePumpkin(false).setCreativeTab(ChiselTabs.tabOtherChiselBlocks).setHardness(1.0F).setBlockName("pumpkin") .setCreativeTab(ChiselTabs.tabOtherChiselBlocks); pumpkin[metadata].setInformation("pumpkin/pumpkin_face_" + (metadata + 1) + "_off"); - GameRegistry.registerBlock(pumpkin[metadata], "pumpkin" + (metadata + 1)); + GameRegistry.registerBlock(pumpkin[metadata], ItemCarvablePumpkin.class, "pumpkin" + (metadata + 1)); Carving.chisel.addVariation("pumpkin", pumpkin[metadata], 0, (metadata + 1)); } Carving.chisel.addVariation("pumpkin", Blocks.pumpkin, 0, 0); diff --git a/src/main/java/com/cricketcraft/chisel/item/ItemCarvablePumpkin.java b/src/main/java/com/cricketcraft/chisel/item/ItemCarvablePumpkin.java new file mode 100644 index 00000000..0727fcfa --- /dev/null +++ b/src/main/java/com/cricketcraft/chisel/item/ItemCarvablePumpkin.java @@ -0,0 +1,61 @@ +package com.cricketcraft.chisel.item; + +import com.cricketcraft.chisel.api.ICarvable; +import com.cricketcraft.chisel.carving.CarvableVariation; +import com.cricketcraft.chisel.config.Configurations; +import com.cricketcraft.chisel.utils.General; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +public class ItemCarvablePumpkin extends ItemBlock { + + public ItemCarvablePumpkin(Block block) { + super(block); + setMaxDamage(0); + setHasSubtypes(true); + } + + @Override + public boolean isValidArmor(ItemStack itemStack, int armorType, Entity entity){ + return true; + } + + @Override + public int getMetadata(int i) { + return i; + } + + @Override + public IIcon getIconFromDamage(int damage) { + return Block.getBlockFromItem(this).getIcon(2, damage); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) { + if (!Configurations.blockDescriptions) + return; + + Item item = General.getItem(stack); + if (item == null) + return; + + Block block = Block.getBlockFromItem(this); + if (!(block instanceof ICarvable)) + return; + + ICarvable carvable = (ICarvable) block; + CarvableVariation var = carvable.getVariation(stack); + if (var == null) + return; + + lines.add(var.getDescription()); + } +}