package squeek.applecore.api;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import cpw.mods.fml.common.eventhandler.Event;
public interface IAppleCoreDispatcher
{
/**
* Fires a {@link squeek.applecore.api.plants.PlantGrowthEvent.AllowGrowthTick} event and returns the result.
*
* See {@link squeek.applecore.api.plants.PlantGrowthEvent.AllowGrowthTick} for how to use the result.
*/
public Event.Result validatePlantGrowth(Block block, World world, int x, int y, int z, Random random);
/**
* Fires a {@link squeek.applecore.api.plants.PlantGrowthEvent.GrowthTick} event.
*/
public void announcePlantGrowth(Block block, World world, int x, int y, int z, int previousMetadata);
/**
* Fires a {@link squeek.applecore.api.plants.PlantGrowthEvent.GrowthTick} event.
* Use only when the growth did not cause a metadata change.
*/
public void announcePlantGrowthWithoutMetadataChange(Block block, World world, int x, int y, int z);
/**
* Deprecated in favor of {@link #announcePlantGrowth(Block, World, int, int, int, int)}
* and {@link #announcePlantGrowthWithoutMetadataChange(Block, World, int, int, int)}
*/
@Deprecated
public void announcePlantGrowth(Block block, World world, int x, int y, int z);
}