From 411c3b8161513e1ab89a40ae3840eb9128bd2552 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Wed, 29 Jan 2014 13:36:27 +0800 Subject: [PATCH] Some work on graphs --- .../electrical/multimeter/Graph.java | 50 +++++++++++++++++++ .../electrical/multimeter/PartMultimeter.java | 12 +++-- .../multimeter/RenderMultimeter.java | 6 +-- 3 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 src/main/java/resonantinduction/electrical/multimeter/Graph.java 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(); }