Items use energy to do work. Closes #1770

This commit is contained in:
drcrazy 2019-08-12 00:41:44 +03:00
parent 4012a69fab
commit 56d1d196f0
11 changed files with 14 additions and 12 deletions

View file

@ -119,6 +119,8 @@ public class BlockRubberLog extends LogBlock {
if (stack.isEmpty()) {
return false;
}
//TODO: Should it be here??
ItemPowerManager capEnergy = null;
if (stack.getItem() instanceof ItemElectricTreetap) {
capEnergy = new ItemPowerManager(stack);
@ -130,7 +132,7 @@ public class BlockRubberLog extends LogBlock {
0.6F, 1F);
if (!worldIn.isClient) {
if (capEnergy != null) {
capEnergy.extractEnergy(20, false);
capEnergy.useEnergy(20, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, playerIn);
} else {

View file

@ -63,7 +63,7 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
PlayerEntity player = (PlayerEntity) entityIn;
ItemPowerManager capEnergy = new ItemPowerManager(stack);
if (capEnergy != null && capEnergy.getEnergyStored() >= usage) {
capEnergy.extractEnergy(usage, false);
capEnergy.useEnergy(usage, false);
player.setInvisible(true);
} else {
if (!player.hasStatusEffect(StatusEffects.INVISIBILITY)) {

View file

@ -90,7 +90,7 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
}
return true;

View file

@ -75,7 +75,7 @@ public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurab
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
}
return true;

View file

@ -75,7 +75,7 @@ public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, Item
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
}
return true;

View file

@ -83,7 +83,7 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
}
return true;

View file

@ -60,7 +60,7 @@ public class ItemElectricTreetap extends Item implements IEnergyItemInfo, ItemDu
ItemPowerManager capEnergy = new ItemPowerManager(context.getStack());
if(TechRebornAPI.ic2Helper != null && capEnergy.getEnergyStored() >= cost){
if(TechRebornAPI.ic2Helper.extractSap(context, null) && !context.getWorld().isClient){
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, context.getPlayer());
return ActionResult.SUCCESS;

View file

@ -200,7 +200,7 @@ public class ItemIndustrialChainsaw extends ItemChainsaw {
return;
}
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
blockState.getBlock().afterBreak(world, (PlayerEntity) entityLiving, pos, blockState, world.getBlockEntity(pos), stack);

View file

@ -123,7 +123,7 @@ public class ItemIndustrialDrill extends ItemDrill {
ItemPowerManager capEnergy = new ItemPowerManager(drill);
if(capEnergy.getEnergyStored() > cost){
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, playerIn);
blockState.getBlock().onBlockRemoved(blockState, world, pos, blockState, true);

View file

@ -86,7 +86,7 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
public boolean postHit(ItemStack stack, LivingEntity entityHit, LivingEntity entityHitter) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
if (capEnergy.getEnergyStored() >= cost) {
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityHitter);
return true;

View file

@ -78,7 +78,7 @@ public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDu
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
capEnergy.extractEnergy(cost, false);
capEnergy.useEnergy(cost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
return true;
@ -109,7 +109,7 @@ public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDu
public boolean postHit(ItemStack stack, LivingEntity entityliving, LivingEntity attacker) {
ItemPowerManager capEnergy = new ItemPowerManager(stack);
if (capEnergy.getEnergyStored() >= hitCost) {
capEnergy.extractEnergy(hitCost, false);
capEnergy.useEnergy(hitCost, false);
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityliving);
entityliving.damage(DamageSource.player((PlayerEntity) attacker), 8F);