LeviLamina
Loading...
Searching...
No Matches
WorldGenRandom.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/IRandom.h"
7#include "mc/deps/core/math/IRandomSeeded.h"
8#include "mc/util/SimpleRandom.h"
9#include "mc/util/random/XoroshiroRandom.h"
10
11// auto generated forward declare list
12// clang-format off
13class BlockPos;
15class SimpleRandom;
16class XoroshiroRandom;
17struct Seed128Bit;
18// clang-format on
19
20namespace br::worldgen {
21
22struct WorldGenRandom : public ::IRandom, public ::IRandomSeeded {
23public:
24 // member variables
25 // NOLINTBEGIN
26 ::ll::TypedStorage<8, 56, ::std::variant<::SimpleRandom, ::XoroshiroRandom>> mSource;
27 // NOLINTEND
28
29public:
30 // prevent constructor by default
31 WorldGenRandom();
32
33public:
34 // virtual functions
35 // NOLINTBEGIN
36 virtual int nextInt() /*override*/;
37
38 virtual int nextInt(int bound) /*override*/;
39
40 virtual int64 nextLong() /*override*/;
41
42 virtual bool nextBoolean() /*override*/;
43
44 virtual float nextFloat() /*override*/;
45
46 virtual double nextDouble() /*override*/;
47
48 virtual double nextGaussianDouble() /*override*/;
49
50 virtual void consumeCount(uint count) /*override*/;
51
52 virtual ::std::unique_ptr<::IRandom> fork() /*override*/;
53
54 virtual ::std::unique_ptr<::IPositionalRandomFactory> forkPositional() /*override*/;
55
56 virtual void setSeed(int64 seed) /*override*/;
57
58 virtual void setSeed(::Seed128Bit seed) /*override*/;
59
60 virtual int64 seed64() const /*override*/;
61
62 virtual ::Seed128Bit seed128() const /*override*/;
63
64 virtual ~WorldGenRandom() /*override*/ = default;
65 // NOLINTEND
66
67public:
68 // member functions
69 // NOLINTBEGIN
70 MCAPI WorldGenRandom(::br::worldgen::WorldGenRandom const& other);
71
72 MCAPI ::br::worldgen::WorldGenRandom forkPositional(::BlockPos pos);
73
74 MCAPI ::br::worldgen::WorldGenRandom& operator=(::br::worldgen::WorldGenRandom const& other);
75
76 MCAPI ::br::worldgen::WorldGenRandom& setLargeFeatureSeed(int64 seed, int chunkX, int chunkZ);
77 // NOLINTEND
78
79public:
80 // static functions
81 // NOLINTBEGIN
82 MCAPI static ::br::worldgen::WorldGenRandom create(int64 seed);
83
84 MCAPI static ::br::worldgen::WorldGenRandom createDecoration(int64 seed, int chunkX, int chunkZ);
85 // NOLINTEND
86
87public:
88 // constructor thunks
89 // NOLINTBEGIN
90 MCAPI void* $ctor(::br::worldgen::WorldGenRandom const& other);
91 // NOLINTEND
92
93public:
94 // virtual function thunks
95 // NOLINTBEGIN
96 MCAPI int $nextInt();
97
98 MCAPI int $nextInt(int bound);
99
100 MCAPI int64 $nextLong();
101
102 MCAPI bool $nextBoolean();
103
104 MCAPI float $nextFloat();
105
106 MCAPI double $nextDouble();
107
108 MCAPI double $nextGaussianDouble();
109
110 MCAPI void $consumeCount(uint count);
111
112 MCAPI ::std::unique_ptr<::IRandom> $fork();
113
114 MCFOLD ::std::unique_ptr<::IPositionalRandomFactory> $forkPositional();
115
116 MCAPI void $setSeed(int64 seed);
117
118 MCAPI void $setSeed(::Seed128Bit seed);
119
120 MCAPI int64 $seed64() const;
121
122 MCAPI ::Seed128Bit $seed128() const;
123
124
125 // NOLINTEND
126
127public:
128 // vftables
129 // NOLINTBEGIN
130 MCNAPI static void** $vftableForIRandom();
131
132 MCNAPI static void** $vftableForIRandomSeeded();
133 // NOLINTEND
134};
135
136} // namespace br::worldgen
Definition BlockPos.h:19
Definition IPositionalRandomFactory.h:11
Definition IRandomSeeded.h:10
Definition IRandom.h:10
Definition SimpleRandom.h:16
Definition XoroshiroRandom.h:15
Definition Seed128Bit.h:5
Definition WorldGenRandom.h:22
static MCAPI void ** $vftableForIRandomSeeded()
static MCAPI void ** $vftableForIRandom()