From c12a5015e05485f047c242e8da5ba37b9548c78e Mon Sep 17 00:00:00 2001 From: Ricardo Matias Date: Sun, 3 Jan 2021 11:45:17 +0100 Subject: [PATCH] [orx-noise] isolated method for non-stateful rng (#155) --- orx-noise/src/main/kotlin/Random.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/orx-noise/src/main/kotlin/Random.kt b/orx-noise/src/main/kotlin/Random.kt index 3c4cc226..0901511b 100644 --- a/orx-noise/src/main/kotlin/Random.kt +++ b/orx-noise/src/main/kotlin/Random.kt @@ -54,6 +54,18 @@ object Random { seed = "${seedBase}-${seedTracking}" } + fun isolated(fn: Random.() -> Unit) { + val state = rnd + val currentSeed = seed + + resetState() + + this.fn() + + seed = currentSeed + rnd = state + } + fun double(min: Double = -1.0, max: Double = 1.0): Double { return Double.uniform(min, max, rnd) }