Battery now charges/discharges items, fixed capacitor energy bar

This commit is contained in:
Aidan Brady 2013-08-05 12:54:22 -04:00
parent bb9c3b6c32
commit 32a346633f
4 changed files with 33 additions and 1 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -16,6 +16,8 @@ public interface IBattery
public float getEnergyStored(ItemStack itemStack); public float getEnergyStored(ItemStack itemStack);
public float getMaxEnergyStored(ItemStack itemStack); public float getMaxEnergyStored(ItemStack itemStack);
public float getTransfer(ItemStack itemStack);
/** /**
* @param itemStack * @param itemStack

View file

@ -24,7 +24,7 @@ public class ItemCapacitor extends ItemBase implements IBattery
{ {
super("capacitor", id); super("capacitor", id);
this.setMaxStackSize(1); this.setMaxStackSize(1);
this.setMaxDamage(1000); this.setMaxDamage(100);
} }
@Override @Override
@ -59,6 +59,12 @@ public class ItemCapacitor extends ItemBase implements IBattery
return amount; return amount;
} }
@Override
public float getTransfer(ItemStack itemStack)
{
return getMaxEnergyStored(itemStack)*0.05F;
}
@Override @Override
public float getMaxEnergyStored(ItemStack itemStack) public float getMaxEnergyStored(ItemStack itemStack)

View file

@ -69,6 +69,30 @@ public class TileEntityBattery extends TileEntityBase implements IPacketReceiver
} }
} }
if(structure.visibleInventory[1] != null)
{
ItemStack itemStack = structure.visibleInventory[1];
IBattery battery = (IBattery)itemStack.getItem();
float energyStored = getMaxEnergyStored();
float batteryNeeded = battery.getMaxEnergyStored(itemStack)-battery.getEnergyStored(itemStack);
float toGive = Math.min(energyStored, Math.min(battery.getTransfer(itemStack), batteryNeeded));
battery.setEnergyStored(itemStack, battery.getEnergyStored(itemStack) + removeEnergy(toGive, true));
}
if(structure.visibleInventory[2] != null)
{
ItemStack itemStack = structure.visibleInventory[2];
IBattery battery = (IBattery)itemStack.getItem();
float energyNeeded = getMaxEnergyStored()-getEnergyStored();
float batteryStored = battery.getEnergyStored(itemStack);
float toReceive = Math.min(energyNeeded, Math.min(battery.getTransfer(itemStack), batteryStored));
battery.setEnergyStored(itemStack, battery.getEnergyStored(itemStack) - addEnergy(toReceive, true));
}
if(prevStructure != structure) if(prevStructure != structure)
{ {
for(EntityPlayer player : playersUsing) for(EntityPlayer player : playersUsing)