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
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*/;
65 // NOLINTEND
66
67public:
68 // member functions
69 // NOLINTBEGIN
70 MCAPI explicit WorldGenRandom(::SimpleRandom source);
71
72 MCAPI ::br::worldgen::WorldGenRandom forkPositional(::BlockPos pos);
73
74 MCAPI ::br::worldgen::WorldGenRandom& setLargeFeatureSeed(int64 seed, int chunkX, int chunkZ);
75 // NOLINTEND
76
77public:
78 // static functions
79 // NOLINTBEGIN
80 MCAPI static ::br::worldgen::WorldGenRandom createDecoration(int64 seed, int chunkX, int chunkZ);
81 // NOLINTEND
82
83public:
84 // constructor thunks
85 // NOLINTBEGIN
86 MCAPI void* $ctor(::SimpleRandom source);
87 // NOLINTEND
88
89public:
90 // destructor thunk
91 // NOLINTBEGIN
92 MCAPI void $dtor();
93 // NOLINTEND
94
95public:
96 // virtual function thunks
97 // NOLINTBEGIN
98 MCAPI int $nextInt();
99
100 MCAPI int $nextInt(int bound);
101
102 MCAPI int64 $nextLong();
103
104 MCAPI bool $nextBoolean();
105
106 MCAPI float $nextFloat();
107
108 MCAPI double $nextDouble();
109
110 MCAPI double $nextGaussianDouble();
111
112 MCAPI void $consumeCount(uint count);
113
114 MCAPI ::std::unique_ptr<::IRandom> $fork();
115
116 MCFOLD ::std::unique_ptr<::IPositionalRandomFactory> $forkPositional();
117
118 MCAPI void $setSeed(int64 seed);
119
120 MCAPI void $setSeed(::Seed128Bit seed);
121
122 MCAPI int64 $seed64() const;
123
124 MCAPI ::Seed128Bit $seed128() const;
125
126
127 // NOLINTEND
128
129public:
130 // vftables
131 // NOLINTBEGIN
132 MCNAPI static void** $vftableForIRandom();
133
134 MCNAPI static void** $vftableForIRandomSeeded();
135 // NOLINTEND
136};
137
138} // namespace br::worldgen
Definition BlockPos.h:19
Definition IPositionalRandomFactory.h:11
Definition IRandomSeeded.h:10
Definition IRandom.h:13
Definition SimpleRandom.h:15
Definition XoroshiroRandom.h:15
Definition Seed128Bit.h:5
static MCAPI void ** $vftableForIRandomSeeded()
static MCAPI void ** $vftableForIRandom()