Yeah, but what I thought I'd do is like:
w.setBlock(x, y, z, machineBlock);
w.setTileEntity(x, y, z, MachineRegistry.getMachineClass(itemStack.getStackDamage()).newInstance());
And does it correspond to the created block's metadata, or the used ItemStack's damage? Also, can I work around this method completely? I'd rather have my ItemBlock class do the work.