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;
14class LevelSeed64;
16class Random;
20// clang-format on
21
23public:
24 // ISurfaceBuilder inner types declare
25 // clang-format off
26 struct GlobalParameters;
29 // clang-format on
30
31 // ISurfaceBuilder inner types define
32 enum class WaterLevelStrategy : int {
33 Local = 0,
34 Global = 1,
35 };
36
37 struct GlobalParameters {
38 public:
39 // member variables
40 // NOLINTBEGIN
41 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
42 ::ll::TypedStorage<8, 8, ::PerlinSimplexNoise const&> mMaterialAdjNoise;
43 ::ll::TypedStorage<4, 4, ::ISurfaceBuilder::WaterLevelStrategy const> mWaterLevelStrategy;
44 ::ll::TypedStorage<2, 2, short> mSeaLevel;
45 ::ll::TypedStorage<1, 1, bool const> mUseCCOrLater;
46 // NOLINTEND
47
48 public:
49 // prevent constructor by default
50 GlobalParameters& operator=(GlobalParameters const&);
51 GlobalParameters(GlobalParameters const&);
52 GlobalParameters();
53 };
54
55 struct PerColumnParameters {
56 public:
57 // member variables
58 // NOLINTBEGIN
59 ::ll::TypedStorage<8, 8, ::BlockVolume&> mBlocks;
60 ::ll::TypedStorage<8, 8, ::BlockPos const&> mPos;
61 ::ll::TypedStorage<4, 4, float> mDepthValue;
62 ::ll::TypedStorage<4, 8, ::SharedTypes::IntRange const> mHeightRange;
63 ::ll::TypedStorage<8, 8, ::HeightmapWrapper const&> mPreWorldGenHeightmap;
64 // NOLINTEND
65
66 public:
67 // prevent constructor by default
68 PerColumnParameters& operator=(PerColumnParameters const&);
69 PerColumnParameters(PerColumnParameters const&);
70 PerColumnParameters();
71 };
72
73 struct SurfaceBuilderParameters {
74 public:
75 // SurfaceBuilderParameters inner types define
76 using GetTemperatureCallback = ::std::function<float(::BlockPos const&, short)>;
77
78 public:
79 // member variables
80 // NOLINTBEGIN
81 ::ll::TypedStorage<8, 8, ::SurfaceBuilderData const*> mSurfaceBuilderData;
82 ::ll::TypedStorage<8, 8, ::ISurfaceBuilder const*> mSurfaceBuilder;
83 ::ll::TypedStorage<8, 8, ::MountainAttributes const*> mMountainAttributes;
84 ::ll::TypedStorage<8, 8, ::SurfaceMaterialAdjustmentAttributes const*> mSurfaceMaterialAdjustmentAttributes;
85 ::ll::TypedStorage<8, 64, ::std::function<float(::BlockPos const&, short)>> mGetTemperatureCallback;
86 // NOLINTEND
87
88 public:
89 // prevent constructor by default
90 SurfaceBuilderParameters();
91
92 public:
93 // member functions
94 // NOLINTBEGIN
95 MCAPI SurfaceBuilderParameters(::Biome const& biome, ::SurfaceBuilderData const* surfaceBuilderData);
96 // NOLINTEND
97
98 public:
99 // constructor thunks
100 // NOLINTBEGIN
101 MCAPI void* $ctor(::Biome const& biome, ::SurfaceBuilderData const* surfaceBuilderData);
102 // NOLINTEND
103 };
104
105public:
106 // virtual functions
107 // NOLINTBEGIN
108 virtual ~ISurfaceBuilder() = default;
109
110 virtual void initBuilder(::LevelSeed64 levelSeed) = 0;
111
112 virtual void initBiomeSurface(::SurfaceBuilderData& surfaceBuilderData) const = 0;
113
114 virtual bool isBestBuilder(::SurfaceBuilderData const& surfaceBuilderData) const = 0;
115
116 virtual void buildSurfaceAt(
117 ::ISurfaceBuilder::GlobalParameters const& globalParams,
118 ::ISurfaceBuilder::SurfaceBuilderParameters const& surfaceBuilderParams,
120 ) const = 0;
121
122 virtual bool getUsesDepthValue() const = 0;
123 // NOLINTEND
124};
Definition Biome.h:23
Definition BlockPos.h:17
Definition BlockVolume.h:14
Definition Global.h:6
Definition HeightmapWrapper.h:5
Definition ISurfaceBuilder.h:22
Definition LevelSeed64.h:5
Definition PerlinSimplexNoise.h:11
Definition Random.h:10
Definition SurfaceBuilderData.h:8
Definition ISurfaceBuilder.h:37
Definition ISurfaceBuilder.h:55
Definition ISurfaceBuilder.h:73
Definition MountainAttributes.h:13
Definition SurfaceMaterialAdjustmentAttributes.h:19