summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal002@users.noreply.github.com>2023-09-02 10:33:58 +0200
committerGitHub <noreply@github.com>2023-09-02 10:33:58 +0200
commit24326997aa39c566cc2c23b2b796a63dafc9f566 (patch)
tree78a2fcf5df6380fdb6ec2f3b1ede77c9fba245a1 /src/main/java/at/hannibal2/skyhanni/utils
parent5a54bc5eda6786b39ad17def4adc6717a64b122e (diff)
parent6d4f9a049cf530930fe502a3a716b8ba5cb59827 (diff)
downloadskyhanni-24326997aa39c566cc2c23b2b796a63dafc9f566.tar.gz
skyhanni-24326997aa39c566cc2c23b2b796a63dafc9f566.tar.bz2
skyhanni-24326997aa39c566cc2c23b2b796a63dafc9f566.zip
Merge pull request #389 from appable0/potions
Potion display bug fix and timer class #389
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/Timer.kt43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/Timer.kt b/src/main/java/at/hannibal2/skyhanni/utils/Timer.kt
new file mode 100644
index 000000000..55ea90b52
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/Timer.kt
@@ -0,0 +1,43 @@
+package at.hannibal2.skyhanni.utils
+
+import com.google.gson.annotations.Expose
+import kotlin.time.Duration
+
+class Timer(
+ @Expose
+ var duration: Duration,
+
+ @Expose
+ private var started: SimpleTimeMark = SimpleTimeMark.now(),
+
+ startPaused: Boolean = false
+): Comparable<Timer> {
+
+ @Expose
+ private var paused: SimpleTimeMark? = null
+
+ init {
+ if (startPaused) {
+ paused = started
+ }
+ }
+
+ val ended get() = !remaining.isPositive()
+ val remaining get() = duration - elapsed
+ val elapsed get() = paused?.let { it - started } ?: started.passedSince()
+
+ fun pause() {
+ paused = SimpleTimeMark.now()
+ }
+
+ fun resume() {
+ paused?.let {
+ started = it
+ duration = it - started
+ paused = null
+ }
+ }
+
+ override fun compareTo(other: Timer): Int = remaining.compareTo(other.remaining)
+
+} \ No newline at end of file