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
51 using AtlasInfo = ::UIThumbnailAtlasRenderer::AtlasInfo;
52
53 using ItemAtlasInfo = ::std::pair<::UIThumbnailAtlasRenderer::AtlasInfo, ::OreUI::AtlasIndex::ItemEntry>;
54
55 using SubstitutionMap = ::std::unordered_map<::HashedString, ::HashedString>;
56
57 using AtlasMap =
58 ::std::unordered_map<::HashedString, ::std::unique_ptr<::OreUI::UIBlockThumbnailAtlasManager::AtlasData>>;
59
60public:
61 // member variables
62 // NOLINTBEGIN
63 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClientInstance;
64 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::HashedString>> mSubstitutions;
65 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::OreUI::AtlasIndex>>>
66 mAtlasIndices;
67 ::ll::TypedStorage<
68 8,
69 64,
70 ::std::unordered_map<::HashedString, ::std::unique_ptr<::OreUI::UIBlockThumbnailAtlasManager::AtlasData>>>
71 mAtlases;
72 ::ll::TypedStorage<4, 4, ::std::atomic<int>> mAvailableSemaphore;
73 ::ll::TypedStorage<4, 4, uint> mAtlasIndex;
74 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::mce::Color>> mBlockAverageColorMap;
75 // NOLINTEND
76
77public:
78 // prevent constructor by default
79 UIBlockThumbnailAtlasManager();
80
81public:
82 // member functions
83 // NOLINTBEGIN
84 MCAPI UIBlockThumbnailAtlasManager(
85 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> primaryClientInstance,
86 ::std::unordered_map<::HashedString, ::HashedString> substitutionMap
87 );
88
89 MCAPI bool _buildThumbnailAtlas(::TaskGroup& taskGroup, bool isResume);
90
91 MCAPI ::mce::TexturePtr _getAtlasTexture(::ItemStack const& item, ::ItemGraphics const& itemGraphics);
92
93 MCAPI void _unloadAtlasTextures();
94
95 MCAPI ::std::shared_ptr<::OreUI::AtlasIndex> getIndex(::std::string_view atlasName) const;
96
97 MCAPI bool isThumbnailAtlasEnabled() const;
98
99 MCAPI bool rebuildThumbnailAtlas(bool isResume);
100 // NOLINTEND
101
102public:
103 // constructor thunks
104 // NOLINTBEGIN
105 MCAPI void* $ctor(
106 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> primaryClientInstance,
107 ::std::unordered_map<::HashedString, ::HashedString> substitutionMap
108 );
109 // NOLINTEND
110};
111
112} // namespace OreUI
Definition IClientInstance.h:5
Definition ItemGraphics.h:5
Definition ItemStack.h:24
Definition UIBlockThumbnailAtlasManager.h:7
Definition TaskGroup.h:61
Definition ImageBuffer.h:16
Definition Color.h:13
Definition TexturePtr.h:7
Definition AtlasIndex.h:7
Definition UIBlockThumbnailAtlasManager.h:15