@Override public void onUpdateBreakSpeedWithTool(PlayerEvent.BreakSpeed event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { event.setNewSpeed(2F * event.getNewSpeed()); } }
@Override public void onUpdateBreakSpeedWithTool(PlayerEvent.BreakSpeed event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { event.setNewSpeed(event.getNewSpeed() / 2); } }
@Override public void onUpdateBreakSpeedWithTool(PlayerEvent.BreakSpeed event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { event.setNewSpeed(event.getNewSpeed() * 0.7F); } }
@Override public void onUpdateBreakSpeedWithTool(PlayerEvent.BreakSpeed event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { event.setNewSpeed(event.getNewSpeed() * 0.425F); } }
@Override public void onUpdateBreakSpeedWithTool(PlayerEvent.BreakSpeed event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { event.setNewSpeed(event.getNewSpeed() * 0.7F); } }
@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); } }
@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); } } }
@SubscribeEvent public void onBreakSpeedEvent(PlayerEvent.BreakSpeed evt) { if (evt.getOriginalSpeed() > 2.0 && isEquippedAndPowered(evt.getEntityPlayer(), DarkSteelConfig.shearsPowerUsePerDamagePoint)) { evt.setNewSpeed(evt.getOriginalSpeed() * DarkSteelConfig.shearsEfficiencyBoostWhenPowered.get()); } }
@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 ); } } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { float coeff = 1f; // is the player in water? if(event.getEntityPlayer().isInWater()) { coeff += 5.5f; // being in water causes speed to be 1/5th. These values work fine. } // is it raining? if(event.getEntityPlayer().getEntityWorld().isRaining()) { coeff += event.getEntityPlayer().getEntityWorld().getBiomeForCoordsBody(event.getEntityPlayer().getPosition()).getRainfall() / 1.6f; } event.setNewSpeed(event.getNewSpeed() + event.getOriginalSpeed() * coeff); } }
@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(event.getState().getBlock().getMaterial(event.getState()).isToolNotRequired()) { event.setNewSpeed(event.getNewSpeed() * (ToolHelper.getActualMiningSpeed(tool) * 0.5f)); } } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { // speedup or slowdown depending on biome temperature. hotter areas are much faster float coeff = calcAridiculousness(event.getEntityPlayer().getEntityWorld(), event.getPos()) / 10f; // /10 = 10% for a coeff of 1. But can be bigger. event.setNewSpeed(event.getNewSpeed() + event.getOriginalSpeed() * coeff); }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { float boost = Momentum.getLevel(event.getEntityPlayer()); boost /= 80f; // 40% boost max event.setNewSpeed(event.getNewSpeed() + event.getOriginalSpeed() * boost); }
@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); } }
@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) { int y = event.getPos().getY(); y = 72 - y; // actual sealevel is 64, we chose 72 because we're nice if(y > 0) { event.setNewSpeed(event.getNewSpeed() + (float) y / 30f); } } }
@Override public void miningSpeed(ItemStack tool, PlayerEvent.BreakSpeed event) { // 10% bonus speed event.setNewSpeed(event.getNewSpeed() * (1 + bonus)); }