List of usage examples for net.minecraftforge.event.world BlockEvent.HarvestDropsEvent getWorld
public IWorld getWorld()
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); } } } } } }