Package net.minecraft.util.math.random
Interface Random
- All Known Subinterfaces:
BaseRandom
- All Known Implementing Classes:
CheckedRandom
,ChunkRandom
,LocalRandom
,RandomSequencesState.WrappedRandom
,ThreadSafeRandom
,Xoroshiro128PlusPlusRandom
public interface Random
A reimplementation of
Random
.
There are four built-in implementations, three based on the classic Java algorithm and one using Xoroshiro128++ algorithm.
LocalRandom
: Silently breaks when used concurrently. Based onRandom
.CheckedRandom
: Throws when used concurrently. Based onRandom
.ThreadSafeRandom
: Blocks the thread when used concurrently. Based onRandom
.Xoroshiro128PlusPlusRandom
: Silently breaks when used concurrently. Implements the Xoroshiro128++ algorithm.
- See Also:
- Implementation Note:
- Note that due to MC-239059, this is not an exact reimplementation of the Java random number generator algorithm.
- Mappings:
Namespace Name named net/minecraft/util/math/random/Random
intermediary net/minecraft/class_5819
official ayv
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic Random
create()
Returns a random.static Random
create
(long seed) Returns a random with the givenseed
.static Random
Returns a random split from the thread local random.static Random
Deprecated.This one is hard to ensure deterministic behavior compared to the non-thread-safe one.default int
nextBetween
(int min, int max) default int
nextBetweenExclusive
(int min, int max) boolean
double
float
double
int
nextInt()
int
nextInt
(int bound) long
nextLong()
default double
nextTriangular
(double mode, double deviation) Returns a randomdouble
betweenmode - deviation
andmode + deviation
(both inclusive) with modemode
.void
setSeed
(long seed) default void
skip
(int count) split()
-
Field Details
-
field_38930
Deprecated.- See Also:
- Mappings:
Namespace Name Mixin selector named field_38930
Lnet/minecraft/util/math/random/Random;field_38930:D
intermediary field_38930
Lnet/minecraft/class_5819;field_38930:D
official a
Layv;a:D
-
-
Method Details
-
create
Returns a random. The returned random actively detects concurrent usage and fails on detection.- Returns:
- a random
- Mappings:
Namespace Name Mixin selector named create
Lnet/minecraft/util/math/random/Random;create()Lnet/minecraft/util/math/random/Random;
intermediary method_43047
Lnet/minecraft/class_5819;method_43047()Lnet/minecraft/class_5819;
official a
Layv;a()Layv;
-
createThreadSafe
Deprecated.This one is hard to ensure deterministic behavior compared to the non-thread-safe one.Returns a random, suitable for multithreaded scenarios.- Returns:
- a random, suitable for multithreaded scenarios
- Mappings:
Namespace Name Mixin selector named createThreadSafe
Lnet/minecraft/util/math/random/Random;createThreadSafe()Lnet/minecraft/util/math/random/Random;
intermediary method_43050
Lnet/minecraft/class_5819;method_43050()Lnet/minecraft/class_5819;
official b
Layv;b()Layv;
-
create
Returns a random with the givenseed
. The returned random actively detects concurrent usage and fails on detection.- Returns:
- a random with the given
seed
- Mappings:
Namespace Name Mixin selector named create
Lnet/minecraft/util/math/random/Random;create(J)Lnet/minecraft/util/math/random/Random;
intermediary method_43049
Lnet/minecraft/class_5819;method_43049(J)Lnet/minecraft/class_5819;
official a
Layv;a(J)Layv;
-
createLocal
Returns a random split from the thread local random. Users must ensure this random is not used concurrently.- Returns:
- a random split from the thread local random
- Mappings:
Namespace Name Mixin selector named createLocal
Lnet/minecraft/util/math/random/Random;createLocal()Lnet/minecraft/util/math/random/Random;
intermediary method_43053
Lnet/minecraft/class_5819;method_43053()Lnet/minecraft/class_5819;
official c
Layv;c()Layv;
-
split
Random split()- Mappings:
Namespace Name Mixin selector named split
Lnet/minecraft/util/math/random/Random;split()Lnet/minecraft/util/math/random/Random;
intermediary method_38420
Lnet/minecraft/class_5819;method_38420()Lnet/minecraft/class_5819;
official d
Layv;d()Layv;
-
nextSplitter
RandomSplitter nextSplitter()- Mappings:
Namespace Name Mixin selector named nextSplitter
Lnet/minecraft/util/math/random/Random;nextSplitter()Lnet/minecraft/util/math/random/RandomSplitter;
intermediary method_38421
Lnet/minecraft/class_5819;method_38421()Lnet/minecraft/class_6574;
official e
Layv;e()Ldzi;
-
setSeed
void setSeed(long seed) - Mappings:
Namespace Name Mixin selector named setSeed
Lnet/minecraft/util/math/random/Random;setSeed(J)V
intermediary method_43052
Lnet/minecraft/class_5819;method_43052(J)V
official b
Layv;b(J)V
-
nextInt
int nextInt()- Mappings:
Namespace Name Mixin selector named nextInt
Lnet/minecraft/util/math/random/Random;nextInt()I
intermediary method_43054
Lnet/minecraft/class_5819;method_43054()I
official f
Layv;f()I
-
nextInt
int nextInt(int bound) - Mappings:
Namespace Name Mixin selector named nextInt
Lnet/minecraft/util/math/random/Random;nextInt(I)I
intermediary method_43048
Lnet/minecraft/class_5819;method_43048(I)I
official a
Layv;a(I)I
-
nextBetween
default int nextBetween(int min, int max) - Mappings:
Namespace Name Mixin selector named nextBetween
Lnet/minecraft/util/math/random/Random;nextBetween(II)I
intermediary method_39332
Lnet/minecraft/class_5819;method_39332(II)I
official a
Layv;a(II)I
-
nextLong
long nextLong()- Mappings:
Namespace Name Mixin selector named nextLong
Lnet/minecraft/util/math/random/Random;nextLong()J
intermediary method_43055
Lnet/minecraft/class_5819;method_43055()J
official g
Layv;g()J
-
nextBoolean
boolean nextBoolean()- Mappings:
Namespace Name Mixin selector named nextBoolean
Lnet/minecraft/util/math/random/Random;nextBoolean()Z
intermediary method_43056
Lnet/minecraft/class_5819;method_43056()Z
official h
Layv;h()Z
-
nextFloat
float nextFloat()- Mappings:
Namespace Name Mixin selector named nextFloat
Lnet/minecraft/util/math/random/Random;nextFloat()F
intermediary method_43057
Lnet/minecraft/class_5819;method_43057()F
official i
Layv;i()F
-
nextDouble
double nextDouble()- Mappings:
Namespace Name Mixin selector named nextDouble
Lnet/minecraft/util/math/random/Random;nextDouble()D
intermediary method_43058
Lnet/minecraft/class_5819;method_43058()D
official j
Layv;j()D
-
nextGaussian
double nextGaussian()- Mappings:
Namespace Name Mixin selector named nextGaussian
Lnet/minecraft/util/math/random/Random;nextGaussian()D
intermediary method_43059
Lnet/minecraft/class_5819;method_43059()D
official k
Layv;k()D
-
nextTriangular
default double nextTriangular(double mode, double deviation) Returns a randomdouble
betweenmode - deviation
andmode + deviation
(both inclusive) with modemode
.Because the return value follows a symmetric triangular distribution, the distribution's mean and median are equal to
mode
.- Returns:
- a random
double
betweenmode - deviation
andmode + deviation
(both inclusive) with modemode
- Mappings:
Namespace Name Mixin selector named nextTriangular
Lnet/minecraft/util/math/random/Random;nextTriangular(DD)D
intermediary method_43385
Lnet/minecraft/class_5819;method_43385(DD)D
official a
Layv;a(DD)D
-
skip
default void skip(int count) - Mappings:
Namespace Name Mixin selector named skip
Lnet/minecraft/util/math/random/Random;skip(I)V
intermediary method_33650
Lnet/minecraft/class_5819;method_33650(I)V
official b
Layv;b(I)V
-
nextBetweenExclusive
default int nextBetweenExclusive(int min, int max) - Mappings:
Namespace Name Mixin selector named nextBetweenExclusive
Lnet/minecraft/util/math/random/Random;nextBetweenExclusive(II)I
intermediary method_43051
Lnet/minecraft/class_5819;method_43051(II)I
official b
Layv;b(II)I
-