List of usage examples for net.minecraftforge.event.world ExplosionEvent.Detonate getWorld
public World getWorld()
From source file:de.ellpeck.actuallyadditions.mod.blocks.BlockShockSuppressor.java
@SubscribeEvent public void onExplosion(ExplosionEvent.Detonate event) { World world = event.getWorld(); if (!world.isRemote) { List<BlockPos> affectedBlocks = event.getAffectedBlocks(); List<Entity> affectedEntities = event.getAffectedEntities(); int rangeSq = TileEntityShockSuppressor.RANGE * TileEntityShockSuppressor.RANGE; int use = TileEntityShockSuppressor.USE_PER; for (TileEntityShockSuppressor suppressor : TileEntityShockSuppressor.SUPPRESSORS) { if (!suppressor.isRedstonePowered) { BlockPos supPos = suppressor.getPos(); List<Entity> entitiesToRemove = new ArrayList<Entity>(); List<BlockPos> posesToRemove = new ArrayList<BlockPos>(); for (BlockPos pos : affectedBlocks) { if (pos.distanceSq(supPos) <= rangeSq) { posesToRemove.add(pos); }/*from w w w .j av a 2 s . c o m*/ } for (Entity entity : affectedEntities) { if (entity.getPositionVector().squareDistanceTo(supPos.getX(), supPos.getY(), supPos.getZ()) <= rangeSq) { entitiesToRemove.add(entity); } } Collections.shuffle(entitiesToRemove); Collections.shuffle(posesToRemove); for (BlockPos pos : posesToRemove) { if (suppressor.storage.getEnergyStored() >= use) { suppressor.storage.extractEnergyInternal(use, false); affectedBlocks.remove(pos); } else { break; } } for (Entity entity : entitiesToRemove) { if (suppressor.storage.getEnergyStored() >= use) { suppressor.storage.extractEnergyInternal(use, false); affectedEntities.remove(entity); } else { break; } } } } } }
From source file:de.sanandrew.mods.turretmod.event.ExplosionEventHandler.java
License:Creative Commons License
@SubscribeEvent public void onExplosion(ExplosionEvent.Detonate event) { float radius = event.getExplosion().size; AxisAlignedBB aabb = new AxisAlignedBB(-radius, -radius, -radius, radius, radius, radius).grow(24.0D) .offset(event.getExplosion().getPosition()); for (EntityLivingBase living : event.getWorld().getEntitiesWithinAABB(EntityLivingBase.class, aabb, CHK_ENTITY::test)) {/*from ww w. j a va 2 s. c o m*/ ShieldHandler.onExplosion((ITurretInst) living, aabb, event.getAffectedBlocks(), event.getAffectedEntities()); } }
From source file:vazkii.botania.common.item.equipment.bauble.ItemGoddessCharm.java
License:Open Source License
@SubscribeEvent public static void onExplosion(ExplosionEvent.Detonate event) { Explosion e = event.getExplosion();//from w w w.ja va 2 s . c om Vec3d vec = e.getPosition(); List<EntityPlayer> players = event.getWorld().getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(vec.xCoord, vec.yCoord, vec.zCoord, vec.xCoord, vec.yCoord, vec.zCoord).expand(8, 8, 8)); for (EntityPlayer player : players) { IInventory inv = BaublesApi.getBaubles(player); ItemStack charm = inv.getStackInSlot(6); if (charm != null && charm.getItem() instanceof ItemGoddessCharm && ManaItemHandler.requestManaExact(charm, player, COST, true)) { event.getAffectedBlocks().clear(); return; } } }