Finish porting to new power api

This commit is contained in:
modmuss50 2019-09-15 19:14:42 +01:00
parent 4f80a8c651
commit aa6eb60d46
19 changed files with 103 additions and 150 deletions

View file

@ -34,9 +34,9 @@ import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DefaultedList;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemUtils;
import team.reborn.energy.Energy;
import team.reborn.energy.EnergyHolder;
import team.reborn.energy.EnergySide;
import team.reborn.energy.EnergyTier;
@ -61,21 +61,16 @@ public class ItemCloakingDevice extends ItemTRArmour implements EnergyHolder {
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
if (entityIn instanceof PlayerEntity) {
PlayerEntity player = (PlayerEntity) entityIn;
ItemPowerManager capEnergy = new ItemPowerManager(stack);
if (capEnergy != null && capEnergy.getEnergyStored() >= usage) {
capEnergy.useEnergy(usage, false);
player.setInvisible(true);
} else {
if (!player.hasStatusEffect(StatusEffects.INVISIBILITY)) {
player.setInvisible(false);
}
if (Energy.valid(stack)) {
Energy.of(stack).use(usage, () -> player.setInvisible(true), () -> {
if (!player.hasStatusEffect(StatusEffects.INVISIBILITY)) {
player.setInvisible(false);
}
});
}
}
}
public void onArmorTick(World world, PlayerEntity player, ItemStack stack) {
}
@Environment(EnvType.CLIENT)
@Override
@ -85,7 +80,7 @@ public class ItemCloakingDevice extends ItemTRArmour implements EnergyHolder {
}
InitUtils.initPoweredItems(TRContent.CLOAKING_DEVICE, itemList);
}
@Override
public double getDurability(ItemStack stack) {
return 1 - ItemUtils.getPowerForDurabilityBar(stack);
@ -101,7 +96,6 @@ public class ItemCloakingDevice extends ItemTRArmour implements EnergyHolder {
return PowerSystem.getDisplayPower().colour;
}
// IEnergyItemInfo
@Override
public double getMaxStoredPower() {

View file

@ -35,7 +35,6 @@ import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DefaultedList;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemDurabilityExtensions;
@ -63,11 +62,9 @@ public class ItemLithiumIonBatpack extends ArmorItem implements EnergyHolder, It
return;
}
ItemPowerManager capEnergy = new ItemPowerManager(itemStack);
for (int i = 0; i < player.inventory.getInvSize(); i++) {
if (!player.inventory.getInvStack(i).isEmpty()) {
ExternalPowerSystems.chargeItem(capEnergy, player.inventory.getInvStack(i));
ExternalPowerSystems.chargeItem(itemStack, player.inventory.getInvStack(i));
}
}
}

View file

