}
protected boolean canPlant(World worldObj, BlockCoord bc) {
Block target = getPlantedBlock();
Block ground = worldObj.getBlock(bc.x, bc.y - 1, bc.z);
IPlantable plantable = (IPlantable) getPlantedBlock();
if(target.canPlaceBlockAt(worldObj, bc.x, bc.y, bc.z) &&
target.canBlockStay(worldObj, bc.x, bc.y, bc.z) &&
(ground.canSustainPlant(worldObj, bc.x, bc.y - 1, bc.z, ForgeDirection.UP, plantable) || ignoreSustainCheck)) {
return true;
}