package agaricus.mods.placeholderblocks;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;

import java.util.List;

public class ItemBlockPlaceholder extends ItemBlock {

    private String[] names = { "light_stone", "dark_stone", "red_ore", "green_ore", "blue_ore" }; // TODO: DRY

    public ItemBlockPlaceholder(int id) {
        super(id);
        setHasSubtypes(true);
        setMaxDamage(0);
        setCreativeTab(CreativeTabs.tabBlock);
    }

    @Override
    public int getMetadata(int i) {
        return i;
    }

    @Override
    public String getUnlocalizedName(ItemStack itemStack) {
        int i = Math.min(itemStack.getItemDamage(), names.length - 1);
        return "tile.placeholderblocks." + names[i];
    }

    @SuppressWarnings({"unchecked", "rawtypes"})
    @Override
    public void getSubItems(int itemID, CreativeTabs creativeTabs, List subTypes) {
        for (int i = 0; i < names.length; ++i) {
            subTypes.add(new ItemStack(itemID, 1, i));
        }
    }
}

@@ -299,120 +299,8 @@
  %7B%0A%0A
-    private String%5B%5D names = %7B %22light_stone%22, %22dark_stone%22, %22red_ore%22, %22green_ore%22, %22blue_ore%22 %7D; // TODO: DRY%0A%0A
     
@@ -333,24 +333,24 @@
 r(int id) %7B%0A
+
         supe
@@ -626,391 +626,94 @@
     
-int i = Math.min(itemStack.getItemDamage(), names.length - 1);%0A        return %22tile.placeholderblocks.%22 + names%5Bi%5D;%0A    %7D%0A%0A    @SuppressWarnings(%7B%22unchecked%22, %22rawtypes%22%7D)%0A    @Override%0A    public void getSubItems(int itemID, CreativeTabs creativeTabs, List subTypes) %7B%0A        for (int i = 0; i %3C names.length; ++i) %7B%0A            subTypes.add(new ItemStack(itemID, 1, i));%0A        %7D
+return %22tile.placeholderblocks.%22 + itemStack.itemID + %22.%22 + itemStack.getItemDamage();
 %0A   

Update ItemBlockPlaceholder to support multiple block IDs