LeviLamina
Loading...
Searching...
No Matches
ISceneFactoryImpl.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/SubClientId.h"
7
8// auto generated forward declare list
9// clang-format off
10class IAppPlatform;
11class IClientInstance;
12class IMinecraftGame;
15class LayoutManager;
16class SceneFactory;
19class UIScene;
20class UISoundPlayer;
21class VisualTree;
22struct ScreenSizeData;
23namespace Json { class Value; }
24namespace SceneCreationUtils { class ScreenCreator; }
25namespace mce { class TextureGroup; }
26// clang-format on
27
29public:
30 // virtual functions
31 // NOLINTBEGIN
32 virtual ~ISceneFactoryImpl() = default;
33
34 virtual ::std::shared_ptr<::UIControlFactory>
35 createUIControlFactory(::Json::Value const& globalVars, ::UISoundPlayer const& soundPlayer) = 0;
36
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
42 ) = 0;
43
44 virtual ::std::shared_ptr<::mce::TextureGroup> getTextureGroup() = 0;
45
46 virtual void setMeasureStrategy(::VisualTree& tree) = 0;
47
48 virtual ::std::shared_ptr<void> createItemRegistryScope() = 0;
49
50 virtual ::ScreenSizeData getClientScreenSizeData() = 0;
51
52 virtual ::SubClientId getClientSubId() = 0;
53
54 virtual ::SceneCreationUtils::ScreenCreator getScreenCreator(::SceneFactory& factory) = 0;
55
56 virtual ::IScreenControllerFactory& getScreenControllerFactory() = 0;
57
58 virtual ::IScreenModelFactory& getScreenModelFactory() = 0;
59 // NOLINTEND
60
61public:
62 // static functions
63 // NOLINTBEGIN
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
70 );
71 // NOLINTEND
72};
Definition IAppPlatform.h:15
Definition IClientInstance.h:5
Definition IMinecraftGame.h:5
Definition ISceneFactoryImpl.h:5
Definition IScreenControllerFactory.h:5
Definition IScreenModelFactory.h:5
Definition Value.h:16
Definition LayoutManager.h:5
Definition ScreenCreator.h:7
Definition SceneFactory.h:5
Definition ScreenController.h:5
Definition UIControlFactory.h:5
Definition UIScene.h:5
Definition UISoundPlayer.h:5
Definition VisualTree.h:5
Definition TextureGroup.h:7
Definition ScreenSizeData.h:5