Search in sources :

Example 1 with ISubstanceEffect

use of com.ferreusveritas.dynamictrees.api.substances.ISubstanceEffect 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;
}
Also used : ISubstanceEffectProvider(com.ferreusveritas.dynamictrees.api.substances.ISubstanceEffectProvider) ISubstanceEffect(com.ferreusveritas.dynamictrees.api.substances.ISubstanceEffect) SubstanceGrowth(com.ferreusveritas.dynamictrees.systems.substances.SubstanceGrowth) ItemStack(net.minecraft.item.ItemStack) Species(com.ferreusveritas.dynamictrees.trees.Species) TileEntitySpecies(com.ferreusveritas.dynamictrees.tileentity.TileEntitySpecies)

Aggregations

ISubstanceEffect (com.ferreusveritas.dynamictrees.api.substances.ISubstanceEffect)1 ISubstanceEffectProvider (com.ferreusveritas.dynamictrees.api.substances.ISubstanceEffectProvider)1 SubstanceGrowth (com.ferreusveritas.dynamictrees.systems.substances.SubstanceGrowth)1 TileEntitySpecies (com.ferreusveritas.dynamictrees.tileentity.TileEntitySpecies)1 Species (com.ferreusveritas.dynamictrees.trees.Species)1 ItemStack (net.minecraft.item.ItemStack)1