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