Merge remote-tracking branch 'remotes/origin/1.14' into 1.15
# Conflicts: # build.gradle # src/main/java/techreborn/client/render/DynamicBucketBakedModel.java # src/main/java/techreborn/client/render/DynamicCellBakedModel.java
This commit is contained in:
commit
2d8961589d
219 changed files with 2205 additions and 1634 deletions
|
@ -34,16 +34,18 @@ import net.minecraft.item.ItemGroup;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
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;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRArmorMaterial;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
||||
public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo {
|
||||
public class ItemCloakingDevice extends ItemTRArmour implements EnergyHolder {
|
||||
|
||||
public static int maxCharge = TechRebornConfig.cloakingDeviceCharge;
|
||||
public static int usage = TechRebornConfig.cloackingDeviceUsage;
|
||||
|
@ -59,21 +61,18 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
|
|||
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)) {
|
||||
if(Energy.of(stack).use(usage)){
|
||||
player.setInvisible(true);
|
||||
} else {
|
||||
if (!player.hasStatusEffect(StatusEffects.INVISIBILITY)) {
|
||||
player.setInvisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onArmorTick(World world, PlayerEntity player, ItemStack stack) {
|
||||
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
@Override
|
||||
|
@ -83,7 +82,7 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
|
|||
}
|
||||
InitUtils.initPoweredItems(TRContent.CLOAKING_DEVICE, itemList);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double getDurability(ItemStack stack) {
|
||||
return 1 - ItemUtils.getPowerForDurabilityBar(stack);
|
||||
|
@ -99,20 +98,24 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
|
|||
return PowerSystem.getDisplayPower().colour;
|
||||
}
|
||||
|
||||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.HIGH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxInput(EnergySide side) {
|
||||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,20 +27,24 @@ package techreborn.items.armor;
|
|||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.*;
|
||||
import net.minecraft.item.ArmorItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.util.ItemDurabilityExtensions;
|
||||
import reborncore.common.util.ItemUtils;
|
||||
import team.reborn.energy.EnergyHolder;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRArmorMaterial;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
||||
public class ItemLapotronicOrbpack extends ArmorItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemLapotronicOrbpack extends ArmorItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
// 400M FE maxCharge and 100k FE\t charge rate. Fully charged in 3 mins.
|
||||
public static final int maxCharge = TechRebornConfig.lapotronPackCharge;
|
||||
|
@ -62,8 +66,7 @@ public class ItemLapotronicOrbpack extends ArmorItem implements IEnergyItemInfo,
|
|||
@Override
|
||||
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
|
||||
if (entityIn instanceof PlayerEntity) {
|
||||
ItemLithiumIonBatpack.distributePowerToInventory(worldIn, (PlayerEntity) entityIn, stack,
|
||||
(int) transferLimit);
|
||||
ItemLithiumIonBatpack.distributePowerToInventory(worldIn, (PlayerEntity) entityIn, stack, transferLimit);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -84,17 +87,12 @@ public class ItemLapotronicOrbpack extends ArmorItem implements IEnergyItemInfo,
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
return transferLimit;
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.EXTREME;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,22 +29,25 @@ import net.fabricmc.api.Environment;
|
|||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.*;
|
||||
import net.minecraft.item.ArmorItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
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.EnergyHolder;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRArmorMaterial;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
||||
public class ItemLithiumIonBatpack extends ArmorItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemLithiumIonBatpack extends ArmorItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
// 8M FE maxCharge and 2k FE\t charge rate. Fully charged in 3 mins.
|
||||
public static final int maxCharge = TechRebornConfig.lithiumBatpackCharge;
|
||||
|
@ -59,11 +62,9 @@ public class ItemLithiumIonBatpack extends ArmorItem implements IEnergyItemInfo,
|
|||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -102,17 +103,13 @@ public class ItemLithiumIonBatpack extends ArmorItem implements IEnergyItemInfo,
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
return transferLimit;
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.HIGH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
return transferLimit;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,29 +32,30 @@ import net.minecraft.item.ItemPropertyGetter;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
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;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class ItemBattery extends Item implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemBattery extends Item implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
int maxEnergy = 0;
|
||||
int maxTransfer = 0;
|
||||
private final int maxEnergy;
|
||||
private final EnergyTier tier;
|
||||
|
||||
public ItemBattery(int maxEnergy, int maxTransfer) {
|
||||
public ItemBattery(int maxEnergy, EnergyTier tier) {
|
||||
super(new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamageIfAbsent(1));
|
||||
this.maxEnergy = maxEnergy;
|
||||
this.maxTransfer = maxTransfer;
|
||||
this.tier = tier;
|
||||
this.addPropertyGetter(new Identifier("techreborn:empty"), new ItemPropertyGetter() {
|
||||
@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;
|
||||
|
@ -80,17 +81,12 @@ public class ItemBattery extends Item implements IEnergyItemInfo, ItemDurability
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxEnergy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
return maxTransfer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
return maxTransfer;
|
||||
public EnergyTier getTier() {
|
||||
return tier;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
|||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
@ -37,7 +38,7 @@ public class ItemEnergyCrystal extends ItemBattery {
|
|||
|
||||
// 4M FE storage with 1k charge rate
|
||||
public ItemEnergyCrystal() {
|
||||
super(TechRebornConfig.energyCrystalMaxCharge, 1_000);
|
||||
super(TechRebornConfig.energyCrystalMaxCharge, EnergyTier.HIGH);
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
|||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
@ -37,7 +38,7 @@ public class ItemLapotronCrystal extends ItemBattery {
|
|||
|
||||
// 40M FE capacity with 10k FE\t charge rate
|
||||
public ItemLapotronCrystal() {
|
||||
super(TechRebornConfig.lapotronCrystalMaxCharge, 10_000);
|
||||
super(TechRebornConfig.lapotronCrystalMaxCharge, EnergyTier.EXTREME);
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
|||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
@ -37,7 +38,7 @@ public class ItemLapotronicOrb extends ItemBattery {
|
|||
|
||||
// 400M capacity with 100k FE\t charge rate
|
||||
public ItemLapotronicOrb() {
|
||||
super(TechRebornConfig.lapotronicOrbMaxCharge, 100_000);
|
||||
super(TechRebornConfig.lapotronicOrbMaxCharge, EnergyTier.EXTREME);
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
|||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
||||
|
@ -36,7 +37,7 @@ public class ItemLithiumIonBattery extends ItemBattery {
|
|||
|
||||
// 400k FE with 1k FE\t charge rate
|
||||
public ItemLithiumIonBattery() {
|
||||
super(400_000, 1_000);
|
||||
super(400_000, EnergyTier.HIGH);
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
|||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
||||
|
@ -36,7 +37,7 @@ public class ItemRedCellBattery extends ItemBattery {
|
|||
|
||||
// 40k FE capacity with 100 FE\t charge rate
|
||||
public ItemRedCellBattery() {
|
||||
super(40_000, 100);
|
||||
super(40_000, EnergyTier.LOW);
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
|
|
|
@ -35,18 +35,20 @@ import net.minecraft.item.*;
|
|||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
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;
|
||||
import techreborn.TechReborn;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemChainsaw extends AxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
public int maxCharge = 1;
|
||||
public int cost = 250;
|
||||
|
@ -63,7 +65,7 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
|
|||
@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;
|
||||
}
|
||||
|
@ -75,7 +77,7 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
|
|||
// 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 {
|
||||
|
@ -88,10 +90,8 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
|
|||
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;
|
||||
}
|
||||
|
@ -123,17 +123,22 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.MEDIUM;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxInput(EnergySide side) {
|
||||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -36,8 +36,8 @@ import net.minecraft.util.ActionResult;
|
|||
import net.minecraft.util.Formatting;
|
||||
import net.minecraft.util.SystemUtil;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import reborncore.api.power.EnergyBlockEntity;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import team.reborn.energy.Energy;
|
||||
import techreborn.TechReborn;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
|
@ -65,8 +65,8 @@ public class ItemDebugTool extends Item {
|
|||
BlockEntity blockEntity = context.getWorld().getBlockEntity(context.getBlockPos());
|
||||
if (blockEntity != null) {
|
||||
sendMessage(context, new LiteralText(getBlockEntityType(blockEntity)));
|
||||
if (blockEntity instanceof EnergyBlockEntity) {
|
||||
sendMessage(context, new LiteralText(getRCPower((EnergyBlockEntity) blockEntity)));
|
||||
if (Energy.valid(blockEntity)) {
|
||||
sendMessage(context, new LiteralText(getRCPower(blockEntity)));
|
||||
}
|
||||
}
|
||||
return ActionResult.SUCCESS;
|
||||
|
@ -109,13 +109,13 @@ public class ItemDebugTool extends Item {
|
|||
return s;
|
||||
}
|
||||
|
||||
private String getRCPower(EnergyBlockEntity blockEntity) {
|
||||
private String getRCPower(BlockEntity blockEntity) {
|
||||
String s = "" + Formatting.GREEN;
|
||||
s += "Power: ";
|
||||
s += Formatting.BLUE;
|
||||
s += PowerSystem.getLocaliszedPower(blockEntity.getEnergy());
|
||||
s += PowerSystem.getLocaliszedPower(Energy.of(blockEntity).getEnergy());
|
||||
s += "/";
|
||||
s += PowerSystem.getLocaliszedPower(blockEntity.getMaxPower());
|
||||
s += PowerSystem.getLocaliszedPower(Energy.of(blockEntity).getMaxStored());
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
|
@ -31,17 +31,19 @@ import net.minecraft.entity.LivingEntity;
|
|||
import net.minecraft.item.*;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
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;
|
||||
import techreborn.TechReborn;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemDrill extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
public int maxCharge = 1;
|
||||
public int cost = 250;
|
||||
|
@ -57,7 +59,7 @@ public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurab
|
|||
// 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
|
||||
|
@ -73,10 +75,8 @@ public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurab
|
|||
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;
|
||||
}
|
||||
|
@ -109,17 +109,22 @@ public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurab
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.HIGH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxInput(EnergySide side) {
|
||||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,16 +35,19 @@ 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.IEnergyItemInfo;
|
||||
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;
|
||||
import techreborn.TechReborn;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemJackhammer extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
public int maxCharge = 1;
|
||||
public int cost = 250;
|
||||
|
@ -58,7 +61,7 @@ public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, Item
|
|||
// 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;
|
||||
|
@ -70,10 +73,8 @@ public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, Item
|
|||
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;
|
||||
}
|
||||
|
@ -107,17 +108,22 @@ public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, Item
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.MEDIUM;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxInput(EnergySide side) {
|
||||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,19 +35,21 @@ import net.minecraft.item.*;
|
|||
import net.minecraft.util.DefaultedList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
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;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemRockCutter extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
public static final int maxCharge = TechRebornConfig.rockCutterCharge;
|
||||
public int transferLimit = 1_000;
|
||||
|
@ -69,7 +71,7 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
|
|||
|
||||
@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);
|
||||
|
@ -81,10 +83,8 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
|
|||
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;
|
||||
}
|
||||
|
@ -135,8 +135,7 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
|
|||
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);
|
||||
|
@ -144,17 +143,22 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.HIGH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxInput(EnergySide side) {
|
||||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,19 +30,19 @@ import net.minecraft.item.Item;
|
|||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DefaultedList;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.util.ItemDurabilityExtensions;
|
||||
import reborncore.common.util.ItemUtils;
|
||||
import team.reborn.energy.EnergyHolder;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.TechReborn;
|
||||
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
||||
/**
|
||||
* Created by modmuss50 on 05/11/2016.
|
||||
*/
|
||||
public class ItemElectricTreetap extends Item implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemElectricTreetap extends Item implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
public static final int maxCharge = 10_000;
|
||||
public int cost = 20;
|
||||
|
@ -77,17 +77,12 @@ public class ItemElectricTreetap extends Item implements IEnergyItemInfo, ItemDu
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
return 200;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
return 0;
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.MEDIUM;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
if(Energy.of(stack).use(cost)){
|
||||
BlockState blockState = world.getBlockState(pos);
|
||||
if (blockState.getHardness(world, pos) == -1.0F) {
|
||||
return;
|
||||
}
|
||||
if(!(entityLiving instanceof PlayerEntity)){
|
||||
return;
|
||||
}
|
||||
|
||||
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
|
||||
|
||||
blockState.getBlock().afterBreak(world, (PlayerEntity) entityLiving, pos, blockState, world.getBlockEntity(pos), stack);
|
||||
world.setBlockState(pos, Blocks.AIR.getDefaultState());
|
||||
world.removeBlockEntity(pos);
|
||||
}
|
||||
|
||||
BlockState blockState = world.getBlockState(pos);
|
||||
if (blockState.getHardness(world, pos) == -1.0F) {
|
||||
return;
|
||||
}
|
||||
if(!(entityLiving instanceof PlayerEntity)){
|
||||
return;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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,11 +121,8 @@ 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);
|
||||
if(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);
|
||||
|
@ -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") + " "
|
||||
|
|
|
@ -28,13 +28,11 @@ import com.google.common.collect.Multimap;
|
|||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.item.TooltipContext;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
||||
import net.minecraft.entity.attribute.EntityAttributes;
|
||||
import reborncore.api.items.ItemStackModifiers;
|
||||
import reborncore.common.util.StringUtils;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.*;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
|
@ -43,13 +41,17 @@ import net.minecraft.text.Text;
|
|||
import net.minecraft.text.TranslatableText;
|
||||
import net.minecraft.util.*;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.api.power.IEnergyItemInfo;
|
||||
import reborncore.api.power.ItemPowerManager;
|
||||
import reborncore.api.items.ItemStackModifiers;
|
||||
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;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
|
@ -58,7 +60,7 @@ import techreborn.utils.MessageIDs;
|
|||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDurabilityExtensions, ItemStackModifiers {
|
||||
public class ItemNanosaber extends SwordItem implements EnergyHolder, ItemDurabilityExtensions, ItemStackModifiers {
|
||||
public static final int maxCharge = TechRebornConfig.nanoSaberCharge;
|
||||
public int transferLimit = 1_000;
|
||||
public int cost = 250;
|
||||
|
@ -75,8 +77,7 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
|||
@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;
|
||||
|
@ -89,14 +90,9 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
|||
// 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
|
||||
|
@ -114,7 +110,7 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
|||
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")));
|
||||
|
@ -145,7 +141,7 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
|||
|
||||
@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") + " "
|
||||
|
@ -189,14 +185,12 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
|||
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);
|
||||
|
@ -215,17 +209,22 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.HIGH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxInput(EnergySide side) {
|
||||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,26 +26,28 @@ package techreborn.items.tool.industrial;
|
|||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.Formatting;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.item.TooltipContext;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.damage.DamageSource;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.*;
|
||||
import net.minecraft.text.LiteralText;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.ActionResult;
|
||||
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.IEnergyItemInfo;
|
||||
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;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
|
@ -54,7 +56,7 @@ import techreborn.utils.InitUtils;
|
|||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
||||
public class ItemOmniTool extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
|
||||
public static final int maxCharge = TechRebornConfig.omniToolCharge;
|
||||
public int transferLimit = 1_000;
|
||||
|
@ -77,11 +79,8 @@ public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDu
|
|||
// 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;
|
||||
}
|
||||
|
||||
|
@ -108,13 +107,10 @@ public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDu
|
|||
|
||||
@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);
|
||||
|
||||
if(Energy.of(stack).use(hitCost)) {
|
||||
entityliving.damage(DamageSource.player((PlayerEntity) attacker), 8F);
|
||||
}
|
||||
ExternalPowerSystems.requestEnergyFromArmor(stack, entityliving);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -163,17 +159,22 @@ public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDu
|
|||
|
||||
// IEnergyItemInfo
|
||||
@Override
|
||||
public int getCapacity() {
|
||||
public double getMaxStoredPower() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxInput() {
|
||||
public double getMaxInput(EnergySide side) {
|
||||
return transferLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxOutput() {
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.HIGH;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue