Initial migration to V2 Energy API (#2474)
* Initial Energy API refactor * Allow charging in energy storage BEs * Remove maven for experimental fabric Co-authored-by: modmuss50 <modmuss50@gmail.com>
This commit is contained in:
parent
2bc4886cc0
commit
3e2b0e11ae
75 changed files with 764 additions and 694 deletions
|
@ -40,22 +40,22 @@ import net.minecraft.util.collection.DefaultedList;
|
|||
import net.minecraft.world.World;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
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.utils.InitUtils;
|
||||
import techreborn.utils.MessageIDs;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BatteryItem extends Item implements EnergyHolder, ItemDurabilityExtensions {
|
||||
public class BatteryItem extends Item implements RcEnergyItem, ItemDurabilityExtensions {
|
||||
|
||||
private final int maxEnergy;
|
||||
private final EnergyTier tier;
|
||||
private final RcEnergyTier tier;
|
||||
|
||||
public BatteryItem(int maxEnergy, EnergyTier tier) {
|
||||
public BatteryItem(int maxEnergy, RcEnergyTier tier) {
|
||||
super(new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1));
|
||||
this.maxEnergy = maxEnergy;
|
||||
this.tier = tier;
|
||||
|
@ -102,12 +102,12 @@ public class BatteryItem extends Item implements EnergyHolder, ItemDurabilityExt
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxEnergy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
public RcEnergyTier getTier() {
|
||||
return tier;
|
||||
}
|
||||
|
||||
|
|
|
@ -36,19 +36,19 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.util.collection.DefaultedList;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
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.utils.InitUtils;
|
||||
|
||||
public class BatpackItem extends ArmorItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
public class BatpackItem extends ArmorItem implements RcEnergyItem, ItemDurabilityExtensions {
|
||||
|
||||
public final int maxCharge;
|
||||
public final EnergyTier tier;
|
||||
public final RcEnergyTier tier;
|
||||
|
||||
public BatpackItem(int maxCharge, ArmorMaterial material, EnergyTier tier) {
|
||||
public BatpackItem(int maxCharge, ArmorMaterial material, RcEnergyTier tier) {
|
||||
super(material, EquipmentSlot.CHEST, new Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
|
||||
this.maxCharge = maxCharge;
|
||||
this.tier = tier;
|
||||
|
@ -86,12 +86,12 @@ public class BatpackItem extends ArmorItem implements EnergyHolder, ItemDurabili
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
public RcEnergyTier getTier() {
|
||||
return tier;
|
||||
}
|
||||
|
||||
|
|
|
@ -35,17 +35,15 @@ import net.minecraft.util.collection.DefaultedList;
|
|||
import reborncore.api.items.ArmorBlockEntityTicker;
|
||||
import reborncore.api.items.ArmorRemoveHandler;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
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 reborncore.common.powerSystem.RcEnergyTier;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRArmorMaterials;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
||||
public class CloakingDeviceItem extends TRArmourItem implements EnergyHolder, ArmorBlockEntityTicker, ArmorRemoveHandler {
|
||||
public class CloakingDeviceItem extends TRArmourItem implements RcEnergyItem, ArmorBlockEntityTicker, ArmorRemoveHandler {
|
||||
|
||||
public static int maxCharge = TechRebornConfig.cloakingDeviceCharge;
|
||||
public static int cost = TechRebornConfig.cloackingDeviceCost;
|
||||
|
@ -94,24 +92,24 @@ public class CloakingDeviceItem extends TRArmourItem implements EnergyHolder, Ar
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.INSANE;
|
||||
public RcEnergyTier getTier() {
|
||||
return RcEnergyTier.INSANE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
public long getEnergyMaxOutput() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ArmorTickable
|
||||
@Override
|
||||
public void tickArmor(ItemStack stack, PlayerEntity playerEntity) {
|
||||
if (Energy.of(stack).use(cost)) {
|
||||
if (tryUseEnergy(stack, cost)) {
|
||||
playerEntity.setInvisible(true);
|
||||
} else {
|
||||
if (playerEntity.isInvisible()) {
|
||||
|
|
|
@ -44,21 +44,20 @@ import reborncore.api.items.ArmorBlockEntityTicker;
|
|||
import reborncore.api.items.ArmorRemoveHandler;
|
||||
import reborncore.api.items.ItemStackModifiers;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
import reborncore.common.util.ItemUtils;
|
||||
import team.reborn.energy.Energy;
|
||||
import team.reborn.energy.EnergyHolder;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.utils.InitUtils;
|
||||
|
||||
public class QuantumSuitItem extends TRArmourItem implements ItemStackModifiers, ArmorBlockEntityTicker, ArmorRemoveHandler, EnergyHolder {
|
||||
public class QuantumSuitItem extends TRArmourItem implements ItemStackModifiers, ArmorBlockEntityTicker, ArmorRemoveHandler, RcEnergyItem {
|
||||
|
||||
public final double flyCost = TechRebornConfig.quantumSuitFlyingCost;
|
||||
public final double swimCost = TechRebornConfig.quantumSuitSwimmingCost;
|
||||
public final double breathingCost = TechRebornConfig.quantumSuitBreathingCost;
|
||||
public final double sprintingCost = TechRebornConfig.quantumSuitSprintingCost;
|
||||
public final double fireExtinguishCost = TechRebornConfig.fireExtinguishCost;
|
||||
public final long flyCost = TechRebornConfig.quantumSuitFlyingCost;
|
||||
public final long swimCost = TechRebornConfig.quantumSuitSwimmingCost;
|
||||
public final long breathingCost = TechRebornConfig.quantumSuitBreathingCost;
|
||||
public final long sprintingCost = TechRebornConfig.quantumSuitSprintingCost;
|
||||
public final long fireExtinguishCost = TechRebornConfig.fireExtinguishCost;
|
||||
|
||||
public final boolean enableSprint = TechRebornConfig.quantumSuitEnableSprint;
|
||||
public final boolean enableFlight = TechRebornConfig.quantumSuitEnableFlight;
|
||||
|
@ -73,12 +72,12 @@ public class QuantumSuitItem extends TRArmourItem implements ItemStackModifiers,
|
|||
attributes.removeAll(EntityAttributes.GENERIC_MOVEMENT_SPEED);
|
||||
|
||||
if (this.slot == EquipmentSlot.LEGS && equipmentSlot == EquipmentSlot.LEGS && enableSprint) {
|
||||
if (Energy.of(stack).getEnergy() > sprintingCost) {
|
||||
if (getStoredEnergy(stack) > sprintingCost) {
|
||||
attributes.put(EntityAttributes.GENERIC_MOVEMENT_SPEED, new EntityAttributeModifier(MODIFIERS[equipmentSlot.getEntitySlotId()], "Movement Speed", 0.15, EntityAttributeModifier.Operation.ADDITION));
|
||||
}
|
||||
}
|
||||
|
||||
if (equipmentSlot == this.slot && Energy.of(stack).getEnergy() > 0) {
|
||||
if (equipmentSlot == this.slot && getStoredEnergy(stack) > 0) {
|
||||
attributes.put(EntityAttributes.GENERIC_ARMOR, new EntityAttributeModifier(MODIFIERS[slot.getEntitySlotId()], "Armor modifier", 20, EntityAttributeModifier.Operation.ADDITION));
|
||||
attributes.put(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, new EntityAttributeModifier(MODIFIERS[slot.getEntitySlotId()], "Knockback modifier", 2, EntityAttributeModifier.Operation.ADDITION));
|
||||
}
|
||||
|
@ -89,17 +88,17 @@ public class QuantumSuitItem extends TRArmourItem implements ItemStackModifiers,
|
|||
switch (this.slot) {
|
||||
case HEAD:
|
||||
if (playerEntity.isSubmergedInWater()) {
|
||||
if (Energy.of(stack).use(breathingCost)) {
|
||||
if (tryUseEnergy(stack, breathingCost)) {
|
||||
playerEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.WATER_BREATHING, 5, 1));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CHEST:
|
||||
if (enableFlight){
|
||||
if (Energy.of(stack).getEnergy() > flyCost && !TechReborn.elytraPredicate.test(playerEntity)) {
|
||||
if (getStoredEnergy(stack) > flyCost && !TechReborn.elytraPredicate.test(playerEntity)) {
|
||||
playerEntity.getAbilities().allowFlying = true;
|
||||
if (playerEntity.getAbilities().flying) {
|
||||
Energy.of(stack).use(flyCost);
|
||||
tryUseEnergy(stack, flyCost);
|
||||
}
|
||||
playerEntity.setOnGround(true);
|
||||
} else {
|
||||
|
@ -107,18 +106,18 @@ public class QuantumSuitItem extends TRArmourItem implements ItemStackModifiers,
|
|||
playerEntity.getAbilities().flying = false;
|
||||
}
|
||||
}
|
||||
if (playerEntity.isOnFire() && Energy.of(stack).getEnergy() > fireExtinguishCost) {
|
||||
if (playerEntity.isOnFire() && getStoredEnergy(stack) > fireExtinguishCost) {
|
||||
playerEntity.extinguish();
|
||||
}
|
||||
break;
|
||||
case LEGS:
|
||||
if (playerEntity.isSprinting() && enableSprint) {
|
||||
Energy.of(stack).use(sprintingCost);
|
||||
tryUseEnergy(stack, sprintingCost);
|
||||
}
|
||||
break;
|
||||
case FEET:
|
||||
if (playerEntity.isSwimming()) {
|
||||
if (Energy.of(stack).use(swimCost)) {
|
||||
if (tryUseEnergy(stack, swimCost)) {
|
||||
playerEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.DOLPHINS_GRACE, 5, 1));
|
||||
}
|
||||
}
|
||||
|
@ -169,13 +168,13 @@ public class QuantumSuitItem extends TRArmourItem implements ItemStackModifiers,
|
|||
}
|
||||
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return TechRebornConfig.quantumSuitCapacity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.EXTREME;
|
||||
public RcEnergyTier getTier() {
|
||||
return RcEnergyTier.EXTREME;
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
|
|
|
@ -34,27 +34,25 @@ import net.minecraft.util.collection.DefaultedList;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
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.utils.InitUtils;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ChainsawItem extends AxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
public class ChainsawItem extends AxeItem implements RcEnergyItem, ItemDurabilityExtensions {
|
||||
|
||||
public final int maxCharge;
|
||||
public final int cost;
|
||||
public final float poweredSpeed;
|
||||
private final float unpoweredSpeed;
|
||||
public final Item referenceTool;
|
||||
public final EnergyTier tier;
|
||||
public final RcEnergyTier tier;
|
||||
|
||||
public ChainsawItem(ToolMaterials material, int energyCapacity, EnergyTier tier, int cost, float poweredSpeed, float unpoweredSpeed, Item referenceTool) {
|
||||
public ChainsawItem(ToolMaterials material, int energyCapacity, RcEnergyTier tier, int cost, float poweredSpeed, float unpoweredSpeed, Item referenceTool) {
|
||||
// combat stats same as for diamond axe. Fix for #2468
|
||||
super(material, 5.0F, -3.0F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
|
||||
this.maxCharge = energyCapacity;
|
||||
|
@ -68,7 +66,7 @@ public class ChainsawItem extends AxeItem implements EnergyHolder, ItemDurabilit
|
|||
// AxeItem
|
||||
@Override
|
||||
public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) {
|
||||
if (Energy.of(stack).getEnergy() >= cost
|
||||
if (getStoredEnergy(stack) >= cost
|
||||
&& (state.getMaterial() == Material.WOOD || state.getMaterial() == Material.NETHER_WOOD)) {
|
||||
return poweredSpeed;
|
||||
}
|
||||
|
@ -80,7 +78,7 @@ public class ChainsawItem 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) {
|
||||
Energy.of(stack).use(cost);
|
||||
tryUseEnergy(stack, cost);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -138,17 +136,17 @@ public class ChainsawItem extends AxeItem implements EnergyHolder, ItemDurabilit
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
public RcEnergyTier getTier() {
|
||||
return tier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
public long getEnergyMaxOutput() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ import net.minecraft.util.Formatting;
|
|||
import net.minecraft.util.Util;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import team.reborn.energy.Energy;
|
||||
import team.reborn.energy.api.EnergyStorage;
|
||||
import techreborn.TechReborn;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
|
@ -60,26 +60,30 @@ public class DebugToolItem extends Item {
|
|||
if (block == null) {
|
||||
return ActionResult.FAIL;
|
||||
}
|
||||
if (context.getWorld().isClient) {
|
||||
return ActionResult.SUCCESS;
|
||||
}
|
||||
sendMessage(context, new LiteralText(getRegistryName(block)));
|
||||
|
||||
for (Entry<Property<?>, Comparable<?>> entry : blockState.getEntries().entrySet()) {
|
||||
sendMessage(context, new LiteralText(getPropertyString(entry)));
|
||||
}
|
||||
|
||||
EnergyStorage energyStorage = EnergyStorage.SIDED.find(context.getWorld(), context.getBlockPos(), context.getSide());
|
||||
if (energyStorage != null) {
|
||||
sendMessage(context, new LiteralText(getRCPower(energyStorage)));
|
||||
}
|
||||
|
||||
BlockEntity blockEntity = context.getWorld().getBlockEntity(context.getBlockPos());
|
||||
if (blockEntity == null) {
|
||||
return ActionResult.SUCCESS;
|
||||
return ActionResult.CONSUME;
|
||||
}
|
||||
|
||||
sendMessage(context, new LiteralText(getBlockEntityType(blockEntity)));
|
||||
|
||||
if (Energy.valid(blockEntity)) {
|
||||
sendMessage(context, new LiteralText(getRCPower(blockEntity)));
|
||||
}
|
||||
|
||||
sendMessage(context, getBlockEntityTags(blockEntity));
|
||||
|
||||
return ActionResult.SUCCESS;
|
||||
return ActionResult.CONSUME;
|
||||
}
|
||||
|
||||
private void sendMessage(ItemUsageContext context, Text message) {
|
||||
|
@ -120,13 +124,13 @@ public class DebugToolItem extends Item {
|
|||
return s;
|
||||
}
|
||||
|
||||
private String getRCPower(BlockEntity blockEntity) {
|
||||
private String getRCPower(EnergyStorage energyStorage) {
|
||||
String s = "" + Formatting.GREEN;
|
||||
s += "Power: ";
|
||||
s += Formatting.BLUE;
|
||||
s += PowerSystem.getLocalizedPower(Energy.of(blockEntity).getEnergy());
|
||||
s += PowerSystem.getLocalizedPower(energyStorage.getAmount());
|
||||
s += "/";
|
||||
s += PowerSystem.getLocalizedPower(Energy.of(blockEntity).getMaxStored());
|
||||
s += PowerSystem.getLocalizedPower(energyStorage.getCapacity());
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
|
@ -36,25 +36,23 @@ import net.minecraft.util.collection.DefaultedList;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
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.utils.InitUtils;
|
||||
|
||||
public class DrillItem extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions, DynamicAttributeTool {
|
||||
public class DrillItem extends PickaxeItem implements RcEnergyItem, ItemDurabilityExtensions, DynamicAttributeTool {
|
||||
|
||||
public final int maxCharge;
|
||||
public final int cost;
|
||||
public final float poweredSpeed;
|
||||
public final float unpoweredSpeed;
|
||||
public final int miningLevel;
|
||||
public final EnergyTier tier;
|
||||
public final RcEnergyTier tier;
|
||||
|
||||
public DrillItem(ToolMaterials material, int energyCapacity, EnergyTier tier, int cost, float poweredSpeed, float unpoweredSpeed, MiningLevel miningLevel) {
|
||||
public DrillItem(ToolMaterials material, int energyCapacity, RcEnergyTier tier, int cost, float poweredSpeed, float unpoweredSpeed, MiningLevel miningLevel) {
|
||||
// combat stats same as for diamond pickaxe. Fix for #2468
|
||||
super(material, 1, -2.8F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
|
||||
this.maxCharge = energyCapacity;
|
||||
|
@ -69,7 +67,7 @@ public class DrillItem extends PickaxeItem implements EnergyHolder, ItemDurabili
|
|||
public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) {
|
||||
// Going to remain to use this ol reliable function, the fabric one is funky
|
||||
|
||||
if (Energy.of(stack).getEnergy() >= cost) {
|
||||
if (getStoredEnergy(stack) >= cost) {
|
||||
if (stack.getItem().isSuitableFor(state)) {
|
||||
return poweredSpeed;
|
||||
} else {
|
||||
|
@ -105,7 +103,7 @@ public class DrillItem extends PickaxeItem implements EnergyHolder, ItemDurabili
|
|||
@Override
|
||||
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
||||
if (worldIn.random.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
||||
Energy.of(stack).use(cost);
|
||||
tryUseEnergy(stack, cost);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -153,17 +151,17 @@ public class DrillItem extends PickaxeItem implements EnergyHolder, ItemDurabili
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
public RcEnergyTier getTier() {
|
||||
return tier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
public long getEnergyMaxOutput() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,26 +37,24 @@ import net.minecraft.util.collection.DefaultedList;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
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.utils.InitUtils;
|
||||
import techreborn.utils.ToolsUtil;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class JackhammerItem extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions, DynamicAttributeTool {
|
||||
public class JackhammerItem extends PickaxeItem implements RcEnergyItem, ItemDurabilityExtensions, DynamicAttributeTool {
|
||||
|
||||
public final int maxCharge;
|
||||
public final EnergyTier tier;
|
||||
public final RcEnergyTier tier;
|
||||
public final int cost;
|
||||
protected final float unpoweredSpeed = 0.5F;
|
||||
|
||||
public JackhammerItem(int energyCapacity, EnergyTier tier, int cost) {
|
||||
public JackhammerItem(int energyCapacity, RcEnergyTier tier, int cost) {
|
||||
// combat stats same as for diamond pickaxe. Fix for #2468
|
||||
super(ToolMaterials.DIAMOND, 1, -2.8F, new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
|
||||
this.maxCharge = energyCapacity;
|
||||
|
@ -67,7 +65,7 @@ public class JackhammerItem extends PickaxeItem implements EnergyHolder, ItemDur
|
|||
// PickaxeItem
|
||||
@Override
|
||||
public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) {
|
||||
if (Energy.of(stack).getEnergy() < cost) return unpoweredSpeed;
|
||||
if (getStoredEnergy(stack) < cost) return unpoweredSpeed;
|
||||
if (ToolsUtil.JackHammerSkippedBlocks(state)) return unpoweredSpeed;
|
||||
|
||||
if (state.getMaterial() == Material.STONE) {
|
||||
|
@ -95,7 +93,7 @@ public class JackhammerItem 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) {
|
||||
Energy.of(stack).use(cost);
|
||||
tryUseEnergy(stack, cost);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -132,17 +130,17 @@ public class JackhammerItem extends PickaxeItem implements EnergyHolder, ItemDur
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
public RcEnergyTier getTier() {
|
||||
return tier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
public long getEnergyMaxOutput() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ import net.minecraft.world.World;
|
|||
import org.jetbrains.annotations.Nullable;
|
||||
import reborncore.common.misc.MultiBlockBreakingTool;
|
||||
import reborncore.common.util.ItemUtils;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.items.tool.JackhammerItem;
|
||||
import techreborn.utils.MessageIDs;
|
||||
|
@ -55,7 +55,7 @@ import java.util.stream.Collectors;
|
|||
public class AdvancedJackhammerItem extends JackhammerItem implements MultiBlockBreakingTool {
|
||||
|
||||
public AdvancedJackhammerItem() {
|
||||
super(TechRebornConfig.advancedJackhammerCharge, EnergyTier.EXTREME, TechRebornConfig.advancedJackhammerCost);
|
||||
super(TechRebornConfig.advancedJackhammerCharge, RcEnergyTier.EXTREME, TechRebornConfig.advancedJackhammerCost);
|
||||
}
|
||||
|
||||
private boolean shouldBreak(World worldIn, BlockPos originalPos, BlockPos pos, ItemStack stack) {
|
||||
|
|
|
@ -31,10 +31,10 @@ import net.minecraft.item.ItemGroup;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.collection.DefaultedList;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
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.utils.InitUtils;
|
||||
|
@ -42,11 +42,11 @@ import techreborn.utils.InitUtils;
|
|||
/**
|
||||
* Created by modmuss50 on 05/11/2016.
|
||||
*/
|
||||
public class ElectricTreetapItem extends Item implements EnergyHolder, ItemDurabilityExtensions {
|
||||
public class ElectricTreetapItem extends Item implements RcEnergyItem, ItemDurabilityExtensions {
|
||||
|
||||
public final int maxCharge = TechRebornConfig.electricTreetapCharge;
|
||||
public int cost = TechRebornConfig.electricTreetapCost;
|
||||
public EnergyTier tier = EnergyTier.MEDIUM;
|
||||
public RcEnergyTier tier = RcEnergyTier.MEDIUM;
|
||||
|
||||
public ElectricTreetapItem() {
|
||||
super(new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
|
||||
|
@ -85,12 +85,12 @@ public class ElectricTreetapItem extends Item implements EnergyHolder, ItemDurab
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
public RcEnergyTier getTier() {
|
||||
return tier;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,19 +36,17 @@ import net.minecraft.util.collection.DefaultedList;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
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 reborncore.common.powerSystem.RcEnergyTier;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class RockCutterItem extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||
public class RockCutterItem extends PickaxeItem implements RcEnergyItem, ItemDurabilityExtensions {
|
||||
|
||||
public static final int maxCharge = TechRebornConfig.rockCutterCharge;
|
||||
public int cost = TechRebornConfig.rockCutterCost;
|
||||
|
@ -67,7 +65,7 @@ public class RockCutterItem extends PickaxeItem implements EnergyHolder, ItemDur
|
|||
|
||||
@Override
|
||||
public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) {
|
||||
if (Energy.of(stack).getEnergy() < cost) {
|
||||
if (getStoredEnergy(stack) < cost) {
|
||||
return 2F;
|
||||
} else {
|
||||
return Items.DIAMOND_PICKAXE.getMiningSpeedMultiplier(stack, state);
|
||||
|
@ -79,7 +77,7 @@ public class RockCutterItem 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) {
|
||||
Energy.of(stack).use(cost);
|
||||
tryUseEnergy(stack, cost);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -123,7 +121,7 @@ public class RockCutterItem extends PickaxeItem implements EnergyHolder, ItemDur
|
|||
uncharged.addEnchantment(Enchantments.SILK_TOUCH, 1);
|
||||
ItemStack charged = new ItemStack(TRContent.ROCK_CUTTER);
|
||||
charged.addEnchantment(Enchantments.SILK_TOUCH, 1);
|
||||
Energy.of(charged).set(Energy.of(charged).getMaxStored());
|
||||
setStoredEnergy(charged, getEnergyCapacity());
|
||||
|
||||
stacks.add(uncharged);
|
||||
stacks.add(charged);
|
||||
|
@ -147,17 +145,17 @@ public class RockCutterItem extends PickaxeItem implements EnergyHolder, ItemDur
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.MEDIUM;
|
||||
public RcEnergyTier getTier() {
|
||||
return RcEnergyTier.MEDIUM;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
public long getEnergyMaxOutput() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,8 +43,7 @@ import net.minecraft.util.math.Direction;
|
|||
import net.minecraft.world.World;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import reborncore.common.util.ItemUtils;
|
||||
import team.reborn.energy.Energy;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.items.tool.ChainsawItem;
|
||||
import techreborn.utils.MessageIDs;
|
||||
|
@ -59,7 +58,7 @@ public class IndustrialChainsawItem extends ChainsawItem {
|
|||
private static final Direction[] SEARCH_ORDER = new Direction[]{Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST, Direction.UP};
|
||||
|
||||
public IndustrialChainsawItem() {
|
||||
super(ToolMaterials.DIAMOND, TechRebornConfig.industrialChainsawCharge, EnergyTier.EXTREME, TechRebornConfig.industrialChainsawCost, 20F, 1.0F, Items.DIAMOND_AXE);
|
||||
super(ToolMaterials.DIAMOND, TechRebornConfig.industrialChainsawCharge, RcEnergyTier.EXTREME, TechRebornConfig.industrialChainsawCost, 20F, 1.0F, Items.DIAMOND_AXE);
|
||||
}
|
||||
|
||||
private void findWood(World world, BlockPos pos, List<BlockPos> wood, List<BlockPos> leaves) {
|
||||
|
@ -95,7 +94,7 @@ public class IndustrialChainsawItem extends ChainsawItem {
|
|||
findWood(worldIn, pos, wood, leaves);
|
||||
wood.remove(pos);
|
||||
wood.stream()
|
||||
.filter(p -> Energy.of(stack).simulate().use(cost))
|
||||
.filter(p -> tryUseEnergy(stack, cost))
|
||||
.forEach(pos1 -> ToolsUtil.breakBlock(stack, worldIn, pos1, entityLiving, cost));
|
||||
leaves.remove(pos);
|
||||
leaves.forEach(pos1 -> ToolsUtil.breakBlock(stack, worldIn, pos1, entityLiving, 0));
|
||||
|
|
|
@ -43,7 +43,7 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.world.World;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import reborncore.common.util.ItemUtils;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
import techreborn.items.tool.DrillItem;
|
||||
|
@ -57,7 +57,7 @@ import java.util.List;
|
|||
public class IndustrialDrillItem extends DrillItem {
|
||||
|
||||
public IndustrialDrillItem() {
|
||||
super(ToolMaterials.DIAMOND, TechRebornConfig.industrialDrillCharge, EnergyTier.INSANE, TechRebornConfig.industrialDrillCost, 20.0F, 1.0F, MiningLevel.DIAMOND);
|
||||
super(ToolMaterials.DIAMOND, TechRebornConfig.industrialDrillCharge, RcEnergyTier.INSANE, TechRebornConfig.industrialDrillCost, 20.0F, 1.0F, MiningLevel.DIAMOND);
|
||||
}
|
||||
|
||||
private boolean shouldBreak(PlayerEntity playerIn, World worldIn, BlockPos originalPos, BlockPos pos) {
|
||||
|
|
|
@ -45,7 +45,7 @@ import org.jetbrains.annotations.Nullable;
|
|||
import reborncore.common.misc.MultiBlockBreakingTool;
|
||||
import reborncore.common.util.ChatUtils;
|
||||
import reborncore.common.util.ItemUtils;
|
||||
import team.reborn.energy.EnergyTier;
|
||||
import reborncore.common.powerSystem.RcEnergyTier;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.items.tool.JackhammerItem;
|
||||
import techreborn.utils.MessageIDs;
|
||||
|
@ -59,7 +59,7 @@ import java.util.stream.Collectors;
|
|||
public class IndustrialJackhammerItem extends JackhammerItem implements MultiBlockBreakingTool {
|
||||
|
||||
public IndustrialJackhammerItem() {
|
||||
super(TechRebornConfig.industrialJackhammerCharge, EnergyTier.INSANE, TechRebornConfig.industrialJackhammerCost);
|
||||
super(TechRebornConfig.industrialJackhammerCharge, RcEnergyTier.INSANE, TechRebornConfig.industrialJackhammerCost);
|
||||
}
|
||||
|
||||
// Cycle Inactive, Active 3*3 and Active 5*5
|
||||
|
|
|
@ -46,12 +46,10 @@ import net.minecraft.world.World;
|
|||
import org.jetbrains.annotations.Nullable;
|
||||
import reborncore.api.items.ItemStackModifiers;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
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 reborncore.common.powerSystem.RcEnergyTier;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
|
@ -59,7 +57,7 @@ import techreborn.utils.MessageIDs;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
public class NanosaberItem extends SwordItem implements EnergyHolder, ItemDurabilityExtensions, ItemStackModifiers {
|
||||
public class NanosaberItem extends SwordItem implements RcEnergyItem, ItemDurabilityExtensions, ItemStackModifiers {
|
||||
public static final int maxCharge = TechRebornConfig.nanosaberCharge;
|
||||
public int cost = TechRebornConfig.nanosaberCost;
|
||||
|
||||
|
@ -71,7 +69,7 @@ public class NanosaberItem extends SwordItem implements EnergyHolder, ItemDurabi
|
|||
// SwordItem
|
||||
@Override
|
||||
public boolean postHit(ItemStack stack, LivingEntity entityHit, LivingEntity entityHitter) {
|
||||
return Energy.of(stack).use(cost);
|
||||
return tryUseEnergy(stack, cost);
|
||||
}
|
||||
|
||||
// ToolItem
|
||||
|
@ -120,12 +118,12 @@ public class NanosaberItem extends SwordItem implements EnergyHolder, ItemDurabi
|
|||
ItemStack inactiveCharged = new ItemStack(TRContent.NANOSABER);
|
||||
inactiveCharged.setNbt(new NbtCompound());
|
||||
inactiveCharged.getOrCreateNbt().putBoolean("isActive", false);
|
||||
Energy.of(inactiveCharged).set(Energy.of(inactiveCharged).getMaxStored());
|
||||
setStoredEnergy(inactiveCharged, getEnergyCapacity());
|
||||
|
||||
ItemStack activeCharged = new ItemStack(TRContent.NANOSABER);
|
||||
activeCharged.setNbt(new NbtCompound());
|
||||
activeCharged.getOrCreateNbt().putBoolean("isActive", true);
|
||||
Energy.of(activeCharged).set(Energy.of(activeCharged).getMaxStored());
|
||||
setStoredEnergy(activeCharged, getEnergyCapacity());
|
||||
|
||||
itemList.add(inactiveUncharged);
|
||||
itemList.add(inactiveCharged);
|
||||
|
@ -140,17 +138,17 @@ public class NanosaberItem extends SwordItem implements EnergyHolder, ItemDurabi
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.EXTREME;
|
||||
public RcEnergyTier getTier() {
|
||||
return RcEnergyTier.EXTREME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
public long getEnergyMaxOutput() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -45,13 +45,11 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.world.World;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import reborncore.common.powerSystem.PowerSystem;
|
||||
import reborncore.common.powerSystem.RcEnergyItem;
|
||||
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 reborncore.common.powerSystem.RcEnergyTier;
|
||||
import techreborn.TechReborn;
|
||||
import techreborn.config.TechRebornConfig;
|
||||
import techreborn.init.TRContent;
|
||||
|
@ -60,7 +58,7 @@ import techreborn.utils.InitUtils;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
public class OmniToolItem extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions, DynamicAttributeTool {
|
||||
public class OmniToolItem extends PickaxeItem implements RcEnergyItem, ItemDurabilityExtensions, DynamicAttributeTool {
|
||||
|
||||
public final int maxCharge = TechRebornConfig.omniToolCharge;
|
||||
public int cost = TechRebornConfig.omniToolCost;
|
||||
|
@ -83,7 +81,7 @@ public class OmniToolItem extends PickaxeItem implements EnergyHolder, ItemDurab
|
|||
|
||||
@Override
|
||||
public float getMiningSpeedMultiplier(ItemStack stack, BlockState state) {
|
||||
if (Energy.of(stack).getEnergy() >= cost) {
|
||||
if (getStoredEnergy(stack) >= cost) {
|
||||
return ToolMaterials.DIAMOND.getMiningSpeedMultiplier();
|
||||
}
|
||||
return super.getMiningSpeedMultiplier(stack, state);
|
||||
|
@ -92,13 +90,13 @@ public class OmniToolItem extends PickaxeItem implements EnergyHolder, ItemDurab
|
|||
// MiningToolItem
|
||||
@Override
|
||||
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
||||
Energy.of(stack).use(cost);
|
||||
tryUseEnergy(stack, cost);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean postHit(ItemStack stack, LivingEntity entityliving, LivingEntity attacker) {
|
||||
if (Energy.of(stack).use(hitCost)) {
|
||||
if (tryUseEnergy(stack, hitCost)) {
|
||||
entityliving.damage(DamageSource.player((PlayerEntity) attacker), 8F);
|
||||
}
|
||||
return false;
|
||||
|
@ -159,18 +157,18 @@ public class OmniToolItem extends PickaxeItem implements EnergyHolder, ItemDurab
|
|||
|
||||
// EnergyHolder
|
||||
@Override
|
||||
public double getMaxStoredPower() {
|
||||
public long getEnergyCapacity() {
|
||||
return maxCharge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getMaxOutput(EnergySide side) {
|
||||
public long getEnergyMaxOutput() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnergyTier getTier() {
|
||||
return EnergyTier.EXTREME;
|
||||
public RcEnergyTier getTier() {
|
||||
return RcEnergyTier.EXTREME;
|
||||
}
|
||||
|
||||
// DynamicAttributeTool
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue