diff options
| author | hannibal2 <24389977+hannibal002@users.noreply.github.com> | 2023-09-02 10:33:58 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-02 10:33:58 +0200 |
| commit | 24326997aa39c566cc2c23b2b796a63dafc9f566 (patch) | |
| tree | 78a2fcf5df6380fdb6ec2f3b1ede77c9fba245a1 /src/main/java/at/hannibal2/skyhanni/utils | |
| parent | 5a54bc5eda6786b39ad17def4adc6717a64b122e (diff) | |
| parent | 6d4f9a049cf530930fe502a3a716b8ba5cb59827 (diff) | |
| download | skyhanni-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.kt | 43 |
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 |
