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;
15struct Seed128Bit;
16// clang-format on
17
18namespace br::worldgen {
19
20struct WorldGenRandom : public ::IRandom, public ::IRandomSeeded {
21public:
22 // member variables
23 // NOLINTBEGIN
24 ::ll::TypedStorage<8, 72, ::std::variant<::SimpleRandom, ::XoroshiroRandom>> mSource;
25 // NOLINTEND
26
27public:
28 // prevent constructor by default
30
31public:
32 // virtual functions
33 // NOLINTBEGIN
34 // vIndex: 2
35 virtual int nextInt() /*override*/;
36
37 // vIndex: 1
38 virtual int nextInt(int bound) /*override*/;
39
40 // vIndex: 3
41 virtual int64 nextLong() /*override*/;
42
43 // vIndex: 4
44 virtual bool nextBoolean() /*override*/;
45
46 // vIndex: 5
47 virtual float nextFloat() /*override*/;
48
49 // vIndex: 6
50 virtual double nextDouble() /*override*/;
51
52 // vIndex: 7
53 virtual double nextGaussianDouble() /*override*/;
54
55 // vIndex: 8
56 virtual void consumeCount(uint count) /*override*/;
57
58 // vIndex: 9
59 virtual ::std::unique_ptr<::IRandom> fork() /*override*/;
60
61 // vIndex: 10
62 virtual ::std::unique_ptr<::IPositionalRandomFactory> forkPositional() /*override*/;
63
64 // vIndex: 2
65 virtual void setSeed(int64 seed) /*override*/;
66
67 // vIndex: 1
68 virtual void setSeed(::Seed128Bit seed) /*override*/;
69
70 // vIndex: 3
71 virtual int64 seed64() const /*override*/;
72
73 // vIndex: 4
74 virtual ::Seed128Bit seed128() const /*override*/;
75
76 // vIndex: 0
77 virtual ~WorldGenRandom() /*override*/;
78 // NOLINTEND
79
80public:
81 // member functions
82 // NOLINTBEGIN
83 MCAPI explicit WorldGenRandom(::SimpleRandom source);
84
85 MCAPI ::br::worldgen::WorldGenRandom forkPositional(::BlockPos pos);
86
87 MCAPI ::br::worldgen::WorldGenRandom& setLargeFeatureSeed(int64 seed, int chunkX, int chunkZ);
88 // NOLINTEND
89
90public:
91 // static functions
92 // NOLINTBEGIN
93 MCAPI static ::br::worldgen::WorldGenRandom createDecoration(int64 seed, int chunkX, int chunkZ);
94 // NOLINTEND
95
96public:
97 // constructor thunks
98 // NOLINTBEGIN
99 MCAPI void* $ctor(::SimpleRandom source);
100 // NOLINTEND
101
102public:
103 // destructor thunk
104 // NOLINTBEGIN
105 MCAPI void $dtor();
106 // NOLINTEND
107
108public:
109 // virtual function thunks
110 // NOLINTBEGIN
111 MCAPI int $nextInt();
112
113 MCAPI int $nextInt(int bound);
114
115 MCAPI int64 $nextLong();
116
117 MCAPI bool $nextBoolean();
118
119 MCAPI float $nextFloat();
120
121 MCAPI double $nextDouble();
122
123 MCAPI double $nextGaussianDouble();
124
125 MCAPI void $consumeCount(uint count);
126
127 MCAPI ::std::unique_ptr<::IRandom> $fork();
128
129 MCFOLD ::std::unique_ptr<::IPositionalRandomFactory> $forkPositional();
130
131 MCAPI void $setSeed(int64 seed);
132
133 MCAPI void $setSeed(::Seed128Bit seed);
134
135 MCAPI int64 $seed64() const;
136
137 MCAPI ::Seed128Bit $seed128() const;
138 // NOLINTEND
139
140public:
141 // vftables
142 // NOLINTBEGIN
143 MCNAPI static void** $vftableForIRandom();
144
145 MCNAPI static void** $vftableForIRandomSeeded();
146 // NOLINTEND
147};
148
149} // namespace br::worldgen
Definition BlockPos.h:14
Definition IPositionalRandomFactory.h:11
Definition IRandom.h:13
Definition IRandomSeeded.h:5
Definition Seed128Bit.h:5
Definition SimpleRandom.h:5
Definition WorldGenRandom.h:20
static MCAPI void ** $vftableForIRandomSeeded()
static MCAPI void ** $vftableForIRandom()