public ItemBlockFactoryMachine(int blockId) {
    super(blockId);
    setMaxDamage(0);
    setHasSubtypes(true);

    _machineBlockIndex = ((BlockFactoryMachine) Block.blocksList[getBlockID()]).getBlockIndex();
    int highestMeta = Machine.getHighestMetadata(_machineBlockIndex);
    String[] names = new String[highestMeta + 1];
    for (int i = 0; i <= highestMeta; i++) {
      names[i] = Machine.getMachineFromIndex(_machineBlockIndex, i).getInternalName();
    }
    setNames(names);
  }