LeviLamina
Loading...
Searching...
No Matches
UIBlockThumbnailAtlasManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/controls/renderers/UIThumbnailAtlasRenderer.h"
7#include "mc/client/gui/oreui/resources/AtlasIndex.h"
8#include "mc/deps/core/string/HashedString.h"
9#include "mc/deps/core/utility/NonOwnerPointer.h"
10#include "mc/deps/game_refs/EnableGetWeakRef.h"
11
12// auto generated forward declare list
13// clang-format off
14class IClientInstance;
15class ItemGraphics;
16class ItemStack;
17class TaskGroup;
18namespace OreUI { struct AtlasIndex; }
19namespace cg { class ImageBuffer; }
20namespace mce { class Color; }
21namespace mce { class TexturePtr; }
22// clang-format on
23
24namespace OreUI {
25
26class UIBlockThumbnailAtlasManager : public ::EnableGetWeakRef<::OreUI::UIBlockThumbnailAtlasManager>,
27 public ::std::enable_shared_from_this<::OreUI::UIBlockThumbnailAtlasManager> {
28public:
29 // UIBlockThumbnailAtlasManager inner types declare
30 // clang-format off
31 struct AtlasData;
32 // clang-format on
33
34 // UIBlockThumbnailAtlasManager inner types define
35 struct AtlasData {
36 public:
37 // member variables
38 // NOLINTBEGIN
39 ::ll::TypedStorage<8, 48, ::HashedString> name;
40 ::ll::TypedStorage<2, 2, ushort> u;
41 ::ll::TypedStorage<2, 2, ushort> v;
42 ::ll::TypedStorage<2, 2, ushort> rows;
43 ::ll::TypedStorage<2, 2, ushort> cols;
44 ::ll::TypedStorage<2, 2, ushort> maxCols;
45 ::ll::TypedStorage<8, 8, uint64> count;
46 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::UIThumbnailAtlasRenderer::AtlasInfo>> mAtlasInfo;
47 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cg::ImageBuffer>> mImageBuffer;
48 // NOLINTEND
49
50 public:
51 // prevent constructor by default
52 AtlasData();
53
54 public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI explicit AtlasData(::HashedString name);
58
59 MCAPI AtlasData(::HashedString name, ::std::unique_ptr<::UIThumbnailAtlasRenderer::AtlasInfo>&& atlasInfo);
60 // NOLINTEND
61
62 public:
63 // constructor thunks
64 // NOLINTBEGIN
65 MCAPI void* $ctor(::HashedString name);
66
67 MCAPI void* $ctor(::HashedString name, ::std::unique_ptr<::UIThumbnailAtlasRenderer::AtlasInfo>&& atlasInfo);
68 // NOLINTEND
69 };
70
71 using AtlasInfo = ::UIThumbnailAtlasRenderer::AtlasInfo;
72
73 using ItemAtlasInfo = ::std::pair<::UIThumbnailAtlasRenderer::AtlasInfo, ::OreUI::AtlasIndex::ItemEntry>;
74
75 using SubstitutionMap = ::std::unordered_map<::HashedString, ::HashedString>;
76
77 using AtlasMap =
78 ::std::unordered_map<::HashedString, ::std::unique_ptr<::OreUI::UIBlockThumbnailAtlasManager::AtlasData>>;
79
80public:
81 // member variables
82 // NOLINTBEGIN
83 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClientInstance;
84 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::HashedString>> mSubstitutions;
85 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::OreUI::AtlasIndex>>>
86 mAtlasIndices;
87 ::ll::TypedStorage<
88 8,
89 64,
90 ::std::unordered_map<::HashedString, ::std::unique_ptr<::OreUI::UIBlockThumbnailAtlasManager::AtlasData>>>
91 mAtlases;
92 ::ll::TypedStorage<4, 4, ::std::atomic<int>> mAvailableSemaphore;
93 ::ll::TypedStorage<4, 4, uint> mAtlasIndex;
94 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::mce::Color>> mBlockAverageColorMap;
95 // NOLINTEND
96
97public:
98 // prevent constructor by default
99 UIBlockThumbnailAtlasManager();
100
101public:
102 // member functions
103 // NOLINTBEGIN
104 MCAPI UIBlockThumbnailAtlasManager(
105 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> primaryClientInstance,
106 ::std::unordered_map<::HashedString, ::HashedString> substitutionMap
107 );
108
109 MCAPI bool _buildThumbnailAtlas(::TaskGroup& taskGroup, bool isResume);
110
111 MCAPI void _generateItemIndex(bool stripVanillaNamespace);
112
113 MCAPI ::mce::TexturePtr _getAtlasTexture(::ItemStack const& item, ::ItemGraphics const& itemGraphics);
114
115 MCAPI ::OreUI::UIBlockThumbnailAtlasManager::AtlasData&
116 _getOrCreateAtlasData(::std::string_view atlasName, ::mce::TexturePtr const& texturePtr);
117
118 MCAPI ::mce::TexturePtr _getShulkerBoxTexture(::ItemStack const& item) const;
119
120 MCAPI void _unloadAtlasTextures();
121
122 MCAPI ~UIBlockThumbnailAtlasManager();
123 // NOLINTEND
124
125public:
126 // constructor thunks
127 // NOLINTBEGIN
128 MCAPI void* $ctor(
129 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> primaryClientInstance,
130 ::std::unordered_map<::HashedString, ::HashedString> substitutionMap
131 );
132 // NOLINTEND
133
134public:
135 // destructor thunk
136 // NOLINTBEGIN
137 MCAPI void $dtor();
138 // NOLINTEND
139};
140
141} // namespace OreUI
Definition IClientInstance.h:5
Definition ItemGraphics.h:5
Definition ItemStack.h:26
Definition UIBlockThumbnailAtlasManager.h:7
Definition TaskGroup.h:57
Definition ImageBuffer.h:16
Definition Color.h:13
Definition TexturePtr.h:19
Definition AtlasIndex.h:7
Definition UIBlockThumbnailAtlasManager.h:15