3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/screens/managers/ProfileEntryPromptManager.h"
8#include "mc/client/gui/screens/models/CharacterSelectorVisibility.h"
9#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/util/Random.h"
31 enum class AppearanceCreationType :
int {
41 ::ll::TypedStorage<4, 4, int> mCurrentPage;
42 ::ll::TypedStorage<4, 4, int> mSubPage;
48 virtual ~CharacterSelectorFTUEModel() =
default;
54 MCAPI
bool nextPage(::Bedrock::NotNullNonOwnerPtr<::MinecraftScreenController> screenController);
56 MCAPI
void openCurrentPage(::Bedrock::NotNullNonOwnerPtr<::MinecraftScreenController> screenController)
const;
58 MCAPI
bool prevPage(::Bedrock::NotNullNonOwnerPtr<::MinecraftScreenController> screenController);
65 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::MinecraftScreenController>> mScreenController;
66 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::PersonaScreenModel>> mPersonaScreenModel;
67 ::ll::TypedStorage<8, 8, ::LinksToStyle const&> mClassicSkinLinksToStyle;
68 ::ll::TypedStorage<8, 8, ::LinksToStyle const&> mPersonaLinksToStyle;
69 ::ll::TypedStorage<8, 40, ::ProfileEntryPromptManager> mEntryPromptManager;
70 ::ll::TypedStorage<4, 8, ::glm::ivec2> mGridParams;
71 ::ll::TypedStorage<4, 4, uint> mPreviewIndex;
72 ::ll::TypedStorage<8, 2560, ::Random> mRandom;
73 ::ll::TypedStorage<4, 4, ::CharacterSelectorModel::AppearanceCreationType> mAppearanceCreationType;
74 ::ll::TypedStorage<4, 4, ::CharacterSelectorVisibility> mCastModalVisibility;
75 ::ll::TypedStorage<8, 16, ::CharacterSelectorModel::CharacterSelectorFTUEModel> mFTUEData;
76 ::ll::TypedStorage<8, 24, ::std::vector<::CharacterSelectorData>> mSectionContent;
77 ::ll::TypedStorage<1, 1, bool> mHasSeenLatestDefaultCharacterList;
78 ::ll::TypedStorage<1, 1, bool> mSelectedCharacterWasNotReady;
79 ::ll::TypedStorage<1, 1, bool> mFirstLoading;
84 CharacterSelectorModel& operator=(CharacterSelectorModel
const&);
85 CharacterSelectorModel(CharacterSelectorModel
const&);
86 CharacterSelectorModel();
91 virtual ~CharacterSelectorModel() =
default;
97 MCAPI CharacterSelectorModel(
98 ::Bedrock::NotNullNonOwnerPtr<::MinecraftScreenController> screenController,
99 ::Bedrock::NotNullNonOwnerPtr<::PersonaScreenModel> screenModel,
100 ::LinksToStyle
const& classicSkinLinksToStyle,
101 ::LinksToStyle
const& personaLinksToStyle
104 MCAPI
void _closeCreatePersonaPopup();
106 MCAPI
void _loadContentFromSkins();
108 MCAPI
void _setUpBeforeCharacterEditorScreen();
110 MCAPI
void bindPreviewSkin(::UIPropertyBag& bag);
112 MCAPI
void castBack(::StoreDataDrivenScreenController& controller);
114 MCAPI
void castLeft(::StoreDataDrivenScreenController& controller);
116 MCAPI
void castRight(::StoreDataDrivenScreenController& controller);
118 MCAPI
void closeCharacterSelectModal();
120 MCAPI
void closeDialog(::StoreDataDrivenScreenController& controller);
122 MCAPI
void createSelectedPersona();
124 MCAPI ::std::string getAppearanceName()
const;
126 MCAPI ::std::string getPersonaConfirmText()
const;
128 MCAPI ::std::string getPreviewImageFilePath(
int index)
const;
130 MCAPI
bool isSelectedCharacterReady()
const;
132 MCAPI
void launchDifferenceInformationPopup();
134 MCAPI
void openCharacterSelectModal(::CharacterSelectorVisibility previewMode);
136 MCAPI
void openDefaultSelector(::StoreDataDrivenScreenController& controller);
138 MCAPI
void tick(::ui::DirtyFlag& dirtyFlags);
144 MCAPI
static void closeDifferencesDialog(::StoreDataDrivenScreenController& controller);
151 ::Bedrock::NotNullNonOwnerPtr<::MinecraftScreenController> screenController,
152 ::Bedrock::NotNullNonOwnerPtr<::PersonaScreenModel> screenModel,
153 ::LinksToStyle
const& classicSkinLinksToStyle,
154 ::LinksToStyle
const& personaLinksToStyle
Definition EnableNonOwnerReferences.h:7
Definition CharacterSelectorModel.h:15
Definition CharacterSelectorModel.h:5
Definition MinecraftScreenController.h:5
Definition PersonaScreenModel.h:5
Definition StoreDataDrivenScreenController.h:5
Definition UIPropertyBag.h:5
Definition CharacterSelectorData.h:5