package toadmess.explosives.messymocks; import java.util.Random; @SuppressWarnings("serial") public class PredicatableNumGen extends Random { private double counter = 0.0D; private final double increment; private final double modulo; public PredicatableNumGen(final double increment, final double modulo) { this.increment = increment; this.modulo = modulo; } public int getLastInt() { return (int) counter; } public long getLastLong() { return (long) counter; } public float getLastFloat() { return (float) counter; } public double getLastDouble() { return counter; } public int peekNextInt() { return (int) ((counter+increment)%modulo); } public long peekNextLong() { return (long) ((counter+increment)%modulo); } public float peekNextFloat() { return (float) ((counter+increment)%modulo); } public double peekNextDouble() { return (double) ((counter+increment)%modulo); } private void increment() { this.counter += this.increment; this.counter %= this.modulo; } @Override public double nextDouble() { increment(); return counter; } @Override public float nextFloat() { increment(); return (float) counter; } @Override public int nextInt() { increment(); return (int) counter; } @Override public long nextLong() { increment(); return (long) counter; } }