@SubscribeEvent public void onBreakSpeed(PlayerEvent.BreakSpeed event) { VampirePlayer vampire = VampirePlayer.get(event.getEntityPlayer()); HunterPlayer hunter = HunterPlayer.get(event.getEntityPlayer()); if (vampire.getSpecialAttributes().bat || hunter.getSpecialAttributes().isDisguised()) { event.setCanceled(true); } else if (ModBlocks.garlic_beacon.equals(event.getState().getBlock()) && vampire.getLevel() > 0) { event.setNewSpeed(event.getOriginalSpeed() * 0.1F); } }
public void on(final PlayerEvent.BreakSpeed event) if (colony.isCoordInColony(event.getEntity().world, event.getPos()) && Configurations.gameplay.pvp_mode && event.getState().getBlock() == ModBlocks.blockHutTownHall && event.getEntityPlayer().world instanceof WorldServer) final double hardness = event.getState().getBlockHardness(world, event.getPos()) * 20.0 * 1.5 / event.getNewSpeed();
@SubscribeEvent public static void onBreakSpeed(BreakSpeed event) { if (event.getState().getBlock() instanceof BlockConduitBundle) { ItemStack held = event.getEntityPlayer().getHeldItemMainhand(); if (held.getItem().getHarvestLevel(held, "pickaxe", event.getEntityPlayer(), event.getState()) == -1) { event.setNewSpeed(event.getNewSpeed() + 2); } IConduitBundle te = BlockConduitBundle.getAnyTileEntity(event.getEntity().world, NullHelper.notnullF(event.getPos(), "BreakSpeed#getPos"), IConduitBundle.class); if (te != null && te.getFacadeType().isHardened()) { if (!YetaUtil.isSolidFacadeRendered(te, event.getEntityPlayer())) { event.setNewSpeed(event.getNewSpeed() * 6); } else { event.setNewSpeed(event.getNewSpeed() * 2); } } } }
@SubscribeEvent public void breakSpeed(PlayerEvent.BreakSpeed event) { // only show event if either the test block or the test item is involved if ( (event.getState() == null || event.getState().getBlock() != StartupCommon.blockToolTest) && (event.getEntityPlayer() == null || event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.MAINHAND).getItem() != StartupCommon.itemToolsTest)) { return; } StartupCommon.methodCallLogger.enterMethod("Event.BreakSpeed", "blockstate=" + event.getState() + ", blockpos=" + event.getPos() + ", oldspeed = " + event.getOriginalSpeed()); // your code here StartupCommon.methodCallLogger.exitMethod("Event.BreakSpeed", "newspeed=" + event.getNewSpeed() + ", cancelled=" + event.isCanceled()); }
@SubscribeEvent public void onBreaking(BreakSpeed event) { EntityPlayer player = event.getEntityPlayer(); if (ForgeHooks.canHarvestBlock(event.getState().getBlock(), player, player.worldObj, event.getPos())) { if (player.isInsideOfMaterial(Material.WATER)) { if (EntityHelper.hasArmor(player, EntityEquipmentSlot.LEGS, this)) { event.setNewSpeed(event.getOriginalSpeed() * 2F); } } } } }
@SubscribeEvent public void calcBreakSpeed(BreakSpeed event) { ItemStack stack = event.getEntityPlayer().getHeldItem(EnumHand.MAIN_HAND); if(stack.getItem() instanceof ItemAxe && event.getState().getMaterial() == Material.LEAVES) event.setNewSpeed(((ItemTool) stack.getItem()).getDestroySpeed(stack, Blocks.PLANKS.getDefaultState())); }
@SubscribeEvent public void onBreakSpeedEvent(PlayerEvent.BreakSpeed evt) { if (isEquipped(evt.getEntityPlayer())) { if (!evt.getEntityPlayer().isSneaking() && isPowered(evt.getEntityPlayer(), DarkSteelConfig.axePowerUsePerDamagePointMultiHarvest) && FarmersRegistry.isLog(evt.getState().getBlock())) { evt.setNewSpeed(evt.getOriginalSpeed() / DarkSteelConfig.axeSpeedPenaltyMultiHarvest.get()); } else if (evt.getState().getMaterial() == Material.LEAVES) { evt.setNewSpeed(6); } } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { World world = event.getEntityPlayer().getEntityWorld(); // target speed float speed = ToolHelper.getActualMiningSpeed(tool); int level = getLevel(tool); // mitigate block hardness float hardness = event.getState().getBlockHardness(world, event.getPos()); if(hardness <= 0f) { // hardness 0 -> already instabreaks. otherwise we set speed to 0 return; } speed *= hardness; if(level > 2) { speed /= 1.1f; } else if(level > 1) { speed /= 5f; } else { speed /= 10f; } float weight1 = (float) level / (float) maxLevel; float weight2 = 1f - (float) level / (float) maxLevel; // we weight the speed depending on how much the current level is. So 0 = full old speed, 10 = full new speed, 5 = in the middle float totalSpeed = speed * weight1 + event.getOriginalSpeed() * weight2; event.setNewSpeed(totalSpeed); }
@SubscribeEvent public void breakFaster( final PlayerEvent.BreakSpeed event ) { if( event.getState().getBlock() == this && event.getEntityPlayer() != null ) { final ItemStack is = event.getEntityPlayer().getItemStackFromSlot( EntityEquipmentSlot.MAINHAND ); int level = -1; if( !is.isEmpty() ) { level = is.getItem().getHarvestLevel( is, "pickaxe", event.getEntityPlayer(), event.getState() ); } if( this.type != SkystoneType.STONE || level >= 3 || event.getOriginalSpeed() > BREAK_SPEAK_THRESHOLD ) { event.setNewSpeed( event.getNewSpeed() / BREAK_SPEAK_SCALAR ); } } }
@SubscribeEvent public void offhandBreakSpeed(PlayerEvent.BreakSpeed event) { EntityPlayer player = event.getEntityPlayer(); if(shouldUseOffhand(player, event.getState(), player.getHeldItemMainhand())) { ItemStack main = player.getHeldItemMainhand(); ItemStack offhand = player.getHeldItemOffhand(); // we use this instead of player.setItemStackToSlot because that one plays an equip sound ;_; player.inventory.mainInventory.set(player.inventory.currentItem, offhand); float speed = player.getDigSpeed(event.getState(), event.getPos()); player.inventory.mainInventory.set(player.inventory.currentItem, main); event.setNewSpeed(speed); } } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { if(ToolHelper.isToolEffective2(tool, event.getState())) { event.setNewSpeed((float) (event.getNewSpeed() + calcBonus(tool))); } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { Block block = event.getState().getBlock(); int hlvl = tool.getItem().getHarvestLevel(tool, block.getHarvestTool(event.getState()), event.getEntityPlayer(), event.getState()); int dif = hlvl - block.getHarvestLevel(event.getState()); // 1 speed per harvest level above if(dif > 0) { event.setNewSpeed(event.getNewSpeed() + dif); } }