3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/interface/IUIDefRepository.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/deps/json/Value.h"
9#include "mc/platform/brstd/move_only_function.h"
10#include "mc/platform/threading/SharedLock.h"
11#include "mc/resources/ResourceLoadType.h"
36 ::ll::TypedStorage<8, 32, ::std::string> mName;
37 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::Json::Value>> mDefs;
45 ::ll::TypedStorage<4, 4, int> collectionIndex;
46 ::ll::TypedStorage<8, 32, ::std::string> ns;
47 ::ll::TypedStorage<8, 32, ::std::string> name;
48 ::ll::TypedStorage<8, 32, ::std::string> refNs;
49 ::ll::TypedStorage<8, 32, ::std::string> refName;
50 ::ll::TypedStorage<8, 16, ::Json::Value> jsonVal;
54 using VisitNodeFunc = ::std::function<
55 ::Json::Value&(::std::string
const&, ::std::string
const&, ::std::string
const&, ::Json::Value&)>;
57 using DefEntriesPtr = ::std::shared_ptr<::std::vector<::UIDefRepository::DefEntry>>;
59 using ReportsPtr = ::std::shared_ptr<::std::unordered_map<::PackInstanceId, ::PackReport>>;
61 using UIDefNamespaceMap = ::std::unordered_map<::std::string, ::UIDefRepository::UIDefNamespace>;
66 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager>> mResourceLoadManager;
67 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::UIDefRepository::UIDefNamespace>> mDefNamespaces;
68 ::ll::TypedStorage<8, 16, ::Json::Value> mGlobalVariables;
69 ::ll::TypedStorage<8, 8, ::std::shared_mutex> mMutex;
79 virtual void loadDefsList(
80 ::ResourceLocation
const& defsListFile,
81 ::ResourcePackLoader
const& packLoader,
82 ::brstd::move_only_function<
void(::std::unordered_map<::PackInstanceId, ::PackReport>&)
const> onReportsReady
85 virtual void validateDefEntries(
86 ::ResourceLocation
const& defsListFile,
87 ::ResourcePackLoader
const& packLoader,
88 ::brstd::move_only_function<
void(::std::unordered_map<::PackInstanceId, ::PackReport>&)
const> onReportsReady
91 virtual ::Json::Value
const& findDef(::std::string
const& defNamespace, ::std::string
const& defName)
const
94 virtual ::Bedrock::Threading::SharedLock<::std::shared_mutex> acquireSharedLock() const ;
96 virtual
void syncUILoad() ;
98 virtual
void syncUILoadDefinitions() ;
100 virtual
void syncUILoadDefinitionReferences() ;
102 virtual
void cancelUIValidation() ;
104 virtual
bool isLoadingDone() const ;
106 virtual
bool isUILoadingDone() const ;
108 virtual
bool isUIValidationDone() const ;
111 forEachControl(::std::function<
void(::Json::Value const&, ::std::
string const&)> callback) ;
113 virtual ::Json::Value const& getGlobalVariables() const ;
115 virtual
void translateLegacyItemIdsInRepository(::ItemRegistryRef const itemRegistry) ;
121 MCNAPI explicit UIDefRepository(::Bedrock::NotNullNonOwnerPtr<::
ResourceLoadManager> resourceLoadManager);
126 ::ResourceLoadType loadType,
129 ::
std::shared_ptr<::
std::vector<::UIDefRepository::
DefEntry>> allDefEntries,
134 ::Json::Value const& value,
135 ::
std::
string const& namePath,
136 ::
std::function<
void(::Json::Value const&, ::
std::
string const&)> callback
161 MCAPI ::Json::Value const& $findDef(::
std::
string const& defNamespace, ::
std::
string const& defName) const;
Definition IUIDefRepository.h:5
Definition ItemRegistryRef.h:36
Definition PackReport.h:17
Definition ResourceLoadManager.h:22
Definition ResourceLocation.h:15
Definition ResourcePackLoader.h:36
Definition UIDefRepository.h:14
Definition UIDefRepository.h:5
MCAPI ::Bedrock::Threading::SharedLock<::std::shared_mutex > $acquireSharedLock() const
MCAPI void _collectAllDefEntries(::ResourceLoadType loadType, ::ResourceLocation const &defsListFile, ::ResourcePackLoader const &packLoader, ::std::shared_ptr<::std::vector<::UIDefRepository::DefEntry > > allDefEntries, ::std::shared_ptr<::std::unordered_map<::PackInstanceId, ::PackReport > > packReports) const
MCAPI void $cancelUIValidation()
MCAPI void $syncUILoadDefinitions()
MCAPI bool $isUILoadingDone() const
MCAPI void $translateLegacyItemIdsInRepository(::ItemRegistryRef const itemRegistry)
MCAPI void $validateDefEntries(::ResourceLocation const &defsListFile, ::ResourcePackLoader const &packLoader, ::brstd::move_only_function< void(::std::unordered_map<::PackInstanceId, ::PackReport > &) const > onReportsReady) const
MCAPI::Json::Value const & $getGlobalVariables() const
MCAPI void $loadDefsList(::ResourceLocation const &defsListFile, ::ResourcePackLoader const &packLoader, ::brstd::move_only_function< void(::std::unordered_map<::PackInstanceId, ::PackReport > &) const > onReportsReady)
MCAPI void _forEachControl(::Json::Value const &value, ::std::string const &namePath, ::std::function< void(::Json::Value const &, ::std::string const &)> callback)
MCAPI bool $isLoadingDone() const
MCAPI bool $isUIValidationDone() const
MCAPI void $forEachControl(::std::function< void(::Json::Value const &, ::std::string const &)> callback)
MCAPI void $syncUILoadDefinitionReferences()
MCAPI void * $ctor(::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager > resourceLoadManager)
MCAPI void _applyGlobalColorFormat()
Definition PackInstanceId.h:8
Definition UIDefRepository.h:16