LeviLamina
Loading...
Searching...
No Matches
TerrainMaterialVariationManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/game/MaterialVariationManager.h"
7#include "mc/client/renderer/game/TerrainVariation.h"
8#include "mc/deps/core/utility/buffer_span.h"
9#include "mc/deps/core/utility/optional_ref.h"
10#include "mc/deps/minecraft_renderer/game/TerrainLayerLOD.h"
11
12// auto generated forward declare list
13// clang-format off
14struct TerrainLayer;
15namespace mce { class MaterialPtr; }
16namespace mce { class RenderMaterialGroup; }
17// clang-format on
18
20public:
21 // TerrainMaterialVariationManager inner types declare
22 // clang-format off
23 struct TerrainLayerKey;
24 // clang-format on
25
26 // TerrainMaterialVariationManager inner types define
27 struct TerrainLayerKey {
28 public:
29 // member variables
30 // NOLINTBEGIN
31 ::ll::TypedStorage<8, 8, uint64> mLayerID;
32 ::ll::TypedStorage<1, 1, ::TerrainLayerLOD> mLOD;
33 // NOLINTEND
34 };
35
36 using TerrainLayerMaterialMap = ::std::map<::TerrainMaterialVariationManager::TerrainLayerKey, ::mce::MaterialPtr>;
37
38public:
39 // member variables
40 // NOLINTBEGIN
41 ::ll::TypedStorage<8, 8, ::mce::RenderMaterialGroup*> mRenderMaterialGroup;
42 ::ll::TypedStorage<8, 32, ::std::string> mVariationName;
43 ::ll::TypedStorage<8, 32, ::std::string> mFullVariationName;
44 ::ll::TypedStorage<8, 32, ::std::string> mFullParentVariationName;
45 ::ll::TypedStorage<8, 16, ::std::map<::TerrainVariation, ::TerrainMaterialVariationManager>> mSubVariations;
46 ::ll::TypedStorage<8, 16, ::std::map<::TerrainMaterialVariationManager::TerrainLayerKey, ::mce::MaterialPtr>>
47 terrainLayerMaterialMap;
48 // NOLINTEND
49
50public:
51 // prevent constructor by default
52 TerrainMaterialVariationManager();
53
54public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI TerrainMaterialVariationManager(
58 ::mce::RenderMaterialGroup& renderMaterialGroup,
59 ::buffer_span<::std::string> variations
60 );
61
62 MCAPI void addVariation(::std::string const& variationNames);
63
64 MCAPI ::mce::MaterialPtr const&
65 getMaterial(::TerrainLayer const& terrainLayer, ::TerrainLayerLOD terrainLayerLOD) const;
66
67 MCAPI ::optional_ref<::TerrainMaterialVariationManager const>
68 getVariationManager(::std::string const& fullVariationName) const;
69
70 MCAPI void populateMaterialList(bool assertIfMaterialIsntFound);
71
72 MCAPI ~TerrainMaterialVariationManager();
73 // NOLINTEND
74
75public:
76 // constructor thunks
77 // NOLINTBEGIN
78 MCAPI void* $ctor(::mce::RenderMaterialGroup& renderMaterialGroup, ::buffer_span<::std::string> variations);
79 // NOLINTEND
80
81public:
82 // destructor thunk
83 // NOLINTBEGIN
84 MCAPI void $dtor();
85 // NOLINTEND
86};
Definition MaterialVariationManager.h:5
Definition TerrainMaterialVariationManager.h:5
Definition MaterialPtr.h:14
Definition RenderMaterialGroup.h:7
Definition TerrainLayer.h:5
Definition TerrainMaterialVariationManager.h:13