3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/game/ClientGameSetupResult.h"
7#include "mc/client/game/ClientInstanceState.h"
8#include "mc/client/game/ControlOptionType.h"
9#include "mc/client/gui/GameEventNotification.h"
10#include "mc/client/gui/MousePointerType.h"
11#include "mc/client/gui/SceneType.h"
12#include "mc/client/gui/StoreNavigationOrigin.h"
13#include "mc/client/gui/screens/controllers/InventoryTabIndex.h"
14#include "mc/client/gui/screens/controllers/MarketplacePassTabIndex.h"
15#include "mc/client/gui/screens/models/PlayScreenDefaultTab.h"
16#include "mc/client/options/SplitScreenDirection.h"
17#include "mc/client/social/MultiplayerServiceIdentifier.h"
18#include "mc/client/store/StoreErrorCodes.h"
19#include "mc/client/util/ClipboardProxy.h"
20#include "mc/client/world/JoinServerWorldResult.h"
21#include "mc/common/SubClientId.h"
22#include "mc/deps/core/file/PathBuffer.h"
23#include "mc/deps/core/threading/Async.h"
24#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
25#include "mc/deps/core/utility/NonOwnerPointer.h"
26#include "mc/deps/core/utility/UniqueOwnerPointer.h"
27#include "mc/deps/core_graphics/math/Rect.h"
28#include "mc/deps/game_refs/OwnerPtr.h"
29#include "mc/deps/game_refs/WeakRef.h"
30#include "mc/deps/input/InputMode.h"
31#include "mc/deps/input/enums/WYSIWYGState.h"
32#include "mc/deps/renderer/MatrixStack.h"
33#include "mc/events/NetworkType.h"
34#include "mc/input/ClientPlayMode.h"
35#include "mc/network/connection/DisconnectFailReason.h"
36#include "mc/options/option_types/OptionID.h"
37#include "mc/platform/brstd/function_ref.h"
38#include "mc/util/ProfanityFilterContext.h"
39#include "mc/world/actor/bhave/BehaviorStatus.h"
40#include "mc/world/level/GameType.h"
132struct MarketplaceServicesManager;
151struct StoreCatalogItem;
152struct StoreCatalogRepository;
160namespace Bedrock::Http {
class Status; }
162namespace Core {
class Path; }
167namespace OreUI {
struct Router; }
170namespace Realms {
struct World; }
175namespace Social {
struct User; }
177namespace mce {
class Camera; }
178namespace mce {
class Texture; }
189 virtual ~IClientInstance() ;
191 virtual void onInitMinecraftGame() = 0;
193 virtual void onDestroyMinecraftGame() = 0;
195 virtual void init(::ClientInstanceInitArguments&&) = 0;
197 virtual void initSceneFactory(::std::unique_ptr<::SceneFactory>, ::std::unique_ptr<::OreUI::SceneProvider>) = 0;
199 virtual void setUiRouter(::std::unique_ptr<::OreUI::Router>) = 0;
201 virtual void initGraphics() = 0;
203 virtual void stop() = 0;
205 virtual void teardown() = 0;
207 virtual void preShutDown() = 0;
209 virtual void setGameConnectionInfo(::Social::GameConnectionInfo
const&) = 0;
211 virtual ::std::optional<::Social::GameConnectionInfo> getGameConnectionInfo() = 0;
213 virtual void onStartJoinGame(
215 ::std::string
const&,
216 ::std::string
const&,
217 ::std::string
const&,
219 ::Social::MultiplayerServiceIdentifier,
223 virtual void onCancelJoinGame() = 0;
225 virtual void requestLeaveGameAsync() = 0;
227 virtual void requestLeaveGame(
bool,
bool) = 0;
229 virtual void stopPlayScreen() = 0;
231 virtual bool isLeaveGameDone()
const = 0;
233 virtual void setupPlayScreenForLeaveGame() = 0;
235 virtual void preCacheOutOfGameViews() = 0;
237 virtual void resetPrimaryClient() = 0;
239 virtual void resetGameSession() = 0;
241 virtual void tick() = 0;
243 virtual void frameUpdate(::FrameUpdateContext& frameUpdateContext) = 0;
245 virtual bool update(
bool isInWorld) = 0;
247 virtual void preFrameTick() = 0;
249 virtual void endFrame() = 0;
251 virtual float getFrameAlpha() = 0;
253 virtual void startSubClientLateJoin(
255 ::std::unique_ptr<::GameModuleClient>,
256 ::std::optional<::PlayerJoinWorldTelemetryInfo>
259 virtual ::Bedrock::Threading::Async<::ClientGameSetupResult>
260 setupClientGame(
bool, ::std::unique_ptr<::GameModuleClient>) = 0;
262 virtual ::BlockSource* getRegion() = 0;
264 virtual ::LocalPlayer* getLocalPlayer()
const = 0;
266 virtual void setupPrimaryClientEditorManager() = 0;
268 virtual ::Bedrock::NonOwnerPointer<::Editor::IEditorPlayer> getLocalEditorPlayer()
const = 0;
270 virtual ::Bedrock::NonOwnerPointer<::Editor::IEditorManager> getEditorManager()
const = 0;
272 virtual bool isPlayerInEditor()
const = 0;
274 virtual ::LocalPlayerChangedConnector getLocalPlayerChangedConnector() = 0;
276 virtual ::WeakEntityRef getLocalUser()
const = 0;
278 virtual ::Actor* getCameraActor()
const = 0;
280 virtual void setCameraActor(::Actor*) = 0;
282 virtual ::ListenerState
const* getListenerState()
const = 0;
284 virtual ::Actor* getCameraTargetActor()
const = 0;
286 virtual void setCameraTargetActor(::Actor*) = 0;
288 virtual ::WeakEntityRef getCameraEntity()
const = 0;
290 virtual void getRawCameraEntities(::WeakEntityRef&, ::WeakEntityRef&)
const = 0;
292 virtual void setRawCameraEntities(::WeakEntityRef, ::WeakEntityRef) = 0;
294 virtual ::HitResult
const& getLatestHitResult()
const = 0;
296 virtual bool isLeavingGame()
const = 0;
298 virtual bool isDestroyingGame()
const = 0;
300 virtual bool isShuttingDown()
const = 0;
302 virtual bool useLowFrequencyUIRender()
const = 0;
304 virtual bool isSplitScreenActive()
const = 0;
306 virtual bool isExitingLevel()
const = 0;
308 virtual bool isInBedScreen()
const = 0;
310 virtual bool isInDeathScreen()
const = 0;
312 virtual bool isKeyboardEnabled()
const = 0;
314 virtual bool hasCommands()
const = 0;
316 virtual int getSplitScreenCount()
const = 0;
318 virtual bool isShowingLoadingScreen()
const = 0;
320 virtual bool shouldDisconnectOnAppSuspended()
const = 0;
322 virtual bool isGamePlayTipsEnabled()
const = 0;
324 virtual bool isPlatformNX()
const = 0;
326 virtual bool isLocalSplitscreenWith(::ActorUniqueID
const&)
const = 0;
328 virtual bool isValidCrossPlatformSkin()
const = 0;
330 virtual bool isCurrentSkinPlatformLocked()
const = 0;
332 virtual bool isSelectedSkinInitialized()
const = 0;
334 virtual ::SplitScreenInfo getSplitScreenInfo()
const = 0;
336 virtual int getCurrentMaxGUIScaleIndex()
const = 0;
338 virtual bool getHandlingControllerDisconnect() = 0;
340 virtual void setOpenControllerDisconnectScreen(
bool) = 0;
342 virtual ::ClientPlayMode getClientPlayMode()
const = 0;
344 virtual void setClientPlayMode(::ClientPlayMode
const&) = 0;
346 virtual ::std::function<void()> getCreditsCallback() = 0;
348 virtual void setCreditsCallback(::std::function<
void()>) = 0;
350 virtual void setupTransitionForCredits(::std::function<
void()>) = 0;
352 virtual void refreshScreenSizeData() = 0;
354 virtual void onScreenSizeChanged(
int,
int,
float) = 0;
356 virtual void onGuiScaleOffsetChanged() = 0;
358 virtual void onSafeZoneChanged() = 0;
360 virtual bool hasDismissedNewPlayerFlow()
const = 0;
362 virtual void quit(::std::string
const&, ::std::string
const&) = 0;
364 virtual ::IMinecraftGame& getMinecraftGame_DEPRECATED()
const = 0;
366 virtual ::IClientInstances& getClientInstances()
const = 0;
368 virtual ::World::WorldSystem& getWorldSystem()
const = 0;
370 virtual bool isWorldSystemReady()
const = 0;
372 virtual ::Bedrock::NotNullNonOwnerPtr<::Automation::AutomationClient> getAutomationClient()
const = 0;
374 virtual ::Bedrock::NonOwnerPointer<::EDUSystems> getEDUSystems() = 0;
376 virtual ::Bedrock::NonOwnerPointer<::EDUSystems const> getEDUSystems()
const = 0;
378 virtual ::IMinecraftEventing& getEventing()
const = 0;
380 virtual ::IConnectionEventing& getConnectionEventing()
const = 0;
382 virtual ::FontHandle getFontHandle()
const = 0;
384 virtual ::FontHandle getRuneFontHandle()
const = 0;
386 virtual ::FontHandle getUnicodeFontHandle()
const = 0;
388 virtual ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup> getGeometryGroup()
const = 0;
390 virtual ::Bedrock::NotNullNonOwnerPtr<::BlockCullingGroup> getBlockCullingGroup()
const = 0;
392 virtual ::Bedrock::NotNullNonOwnerPtr<::Social::MultiplayerServiceManager> getMultiplayerServiceManager()
const = 0;
394 virtual ::IResourcePackRepository& getResourcePackRepository()
const = 0;
396 virtual ::ResourcePackManager& getResourcePackManager()
const = 0;
398 virtual ::PackManifestFactory& getPackManifestFactory() = 0;
400 virtual ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> getKeyProvider()
const = 0;
402 virtual ::PacksInfoData
const& getHostSpecifiedPacks()
const = 0;
404 virtual ::std::shared_ptr<::SkinRepository> getSkinRepository()
const = 0;
406 virtual ::SkinRepositoryClientInterface& getSkinRepositoryClientInterface()
const = 0;
408 virtual ::PersonaRepository& getPersonaRepository()
const = 0;
410 virtual ::MarketplaceServicesManager& getMarketplaceServicesManager()
const = 0;
412 virtual ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> getStoreCatalogRepository() = 0;
414 virtual ::std::shared_ptr<::mce::TextureGroup> getTextureGroup()
const = 0;
416 virtual ::Bedrock::NotNullNonOwnerPtr<::mce::TextureGroup> getStoreCacheTextures()
const = 0;
418 virtual ::Bedrock::NotNullNonOwnerPtr<::MinecraftGraphics> getMinecraftGraphics()
const = 0;
420 virtual ::Bedrock::NotNullNonOwnerPtr<::IUIRepository> getUIRepository()
const = 0;
422 virtual ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager> getUserManager()
const = 0;
424 virtual ::Bedrock::NotNullNonOwnerPtr<::TrialManager> getTrialManager()
const = 0;
426 virtual bool wantToQuit()
const = 0;
428 virtual bool isPrimaryLevelCrossPlatformMultiplayer()
const = 0;
430 virtual bool isPrimaryLevelMultiplayer()
const = 0;
432 virtual bool isAdhocEnabled()
const = 0;
434 virtual ::std::shared_ptr<::ActorAnimationGroup> getActorAnimationGroup()
const = 0;
436 virtual bool isMarketplaceDisabled()
const = 0;
438 virtual ::std::pair<::StoreErrorCodes, ::std::string>
const getMarketplaceDisabledReasonWithErrorCode()
const = 0;
440 virtual void linkToOffer(::std::string
const&,
bool) = 0;
442 virtual void linkToPage(::std::string
const&) = 0;
444 virtual void linkTo3PServerOffers(::std::string
const&, ::std::string
const&) = 0;
446 virtual void navigateToMarketplaceInventoryScreen(::InventoryTabIndex) = 0;
448 virtual void navigateToStoreHomeScreen() = 0;
450 virtual void navigateToCoinPurchaseScreen(
int, ::std::function<
void(
bool,
int)>) = 0;
452 virtual void navigateToPurchaseOfferScreen(::StoreCatalogItem&, ::StoreNavigationOrigin,
bool const) = 0;
454 virtual void navigateToDressingRoomOfferScreen(::std::string
const&) = 0;
456 virtual bool navigateToProfileScreen(::std::string
const&,
bool const) = 0;
458 virtual void navigateToServersScreen(
bool const) = 0;
460 virtual void navigateToHowToPlayScreen(::std::string
const&) = 0;
462 virtual void navigateToGatheringInfoScreen(
bool) = 0;
464 virtual void navigateToMarketplacePassPDPScreen(::MarketplacePassTabIndex) = 0;
466 virtual void navigateToRealmsStoriesTransitionScreen(::Realms::World
const&) = 0;
468 virtual void tryPushLeaveGameScreen() = 0;
470 virtual void tryStartDayOneExperience() = 0;
472 virtual bool isReadyToRender()
const = 0;
474 virtual void onDimensionChangedEvent() = 0;
476 virtual void onGameEventNotification(::ui::GameEventNotification) = 0;
478 virtual ::std::string getTopScreenName()
const = 0;
480 virtual void setLeaveGameInProgressAsReadyToContinue() = 0;
482 virtual void stopDestroying() = 0;
484 virtual void onClientCreatedLevel(
485 ::std::pair<::std::unique_ptr<::Level>, ::OwnerPtr<::EntityContext>>,
486 ::OwnerPtr<::EntityContext>
489 virtual ::PlayerAuthentication& getPlayerAuthentication() = 0;
491 virtual void createPlayerAuthentication() = 0;
493 virtual void createPlayerAuthentication(uint64) = 0;
495 virtual ::std::string getPlatformId()
const = 0;
497 virtual ::std::string getPlatformOnlineId()
const = 0;
499 virtual bool useController()
const = 0;
501 virtual bool useTouchscreen()
const = 0;
503 virtual bool getMouseGrabbed()
const = 0;
505 virtual bool currentInputModeIsMouseAndKeyboard()
const = 0;
507 virtual bool allowPicking()
const = 0;
509 virtual bool isShowingMenu()
const = 0;
511 virtual bool isShowingPauseScreen()
const = 0;
513 virtual bool isShowingProgressScreen()
const = 0;
515 virtual bool isShowingWorldProgressScreen()
const = 0;
517 virtual bool isShowingRealmsProgressScreen()
const = 0;
519 virtual bool isShowingDeathScreen()
const = 0;
521 virtual bool isShowingServerForm()
const = 0;
523 virtual bool isScreenReplaceable()
const = 0;
525 virtual bool isInWorldAndNotShowingAnyMenuScreens()
const = 0;
527 virtual bool isWorldActive()
const = 0;
529 virtual bool isInRealm() = 0;
531 virtual bool readyForShutdown()
const = 0;
533 virtual bool isPrimaryClient()
const = 0;
535 virtual bool isEduMode()
const = 0;
537 virtual bool isGamepadCursorEnabled()
const = 0;
539 virtual bool isInControlCustomization()
const = 0;
541 virtual ::Bedrock::NotNullNonOwnerPtr<::Minecraft> getServerData() = 0;
543 virtual ::Bedrock::NotNullNonOwnerPtr<::Minecraft const> getServerData()
const = 0;
545 virtual ::MultiPlayerLevel* getLevel() = 0;
547 virtual ::MultiPlayerLevel
const* getLevel()
const = 0;
549 virtual bool hasLevel()
const = 0;
551 virtual bool isPreGame()
const = 0;
553 virtual bool isInMultiplayerGame()
const = 0;
555 virtual bool isMultiPlayerClient()
const = 0;
557 virtual ::IOptions& getOptions() = 0;
559 virtual ::IOptions
const& getOptions()
const = 0;
561 virtual ::std::shared_ptr<::Options> getOptionsPtr() = 0;
563 virtual ::std::shared_ptr<::Options const>
const getOptionsPtr()
const = 0;
565 virtual ::std::shared_ptr<::Social::User>
const& getUser()
const = 0;
567 virtual ::std::shared_ptr<::ISettingsRegistry> getSettingsRegistry() = 0;
569 virtual ::Option
const& getShowLearningPromptsOption()
const = 0;
571 virtual ::Option& getShowControlTipsOption() = 0;
573 virtual ::Option& getShowControlTipsOverrideOption() = 0;
575 virtual double getControlTipsTimeElapsed()
const = 0;
577 virtual void setControlTipsTimeElapsedStart() = 0;
579 virtual ::GameRenderer& getGameRenderer()
const = 0;
581 virtual ::LevelRenderer* getLevelRenderer()
const = 0;
583 virtual ::LevelRendererCameraProxy* getLevelRendererCameraProxy()
const = 0;
585 virtual ::Bedrock::NonOwnerPointer<::CameraRegistry> getCameraRegistry() = 0;
587 virtual ::Bedrock::NonOwnerPointer<::CameraRegistry const> getCameraRegistry()
const = 0;
589 virtual ::Bedrock::NonOwnerPointer<::EntitySystems> getCameraSystems() = 0;
591 virtual ::LightTexture* getLightTexture() = 0;
593 virtual void setupLevelRendering(::MultiPlayerLevel&, ::WeakEntityRef) = 0;
595 virtual ::mce::ViewportInfo
const& getViewportInfo()
const = 0;
597 virtual void setViewportInfo(::mce::ViewportInfo
const&) = 0;
599 virtual ::Vec2 getNormalizedViewportSize()
const = 0;
601 virtual void updateChunkRadius() = 0;
603 virtual void setUITexture(::mce::Texture*) = 0;
605 virtual ::mce::Texture* getUITexture() = 0;
607 virtual void setLevelTexture(::mce::Texture*) = 0;
609 virtual ::mce::Texture* getLevelTexture() = 0;
611 virtual void setUICursorTexture(::mce::TexturePtr) = 0;
613 virtual ::mce::TexturePtr getUICursorTexture()
const = 0;
615 virtual ::mce::Camera& getCamera() = 0;
617 virtual ::ShaderColor& getShaderColor() = 0;
619 virtual ::ShaderColor& getDarkShaderColor() = 0;
621 virtual void clearGraphicsCache() = 0;
623 virtual void getNormalizedUICursorTransform(::MatrixStack::MatrixStackRef&,
float) = 0;
625 virtual bool shouldRenderUICursor()
const = 0;
627 virtual bool getRenderPlayerModel()
const = 0;
629 virtual ::DeferredLighting& getDeferredLighting() = 0;
631 virtual float getGuiScale()
const = 0;
633 virtual ::Option
const& getGuiScaleOption()
const = 0;
635 virtual int getGuiScaleOffset()
const = 0;
637 virtual void setGuiScaleOffset(
int) = 0;
639 virtual void renderImGui(::ScreenContext&,
bool) = 0;
641 virtual ::Bedrock::NotNullNonOwnerPtr<::GuiData> getGuiData() = 0;
643 virtual ::Bedrock::NotNullNonOwnerPtr<::GuiData const> getGuiData()
const = 0;
645 virtual ::GuidedFlowManager& getGuidedFlowManager() = 0;
647 virtual ::PixelCalc
const& getDpadScale()
const = 0;
649 virtual ::Bedrock::NotNullNonOwnerPtr<::DateManager const> getDateManager()
const = 0;
651 virtual void addOverrideHoursToDateTime(uint
const) = 0;
653 virtual ::ToastManager& getToastManager() = 0;
655 virtual ::ClipboardProxy<::ApplicationSignal::ClipboardCopy, ::ApplicationSignal::ClipboardPasteRequest>&
656 getClipboardManager() = 0;
658 virtual ::AbstractScene* getTopScene() = 0;
660 virtual ::AbstractScene
const* getTopScene()
const = 0;
662 virtual ::AbstractScene* getActiveScene() = 0;
664 virtual ::AbstractScene
const* getActiveScene()
const = 0;
666 virtual ::SceneFactory& getSceneFactory()
const = 0;
668 virtual ::OreUI::SceneProvider& getSceneProvider()
const = 0;
670 virtual ::WeakRef<::OreUI::UIBlockThumbnailAtlasManager> getOreUIBlockThumbnailAtlasManager()
const = 0;
672 virtual ::ui::ScreenTechStackSelector& getScreenTechStackSelector() = 0;
674 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack const> getClientSceneStack()
const = 0;
676 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> getClientSceneStack() = 0;
678 virtual ::OreUI::Router& getClientUIRouter()
const = 0;
680 virtual ::ISceneStack& getMainSceneStackInterface() = 0;
682 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> getMainSceneStack() = 0;
684 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack const> getMainSceneStack()
const = 0;
686 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack const> getCurrentSceneStack()
const = 0;
688 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> getCurrentSceneStack() = 0;
690 virtual ::OreUI::Router& getCurrentUIRouter() = 0;
692 virtual ::OreUI::Router
const& getCurrentUIRouter()
const = 0;
694 virtual ::OreUI::ITelemetry& getOreUITelemetry() = 0;
696 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack>
697 prepareSceneFor(::ui::SceneType
const, ::std::function<::std::shared_ptr<::AbstractScene>()>) = 0;
699 virtual ::CachedScenes& getCachedScenes() = 0;
701 virtual ::std::string getScreenName()
const = 0;
703 virtual ::std::string getScreenTelemetry()
const = 0;
705 virtual ::ui::SceneType getTopSceneType()
const = 0;
707 virtual ::MobEffectsLayout& getMobEffectsLayout() = 0;
709 virtual ::std::string emoticonifyText(::std::string
const&)
const = 0;
711 virtual ::std::string emoticonifyText(::std::string
const&,
bool) = 0;
713 virtual void onMobEffectsChange() = 0;
715 virtual void setUISizeAndScale(
int,
int,
float) = 0;
717 virtual void forEachVisibleScreen(::brstd::function_ref<
void(::AbstractScene&)>) = 0;
719 virtual void forEachScreen(::brstd::function_ref<
bool(::AbstractScene&)>,
bool) = 0;
721 virtual void forEachScreenConst(::brstd::function_ref<
bool(::AbstractScene
const&)>,
bool)
const = 0;
723 virtual bool updateSceneStack() = 0;
725 virtual void forEachAlwaysAcceptInputScreen(::std::function<
void(::AbstractScene&)>, ::AbstractScene
const*) = 0;
727 virtual void forEachAlwaysAcceptInputScreenWithTop(::std::function<
void(::AbstractScene&)>) = 0;
729 virtual void showPlayerProfile(::std::string
const&, ::std::string
const&) = 0;
731 virtual bool isInGameInputEnabled()
const = 0;
733 virtual void setInGameInputEnabled(
bool) = 0;
735 virtual ::Vec2 getSafeZoneScale()
const = 0;
737 virtual void verifySkinApproval(
738 ::std::string
const&,
739 ::std::function<
void(::std::string)>
const&,
740 ::std::function<
void()>
const&
743 virtual ::InputMode getCurrentInputMode()
const = 0;
745 virtual bool isTouchGameplayAllowed()
const = 0;
747 virtual ::Bedrock::NonOwnerPointer<::MinecraftInputHandler> getMinecraftInput()
const = 0;
749 virtual ::KeyboardManager& getKeyboardManager() = 0;
751 virtual void setLastPointerLocation(
float,
float,
float) = 0;
753 virtual ::Vec3 getLastPointerLocation() = 0;
755 virtual void clearTouchPointerLocations() = 0;
757 virtual void clearTouchPointerLocation(
int) = 0;
759 virtual void updateControlOptionState(uint,
bool) = 0;
761 virtual void clearActiveControlOptions() = 0;
763 virtual ::std::set<uint>
const& getActiveControlOptions()
const = 0;
765 virtual ::std::vector<::OptionID> getActiveOptionIDs(::ControlOptionType)
const = 0;
767 virtual void setNumberOfActiveConfigs(
int) = 0;
769 virtual int getNumberOfActiveConfigs()
const = 0;
771 virtual bool isNoConfigSelected()
const = 0;
773 virtual void setNumberOfEnabledConfigs(
int) = 0;
775 virtual int getNumberOfEnabledConfigs()
const = 0;
777 virtual void setWYSIWYGState(::WYSIWYGState) = 0;
779 virtual ::WYSIWYGState getWYSIWYGState()
const = 0;
781 virtual void setOtherConfigsExistInThisCategory(
bool) = 0;
783 virtual bool getOtherConfigsExistInThisCategory()
const = 0;
785 virtual void updateTouchPointerLocation(
int,
float,
float) = 0;
787 virtual ::Vec2 getTouchPointerLocation(
int)
const = 0;
789 virtual void updateActionPointerId(
int) = 0;
791 virtual int getActionPointerId()
const = 0;
793 virtual bool shouldUseLastPointerLocationOnFocusChange() = 0;
795 virtual bool currentScreenShouldStealMouse() = 0;
797 virtual ::BuildActionIntention& getInProgressBAI()
const = 0;
799 virtual ::PacketSender& getPacketSender() = 0;
801 virtual ::ClientNetworkSystem& getClientNetworkSystem() = 0;
803 virtual ::ClientNetworkSystem
const& getClientNetworkSystem()
const = 0;
805 virtual void setMoveTurnInput(::std::unique_ptr<::ClientMoveInputHandler>) = 0;
807 virtual void setupPersistentControls(::InputMode) = 0;
809 virtual void resetPlayerMovement() = 0;
811 virtual void suspendPredictedMovement() = 0;
813 virtual void onClientInputInitComplete() = 0;
815 virtual ::glm::vec2 getGamepadCursorPosition()
const = 0;
817 virtual void setClientInputHandler(::std::unique_ptr<::ClientInputHandler>) = 0;
819 virtual ::ClientInputHandler* getInput()
const = 0;
821 virtual int getControllerId()
const = 0;
823 virtual bool hasConnectedController()
const = 0;
825 virtual ::SubClientId getClientSubId()
const = 0;
827 virtual void setSuspendInput(
bool) = 0;
829 virtual void setSuspendDirectionalInput(
bool) = 0;
831 virtual void setDisableInput(
bool) = 0;
833 virtual void grabMouse() = 0;
835 virtual void releaseMouse() = 0;
837 virtual void refocusMouse(
bool) = 0;
839 virtual void setMouseType(::ui::MousePointerType) = 0;
841 virtual void resetBai(
int) = 0;
843 virtual void clearInProgressBAI() = 0;
845 virtual ::Bedrock::NotNullNonOwnerPtr<::SoundEngine> getSoundEngine()
const = 0;
847 virtual ::MusicManager
const* getMusicManager()
const = 0;
849 virtual ::MusicManager* getMusicManagerNonConst()
const = 0;
851 virtual void play(::std::string
const&, ::Vec3
const&,
float,
float) = 0;
853 virtual void playUI(::std::string
const&,
float,
float) = 0;
855 virtual void muteAudio() = 0;
857 virtual void unMuteAudio() = 0;
859 virtual void fadeOutMusic()
const = 0;
861 virtual ::TaskGroup& getTaskGroup() = 0;
863 virtual void onFullVanillaPackOnStack() = 0;
865 virtual bool isFullVanillaPackOnStack()
const = 0;
867 virtual void onPlayerLoaded(::Player&) = 0;
869 virtual void setClientGameMode(::GameType) = 0;
871 virtual void resetToDefaultGameMode() = 0;
873 virtual ::IGameConnectionListener& getGameConnectionListener() = 0;
875 virtual void connectToThirdPartyServer(::std::string
const&,
int) = 0;
877 virtual void connectToExperience(
878 ::ExperienceConnectionData,
879 ::std::function<
void(::std::unique_ptr<::ProgressHandler>,
bool)>,
880 ::std::function<
void(::World::JoinServerWorldResult)>
883 virtual void startExternalNetworkWorld(::Social::GameConnectionInfo, ::std::string
const&,
bool) = 0;
885 virtual bool isReadyToReconnect()
const = 0;
887 virtual bool checkForPiracy() = 0;
889 virtual void updateChatFilterStatus(::ProfanityContext&) = 0;
891 virtual void updateControllerHandling() = 0;
893 virtual void setBehaviorCommandCallback(::std::function<
void(::std::string
const&, ::BehaviorStatus)>) = 0;
895 virtual void setBehaviorCommandStatus(::std::string
const&, ::BehaviorStatus) = 0;
897 virtual void setConnectGamepadScreenActive(
bool) = 0;
899 virtual ::Bedrock::Threading::Async<::Core::PathBuffer<::std::string>> requestScreenshot(::ScreenshotOptions&) = 0;
901 virtual ::Bedrock::NotNullNonOwnerPtr<::DevConsoleLogger> getDevConsoleLogger()
const = 0;
903 virtual ::std::shared_ptr<::FileDataRequest> requestImageFromUrl(
904 ::std::string
const&,
905 ::std::function<
void(::Bedrock::Http::Status, ::Core::Path
const&, uint64)>
908 virtual void initializeRenderResources() = 0;
910 virtual void postInitRenderResources() = 0;
912 virtual void onAppSuspended() = 0;
914 virtual void onAppSuspensionDisconnect() = 0;
916 virtual void onAppResumed() = 0;
918 virtual void onActiveResourcePacksChanged(::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup>
const&) = 0;
920 virtual void reloadEntityRenderers(::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup>
const&);
922 virtual ::BlockTessellator& getBlockTessellator() = 0;
924 virtual ::BlockActorRenderDispatcher& getBlockEntityRenderDispatcher() = 0;
926 virtual ::std::shared_ptr<::ActorRenderDispatcher> getEntityRenderDispatcher() = 0;
928 virtual ::ActorBlockRenderer& getEntityBlockRenderer() = 0;
930 virtual ::ItemInHandRenderer* getItemInHandRenderer() = 0;
932 virtual ::ItemRenderer* getItemRenderer() = 0;
934 virtual ::HudIconActorRenderer* getHudIconActorRenderer() = 0;
936 virtual ::std::deque<::std::string>& getSentMessageHistory() = 0;
938 virtual ::std::deque<::std::string>& getDevConsoleMessageHistory() = 0;
940 virtual ::Bedrock::NotNullNonOwnerPtr<::ProfanityContext> getProfanityContext()
const = 0;
942 virtual void initTTSClient(::std::shared_ptr<::TextToSpeechClient>) = 0;
944 virtual ::std::shared_ptr<::TextToSpeechClient> getTTSClient() = 0;
946 virtual ::std::shared_ptr<::TextToSpeechClient const> getTTSClient()
const = 0;
948 virtual ::std::shared_ptr<::ITTSEventManager> getTTSEventManager() = 0;
951 addTTSMessage(::std::string
const&, ::ProfanityFilterContext,
bool, ::std::string
const&,
bool,
bool) = 0;
953 virtual void initCommands() = 0;
955 virtual uint getUserId()
const = 0;
957 virtual bool isPrimaryUser()
const = 0;
959 virtual double getServerConnectionTime()
const = 0;
961 virtual void setServerPingTime(
int) = 0;
963 virtual int getServerPingTime()
const = 0;
965 virtual void setDefaultPlayscreenTab(::PlayScreenDefaultTab) = 0;
967 virtual void setClientInstanceState(::ClientInstanceState
const&) = 0;
969 virtual void setUIEventCoordinator(::Bedrock::UniqueOwnerPointer<::UIEventCoordinator>&& uiEventCoordinator) = 0;
971 virtual ::Bedrock::NotNullNonOwnerPtr<::UIEventCoordinator> getUIEventCoordinator() = 0;
973 virtual ::Bedrock::NotNullNonOwnerPtr<::ClientInstanceEventCoordinator> getEventCoordinator() = 0;
975 virtual ::ClientNetworkEventCoordinator& getClientNetworkEventCoordinator() = 0;
977 virtual ::ClientScriptEventCoordinator& getClientScriptEventCoordinator() = 0;
979 virtual ::std::chrono::steady_clock::time_point getNoBlockBreakUntil() = 0;
981 virtual void setNoBlockBreakUntil(::std::chrono::steady_clock::time_point) = 0;
983 virtual ::GameModuleClient* getGameModule() = 0;
985 virtual ::ClientHitDetectCoordinator& getHitEventCoordinator() = 0;
987 virtual ::GameCallbacks& getGameCallbacks() = 0;
989 virtual void setActiveFileStorageArea(::std::shared_ptr<::Core::FileStorageArea>) = 0;
991 virtual void sendClientEnteredLevel() = 0;
993 virtual ::HitDetectSystem* getHitDetectSystem() = 0;
995 virtual bool isPlaying()
const = 0;
997 virtual ::ClientInstanceState getClientInstanceState()
const = 0;
999 virtual ::LatencyGraphDisplay* getLatencyGraphDisplay()
const = 0;
1001 virtual ::PlayerCapabilities::IClientController
const& getClientCapabilities()
const = 0;
1003 virtual ::cg::math::Rect<float>
1004 calculateViewPortModifiers(::SubClientId
const, uint64
const, ::SplitScreenDirection
const)
const = 0;
1006 virtual ::std::weak_ptr<::IClientInstance> getWeakPtrToThis() = 0;
1008 virtual ::ClientRequirementVerifier
const& getClientRequirementVerifier()
const = 0;
1010 virtual ::Bedrock::NotNullNonOwnerPtr<::FogDefinitionRegistry const> getFogDefinitionRegistry()
const = 0;
1012 virtual ::Bedrock::NotNullNonOwnerPtr<::FogDefinitionRegistry> getFogDefinitionRegistry() = 0;
1014 virtual ::Bedrock::NotNullNonOwnerPtr<::FogManager const> getFogManager()
const = 0;
1016 virtual ::Bedrock::NotNullNonOwnerPtr<::FogManager> getFogManager() = 0;
1018 virtual ::Bedrock::NotNullNonOwnerPtr<::ScreenLoadTimeTracker> getScreenLoadTimeTracker() = 0;
1020 virtual ::ItemRegistryRef getItemRegistry()
const = 0;
1022 virtual ::Bedrock::NotNullNonOwnerPtr<::DisconnectionRequestHandler> getDisconnectionRequestHandler()
const = 0;
1024 virtual float getRemoteServerTimeMs()
const = 0;
1026 virtual void setRemoteServerTimeMs(
float) = 0;
1028 virtual float getRemoteServerNetworkTimeMs()
const = 0;
1030 virtual void setRemoteServerNetworkTimeMs(
float) = 0;
1032 virtual ::Bedrock::NonOwnerPointer<::ClientScriptManager> getClientScriptManager() = 0;
1034 virtual ::Scripting::ScriptEngine* getScriptingEngine() = 0;
1036 virtual ::Bedrock::NonOwnerPointer<::WorldTransferAgent>
const getWorldTransferAgent()
const = 0;
1038 virtual ::Bedrock::NotNullNonOwnerPtr<::PlayerReportHandler> getPlayerReportHandler() = 0;
1040 virtual void flagDisconnectionAndNotify(::Connection::DisconnectFailReason) = 0;
1042 virtual void flagDisconnectionAndNotifyWithParams(::DisconnectionScreenParams
const&) = 0;
1044 virtual void disconnectSubClient(::Connection::DisconnectFailReason) = 0;
1046 virtual void setClientUpdateAndRenderThrottling(
bool,
int,
float) = 0;
1048 virtual bool isClientUpdateAndRenderThrottlingEnabled()
const = 0;
1050 virtual int getClientUpdateAndRenderThrottlingThreshold()
const = 0;
1052 virtual float getClientUpdateAndRenderThrottlingScalar()
const = 0;
1054 virtual bool isUserBanned()
const = 0;
1056 virtual void setupPauseManagers() = 0;
1058 virtual bool isEligibleForPauseFeature()
const = 0;
1060 virtual bool requestInGamePause(
bool status) = 0;
1062 virtual void openContentLogHistory() = 0;
1064 virtual double getGameUpdateDurationInSeconds()
const = 0;
1066 virtual ::std::optional<::PlayerJoinWorldTelemetryInfo> getPlayerJoinWorldTelemetryInfo()
const = 0;
1068 virtual ::Bedrock::NonOwnerPointer<::LinkedAssetValidator> getLinkedAssetValidator() = 0;
Definition AbstractScene.h:5
Definition ActorAnimationGroup.h:26
Definition ActorRenderDispatcher.h:5
Definition ClipboardCopy.h:16
Definition ClipboardPasteRequest.h:10
Definition AutomationClient.h:26
Definition EnableNonOwnerReferences.h:7
Definition BlockSource.h:68
Definition BuildActionIntention.h:5
Definition ClientHitDetectCoordinator.h:13
Definition ClientInstanceEventCoordinator.h:16
Definition ClientNetworkEventCoordinator.h:13
Definition ClientNetworkSystem.h:39
Definition ClientScriptEventCoordinator.h:13
Definition FileStorageArea.h:26
Definition DateManager.h:14
Definition EDUSystems.h:25
Definition IEditorManager.h:25
Definition IEditorPlayer.h:16
Definition EntityContext.h:16
Definition EntitySystems.h:25
Definition FontHandle.h:5
Definition GameCallbacks.h:5
Definition GameModuleClient.h:5
Definition GameRenderer.h:5
Definition HitResult.h:17
Definition IClientInstance.h:5
MCAPI void $reloadEntityRenderers(::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup > const &)
static MCAPI void ** $vftable()
Definition IClientInstances.h:5
Definition IConnectionEventing.h:10
Definition IContentKeyProvider.h:13
Definition IMinecraftEventing.h:137
Definition IMinecraftGame.h:5
Definition IResourcePackRepository.h:34
Definition ISceneStack.h:5
Definition ItemInHandRenderer.h:5
Definition ItemRegistryRef.h:36
Definition ItemRenderer.h:5
Definition KeyboardManager.h:5
Definition LevelRendererCameraProxy.h:5
Definition LevelRenderer.h:5
Definition LightTexture.h:5
Definition LinkedAssetValidator.h:8
Definition MinecraftGraphics.h:5
Definition Minecraft.h:60
Definition SceneProvider.h:7
Definition PackManifestFactory.h:20
Definition PacketSender.h:17
Definition ResourcePackManager.h:29
Definition ScreenContext.h:5
Definition ScriptEngine.h:21
Definition ShaderColor.h:5
Definition GameConnectionInfo.h:21
Definition IUserManager.h:34
Definition TaskGroup.h:53
Definition UIEventCoordinator.h:13
Definition WeakEntityRef.h:14
Definition TextureGroup.h:7
Definition TexturePtr.h:19
Definition ActorBlockRenderer.h:5
Definition ActorResourceDefinitionGroup.h:5
Definition ActorUniqueID.h:5
Definition BlockActorRenderDispatcher.h:5
Definition BlockCullingGroup.h:5
Definition BlockTessellator.h:5
Definition CachedScenes.h:5
Definition CameraRegistry.h:5
Definition ClientInstanceInitArguments.h:5
Definition ClientRequirementVerifier.h:5
Definition ClientScriptManager.h:5
Definition DeferredLighting.h:5
Definition DevConsoleLogger.h:5
Definition DisconnectionRequestHandler.h:5
Definition DisconnectionScreenParams.h:9
Definition ExperienceConnectionData.h:5
Definition FileDataRequest.h:5
Definition FogDefinitionRegistry.h:5
Definition FogManager.h:5
Definition FrameUpdateContext.h:5
Definition GeometryGroup.h:5
Definition GuidedFlowManager.h:5
Definition HitDetectSystem.h:5
Definition HudIconActorRenderer.h:5
Definition IGameConnectionListener.h:5
Definition ISettingsRegistry.h:5
Definition ITTSEventManager.h:5
Definition IUIRepository.h:5
Definition LatencyGraphDisplay.h:5
Definition ListenerState.h:5
Definition LocalPlayerChangedConnector.h:5
Definition LocalPlayer.h:5
Definition MobEffectsLayout.h:5
Definition MultiPlayerLevel.h:5
Definition MusicManager.h:5
Definition ITelemetry.h:7
Definition UIBlockThumbnailAtlasManager.h:7
Definition PacksInfoData.h:14
Definition PersonaRepository.h:5
Definition PlayerAuthentication.h:5
Definition IClientController.h:7
Definition PlayerJoinWorldTelemetryInfo.h:5
Definition PlayerReportHandler.h:5
Definition ProfanityContext.h:5
Definition ProgressHandler.h:5
Definition SceneFactory.h:5
Definition ScreenLoadTimeTracker.h:5
Definition ScreenshotOptions.h:5
Definition SkinRepositoryClientInterface.h:5
Definition SkinRepository.h:5
Definition MultiplayerServiceManager.h:7
Definition SoundEngine.h:5
Definition SplitScreenInfo.h:5
Definition TextToSpeechClient.h:5
Definition ToastManager.h:5
Definition TrialManager.h:5
Definition WorldTransferAgent.h:5
Definition WorldSystem.h:7
Definition ViewportInfo.h:7
Definition ScreenTechStackSelector.h:7