Added pressure detection to multimeter

This commit is contained in:
Calclavia 2014-02-23 22:04:02 +08:00
parent 8b4afcac8c
commit e431807bc1
8 changed files with 19 additions and 30 deletions

View file

@ -116,26 +116,14 @@ public class TileChannel extends TileFluidNetwork implements IBlockActivate, IFl
public void writeToNBT(NBTTagCompound nbt)
{
super.writeToNBT(nbt);
nbt.setBoolean("isExtracting", isExtracting);
tank.writeToNBT(nbt);
}
@Override
public void readFromNBT(NBTTagCompound nbt)
{
super.readFromNBT(nbt);
isExtracting = nbt.getBoolean("isExtracting");
}
@Override
public int getPressureIn(ForgeDirection side)
{
return 0;
}
@Override
public void onWrongPressure(ForgeDirection side, int pressure)
{
tank.readFromNBT(nbt);
}
@Override

View file

@ -32,6 +32,7 @@ public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter
public final GraphF angularVelocityGraph = new GraphF("Speed", maxData);
public final GraphI fluidGraph = new GraphI("Fluid", maxData);
public final GraphF thermalGraph = new GraphF("Temperature", maxData);
public final GraphI pressureGraph = new GraphI("Pressure", maxData);
/**
* The absolute center of the multimeter screens.
@ -68,6 +69,7 @@ public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter
graphs.add(angularVelocityGraph);
graphs.add(fluidGraph);
graphs.add(thermalGraph);
graphs.add(pressureGraph);
}
public String getDisplay(int graphID)
@ -97,6 +99,9 @@ public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter
if (graph == thermalGraph)
graphValue = UnitDisplay.roundDecimals(thermalGraph.get()) + " K";
if (graph == pressureGraph)
graphValue = UnitDisplay.roundDecimals(pressureGraph.get()) + " Pa";
return graph.name + ": " + graphValue;
}

View file

@ -12,6 +12,7 @@ import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import resonantinduction.api.mechanical.IMechanical;
import resonantinduction.api.mechanical.fluid.IPressure;
import resonantinduction.core.ResonantInduction;
import resonantinduction.core.prefab.part.PartFace;
import resonantinduction.electrical.Electrical;
@ -300,6 +301,11 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
}
}
if (tileEntity instanceof IPressure)
{
getNetwork().pressureGraph.queue(((IPressure) tileEntity).getPressure(receivingSide));
}
if (tileEntity instanceof ITemperature)
{
getNetwork().thermalGraph.queue(((ITemperature) tileEntity).getTemperature());

View file

@ -18,6 +18,7 @@ public class MultipartMechanical implements IPartFactory
{
MultiPartRegistry.registerParts(this, PART_TYPES);
MultipartGenerator.registerPassThroughInterface("resonantinduction.api.mechanical.fluid.IFluidPipe");
MultipartGenerator.registerPassThroughInterface("resonantinduction.api.mechanical.fluid.IPressure");
MultipartGenerator.registerTrait("resonantinduction.api.mechanical.IMechanical", "resonantinduction.mechanical.trait.TraitMechanical");
}

View file

@ -167,12 +167,6 @@ public class PartPipe extends PartFramedConnection<EnumPipeMaterial, IFluidPipe,
return null;
}
@Override
public int getPressureIn(ForgeDirection side)
{
return 0;
}
@Override
public int getPressure(ForgeDirection dir)
{
@ -185,12 +179,6 @@ public class PartPipe extends PartFramedConnection<EnumPipeMaterial, IFluidPipe,
pressure = amount;
}
@Override
public void onWrongPressure(ForgeDirection side, int pressure)
{
}
@Override
public int getMaxFlowRate()
{
@ -208,12 +196,14 @@ public class PartPipe extends PartFramedConnection<EnumPipeMaterial, IFluidPipe,
public void save(NBTTagCompound nbt)
{
super.save(nbt);
tank.writeToNBT(nbt);
}
@Override
public void load(NBTTagCompound nbt)
{
super.load(nbt);
tank.readFromNBT(nbt);
}
@Override

View file

@ -1,13 +1,11 @@
package resonantinduction.api.mechanical.fluid;
import net.minecraftforge.common.ForgeDirection;
/**
* Applied to tiles that are pipes and support pressure
*
* @author DarkGuardsman
*/
public interface IFluidPipe extends IFluidConnector, IPressureInput
public interface IFluidPipe extends IFluidConnector, IPressure
{
/**
@ -16,5 +14,4 @@ public interface IFluidPipe extends IFluidConnector, IPressureInput
* @return amount in liters.
*/
int getMaxFlowRate();
}

View file

@ -7,6 +7,7 @@ import net.minecraftforge.common.ForgeDirection;
*
* @author DarkGaurdsman
*/
@Deprecated
public interface IPressureInput extends IPressure
{
public int getPressureIn(ForgeDirection side);

View file

@ -7,6 +7,7 @@ import net.minecraftforge.common.ForgeDirection;
*
* @author Darkguardsman
*/
@Deprecated
public interface IPressureOutput
{
public int getPressureOut(ForgeDirection side);