diff --git a/src/main/java/resonantinduction/electrical/multimeter/Graph.java b/src/main/java/resonantinduction/electrical/multimeter/Graph.java new file mode 100644 index 00000000..79f6be0e --- /dev/null +++ b/src/main/java/resonantinduction/electrical/multimeter/Graph.java @@ -0,0 +1,50 @@ +package resonantinduction.electrical.multimeter; + +import java.util.ArrayList; +import java.util.List; + +public class Graph +{ + private final int maxPoints; + + /** + * Each point represents a tick. + */ + private List points = new ArrayList(); + private long peak; + + public Graph(int maxPoints) + { + this.maxPoints = maxPoints; + } + + public void add(long y) + { + if (y > peak) + { + peak = y; + } + + points.add(0, y); + + if (points.size() > maxPoints) + { + if (points.get(maxPoints) == peak) + { + peak = 0; + } + + points.remove(maxPoints); + } + } + + public long getPeak() + { + return peak; + } + + public long get(int x) + { + return points.get(x); + } +} diff --git a/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java b/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java index 9977bd79..5e82a645 100644 --- a/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java +++ b/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java @@ -64,8 +64,6 @@ public class PartMultimeter extends JCuboidPart implements TFacePart, JNormalOcc } } - public Set playersUsing = new HashSet(); - public enum DetectMode { NONE("none"), LESS_THAN("lessThan"), LESS_THAN_EQUAL("lessThanOrEqual"), EQUAL("equal"), @@ -79,6 +77,8 @@ public class PartMultimeter extends JCuboidPart implements TFacePart, JNormalOcc } } + public Set playersUsing = new HashSet(); + private DetectMode detectMode = DetectMode.NONE; private long peakDetection; private long energyLimit; @@ -88,6 +88,8 @@ public class PartMultimeter extends JCuboidPart implements TFacePart, JNormalOcc private byte side; private int ticks; + public Graph graph; + public void preparePlacement(int side, int itemDamage) { this.side = (byte) (side ^ 1); @@ -377,19 +379,19 @@ public class PartMultimeter extends JCuboidPart implements TFacePart, JNormalOcc } } -// @Override + // @Override public boolean canConnectRedstone(int arg0) { return true; } - //@Override + // @Override public int strongPowerLevel(int arg0) { return redstoneOn ? 14 : 0; } - //@Override + // @Override public int weakPowerLevel(int arg0) { return redstoneOn ? 14 : 0; diff --git a/src/main/java/resonantinduction/electrical/multimeter/RenderMultimeter.java b/src/main/java/resonantinduction/electrical/multimeter/RenderMultimeter.java index dc978dc2..00f1ee29 100644 --- a/src/main/java/resonantinduction/electrical/multimeter/RenderMultimeter.java +++ b/src/main/java/resonantinduction/electrical/multimeter/RenderMultimeter.java @@ -31,7 +31,7 @@ public class RenderMultimeter { GL11.glPushMatrix(); RenderUtility.rotateFaceBlockToSide(part.getDirection()); - + /** * The more space we have, the more information we render. * @@ -39,8 +39,8 @@ public class RenderMultimeter * 1x2: Show storage + capacity * 3x3: Show graph behind */ - - + + RenderUtility.renderText("test", 0, 1, x, y, z); GL11.glPopMatrix(); }