Skip to content
LeviMC
English
AutoLightDark
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 MCNAPI ScatterParams(::ScatterParams&&);
114
115 MCNAPI ScatterParams(::ScatterParams const&);
116
117 MCNAPI void fillFromData(
119 ::MolangVersion molangVersion,
120 ::LogArea logArea
121 );
122
123 MCNAPI void
125
126 MCNAPI ::ScatterParams::ScatteredPositions
127 scatter(::RenderParams& molangParams, ::BlockPos const& pos, ::Random& random) const;
128
130
132 // NOLINTEND
133
134public:
135 // static functions
136 // NOLINTBEGIN
138 ::std::string const& coordinateName,
139 ::ScatterParams::CoordinateRange& coordinateRange,
140 ::SharedTypes::v1_21_10::CoordinateRangeData const& coordinateRangeData,
141 ::MolangVersion const& molangVersion,
142 ::LogArea logArea
143 );
144
145 MCNAPI static void _parseExpressionNodeFloat(
146 ::ExpressionOp op,
147 ::std::string const& expression,
148 ::ExpressionNode& node,
149 float defaultValue
150 );
151
152 MCNAPI static void initMolangParams(::RenderParams& molangParams, ::BlockPos const& pos, ::IRandom& random);
153
154 MCNAPI static void initScatterParamIndices();
155 // NOLINTEND
156
157public:
158 // constructor thunks
159 // NOLINTBEGIN
160 MCNAPI void* $ctor(::ScatterParams&&);
161
162 MCNAPI void* $ctor(::ScatterParams const&);
163 // NOLINTEND
164
165public:
166 // destructor thunk
167 // NOLINTBEGIN
168 MCNAPI void $dtor();
169 // NOLINTEND
170};
Definition BlockPos.h:14
Definition ExpressionNode.h:35
Definition IRandom.h:10
Definition Random.h:10
Definition RenderParams.h:29
Definition ScatterParams.h:78
MCAPI void * $ctor(::ScatterParams &&)
MCAPI ScatterParams(::ScatterParams const &)
MCAPI void * $ctor(::ScatterParams const &)
static MCAPI void _parseExpressionNodeFloat(::ExpressionOp op, ::std::string const &expression, ::ExpressionNode &node, float defaultValue)
MCAPI void $dtor()
MCAPI ScatterParams(::ScatterParams &&)
static MCAPI void initMolangParams(::RenderParams &molangParams, ::BlockPos const &pos, ::IRandom &random)
static MCAPI void _fillCoordinateRangeFromData(::std::string const &coordinateName, ::ScatterParams::CoordinateRange &coordinateRange, ::SharedTypes::v1_21_10::CoordinateRangeData const &coordinateRangeData, ::MolangVersion const &molangVersion, ::LogArea logArea)
MCAPI void serializeScatterParamData(::BiomeScatterParamData &data, ::BiomeStringList &stringList) const
MCAPI ~ScatterParams()
MCAPI void fillFromData(::SharedTypes::v1_21_10::ScatterParamsData const &data, ::MolangVersion molangVersion, ::LogArea logArea)
static MCAPI void initScatterParamIndices()
MCAPI void readSerializedScatterParamData(::BiomeScatterParamData const &data, ::BiomeStringList const &stringList)
MCAPI::ScatterParams::ScatteredPositions scatter(::RenderParams &molangParams, ::BlockPos const &pos, ::Random &random) const
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