Fixed charging \ discharging items items. Closes #1547

This commit is contained in:
drcrazy 2018-06-20 18:27:25 +03:00
parent ca9a2c9b38
commit 30302e241b
16 changed files with 37 additions and 61 deletions

View file

@ -32,6 +32,7 @@ import net.minecraft.util.Rotation;
import net.minecraft.util.text.TextFormatting;
import reborncore.api.IToolDrop;
import reborncore.api.power.EnumPowerTier;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.powerSystem.TilePowerAcceptor;
import reborncore.common.util.StringUtils;
import techreborn.Core;
@ -157,13 +158,13 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
@Override
public void addInfo(List<String> info, boolean isRealTile) {
info.add(TextFormatting.GRAY + "Internal Energy Storage: " + TextFormatting.GOLD
+ getLocaliszedPowerFormatted((int) getMaxPower()));
+ PowerSystem.getLocaliszedPowerFormatted((int) getMaxPower()));
info.add(TextFormatting.GRAY + "Generation Rate Day: " + TextFormatting.GOLD
+ getLocaliszedPowerFormatted(panel.generationRateD));
+ PowerSystem.getLocaliszedPowerFormatted(panel.generationRateD));
info.add(TextFormatting.GRAY + "Generation Rate Night: " + TextFormatting.GOLD
+ getLocaliszedPowerFormatted(panel.generationRateN));
+ PowerSystem.getLocaliszedPowerFormatted(panel.generationRateN));
info.add(TextFormatting.GRAY + "Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(getTier().toString()));
}

View file

@ -32,6 +32,7 @@ import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.energy.IEnergyStorage;
import reborncore.api.IToolDrop;
import reborncore.api.power.EnumPowerTier;
import reborncore.api.power.IEnergyItemInfo;
import reborncore.api.tile.IInventoryProvider;
import reborncore.common.RebornCoreConfig;
import reborncore.common.powerSystem.TilePowerAcceptor;
@ -71,27 +72,20 @@ public class TileEnergyStorage extends TilePowerAcceptor
super.update();
if (!inventory.getStackInSlot(0).isEmpty()) {
ItemStack stack = inventory.getStackInSlot(0);
if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
if(getEnergy() > 0 && energyStorage.getEnergyStored() < energyStorage.getMaxEnergyStored()){
energyStorage.receiveEnergy((int) useEnergy(getMaxOutput()) * RebornCoreConfig.euPerFU, false);
if (stack.hasCapability(CapabilityEnergy.ENERGY, null)) {
IEnergyStorage powerItem = stack.getCapability(CapabilityEnergy.ENERGY, null);
int maxReceive = Math.min((powerItem.getMaxEnergyStored() - powerItem.getEnergyStored()),
(int) ((IEnergyItemInfo) stack.getItem()).getMaxTransfer(stack));
double maxUse = Math.min((double) (maxReceive / RebornCoreConfig.euPerFU), getMaxOutput());
if (getEnergy() >= 0.0 && maxReceive > 0) {
powerItem.receiveEnergy((int) useEnergy(maxUse) * RebornCoreConfig.euPerFU, false);
}
}
if(CompatManager.isIC2Loaded){
} else if (CompatManager.isIC2Loaded) {
IC2ItemCharger.chargeIc2Item(this, stack);
}
}
if (!inventory.getStackInSlot(1).isEmpty()) {
ItemStack stack = inventory.getStackInSlot(1);
if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
if(getEnergy() != getMaxPower() && energyStorage.getEnergyStored() > 0){
addEnergy(energyStorage.extractEnergy((int) (getMaxInput() * RebornCoreConfig.euPerFU), false) / RebornCoreConfig.euPerFU);
}
}
if(CompatManager.isIC2Loaded){
IC2ItemCharger.dischargeIc2Item(this, stack);
}
charge(1);
}
}

View file

@ -32,6 +32,7 @@ import net.minecraft.util.text.TextFormatting;
import reborncore.api.IListInfoProvider;
import reborncore.api.IToolDrop;
import reborncore.api.power.EnumPowerTier;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.powerSystem.TilePowerAcceptor;
import reborncore.common.registration.RebornRegistry;
import reborncore.common.registration.impl.ConfigRegistry;
@ -140,9 +141,9 @@ public class TileTransformer extends TilePowerAcceptor
// IListInfoProvider
@Override
public void addInfo(List<String> info, boolean isRealTile) {
info.add(TextFormatting.GRAY + "Input Rate: " + TextFormatting.GOLD + getLocaliszedPowerFormatted((int) getMaxInput()));
info.add(TextFormatting.GRAY + "Input Rate: " + TextFormatting.GOLD + PowerSystem.getLocaliszedPowerFormatted((int) getMaxInput()));
info.add(TextFormatting.GRAY + "Input Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(inputTier.toString()));
info.add(TextFormatting.GRAY + "Output Rate: " + TextFormatting.GOLD + getLocaliszedPowerFormatted((int) getMaxOutput()));
info.add(TextFormatting.GRAY + "Output Rate: " + TextFormatting.GOLD + PowerSystem.getLocaliszedPowerFormatted((int) getMaxOutput()));
info.add(TextFormatting.GRAY + "Output Tier: " + TextFormatting.GOLD + StringUtils.toFirstCapitalAllLowercase(ouputTier.toString()));
}