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.

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 Details

    • field_38930

      @Deprecated static final double 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

      static Random 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 static Random 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

      static Random create(long seed)
      Returns a random with the given seed. 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

      static Random 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 random double between mode - deviation and mode + deviation (both inclusive) with mode mode.

      Because the return value follows a symmetric triangular distribution, the distribution's mean and median are equal to mode.

      Returns:
      a random double between mode - deviation and mode + deviation (both inclusive) with mode mode
      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