LeviLamina
Loading...
Searching...
No Matches
ScatterParams.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/debug/log/LogArea.h"
7#include "mc/deps/shared_types/v1_21_10/scatter_params/CoordinateEvaluationOrder.h"
8#include "mc/deps/shared_types/v1_21_10/scatter_params/RandomDistributionType.h"
9#include "mc/molang/MolangVersion.h"
10#include "mc/util/IntRange.h"
11#include "mc/util/molang/ExpressionNode.h"
12#include "mc/util/molang/ExpressionOp.h"
13#include "mc/world/level/BlockPos.h"
14
15// auto generated forward declare list
16// clang-format off
17class Random;
18class RenderParams;
20struct BiomeStringList;
21namespace SharedTypes::v1_21_10 { struct CoordinateRangeData; }
22namespace SharedTypes::v1_21_10 { struct ScatterParamsData; }
23// clang-format on
24
25class ScatterParams {
26public:
27 // ScatterParams inner types declare
28 // clang-format off
29 struct ChanceInformation;
30 struct CoordinateRange;
32 // clang-format on
33
34 // ScatterParams inner types define
35 enum class NeedsMolang : int {
36 No = 0,
37 Yes = 1,
38 };
39
41 public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<8, 16, ::ExpressionNode> mChancePercent;
45 ::ll::TypedStorage<4, 4, int> mNumerator;
46 ::ll::TypedStorage<4, 4, int> mDenominator;
47 // NOLINTEND
48 };
49
51 public:
52 // member variables
53 // NOLINTBEGIN
54 ::ll::TypedStorage<8, 16, ::ExpressionNode> mMinOrSingleValue;
55 ::ll::TypedStorage<8, 16, ::ExpressionNode> mMax;
56 ::ll::TypedStorage<4, 4, uint> mGridStepSize;
57 ::ll::TypedStorage<4, 4, uint> mGridOffset;
58 ::ll::TypedStorage<4, 4, ::SharedTypes::v1_21_10::RandomDistributionType> mDistribution;
59 ::ll::TypedStorage<4, 12, ::std::optional<::IntRange>> mFastPathRange;
60 // NOLINTEND
61
62 public:
63 // member functions
64 // NOLINTBEGIN
65 MCNAPI int _eval(int evaluatedMin, int evaluatedMax, uint& stepIndex, ::Random& random) const;
66
68 // NOLINTEND
69
70 public:
71 // destructor thunk
72 // NOLINTBEGIN
73 MCNAPI void $dtor();
74 // NOLINTEND
75 };
76
77 class ScatteredPositions {
78 public:
79 // member variables
80 // NOLINTBEGIN
81 ::ll::TypedStorage<8, 8, ::RenderParams&> mMolangParams;
82 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
83 ::ll::TypedStorage<8, 8, ::ScatterParams const&> mScatterParams;
84 ::ll::TypedStorage<4, 12, ::BlockPos> mOrigin;
85 ::ll::TypedStorage<4, 4, uint> mIterations;
86 // NOLINTEND
87
88 public:
89 // prevent constructor by default
90 ScatteredPositions& operator=(ScatteredPositions const&);
91 ScatteredPositions(ScatteredPositions const&);
92 ScatteredPositions();
93
94 public:
95 // member functions
96 // NOLINTBEGIN
97 MCNAPI bool empty();
98
99 MCNAPI ::BlockPos nextPos();
100 // NOLINTEND
101 };
102
103public:
104 // member variables
105 // NOLINTBEGIN
106 ::ll::TypedStorage<8, 168, ::ScatterParams::CoordinateRange[3]> mCoordinateRanges;
107 ::ll::TypedStorage<4, 4, ::SharedTypes::v1_21_10::CoordinateEvaluationOrder> mEvalOrder;
108 ::ll::TypedStorage<8, 24, ::ScatterParams::ChanceInformation> mScatterChance;
109 ::ll::TypedStorage<8, 16, ::ExpressionNode> mIterations;
110 // NOLINTEND
111
112public:
113 // prevent constructor by default
114 ScatterParams& operator=(ScatterParams const&);
115
116public:
117 // member functions
118 // NOLINTBEGIN
119 MCAPI ScatterParams();
120
121 MCAPI ScatterParams(::ScatterParams&&);
122
123 MCAPI ScatterParams(::ScatterParams const&);
124
125 MCAPI void _fillCoordinateRangeFromData(
126 ::std::string const& coordinateName,
127 ::ScatterParams::CoordinateRange& coordinateRange,
128 ::SharedTypes::v1_21_10::CoordinateRangeData const& coordinateRangeData,
129 ::MolangVersion const& molangVersion,
130 ::LogArea logArea
131 );
132
133 MCAPI void fillFromData(
135 ::MolangVersion molangVersion,
136 ::LogArea logArea
137 );
138
139 MCAPI void readSerializedScatterParamData(::BiomeScatterParamData const& data, ::BiomeStringList const& stringList);
140
141 MCAPI ::ScatterParams::ScatteredPositions
142 scatter(::RenderParams& molangParams, ::BlockPos const& pos, ::Random& random) const;
143
144 MCAPI void serializeScatterParamData(::BiomeScatterParamData& data, ::BiomeStringList& stringList) const;
145
146 MCAPI ~ScatterParams();
147 // NOLINTEND
148
149public:
150 // static functions
151 // NOLINTBEGIN
152 MCFOLD static void _parseExpressionNodeFloat(
153 ::ExpressionOp op,
154 ::std::string const& expression,
155 ::ExpressionNode& node,
156 float defaultValue
157 );
158
159 MCAPI static void initMolangParams(::RenderParams& molangParams, ::BlockPos const& pos, ::Random& random);
160
161 MCAPI static void initScatterParamIndices();
162 // NOLINTEND
163
164public:
165 // constructor thunks
166 // NOLINTBEGIN
167 MCAPI void* $ctor();
168
169 MCAPI void* $ctor(::ScatterParams&&);
170
171 MCAPI void* $ctor(::ScatterParams const&);
172 // NOLINTEND
173
174public:
175 // destructor thunk
176 // NOLINTBEGIN
177 MCAPI void $dtor();
178 // NOLINTEND
179};
Definition BlockPos.h:21
Definition ExpressionNode.h:36
Definition Random.h:10
Definition RenderParams.h:30
Definition ScatterParams.h:77
Definition BiomeScatterParamData.h:16
Definition BiomeStringList.h:14
Definition ScatterParams.h:40
Definition ScatterParams.h:50
MCAPI int _eval(int evaluatedMin, int evaluatedMax, uint &stepIndex, ::Random &random) const
Definition CoordinateRangeData.h:16
Definition ScatterParamsData.h:18