Charge bench recode.
This commit is contained in:
parent
421597fbab
commit
16f1a8de17
2 changed files with 26 additions and 17 deletions
|
@ -45,5 +45,20 @@ public abstract class PoweredItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static double addEnergy(double energy, ItemStack stack){
|
||||||
|
if(stack.getItem() instanceof IEnergyInterfaceItem){
|
||||||
|
return ((IEnergyInterfaceItem) stack.getItem()).addEnergy(energy, stack);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double getMaxPower(ItemStack stack){
|
||||||
|
if(stack.getItem() instanceof IEnergyInterfaceItem){
|
||||||
|
return ((IEnergyInterfaceItem) stack.getItem()).getMaxPower(stack);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import reborncore.common.util.Inventory;
|
import reborncore.common.util.Inventory;
|
||||||
import techreborn.api.power.IEnergyInterfaceItem;
|
import techreborn.api.power.IEnergyInterfaceItem;
|
||||||
import techreborn.init.ModBlocks;
|
import techreborn.init.ModBlocks;
|
||||||
|
import techreborn.powerSystem.PoweredItem;
|
||||||
import techreborn.powerSystem.TilePowerAcceptor;
|
import techreborn.powerSystem.TilePowerAcceptor;
|
||||||
|
|
||||||
public class TileChargeBench extends TilePowerAcceptor implements IWrenchable, IInventory, ISidedInventory {
|
public class TileChargeBench extends TilePowerAcceptor implements IWrenchable, IInventory, ISidedInventory {
|
||||||
|
@ -27,28 +28,21 @@ public class TileChargeBench extends TilePowerAcceptor implements IWrenchable, I
|
||||||
public void updateEntity() {
|
public void updateEntity() {
|
||||||
super.updateEntity();
|
super.updateEntity();
|
||||||
|
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++) {
|
||||||
if (inventory.getStackInSlot(i) != null) {
|
if (inventory.getStackInSlot(i) != null) {
|
||||||
if (inventory.getStackInSlot(i).getItem() instanceof IEnergyInterfaceItem) {
|
if (getEnergy() > 0) {
|
||||||
ItemStack stack = inventory.getStackInSlot(i);
|
ItemStack stack = inventory.getStackInSlot(i);
|
||||||
double MaxCharge = ((IEnergyInterfaceItem) stack.getItem()).getMaxPower(stack);
|
if (stack.getItem() instanceof IEnergyInterfaceItem) {
|
||||||
double amount = ((IEnergyInterfaceItem) stack.getItem()).getMaxTransfer(stack);
|
IEnergyInterfaceItem interfaceItem = (IEnergyInterfaceItem) stack.getItem();
|
||||||
double CurrentCharge = ((IEnergyInterfaceItem) stack.getItem()).getEnergy(stack);
|
double trans = Math.min(interfaceItem.getMaxPower(stack) - interfaceItem.getEnergy(stack), Math.min(interfaceItem.getMaxTransfer(stack), getEnergy()));
|
||||||
if (CurrentCharge != MaxCharge && getEnergy() >= 0) {
|
interfaceItem.setEnergy(trans + interfaceItem.getEnergy(stack), stack);
|
||||||
((IEnergyInterfaceItem) stack.getItem()).addEnergy(MaxCharge - CurrentCharge, false, stack);
|
useEnergy(trans);
|
||||||
useEnergy(amount);
|
} else if (stack.getItem() instanceof IElectricItem) {
|
||||||
}
|
useEnergy(ElectricItem.manager.charge(stack, getEnergy(), 4, false, false));
|
||||||
} else if (inventory.getStackInSlot(i).getItem() instanceof IElectricItem) {
|
|
||||||
ItemStack stack = inventory.getStackInSlot(i);
|
|
||||||
double MaxCharge = ((IElectricItem) stack.getItem()).getMaxCharge(stack);
|
|
||||||
double amount = ((IElectricItem) stack.getItem()).getTransferLimit(stack);
|
|
||||||
double CurrentCharge = ElectricItem.manager.getCharge(stack);
|
|
||||||
if (CurrentCharge != MaxCharge && getEnergy() >= 0) {
|
|
||||||
ElectricItem.manager.charge(stack, MaxCharge - CurrentCharge, 4, false, false);
|
|
||||||
useEnergy(amount);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue