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