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
95public:
96 // member variables
97 // NOLINTBEGIN
98 ::ll::TypedStorage<8, 168, ::ScatterParams::CoordinateRange[3]> mCoordinateRanges;
99 ::ll::TypedStorage<4, 4, ::SharedTypes::v1_21_10::CoordinateEvaluationOrder> mEvalOrder;
100 ::ll::TypedStorage<8, 24, ::ScatterParams::ChanceInformation> mScatterChance;
101 ::ll::TypedStorage<8, 16, ::ExpressionNode> mIterations;
102 // NOLINTEND
103
104public:
105 // prevent constructor by default
106 ScatterParams& operator=(ScatterParams const&);
107 ScatterParams();
108
109public:
110 // member functions
111 // NOLINTBEGIN
112 MCAPI ScatterParams(::ScatterParams&&);
113
114 MCAPI ScatterParams(::ScatterParams const&);
115
116 MCAPI void fillFromData(
118 ::MolangVersion molangVersion,
119 ::LogArea logArea
120 );
121
122 MCAPI void readSerializedScatterParamData(::BiomeScatterParamData const& data, ::BiomeStringList const& stringList);
123
124 MCAPI ::ScatterParams::ScatteredPositions
125 scatter(::RenderParams& molangParams, ::BlockPos const& pos, ::Random& random) const;
126
127 MCAPI void serializeScatterParamData(::BiomeScatterParamData& data, ::BiomeStringList& stringList) const;
128
129 MCAPI ~ScatterParams();
130 // NOLINTEND
131
132public:
133 // static functions
134 // NOLINTBEGIN
135 MCAPI static void _fillCoordinateRangeFromData(
136 ::std::string const& coordinateName,
137 ::ScatterParams::CoordinateRange& coordinateRange,
138 ::SharedTypes::v1_21_10::CoordinateRangeData const& coordinateRangeData,
139 ::MolangVersion const& molangVersion,
140 ::LogArea logArea
141 );
142
143 MCAPI static void _parseExpressionNodeFloat(
144 ::ExpressionOp op,
145 ::std::string const& expression,
146 ::ExpressionNode& node,
147 float defaultValue
148 );
149
150 MCAPI static void initMolangParams(::RenderParams& molangParams, ::BlockPos const& pos, ::Random& random);
151
152 MCAPI static void initScatterParamIndices();
153 // NOLINTEND
154
155public:
156 // constructor thunks
157 // NOLINTBEGIN
158 MCAPI void* $ctor(::ScatterParams&&);
159
160 MCAPI void* $ctor(::ScatterParams const&);
161 // NOLINTEND
162
163public:
164 // destructor thunk
165 // NOLINTBEGIN
166 MCAPI void $dtor();
167 // NOLINTEND
168};
Definition BlockPos.h:17
Definition ExpressionNode.h:35
Definition Random.h:10
Definition RenderParams.h:29
Definition ScatterParams.h:77
Definition BiomeScatterParamData.h:16
Definition BiomeStringList.h:13
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