use of com.ferreusveritas.dynamictrees.api.substances.ISubstanceEffectProvider in project DynamicTrees by DynamicTreesTeam.
the class BlockDynamicSapling method onBlockActivated.
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
ItemStack heldItem = player.getHeldItem(hand);
// Make a special case for the potion of burgeoning. Since it only makes sense.
if (heldItem != null && !heldItem.isEmpty()) {
// Use substance provider interface if it's available
if (heldItem.getItem() instanceof ISubstanceEffectProvider) {
ISubstanceEffectProvider provider = (ISubstanceEffectProvider) heldItem.getItem();
ISubstanceEffect substanceEffect = provider.getSubstanceEffect(heldItem);
if (substanceEffect instanceof SubstanceGrowth) {
Species species = getSpecies(world, pos, state);
if (canSaplingStay(world, species, pos)) {
if (species.transitionToTree(world, pos)) {
return species.onTreeActivated(world, pos.down(), pos, state, player, hand, heldItem, facing, hitX, hitY, hitZ);
}
}
}
}
}
return false;
}
Aggregations