Added framework for restricted EIM input, improved & cleaned up CC integration

This commit is contained in:
aidancbrady 2015-07-06 13:38:08 -07:00
parent 1edec150c6
commit b01f31a65e
4 changed files with 27 additions and 22 deletions

View file

@ -48,7 +48,7 @@ public class GuiMatrixStats extends GuiMekanism
@Override
public double getLevel()
{
return tileEntity.structure.lastOutput/tileEntity.structure.outputCap;
return tileEntity.structure.lastOutput/tileEntity.structure.transferCap;
}
}, MekanismUtils.getResource(ResourceType.GUI, "GuiMatrixStats.png"), 30, 13));
}
@ -65,7 +65,7 @@ public class GuiMatrixStats extends GuiMekanism
fontRendererObj.drawString(LangUtils.localize("gui.energy") + ":", 53, 26, 0x797979);
fontRendererObj.drawString(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()) + "/" + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()), 59, 35, 0x404040);
fontRendererObj.drawString(LangUtils.localize("gui.output") + ":", 53, 46, 0x797979);
fontRendererObj.drawString(MekanismUtils.getEnergyDisplay(tileEntity.structure.lastOutput) + "/" + MekanismUtils.getEnergyDisplay(tileEntity.structure.outputCap), 59, 55, 0x404040);
fontRendererObj.drawString(MekanismUtils.getEnergyDisplay(tileEntity.structure.lastOutput) + "/" + MekanismUtils.getEnergyDisplay(tileEntity.structure.transferCap), 59, 55, 0x404040);
fontRendererObj.drawString(LangUtils.localize("gui.dimensions") + ":", 8, 82, 0x797979);
fontRendererObj.drawString(tileEntity.structure.volWidth + " x " + tileEntity.structure.volHeight + " x " + tileEntity.structure.volLength, 14, 91, 0x404040);

View file

@ -87,7 +87,7 @@ public class MatrixUpdateProtocol extends UpdateProtocol<SynchronizedMatrixData>
else if(tile instanceof TileEntityInductionProvider)
{
structureFound.providers.add(coord);
structureFound.outputCap += ((TileEntityInductionProvider)tile).tier.output;
structureFound.transferCap += ((TileEntityInductionProvider)tile).tier.output;
}
}
}

View file

@ -18,12 +18,15 @@ public class SynchronizedMatrixData extends SynchronizedData<SynchronizedMatrixD
public Set<Coord4D> providers = new HashSet<Coord4D>();
public double remainingInput;
public double lastInput;
public double remainingOutput;
public double lastOutput;
public double clientEnergy;
public double storageCap;
public double outputCap;
public double transferCap;
@Override
public ItemStack[] getInventory()

View file

@ -48,8 +48,11 @@ public class TileEntityInductionCasing extends TileEntityMultiblock<Synchronized
{
if(structure != null && isRendering)
{
structure.lastOutput = structure.outputCap-structure.remainingOutput;
structure.remainingOutput = structure.outputCap;
structure.lastInput = structure.transferCap-structure.remainingInput;
structure.remainingInput = structure.transferCap;
structure.lastOutput = structure.transferCap-structure.remainingOutput;
structure.remainingOutput = structure.transferCap;
ChargeUtils.charge(0, this);
ChargeUtils.discharge(1, this);
@ -66,7 +69,8 @@ public class TileEntityInductionCasing extends TileEntityMultiblock<Synchronized
{
data.add(structure.getEnergy(worldObj));
data.add(structure.storageCap);
data.add(structure.outputCap);
data.add(structure.transferCap);
data.add(structure.lastInput);
data.add(structure.lastOutput);
data.add(structure.volWidth);
@ -89,7 +93,8 @@ public class TileEntityInductionCasing extends TileEntityMultiblock<Synchronized
{
structure.clientEnergy = dataStream.readDouble();
structure.storageCap = dataStream.readDouble();
structure.outputCap = dataStream.readDouble();
structure.transferCap = dataStream.readDouble();
structure.lastInput = dataStream.readDouble();
structure.lastOutput = dataStream.readDouble();
structure.volWidth = dataStream.readInt();
@ -168,10 +173,10 @@ public class TileEntityInductionCasing extends TileEntityMultiblock<Synchronized
@Method(modid = "ComputerCraft")
public String getType()
{
return "Mekanism-InductionMatrix";
return "InductionMatrix";
}
public static final String[] NAMES = new String[] { "getEnergyStored", "getMaxEnergyStored", "getEnergyStoredMJ", "getMaxEnergyStoredMJ", "getLastOutput", "getOutputCap" };
public static final String[] NAMES = new String[] {"getStored", "getMaxEnergy", "getLastInput", "getLastOutput", "getTransferCap"};
@Override
@Method(modid = "ComputerCraft")
@ -184,28 +189,25 @@ public class TileEntityInductionCasing extends TileEntityMultiblock<Synchronized
@Method(modid = "ComputerCraft")
public Object[] callMethod(IComputerAccess computer, ILuaContext context, int method, Object[] arguments) throws LuaException, InterruptedException
{
if (structure == null)
if(structure == null)
{
return new Object[] { "Unformed." };
return new Object[] {"Unformed."};
}
switch (method)
switch(method)
{
case 0:
return new Object[] { getEnergy() * general.TO_TE };
return new Object[] {getEnergy()};
case 1:
return new Object[] { getMaxEnergy() * general.TO_TE };
return new Object[] {getMaxEnergy()};
case 2:
return new Object[] { getEnergy() };
return new Object[] {structure.lastInput};
case 3:
return new Object[] { getMaxEnergy() };
return new Object[] {structure.lastOutput};
case 4:
return new Object[] { structure.lastOutput };
case 5:
return new Object[] { structure.outputCap };
return new Object[] {structure.transferCap};
default:
Mekanism.logger.error("Attempted to call unknown method with computer ID " + computer.getID());
return new Object[] { "Unknown command." };
return new Object[] {"Unknown command."};
}
}