package net.minecraftforkage.internal; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.eventhandler.Event.Result; import squeek.applecore.api.IAppleCoreDispatcher; import squeek.applecore.api.plants.PlantGrowthEvent; public class AppleCoreDispatcher implements IAppleCoreDispatcher { @Override public Result validatePlantGrowth(Block block, World world, int x, int y, int z, Random random) { PlantGrowthEvent.AllowGrowthTick event = new PlantGrowthEvent.AllowGrowthTick(block, world, x, y, z, random); MinecraftForge.EVENT_BUS.post(event); return event.getResult(); } @Override public void announcePlantGrowth(Block block, World world, int x, int y, int z, int previousMetadata) { MinecraftForge.EVENT_BUS.post(new PlantGrowthEvent.GrowthTick(block, world, x, y, z, previousMetadata)); } @Override public void announcePlantGrowthWithoutMetadataChange(Block block, World world, int x, int y, int z) { // XXX: This method is ugly? announcePlantGrowth(block, world, x, y, z, world.getBlockMetadata(x, y, z)); } @Override public void announcePlantGrowth(Block block, World world, int x, int y, int z) { // XXX: This method is ugly. announcePlantGrowth(block, world, x, y, z, Math.max(0, world.getBlockMetadata(x, y, z) - 1)); } }