1 package net.mograsim.logic.core.timeline;
3 import java.util.function.LongSupplier;
5 public class PauseableTimeFunction implements LongSupplier
7 private boolean paused = false;
8 private long unpausedSysTime = 0, lastPausedInternalTime = 0;
9 private int speedPercentage = 100;
15 lastPausedInternalTime = getAsLong();
25 unpausedSysTime = System.currentTimeMillis();
30 public long getAsLong()
32 return paused ? lastPausedInternalTime
33 : lastPausedInternalTime + ((System.currentTimeMillis() - unpausedSysTime) * speedPercentage) / 100;
36 public void setSpeedPercentage(int percentage)
43 this.speedPercentage = Integer.min(100, Integer.max(percentage, 1));
46 public boolean isPaused()