3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/common/SubClientId.h"
23namespace Json {
class Value; }
32 virtual ~ISceneFactoryImpl() =
default;
34 virtual ::std::shared_ptr<::UIControlFactory>
35 createUIControlFactory(::Json::Value
const& globalVars, ::UISoundPlayer
const& soundPlayer) = 0;
37 virtual ::std::shared_ptr<::UIScene> createUIScene(
38 ::std::shared_ptr<::ScreenController> controller,
39 ::std::unique_ptr<::VisualTree> visualTree,
40 ::std::shared_ptr<::UIControlFactory> controlFactory,
41 ::std::unique_ptr<::LayoutManager> layoutManager
44 virtual ::std::shared_ptr<::mce::TextureGroup> getTextureGroup() = 0;
46 virtual void setMeasureStrategy(::VisualTree& tree) = 0;
48 virtual ::std::shared_ptr<void> createItemRegistryScope() = 0;
50 virtual ::ScreenSizeData getClientScreenSizeData() = 0;
52 virtual ::SubClientId getClientSubId() = 0;
54 virtual ::SceneCreationUtils::ScreenCreator getScreenCreator(::SceneFactory& factory) = 0;
56 virtual ::IScreenControllerFactory& getScreenControllerFactory() = 0;
58 virtual ::IScreenModelFactory& getScreenModelFactory() = 0;
64 MCAPI static ::std::unique_ptr<::ISceneFactoryImpl> create(
65 ::IMinecraftGame& game,
66 ::IAppPlatform& platform,
67 ::IClientInstance& client,
68 ::std::unique_ptr<::IScreenControllerFactory> controllerFactory,
69 ::std::unique_ptr<::IScreenModelFactory> modelFactory
Definition IClientInstance.h:5
Definition IMinecraftGame.h:5
Definition ISceneFactoryImpl.h:5
Definition IScreenControllerFactory.h:5
Definition IScreenModelFactory.h:5
Definition LayoutManager.h:5
Definition ScreenCreator.h:7
Definition SceneFactory.h:5
Definition ScreenController.h:5
Definition UIControlFactory.h:5
Definition UISoundPlayer.h:5
Definition VisualTree.h:5
Definition TextureGroup.h:7
Definition ScreenSizeData.h:5