use of crazypants.enderio.base.farming.harvesters.AxeHarvestingTarget in project EnderIO by SleepyTrousers.
the class ItemDarkSteelAxe method onBlockStartBreak.
@Override
public boolean onBlockStartBreak(@Nonnull ItemStack itemstack, @Nonnull BlockPos pos, @Nonnull EntityPlayer player) {
if (!player.world.isRemote && !player.isSneaking() && EnergyUpgradeManager.itemHasAnyPowerUpgrade(itemstack)) {
IBlockState bs = player.world.getBlockState(pos);
Block block = bs.getBlock();
if (FarmersRegistry.isLog(block)) {
int powerStored = EnergyUpgradeManager.getEnergyStored(itemstack);
HarvestResult res = new HarvestResult();
final IHarvestingTarget target = new AxeHarvestingTarget(bs, pos);
TreeHarvester.harvest(player.world, pos, res, target);
NNList<BlockPos> sortedTargets = new NNList<BlockPos>(res.getHarvestedBlocks());
harvestComparator.refPoint = pos;
Collections.sort(sortedTargets, harvestComparator);
int maxBlocks = powerStored / Config.darkSteelAxePowerUsePerDamagePointMultiHarvest;
int numUsedPower = 0;
for (int i = 0; numUsedPower < maxBlocks && i < sortedTargets.size(); i++) {
if (doMultiHarvest(player, player.world, sortedTargets.get(i), block)) {
numUsedPower++;
}
}
return numUsedPower != 0;
}
}
return false;
}
Aggregations