Example usage for net.minecraftforge.event.world BlockEvent.HarvestDropsEvent getWorld

List of usage examples for net.minecraftforge.event.world BlockEvent.HarvestDropsEvent getWorld

Introduction

In this page you can find the example usage for net.minecraftforge.event.world BlockEvent.HarvestDropsEvent getWorld.

Prototype

public IWorld getWorld() 

Source Link

Usage

From source file:com.buuz135.industrial.proxy.event.PlantInteractorHarvestDropsHandler.java

License:Open Source License

@SubscribeEvent(priority = EventPriority.LOWEST)
public void onHarvest(BlockEvent.HarvestDropsEvent event) {
    for (PlantInteractorTile tile : PlantInteractorTile.WORKING_TILES) {
        if (tile.getWorld().equals(event.getWorld())
                && BlockUtils.getBlockPosInAABB(tile.getWorkingArea()).contains(event.getPos())) {
            tile.harvestDrops(event);/*  w  ww  .  ja v  a  2 s  .  c om*/
            return;
        }
    }
}

From source file:hellfirepvp.astralsorcery.common.event.listener.EventHandlerServer.java

License:Open Source License

@SubscribeEvent(priority = EventPriority.LOW)
public void onHarvest(BlockEvent.HarvestDropsEvent event) {
    if (event.getHarvester() != null && !event.isSilkTouching()) {
        ItemStack main = event.getHarvester().getHeldItemMainhand();
        if (!main.isEmpty()) {
            if (EnchantmentHelper.getEnchantmentLevel(EnchantmentsAS.enchantmentScorchingHeat, main) > 0) {
                int fortuneLvl = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, main);
                List<ItemStack> dropsCopy = new LinkedList<>();
                dropsCopy.addAll(event.getDrops());
                event.getDrops().clear();
                for (ItemStack stack : dropsCopy) {
                    ItemStack out = FurnaceRecipes.instance().getSmeltingResult(stack);
                    if (!out.isEmpty()) {
                        ItemStack furnaced = ItemUtils.copyStackWithSize(out, 1);
                        event.getDrops().add(furnaced);
                        furnaced.onCrafting(event.getWorld(), event.getHarvester(), 1);
                        FMLCommonHandler.instance().firePlayerSmeltedEvent(event.getHarvester(), furnaced);
                        if (fortuneLvl > 0 && !(out.getItem() instanceof ItemBlock)) {
                            for (int i = 0; i < fortuneLvl; i++) {
                                if (rand.nextFloat() < 0.5F) {
                                    event.getDrops().add(ItemUtils.copyStackWithSize(out, 1));
                                }//ww w  .j av a2  s . co m
                            }
                        }
                    } else {
                        event.getDrops().add(stack);
                    }
                }
            }
        }
    }
}