LeviLamina
Loading...
Searching...
No Matches
ISurfaceBuilder.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/shared_types/shared_types/IntRange.h"
7
8// auto generated forward declare list
9// clang-format off
10class Biome;
11class BlockPos;
12class BlockVolume;
15class Random;
19// clang-format on
20
22public:
23 // ISurfaceBuilder inner types declare
24 // clang-format off
25 struct BuildParameters;
26 // clang-format on
27
28 // ISurfaceBuilder inner types define
29 enum class WaterLevelStrategy : int {
30 Local = 0,
31 Global = 1,
32 };
33
34 struct BuildParameters {
35 public:
36 // BuildParameters inner types define
37 using GetTemperatureCallback = ::std::function<float(::BlockPos const&, short)>;
38
39 public:
40 // member variables
41 // NOLINTBEGIN
42 ::ll::TypedStorage<8, 8, ::SurfaceBuilderData const&> mSurfaceBuilderData;
43 ::ll::TypedStorage<8, 8, ::MountainAttributes const*> mMountainAttributes;
44 ::ll::TypedStorage<8, 8, ::SurfaceMaterialAdjustmentAttributes const*> mSurfaceMaterialAdjustmentAttributes;
45 ::ll::TypedStorage<8, 64, ::std::function<float(::BlockPos const&, short)>> mGetTemperatureCallback;
46 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
47 ::ll::TypedStorage<8, 8, ::BlockVolume&> mBlocks;
48 ::ll::TypedStorage<8, 8, ::BlockPos const&> mPos;
49 ::ll::TypedStorage<4, 4, float> mDepthValue;
50 ::ll::TypedStorage<2, 2, short> mSeaLevel;
51 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PerlinSimplexNoise> const&> mMaterialAdjNoise;
52 ::ll::TypedStorage<4, 4, ::ISurfaceBuilder::WaterLevelStrategy const> mWaterLevelStrategy;
53 ::ll::TypedStorage<4, 8, ::SharedTypes::IntRange const> mHeightRange;
54 ::ll::TypedStorage<8, 8, ::HeightmapWrapper const&> mPreWorldGenHeightmap;
55 ::ll::TypedStorage<1, 1, bool const> mUseCCOrLater;
56 // NOLINTEND
57
58 public:
59 // prevent constructor by default
60 BuildParameters& operator=(BuildParameters const&);
61 BuildParameters(BuildParameters const&);
62 BuildParameters();
63
64 public:
65 // member functions
66 // NOLINTBEGIN
67 MCAPI BuildParameters(
68 ::Biome const& biome,
69 ::SurfaceBuilderData const& surfaceBuilderData,
70 ::Random& random,
71 ::BlockVolume& blocks,
72 ::BlockPos const& pos,
73 float depthValue,
74 short seaLevel,
75 ::std::unique_ptr<::PerlinSimplexNoise> const& materialAdjNoise,
76 ::ISurfaceBuilder::WaterLevelStrategy waterLevelStrategy,
77 ::SharedTypes::IntRange heightRange,
78 ::HeightmapWrapper const& preWorldGenHeightmap,
79 bool useCCOrLater
80 );
81 // NOLINTEND
82
83 public:
84 // constructor thunks
85 // NOLINTBEGIN
86 MCAPI void* $ctor(
87 ::Biome const& biome,
88 ::SurfaceBuilderData const& surfaceBuilderData,
89 ::Random& random,
90 ::BlockVolume& blocks,
91 ::BlockPos const& pos,
92 float depthValue,
93 short seaLevel,
94 ::std::unique_ptr<::PerlinSimplexNoise> const& materialAdjNoise,
95 ::ISurfaceBuilder::WaterLevelStrategy waterLevelStrategy,
96 ::SharedTypes::IntRange heightRange,
97 ::HeightmapWrapper const& preWorldGenHeightmap,
98 bool useCCOrLater
99 );
100 // NOLINTEND
101 };
102
103public:
104 // virtual functions
105 // NOLINTBEGIN
106 virtual ~ISurfaceBuilder() = default;
107
108 virtual void initBuilder(uint levelSeed) = 0;
109
110 virtual void initBiomeSurface(::SurfaceBuilderData& surfaceBuilderData) const = 0;
111
112 virtual bool isBestBuilder(::SurfaceBuilderData const& surfaceBuilderData) const = 0;
113
114 virtual void buildSurfaceAt(::ISurfaceBuilder::BuildParameters const& parameters) const = 0;
115 // NOLINTEND
116
117public:
118 // virtual function thunks
119 // NOLINTBEGIN
120
121 // NOLINTEND
122};
Definition Biome.h:24
Definition BlockPos.h:21
Definition BlockVolume.h:14
Definition Global.h:6
Definition HeightmapWrapper.h:10
Definition ISurfaceBuilder.h:21
Definition PerlinSimplexNoise.h:13
Definition Random.h:10
Definition SurfaceBuilderData.h:8
Definition ISurfaceBuilder.h:34
Definition MountainAttributes.h:13
Definition IntRange.h:12
Definition SurfaceMaterialAdjustmentAttributes.h:19