3#include "mc/_HeaderOutputPredefine.h"
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"
36 enum class NeedsMolang :
int {
45 ::ll::TypedStorage<8, 16, ::ExpressionNode> mChancePercent;
46 ::ll::TypedStorage<4, 4, int> mNumerator;
47 ::ll::TypedStorage<4, 4, int> mDenominator;
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;
66 MCNAPI
int _eval(
int evaluatedMin,
int evaluatedMax, uint& stepIndex,
::Random& random)
const;
78 class ScatteredPositions {
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;
91 ScatteredPositions& operator=(ScatteredPositions
const&);
92 ScatteredPositions(ScatteredPositions
const&);
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;
107 ScatterParams& operator=(ScatterParams
const&);
119 ::MolangVersion molangVersion,
126 MCNAPI ::ScatterParams::ScatteredPositions
138 ::std::string
const& coordinateName,
141 ::MolangVersion
const& molangVersion,
147 ::std::string
const& expression,
160 MCNAPI
void*
$ctor(::ScatterParams&&);
162 MCNAPI
void*
$ctor(::ScatterParams
const&);
Definition ExpressionNode.h:35
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 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 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:51
MCAPI int _eval(int evaluatedMin, int evaluatedMax, uint &stepIndex, ::Random &random) const
Definition CoordinateRangeData.h:16
Definition ScatterParamsData.h:18