Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
OreUISystem.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/oreui/LiveViewCollection.h"
7#include "mc/client/gui/oreui/resources/TemporaryTextureHolder.h"
8#include "mc/client/gui/oreui/routing/RouterConfiguration.h"
9#include "mc/deps/core/file/Path.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/deps/core/utility/pub_sub/Subscription.h"
12#include "mc/platform/brstd/move_only_function.h"
13
14// auto generated forward declare list
15// clang-format off
16class IClientInstance;
17class IFileAccess;
18class IOptionRegistry;
19class ISceneStack;
20class SceneFactory;
21namespace Core { class FileSystem; }
22namespace Gameface { class ResourceHandlerBroker; }
23namespace Input::Debug { class ISplitscreenRedirect; }
24namespace OreUI { class FacetRegistryFactory; }
25namespace OreUI { class IRoutePrerequisiteHandler; }
26namespace OreUI { class Library; }
27namespace OreUI { class ResourceAllowList; }
28namespace OreUI { class Router; }
29namespace OreUI { class RouterEventing; }
30namespace OreUI { class SceneProvider; }
31namespace OreUI { struct DebugData; }
32namespace OreUI { struct LibraryFactoryArguments; }
33namespace OreUI { struct RegisterResourceHandlersArguments; }
34namespace OreUI { struct ResourceHandlerFactory; }
35namespace OreUI { struct ResourceHandlerFactoryArguments; }
36namespace OreUI::Debug { class DevServerListener; }
37namespace OreUI::Detail { class BindingRegistryFactory; }
38namespace mce { class RenderContext; }
39namespace mce { class ShaderGroup; }
40// clang-format on
41
42namespace OreUI {
43
44class OreUISystem {
45public:
46 // OreUISystem inner types declare
47 // clang-format off
49 struct Impl;
50 struct CallbackEntry;
51 // clang-format on
52
53 // OreUISystem inner types define
55 public:
56 // OreUISystemDependencies inner types define
57 using ResourceHandlerBrokerFactory = ::brstd::move_only_function<::std::unique_ptr<
58 ::Gameface::ResourceHandlerBroker>(::OreUI::RegisterResourceHandlersArguments const&) const>;
59
60 using LibraryFactory =
61 ::brstd::move_only_function<::std::unique_ptr<::OreUI::Library>(::OreUI::LibraryFactoryArguments&&) const>;
62
63 using SceneProviderFactory = ::brstd::move_only_function<::std::unique_ptr<::OreUI::SceneProvider>(
64 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const&,
65 ::std::unique_ptr<::OreUI::FacetRegistryFactory>,
66 ::std::unique_ptr<::OreUI::Detail::BindingRegistryFactory>,
67 ::OreUI::Library&
68 ) const>;
69
70 public:
71 // member variables
72 // NOLINTBEGIN
73 ::ll::TypedStorage<
74 8,
75 64,
76 ::brstd::move_only_function<::std::unique_ptr<
77 ::Gameface::ResourceHandlerBroker>(::OreUI::RegisterResourceHandlersArguments const&) const>>
78 mCreateResourceHandlerBroker;
79 ::ll::TypedStorage<
80 8,
81 64,
82 ::brstd::move_only_function<::std::unique_ptr<::OreUI::Library>(::OreUI::LibraryFactoryArguments&&) const>>
83 mCreateLibrary;
84 ::ll::TypedStorage<
85 8,
86 64,
87 ::brstd::move_only_function<::std::unique_ptr<::OreUI::SceneProvider>(
88 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const&,
89 ::std::unique_ptr<::OreUI::FacetRegistryFactory>,
90 ::std::unique_ptr<::OreUI::Detail::BindingRegistryFactory>,
91 ::OreUI::Library&
92 ) const>>
93 mSceneProviderFactory;
94 ::ll::TypedStorage<8, 272, ::OreUI::RouterConfiguration> mRouterConfiguration;
95 ::ll::TypedStorage<8, 32, ::Core::Path> mPackagePath;
96 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::ResourceAllowList>> mAllowList;
97 ::ll::TypedStorage<8, 24, ::OreUI::LiveViewCollection> mLiveViewCollection;
98 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::mce::ShaderGroup>> mShaderGroup;
99 ::ll::TypedStorage<8, 8, ::gsl::not_null<::mce::RenderContext*>> mRenderContext;
100 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::DebugData>> mDebugData;
101 ::ll::TypedStorage<8, 64, ::std::function<void(::std::string_view)>> mShowDebugToast;
102 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::Input::Debug::ISplitscreenRedirect>>
103 mDebugSplitscreenInputRedirect;
104 // NOLINTEND
105
106 public:
107 // static functions
108 // NOLINTBEGIN
109 MCNAPI static ::brstd::move_only_function<
110 ::std::unique_ptr<::OreUI::Library>(::OreUI::LibraryFactoryArguments&&) const>
112 ::Bedrock::NotNullNonOwnerPtr<::Core::FileSystem> fileSystem,
113 ::Bedrock::NotNullNonOwnerPtr<::IFileAccess> appPackageFileAccess
114 );
115
116 MCNAPI static ::brstd::move_only_function<::std::unique_ptr<
117 ::Gameface::ResourceHandlerBroker>(::OreUI::RegisterResourceHandlersArguments const&) const>
119
120 MCNAPI static ::OreUI::ResourceHandlerFactory
122 // NOLINTEND
123 };
124
125 struct Impl {
126 public:
127 // member variables
128 // NOLINTBEGIN
129 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::OreUI::ResourceAllowList>>> mResourceAllowList;
130 ::ll::TypedStorage<
131 8,
132 64,
134 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const&,
135 ::std::unique_ptr<::OreUI::FacetRegistryFactory>,
136 ::std::unique_ptr<::OreUI::Detail::BindingRegistryFactory>,
138 ) const>>
139 mCreateSceneProvider;
140 ::ll::TypedStorage<8, 272, ::OreUI::RouterConfiguration> mRouterConfiguration;
141 ::ll::TypedStorage<8, 104, ::Gameface::TemporaryTextureHolder> mTemporaryTextureHolder;
142 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::OreUI::DebugData>>> mDebugData;
143 ::ll::TypedStorage<8, 64, ::std::function<void(::std::string_view)>> mShowDebugToast;
144 // NOLINTEND
145 };
146
147 struct CallbackEntry {
148 public:
149 // member variables
150 // NOLINTBEGIN
151 ::ll::TypedStorage<8, 8, void*> token;
152 ::ll::TypedStorage<8, 64, ::std::function<void()>> callback;
153 // NOLINTEND
154 };
155
156public:
157 // member variables
158 // NOLINTBEGIN
159 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::OreUI::OreUISystem::Impl>>> mImpl;
160 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::Library>> mLibrary;
161 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::Debug::DevServerListener>> mDevServerListener;
162 ::ll::TypedStorage<1, 1, bool> mAppWillRestart;
163 ::ll::TypedStorage<8, 24, ::std::vector<::OreUI::OreUISystem::CallbackEntry>> mRouteConfigurationChangeCallbacks;
164 ::ll::TypedStorage<8, 24, ::std::vector<::Bedrock::PubSub::Subscription>> mOptionSubscriptions;
165 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesTrialMode;
166 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesFriendsDrawerOnMultipleScreens;
167 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesSettingsScreen;
168 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesPartySettingsScreen;
169 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesPreviewSettingsScreen;
170 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesStorageSettingsScreen;
171 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesNewSettingsInGame;
172 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesNewSettingsOnThirdPartyServers;
173 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mFlightingTogglesCloudStorageManager;
174 // NOLINTEND
175
176public:
177 // prevent constructor by default
178 OreUISystem();
179
180public:
181 // member functions
182 // NOLINTBEGIN
184
185 MCNAPI ::std::unique_ptr<::OreUI::Router> createInGameRouter(
186 ::std::unique_ptr<::OreUI::IRoutePrerequisiteHandler> prerequisiteHandler,
187 ::std::unique_ptr<::OreUI::RouterEventing> routerEventing,
188 ::SceneFactory& sceneFactory,
189 ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> const& sceneStack
190 ) const;
191
192 MCNAPI ::std::unique_ptr<::OreUI::Router> createOutOfGameRouter(
193 ::std::unique_ptr<::OreUI::IRoutePrerequisiteHandler> prerequisiteHandler,
194 ::std::unique_ptr<::OreUI::RouterEventing> routerEventing,
195 ::SceneFactory& sceneFactory,
196 ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> const& sceneStack
197 ) const;
198
199 MCNAPI ::std::unique_ptr<::OreUI::SceneProvider> createSceneProvider(
200 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& clientInstance,
201 ::std::unique_ptr<::OreUI::FacetRegistryFactory> facetRegistryFactory,
202 ::std::unique_ptr<::OreUI::Detail::BindingRegistryFactory> bindingRegistryFactory
203 ) const;
204
206
207 MCNAPI void registerRouteConfigurationChangeCallback(void* token, ::std::function<void()> const& callback);
208
210
211 MCNAPI void update(double time);
212
213 MCNAPI ~OreUISystem();
214 // NOLINTEND
215
216public:
217 // constructor thunks
218 // NOLINTBEGIN
220 // NOLINTEND
221
222public:
223 // destructor thunk
224 // NOLINTBEGIN
225 MCNAPI void $dtor();
226 // NOLINTEND
227};
228
229} // namespace OreUI
Definition FileSystem.h:28
Definition ResourceHandlerBroker.h:7
Definition IClientInstance.h:5
Definition IFileAccess.h:15
Definition IOptionRegistry.h:5
Definition ISceneStack.h:5
Definition ISplitscreenRedirect.h:7
Definition DevServerListener.h:7
Definition BindingRegistryFactory.h:7
Definition FacetRegistryFactory.h:7
Definition IRoutePrerequisiteHandler.h:7
Definition Library.h:7
Definition OreUISystem.h:7
MCAPI void update(double time)
MCAPI void registerRouteConfigurationChangeCallback(void *token, ::std::function< void()> const &callback)
MCAPI void unregisterRouteConfigurationChangeCallback(void *token)
MCAPI ::std::unique_ptr<::OreUI::Router > createOutOfGameRouter(::std::unique_ptr<::OreUI::IRoutePrerequisiteHandler > prerequisiteHandler, ::std::unique_ptr<::OreUI::RouterEventing > routerEventing, ::SceneFactory &sceneFactory, ::Bedrock::NotNullNonOwnerPtr<::ISceneStack > const &sceneStack) const
MCAPI OreUISystem(::OreUI::OreUISystem::OreUISystemDependencies &&deps)
MCAPI void * $ctor(::OreUI::OreUISystem::OreUISystemDependencies &&deps)
MCAPI ::std::unique_ptr<::OreUI::SceneProvider > createSceneProvider(::Bedrock::NotNullNonOwnerPtr<::IClientInstance > const &clientInstance, ::std::unique_ptr<::OreUI::FacetRegistryFactory > facetRegistryFactory, ::std::unique_ptr<::OreUI::Detail::BindingRegistryFactory > bindingRegistryFactory) const
MCAPI ::std::unique_ptr<::OreUI::Router > createInGameRouter(::std::unique_ptr<::OreUI::IRoutePrerequisiteHandler > prerequisiteHandler, ::std::unique_ptr<::OreUI::RouterEventing > routerEventing, ::SceneFactory &sceneFactory, ::Bedrock::NotNullNonOwnerPtr<::ISceneStack > const &sceneStack) const
MCAPI void registerOptionObservers(::IOptionRegistry &options)
MCAPI void $dtor()
Definition ResourceAllowList.h:7
Definition RouterEventing.h:7
Definition Router.h:7
Definition SceneProvider.h:7
Definition SceneFactory.h:5
Definition move_only_function.h:9
Definition RenderContext.h:7
Definition ShaderGroup.h:7
STL namespace.
Definition DebugData.h:7
Definition LibraryFactoryArguments.h:7
Definition OreUISystem.h:21
Definition OreUISystem.h:19
static MCAPI ::OreUI::ResourceHandlerFactory createResourceHandlerFactory(::OreUI::ResourceHandlerFactoryArguments const &args)
static MCAPI ::brstd::move_only_function<::std::unique_ptr< ::Gameface::ResourceHandlerBroker >(::OreUI::RegisterResourceHandlersArguments const &) const > createResourceHandlerBrokerFactory(::OreUI::ResourceHandlerFactoryArguments const &args)
static MCAPI ::brstd::move_only_function< ::std::unique_ptr<::OreUI::Library >(::OreUI::LibraryFactoryArguments &&) const > createLibraryFactory(::Bedrock::NotNullNonOwnerPtr<::Core::FileSystem > fileSystem, ::Bedrock::NotNullNonOwnerPtr<::IFileAccess > appPackageFileAccess)
Definition RegisterResourceHandlersArguments.h:7
Definition ResourceHandlerFactoryArguments.h:7
Definition ResourceHandlerFactory.h:7