@ -32,10 +32,10 @@ import net.minecraft.item.ItemPropertyGetter;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemDurabilityExtensions;
import reborncore.common.util.ItemUtils;
import team.reborn.energy.Energy;
import team.reborn.energy.EnergyHolder;
import team.reborn.energy.EnergyTier;
import techreborn.TechReborn;
@ -55,7 +55,7 @@ public class ItemBattery extends Item implements EnergyHolder, ItemDurabilityExt
@Override
@Environment(EnvType.CLIENT)
public float call(ItemStack stack, @Nullable World worldIn, @Nullable LivingEntity entityIn) {
if (!stack.isEmpty() && new ItemPowerManager(stack).getEnergyStored() == 0) {
if (!stack.isEmpty() && Energy.of(stack).getEnergy() == 0) {
return 1.0F;
}
return 0.0F;

View file

@ -35,11 +35,11 @@ import net.minecraft.item.*;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemDurabilityExtensions;
import reborncore.common.util.ItemUtils;
import team.reborn.energy.Energy;
import team.reborn.energy.EnergyHolder;
import team.reborn.energy.EnergySide;
import team.reborn.energy.EnergyTier;
@ -65,7 +65,7 @@ public class ItemChainsaw extends AxeItem implements EnergyHolder, ItemDurabilit
@Override
@Environment(EnvType.CLIENT)
public float call(ItemStack stack, @Nullable World worldIn, @Nullable LivingEntity entityIn) {
if (!stack.isEmpty() && new ItemPowerManager(stack).getEnergyStored() >= cost
if (!stack.isEmpty() && Energy.of(stack).getEnergy() >= cost
&& entityIn != null && entityIn.getMainHandStack().equals(stack)) {
return 1.0F;
}
@ -77,7 +77,7 @@ public class ItemChainsaw extends AxeItem implements EnergyHolder, ItemDurabilit
// ItemAxe
@Override
public float getMiningSpeed(ItemStack stack, BlockState state) {
if (new ItemPowerManager(stack).getEnergyStored() >= cost
if (Energy.of(stack).getEnergy() >= cost
&& (state.getMaterial() == Material.WOOD)) {
return this.poweredSpeed;
} else {
@ -90,10 +90,8 @@ public class ItemChainsaw extends AxeItem implements EnergyHolder, ItemDurabilit
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
Random rand = new Random();
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
Energy.of(stack).use(cost);
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
}
return true;
}

View file

@ -31,11 +31,11 @@ import net.minecraft.entity.LivingEntity;
import net.minecraft.item.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemDurabilityExtensions;
import reborncore.common.util.ItemUtils;
import team.reborn.energy.Energy;
import team.reborn.energy.EnergyHolder;
import team.reborn.energy.EnergySide;
import team.reborn.energy.EnergyTier;
@ -59,7 +59,7 @@ public class ItemDrill extends PickaxeItem implements EnergyHolder, ItemDurabili
// ItemPickaxe
@Override
public float getMiningSpeed(ItemStack stack, BlockState state) {
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
if (Energy.of(stack).getEnergy() < cost) {
return unpoweredSpeed;
}
if (Items.WOODEN_PICKAXE.getMiningSpeed(stack, state) > 1.0F
@ -75,10 +75,8 @@ public class ItemDrill extends PickaxeItem implements EnergyHolder, ItemDurabili
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
Random rand = new Random();
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
Energy.of(stack).use(cost);
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
}
return true;
}

View file

@ -35,11 +35,11 @@ import net.minecraft.item.PickaxeItem;
import net.minecraft.item.ToolMaterials;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemDurabilityExtensions;
import reborncore.common.util.ItemUtils;
import team.reborn.energy.Energy;
import team.reborn.energy.EnergyHolder;
import team.reborn.energy.EnergySide;
import team.reborn.energy.EnergyTier;
@ -61,7 +61,7 @@ public class ItemJackhammer extends PickaxeItem implements EnergyHolder, ItemDur
// ItemPickaxe
@Override
public float getMiningSpeed(ItemStack stack, BlockState state) {
if (Block.isNaturalStone(state.getBlock()) && new ItemPowerManager(stack).getEnergyStored() >= cost) {
if (Block.isNaturalStone(state.getBlock()) && Energy.of(stack).getEnergy() >= cost) {
return miningSpeed;
} else {
return 0.5F;
@ -73,10 +73,8 @@ public class ItemJackhammer extends PickaxeItem implements EnergyHolder, ItemDur
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
Random rand = new Random();
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
Energy.of(stack).use(cost);
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
}
return true;
}

View file

@ -35,11 +35,11 @@ import net.minecraft.item.*;
import net.minecraft.util.DefaultedList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemDurabilityExtensions;
import reborncore.common.util.ItemUtils;
import team.reborn.energy.Energy;
import team.reborn.energy.EnergyHolder;
import team.reborn.energy.EnergySide;
import team.reborn.energy.EnergyTier;
@ -71,7 +71,7 @@ public class ItemRockCutter extends PickaxeItem implements EnergyHolder, ItemDur
@Override
public float getMiningSpeed(ItemStack stack, BlockState state) {
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
if (Energy.of(stack).getEnergy() < cost) {
return 2F;
} else {
return Items.DIAMOND_PICKAXE.getMiningSpeed(stack, state);
@ -83,10 +83,8 @@ public class ItemRockCutter extends PickaxeItem implements EnergyHolder, ItemDur
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
Random rand = new Random();
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
Energy.of(stack).use(cost);
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
}
return true;
}
@ -137,8 +135,7 @@ public class ItemRockCutter extends PickaxeItem implements EnergyHolder, ItemDur
uncharged.addEnchantment(Enchantments.SILK_TOUCH, 1);
ItemStack charged = new ItemStack(TRContent.ROCK_CUTTER);
charged.addEnchantment(Enchantments.SILK_TOUCH, 1);
ItemPowerManager capEnergy = new ItemPowerManager(charged);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
Energy.of(charged).set(Energy.of(charged).getMaxStored());
itemList.add(uncharged);
itemList.add(charged);

View file

@ -44,10 +44,10 @@ import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.util.ChatUtils;
import reborncore.common.util.ItemUtils;
import team.reborn.energy.Energy;
import techreborn.config.TechRebornConfig;
import techreborn.init.TRContent;
import techreborn.items.tool.ItemChainsaw;
@ -117,7 +117,7 @@ public class ItemIndustrialChainsaw extends ItemChainsaw {
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
final ItemStack stack = player.getStackInHand(hand);
if (player.isSneaking()) {
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
if (Energy.of(stack).getEnergy() < cost) {
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
@ -148,7 +148,7 @@ public class ItemIndustrialChainsaw extends ItemChainsaw {
@Override
public void usageTick(World world, LivingEntity entity, ItemStack stack, int i) {
if (ItemUtils.isActive(stack) && new ItemPowerManager(stack).getEnergyStored() < cost) {
if (ItemUtils.isActive(stack) && Energy.of(stack).getEnergy() < cost) {
if(entity.world.isClient){
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "
@ -178,24 +178,21 @@ public class ItemIndustrialChainsaw extends ItemChainsaw {
return;
}
ItemPowerManager capEnergy = new ItemPowerManager(stack);
if (capEnergy.getEnergyStored() < cost) {
return;
}
Energy.of(stack).use(cost, () -> {
BlockState blockState = world.getBlockState(pos);
if (blockState.getHardness(world, pos) == -1.0F) {
return;
}
if(!(entityLiving instanceof PlayerEntity)){
return;
}
BlockState blockState = world.getBlockState(pos);
if (blockState.getHardness(world, pos) == -1.0F) {
return;
}
if(!(entityLiving instanceof PlayerEntity)){
return;
}
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
blockState.getBlock().afterBreak(world, (PlayerEntity) entityLiving, pos, blockState, world.getBlockEntity(pos), stack);
world.setBlockState(pos, Blocks.AIR.getDefaultState());
world.removeBlockEntity(pos);
});
blockState.getBlock().afterBreak(world, (PlayerEntity) entityLiving, pos, blockState, world.getBlockEntity(pos), stack);
world.setBlockState(pos, Blocks.AIR.getDefaultState());
world.removeBlockEntity(pos);
}
}

View file

@ -47,10 +47,10 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.RayTraceContext;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.util.ChatUtils;
import reborncore.common.util.ItemUtils;
import team.reborn.energy.Energy;
import techreborn.config.TechRebornConfig;
import techreborn.init.TRContent;
import techreborn.items.tool.ItemDrill;
@ -121,17 +121,14 @@ public class ItemIndustrialDrill extends ItemDrill {
private void breakBlock(BlockPos pos, World world, PlayerEntity playerIn, ItemStack drill) {
BlockState blockState = world.getBlockState(pos);
ItemPowerManager capEnergy = new ItemPowerManager(drill);
if(capEnergy.getEnergyStored() > cost){
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, playerIn);
Energy.of(drill).use(cost, () -> {
ExternalPowerSystems.requestEnergyFromArmor(drill, playerIn);
blockState.getBlock().onBlockRemoved(blockState, world, pos, blockState, true);
blockState.getBlock().afterBreak(world, playerIn, pos, blockState, world.getBlockEntity(pos), drill);
world.setBlockState(pos, Blocks.AIR.getDefaultState());
world.removeBlockEntity(pos);
}
});
}
private boolean shouldBreak(PlayerEntity playerIn, World worldIn, BlockPos originalPos, BlockPos pos) {
@ -176,7 +173,7 @@ public class ItemIndustrialDrill extends ItemDrill {
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
final ItemStack stack = player.getStackInHand(hand);
if (player.isSneaking()) {
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
if (Energy.of(stack).getEnergy() < cost) {
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
@ -207,7 +204,7 @@ public class ItemIndustrialDrill extends ItemDrill {
@Override
public void usageTick(World world, LivingEntity entity, ItemStack stack, int i) {
if (ItemUtils.isActive(stack) && new ItemPowerManager(stack).getEnergyStored() < cost) {
if (ItemUtils.isActive(stack) && Energy.of(stack).getEnergy() < cost) {
if(entity.world.isClient){
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "

View file

@ -42,13 +42,13 @@ import net.minecraft.text.TranslatableText;
import net.minecraft.util.*;
import net.minecraft.world.World;
import reborncore.api.items.ItemStackModifiers;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ChatUtils;
import reborncore.common.util.ItemDurabilityExtensions;
import reborncore.common.util.ItemUtils;
import reborncore.common.util.StringUtils;
import team.reborn.energy.Energy;
import team.reborn.energy.EnergyHolder;
import team.reborn.energy.EnergySide;
import team.reborn.energy.EnergyTier;
@ -77,8 +77,7 @@ public class ItemNanosaber extends SwordItem implements EnergyHolder, ItemDurabi
@Nullable
LivingEntity entityIn) {
if (ItemUtils.isActive(stack)) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
if (capEnergy.getMaxEnergyStored() - capEnergy.getEnergyStored() >= 0.9 * capEnergy.getMaxEnergyStored()) {
if (Energy.of(stack).getMaxStored() - Energy.of(stack).getEnergy() >= 0.9 * Energy.of(stack).getMaxStored()) {
return 0.5F;
}
return 1.0F;
@ -91,14 +90,9 @@ public class ItemNanosaber extends SwordItem implements EnergyHolder, ItemDurabi
// ItemSword
@Override
public boolean postHit(ItemStack stack, LivingEntity entityHit, LivingEntity entityHitter) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
if (capEnergy.getEnergyStored() >= cost) {
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityHitter);
return true;
}
return false;
boolean used = Energy.of(stack).use(cost);
ExternalPowerSystems.requestEnergyFromArmor(stack, entityHitter);
return used;
}
@Override
@ -116,7 +110,7 @@ public class ItemNanosaber extends SwordItem implements EnergyHolder, ItemDurabi
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
final ItemStack stack = player.getStackInHand(hand);
if (player.isSneaking()) {
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
if (Energy.of(stack).getEnergy() < cost) {
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
@ -147,7 +141,7 @@ public class ItemNanosaber extends SwordItem implements EnergyHolder, ItemDurabi
@Override
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
if (ItemUtils.isActive(stack) && new ItemPowerManager(stack).getEnergyStored() < cost) {
if (ItemUtils.isActive(stack) && Energy.of(stack).getEnergy() < cost) {
if(worldIn.isClient){
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "
@ -191,14 +185,12 @@ public class ItemNanosaber extends SwordItem implements EnergyHolder, ItemDurabi
ItemStack inactiveCharged = new ItemStack(TRContent.NANOSABER);
inactiveCharged.setTag(new CompoundTag());
inactiveCharged.getTag().putBoolean("isActive", false);
ItemPowerManager capEnergy = new ItemPowerManager(inactiveCharged);
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
Energy.of(inactiveCharged).set(Energy.of(inactiveCharged).getMaxStored());
ItemStack activeCharged = new ItemStack(TRContent.NANOSABER);
activeCharged.setTag(new CompoundTag());
activeCharged.getTag().putBoolean("isActive", true);
ItemPowerManager capEnergy2 = new ItemPowerManager(activeCharged);
capEnergy2.setEnergyStored(capEnergy2.getMaxEnergyStored());
Energy.of(activeCharged).set(Energy.of(activeCharged).getMaxStored());
itemList.add(inactiveUncharged);
itemList.add(inactiveCharged);

View file

@ -39,12 +39,12 @@ import net.minecraft.util.DefaultedList;
import net.minecraft.util.Formatting;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import reborncore.api.power.ItemPowerManager;
import reborncore.common.powerSystem.ExternalPowerSystems;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemDurabilityExtensions;
import reborncore.common.util.ItemUtils;
import reborncore.common.util.TorchHelper;
import team.reborn.energy.Energy;
import team.reborn.energy.EnergyHolder;
import team.reborn.energy.EnergySide;
import team.reborn.energy.EnergyTier;
@ -79,11 +79,8 @@ public class ItemOmniTool extends PickaxeItem implements EnergyHolder, ItemDurab
// ItemTool
@Override
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
Energy.of(stack).use(cost);
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
return true;
}
@ -110,13 +107,8 @@ public class ItemOmniTool extends PickaxeItem implements EnergyHolder, ItemDurab
@Override
public boolean postHit(ItemStack stack, LivingEntity entityliving, LivingEntity attacker) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
if (capEnergy.getEnergyStored() >= hitCost) {
capEnergy.useEnergy(hitCost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityliving);
entityliving.damage(DamageSource.player((PlayerEntity) attacker), 8F);
}
Energy.of(stack).use(hitCost, () -> entityliving.damage(DamageSource.player((PlayerEntity) attacker), 8F));
ExternalPowerSystems.requestEnergyFromArmor(stack, entityliving);
return false;
}