boolean placed = super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata);
if(placed) {
String type = getType(stack);
TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof TileSpecialFlower) {
TileSpecialFlower tile = (TileSpecialFlower) te;
tile.setSubTile(type);
if(!world.isRemote)
world.markBlockForUpdate(x, y, z);
}
}