electrodynamics/src/main/scala/edx/electrical/multimeter/graph/GraphD.java
2015-01-14 19:06:15 +08:00

89 lines
1.3 KiB
Java

package edx.electrical.multimeter.graph;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
public class GraphD extends Graph<Double>
{
public GraphD(String name, int maxPoints)
{
super(name, maxPoints);
}
@Override
public void queue(Double value)
{
queue += value;
}
@Override
public void doneQueue()
{
super.doneQueue();
queue = 0d;
}
@Override
public Double getDefault()
{
return 0d;
}
@Override
public void load(NBTTagCompound nbt)
{
super.load(nbt);
NBTTagList nbtList = nbt.getTagList("DataPoints", 0);
for (int i = 0; i < nbtList.tagCount(); ++i)
{
NBTTagCompound nbtPoint = (NBTTagCompound) nbtList.getCompoundTagAt(i);
points.add(nbtPoint.getDouble("data"));
}
}
@Override
public NBTTagCompound save()
{
NBTTagCompound nbt = new NBTTagCompound();
NBTTagList data = new NBTTagList();
for (Double value : points)
{
NBTTagCompound nbtPoint = new NBTTagCompound();
nbtPoint.setDouble("data", value);
data.appendTag(nbtPoint);
}
nbt.setTag("DataPoints", data);
return nbt;
}
@Override
public double getDouble()
{
return get();
}
@Override
public Double getAverage()
{
if (points.size() > 0)
{
double average = 0;
for (double point : points)
{
average += point;
}
average /= points.size();
return average;
}
return 0d;
}
}