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/SceneType.h"
11#include "mc/client/gui/StoreNavigationOrigin.h"
12#include "mc/client/gui/screens/controllers/InventoryTabIndex.h"
13#include "mc/client/gui/screens/controllers/MarketplacePassTabIndex.h"
14#include "mc/client/gui/screens/models/PlayScreenDefaultTab.h"
15#include "mc/client/options/SplitScreenDirection.h"
16#include "mc/client/social/MultiplayerServiceIdentifier.h"
17#include "mc/client/store/StoreErrorCodes.h"
18#include "mc/client/util/ClipboardProxy.h"
19#include "mc/client/world/JoinServerWorldResult.h"
20#include "mc/common/SubClientId.h"
21#include "mc/deps/core/file/PathBuffer.h"
22#include "mc/deps/core/threading/Async.h"
23#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
24#include "mc/deps/core/utility/NonOwnerPointer.h"
25#include "mc/deps/core/utility/UniqueOwnerPointer.h"
26#include "mc/deps/core_graphics/math/Rect.h"
27#include "mc/deps/game_refs/OwnerPtr.h"
28#include "mc/deps/game_refs/WeakRef.h"
29#include "mc/deps/input/InputMode.h"
30#include "mc/deps/input/PointerType.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"
109class MarketplaceServicesManager;
135class StoreCatalogItem;
136class StoreCatalogRepository;
161namespace Bedrock::Http {
class Status; }
163namespace Core {
class Path; }
167namespace OreUI {
class Router; }
171namespace Realms {
struct World; }
177namespace Social {
class User; }
179namespace mce {
class Camera; }
180namespace mce {
class Texture; }
200 virtual ~IClientInstance() =
default;
202 virtual void onInitMinecraftGame() = 0;
204 virtual void onDestroyMinecraftGame() = 0;
206 virtual void init(::ClientInstanceInitArguments&& args) = 0;
208 virtual void initSceneFactory(
209 ::std::unique_ptr<::SceneFactory> sceneFactory,
210 ::std::unique_ptr<::OreUI::SceneProvider> sceneProvider
213 virtual void setUiRouter(::std::unique_ptr<::OreUI::Router> uiRouter) = 0;
215 virtual void initGraphics() = 0;
217 virtual void stop() = 0;
219 virtual void teardown() = 0;
221 virtual void preShutDown() = 0;
223 virtual void setGameConnectionInfo(::Social::GameConnectionInfo
const& gameConnection) = 0;
225 virtual ::std::optional<::Social::GameConnectionInfo> getGameConnectionInfo() = 0;
227 virtual void onStartJoinGame(
228 bool isJoiningLocalServer,
229 ::std::string
const& multiplayerCorrelationId,
230 ::std::string
const& serverName,
231 ::std::string
const& worldName,
232 ::NetworkType networkTypeOverride,
233 ::Social::MultiplayerServiceIdentifier service,
234 ::PlayerJoinWorldContext context
237 virtual void onCancelJoinGame() = 0;
239 virtual void requestLeaveGameAsync() = 0;
241 virtual void requestLeaveGame(
bool switchScreen,
bool sync) = 0;
243 virtual void stopPlayScreen() = 0;
245 virtual bool isLeaveGameDone()
const = 0;
247 virtual void setupPlayScreenForLeaveGame() = 0;
249 virtual void preCacheOutOfGameViews() = 0;
251 virtual void resetPrimaryClient() = 0;
253 virtual void resetGameSession() = 0;
255 virtual void tick() = 0;
257 virtual void frameUpdate(::FrameUpdateContext& frameUpdateContext) = 0;
259 virtual bool update(
bool isInitFinished) = 0;
261 virtual void preFrameTick() = 0;
263 virtual void endFrame() = 0;
265 virtual float getFrameAlpha() = 0;
267 virtual void startSubClientLateJoin(
268 bool hasXBLBroadcast,
269 ::std::unique_ptr<::GameModuleClient> gameModuleClient,
270 ::std::optional<::PlayerJoinWorldTelemetryInfo> primaryClientJoinWorldInfo
273 virtual ::Bedrock::Threading::Async<::ClientGameSetupResult> setupClientGame(
274 bool joiningLocalServer,
275 ::ServerSupportedAuthenticationTypes supportedAuth,
276 ::std::unique_ptr<::GameModuleClient> gameModuleClient
279 virtual ::BlockSource* getRegion() = 0;
281 virtual ::LocalPlayer* getLocalPlayer()
const = 0;
283 virtual void setupPrimaryClientEditorManager() = 0;
285 virtual ::Bedrock::NonOwnerPointer<::Editor::IEditorPlayer> getLocalEditorPlayer()
const = 0;
287 virtual ::Bedrock::NonOwnerPointer<::Editor::IEditorManager> getEditorManager()
const = 0;
289 virtual bool isPlayerInEditor()
const = 0;
291 virtual ::LocalPlayerChangedConnector getLocalPlayerChangedConnector() = 0;
293 virtual ::WeakEntityRef getLocalUser()
const = 0;
295 virtual ::Actor* getCameraActor()
const = 0;
297 virtual void setCameraActor(::Actor* cameraActor) = 0;
299 virtual ::ListenerState
const* getListenerState()
const = 0;
301 virtual ::Actor* getCameraTargetActor()
const = 0;
303 virtual void setCameraTargetActor(::Actor* cameraTargetActor) = 0;
305 virtual ::WeakEntityRef getCameraEntity()
const = 0;
307 virtual void getRawCameraEntities(::WeakEntityRef& cameraEntity, ::WeakEntityRef& cameraTargetEntity)
const = 0;
309 virtual void setRawCameraEntities(::WeakEntityRef cameraEntity, ::WeakEntityRef cameraTargetEntity) = 0;
311 virtual ::HitResult
const& getLatestHitResult()
const = 0;
313 virtual bool isLeavingGame()
const = 0;
315 virtual bool isDestroyingGame()
const = 0;
317 virtual bool isShuttingDown()
const = 0;
319 virtual bool useLowFrequencyUIRender()
const = 0;
321 virtual bool isSplitScreenActive()
const = 0;
323 virtual bool isExitingLevel()
const = 0;
325 virtual bool isInBedScreen()
const = 0;
327 virtual bool isInDeathScreen()
const = 0;
329 virtual bool isKeyboardEnabled()
const = 0;
331 virtual bool hasCommands()
const = 0;
333 virtual int getSplitScreenCount()
const = 0;
335 virtual bool isShowingLoadingScreen()
const = 0;
337 virtual bool shouldDisconnectOnAppSuspended()
const = 0;
339 virtual bool isGamePlayTipsEnabled()
const = 0;
341 virtual bool isPlatformNX()
const = 0;
343 virtual bool isLocalSplitscreenWith(::ActorUniqueID
const&
id)
const = 0;
345 virtual bool isValidCrossPlatformSkin()
const = 0;
347 virtual bool isCurrentSkinPlatformLocked()
const = 0;
349 virtual bool isSelectedSkinInitialized()
const = 0;
351 virtual ::SplitScreenInfo getSplitScreenInfo()
const = 0;
353 virtual bool getHandlingControllerDisconnect() = 0;
355 virtual void setOpenControllerDisconnectScreen(
bool open) = 0;
357 virtual ::ClientPlayMode getClientPlayMode()
const = 0;
359 virtual void setClientPlayMode(::ClientPlayMode
const& mode) = 0;
361 virtual ::std::function<void()> getCreditsCallback() = 0;
363 virtual void setCreditsCallback(::std::function<
void()> callback) = 0;
365 virtual void setupTransitionForCredits(::std::function<
void()> callback) = 0;
367 virtual void refreshScreenSizeData() = 0;
369 virtual void onScreenSizeChanged(
int width,
int height,
float forcedGuiScale) = 0;
371 virtual void onGuiScaleOffsetChanged() = 0;
373 virtual void onSafeZoneChanged() = 0;
375 virtual bool hasDismissedNewPlayerFlow()
const = 0;
377 virtual void quit(::std::string
const& src, ::std::string
const& reason) = 0;
379 virtual ::IMinecraftGame& getMinecraftGame_DEPRECATED()
const = 0;
381 virtual ::IClientInstances& getClientInstances()
const = 0;
383 virtual ::World::WorldSystem& getWorldSystem()
const = 0;
385 virtual bool isWorldSystemReady()
const = 0;
387 virtual ::Bedrock::NotNullNonOwnerPtr<::Automation::AutomationClient> getAutomationClient()
const = 0;
389 virtual ::Bedrock::NonOwnerPointer<::EDUSystems> getEDUSystems() = 0;
391 virtual ::Bedrock::NonOwnerPointer<::EDUSystems const> getEDUSystems()
const = 0;
393 virtual ::IMinecraftEventing& getEventing()
const = 0;
395 virtual ::IConnectionEventing& getConnectionEventing()
const = 0;
397 virtual ::FontHandle getFontHandle()
const = 0;
399 virtual ::FontHandle getRuneFontHandle()
const = 0;
401 virtual ::FontHandle getUnicodeFontHandle()
const = 0;
403 virtual ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup> getGeometryGroup()
const = 0;
405 virtual ::Bedrock::NotNullNonOwnerPtr<::BlockCullingGroup> getBlockCullingGroup()
const = 0;
407 virtual ::Bedrock::NotNullNonOwnerPtr<::Social::MultiplayerServiceManager> getMultiplayerServiceManager()
const = 0;
409 virtual ::IResourcePackRepository& getResourcePackRepository()
const = 0;
411 virtual ::ResourcePackManager& getResourcePackManager()
const = 0;
413 virtual ::PackManifestFactory& getPackManifestFactory() = 0;
415 virtual ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> getKeyProvider()
const = 0;
417 virtual ::PacksInfoData
const& getHostSpecifiedPacks()
const = 0;
419 virtual ::std::shared_ptr<::SkinRepository> getSkinRepository()
const = 0;
421 virtual ::PersonaClient& getPersonaClient()
const = 0;
423 virtual ::PersonaRepository& getPersonaRepository()
const = 0;
425 virtual ::MarketplaceServicesManager& getMarketplaceServicesManager()
const = 0;
427 virtual ::Bedrock::NotNullNonOwnerPtr<::StoreCatalogRepository> getStoreCatalogRepository() = 0;
429 virtual ::std::shared_ptr<::mce::TextureGroup> getTextureGroup()
const = 0;
431 virtual ::Bedrock::NotNullNonOwnerPtr<::mce::TextureGroup> getStoreCacheTextures()
const = 0;
433 virtual ::Bedrock::NotNullNonOwnerPtr<::MinecraftGraphics> getMinecraftGraphics()
const = 0;
435 virtual ::Bedrock::NotNullNonOwnerPtr<::IUIRepository> getUIRepository()
const = 0;
437 virtual ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager> getUserManager()
const = 0;
439 virtual ::Bedrock::NotNullNonOwnerPtr<::TrialManager> getTrialManager()
const = 0;
441 virtual bool wantToQuit()
const = 0;
443 virtual bool isPrimaryLevelCrossPlatformMultiplayer()
const = 0;
445 virtual bool isPrimaryLevelMultiplayer()
const = 0;
447 virtual bool isAdhocEnabled()
const = 0;
449 virtual ::std::shared_ptr<::ActorAnimationGroup> getActorAnimationGroup()
const = 0;
451 virtual bool isMarketplaceDisabled()
const = 0;
453 virtual ::std::pair<::StoreErrorCodes, ::std::string>
const getMarketplaceDisabledReasonWithErrorCode()
const = 0;
455 virtual void linkToOffer(::std::string
const& productId,
bool allowWhileInGame) = 0;
457 virtual void linkToPage(::std::string
const& pageId) = 0;
459 virtual void linkTo3PServerOffers(::std::string
const& pageId, ::std::string
const& creatorName) = 0;
461 virtual void navigateToMarketplaceInventoryScreen(::InventoryTabIndex tabIndex) = 0;
463 virtual void navigateToStoreHomeScreen() = 0;
465 virtual void navigateToCoinPurchaseScreen(
int neededCoins, ::std::function<
void(
bool,
int)> callback) = 0;
467 virtual void navigateToPurchaseOfferScreen(::StoreCatalogItem&, ::StoreNavigationOrigin,
bool const) = 0;
469 virtual void navigateToDressingRoomOfferScreen(::std::string
const& offerId) = 0;
471 virtual bool navigateToProfileScreen(::std::string
const&,
bool const) = 0;
473 virtual void navigateToServersScreen(
bool const calledFromHyperlink) = 0;
475 virtual void navigateToHowToPlayScreen(::std::string
const& startTopic) = 0;
477 virtual void navigateToGatheringInfoScreen(
bool autoConnect) = 0;
479 virtual void navigateToMarketplacePassPDPScreen(::MarketplacePassTabIndex tabIndex) = 0;
481 virtual void navigateToRealmsStoriesTransitionScreen(::Realms::World
const& world) = 0;
483 virtual void tryPushLeaveGameScreen() = 0;
485 virtual void tryStartDayOneExperience() = 0;
487 virtual bool isReadyToRender()
const = 0;
489 virtual void onDimensionChangedEvent() = 0;
491 virtual void onGameEventNotification(::ui::GameEventNotification notification) = 0;
493 virtual ::std::string getTopScreenName()
const = 0;
495 virtual void setLeaveGameInProgressAsReadyToContinue() = 0;
497 virtual void stopDestroying() = 0;
499 virtual void onClientCreatedLevel(
500 ::std::pair<::std::unique_ptr<::Level>, ::OwnerPtr<::EntityContext>> levelEntity,
501 ::OwnerPtr<::EntityContext> userEntity
504 virtual ::PlayerAuthentication& getPlayerAuthentication() = 0;
506 virtual void createPlayerAuthentication() = 0;
508 virtual void createPlayerAuthentication(uint64 clientRandomId) = 0;
510 virtual ::std::string getPlatformId()
const = 0;
512 virtual ::std::string getPlatformOnlineId()
const = 0;
514 virtual bool useController()
const = 0;
516 virtual bool useTouchscreen()
const = 0;
518 virtual bool getMouseGrabbed()
const = 0;
520 virtual bool currentInputModeIsMouseAndKeyboard()
const = 0;
522 virtual bool allowPicking()
const = 0;
524 virtual bool isShowingMenu()
const = 0;
526 virtual bool isShowingPauseScreen()
const = 0;
528 virtual bool isShowingProgressScreen()
const = 0;
530 virtual bool isShowingWorldProgressScreen()
const = 0;
532 virtual bool isShowingRealmsProgressScreen()
const = 0;
534 virtual bool isShowingDeathScreen()
const = 0;
536 virtual bool isShowingServerForm()
const = 0;
538 virtual bool isScreenReplaceable()
const = 0;
540 virtual bool isInWorldAndNotShowingAnyMenuScreens()
const = 0;
542 virtual bool isWorldActive()
const = 0;
544 virtual bool isInRealm() = 0;
546 virtual bool readyForShutdown()
const = 0;
548 virtual bool isPrimaryClient()
const = 0;
550 virtual bool isEduMode()
const = 0;
552 virtual bool isGamepadCursorEnabled()
const = 0;
554 virtual bool isInControlCustomization()
const = 0;
556 virtual ::Bedrock::NotNullNonOwnerPtr<::Minecraft> getServerData() = 0;
558 virtual ::Bedrock::NotNullNonOwnerPtr<::Minecraft const> getServerData()
const = 0;
560 virtual ::MultiPlayerLevel* getLevel() = 0;
562 virtual ::MultiPlayerLevel
const* getLevel()
const = 0;
564 virtual bool hasLevel()
const = 0;
566 virtual bool isPreGame()
const = 0;
568 virtual bool isInMultiplayerGame()
const = 0;
570 virtual bool isMultiPlayerClient()
const = 0;
572 virtual ::IOptionRegistry& getOptions() = 0;
574 virtual ::IOptionRegistry
const& getOptions()
const = 0;
576 virtual ::std::shared_ptr<::OptionRegistry> getOptionsPtr() = 0;
578 virtual ::std::shared_ptr<::OptionRegistry const>
const getOptionsPtr()
const = 0;
580 virtual ::std::shared_ptr<::Social::User>
const& getUser()
const = 0;
582 virtual ::std::shared_ptr<::Settings::IRegistry> getSettingsRegistry() = 0;
584 virtual ::Option
const& getShowLearningPromptsOption()
const = 0;
586 virtual ::Option& getShowControlTipsOption() = 0;
588 virtual ::Option& getShowControlTipsOverrideOption() = 0;
590 virtual double getControlTipsTimeElapsed()
const = 0;
592 virtual void setControlTipsTimeElapsedStart() = 0;
594 virtual ::GameRenderer& getGameRenderer()
const = 0;
596 virtual ::LevelRenderer* getLevelRenderer()
const = 0;
598 virtual ::LevelRendererCameraProxy* getLevelRendererCameraProxy()
const = 0;
600 virtual ::Bedrock::NonOwnerPointer<::CameraRegistry> getCameraRegistry() = 0;
602 virtual ::Bedrock::NonOwnerPointer<::CameraRegistry const> getCameraRegistry()
const = 0;
604 virtual ::Bedrock::NonOwnerPointer<::EntitySystems> getCameraSystems() = 0;
606 virtual ::LightTexture* getLightTexture() = 0;
608 virtual void setupLevelRendering(::MultiPlayerLevel& level, ::WeakEntityRef cameraTargetEntity) = 0;
610 virtual ::mce::ViewportInfo
const& getViewportInfo()
const = 0;
612 virtual void setViewportInfo(::mce::ViewportInfo
const& viewportInfo) = 0;
614 virtual ::Vec2 getNormalizedViewportSize()
const = 0;
616 virtual void updateChunkRadius() = 0;
618 virtual void setUITexture(::mce::Texture* tex) = 0;
620 virtual ::mce::Texture* getUITexture() = 0;
622 virtual void setLevelTexture(::mce::Texture* tex) = 0;
624 virtual ::mce::Texture* getLevelTexture() = 0;
626 virtual void setUICursorTexture(::mce::TexturePtr tex) = 0;
628 virtual ::mce::TexturePtr getUICursorTexture()
const = 0;
630 virtual ::mce::Camera& getCamera() = 0;
632 virtual ::ShaderColor& getShaderColor() = 0;
634 virtual ::ShaderColor& getDarkShaderColor() = 0;
636 virtual void clearGraphicsCache() = 0;
638 virtual void getNormalizedUICursorTransform(::MatrixStack::MatrixStackRef& matrix,
float cursorHalfSizeTexels) = 0;
640 virtual bool shouldRenderUICursor()
const = 0;
642 virtual bool getRenderPlayerModel()
const = 0;
644 virtual ::DeferredLighting& getDeferredLighting() = 0;
646 virtual float getGuiScale()
const = 0;
648 virtual ::Option
const& getGuiScaleOption()
const = 0;
650 virtual int getGuiScaleOffset()
const = 0;
652 virtual void setGuiScaleOffset(
int guiScale) = 0;
654 virtual void renderImGui(::ScreenContext&,
bool) = 0;
656 virtual ::Bedrock::NotNullNonOwnerPtr<::GuiData> getGuiData() = 0;
658 virtual ::Bedrock::NotNullNonOwnerPtr<::GuiData const> getGuiData()
const = 0;
660 virtual ::GuidedFlowManager& getGuidedFlowManager() = 0;
662 virtual ::PixelCalc
const& getDpadScale()
const = 0;
664 virtual ::Bedrock::NotNullNonOwnerPtr<::DateManager const> getDateManager()
const = 0;
666 virtual void addOverrideHoursToDateTime(uint
const hoursToAdd) = 0;
668 virtual ::ToastManager& getToastManager() = 0;
670 virtual ::ClipboardProxy<::ApplicationSignal::ClipboardCopy, ::ApplicationSignal::ClipboardPasteRequest>&
671 getClipboardManager() = 0;
673 virtual ::AbstractScene* getTopScene() = 0;
675 virtual ::AbstractScene
const* getTopScene()
const = 0;
677 virtual ::AbstractScene* getActiveScene() = 0;
679 virtual ::AbstractScene
const* getActiveScene()
const = 0;
681 virtual ::SceneFactory& getSceneFactory()
const = 0;
683 virtual ::OreUI::SceneProvider& getSceneProvider()
const = 0;
685 virtual ::WeakRef<::OreUI::UIBlockThumbnailAtlasManager> getOreUIBlockThumbnailAtlasManager()
const = 0;
687 virtual ::ui::ScreenTechStackSelector& getScreenTechStackSelector() = 0;
689 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack const> getClientSceneStack()
const = 0;
691 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> getClientSceneStack() = 0;
693 virtual ::OreUI::Router& getClientUIRouter()
const = 0;
695 virtual ::ISceneStack& getMainSceneStackInterface() = 0;
697 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> getMainSceneStack() = 0;
699 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack const> getMainSceneStack()
const = 0;
701 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack const> getCurrentSceneStack()
const = 0;
703 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> getCurrentSceneStack() = 0;
705 virtual ::OreUI::Router& getCurrentUIRouter() = 0;
707 virtual ::OreUI::Router
const& getCurrentUIRouter()
const = 0;
709 virtual ::OreUI::ITelemetry& getOreUITelemetry() = 0;
711 virtual ::Bedrock::NotNullNonOwnerPtr<::ISceneStack> prepareSceneFor(
712 ::ui::SceneType
const sceneTypeToFind,
713 ::std::function<::std::shared_ptr<::AbstractScene>()> createScreenCallback
716 virtual ::CachedScenes& getCachedScenes() = 0;
718 virtual ::std::string getScreenName()
const = 0;
720 virtual ::std::string getScreenTelemetry()
const = 0;
722 virtual ::ui::SceneType getTopSceneType()
const = 0;
724 virtual ::MobEffectsLayout& getMobEffectsLayout() = 0;
726 virtual ::std::string emoticonifyText(::std::string
const& text)
const = 0;
728 virtual ::std::string emoticonifyText(::std::string
const& text,
bool isGameTip) = 0;
730 virtual void onMobEffectsChange() = 0;
732 virtual void setUISizeAndScale(
int w,
int h,
float forcedGuiScale) = 0;
734 virtual void forEachVisibleScreen(::brstd::function_ref<
void(::AbstractScene&)> callback) = 0;
736 virtual void forEachScreen(::brstd::function_ref<
bool(::AbstractScene&)> callback,
bool topDown) = 0;
739 forEachScreenConst(::brstd::function_ref<
bool(::AbstractScene
const&)> callback,
bool topDown)
const = 0;
741 virtual bool updateSceneStack() = 0;
743 virtual void forEachAlwaysAcceptInputScreen(
744 ::std::function<
void(::AbstractScene&)> callback,
745 ::AbstractScene
const* ignoreScreen
748 virtual void forEachAlwaysAcceptInputScreenWithTop(::std::function<
void(::AbstractScene&)> callback) = 0;
750 virtual void showPlayerProfile(::std::string
const& xuid, ::std::string
const& platformId) = 0;
752 virtual bool isInGameInputEnabled()
const = 0;
754 virtual void setInGameInputEnabled(
bool isEnabled) = 0;
756 virtual ::Vec2 getSafeZoneScale()
const = 0;
758 virtual void verifySkinApproval(
759 ::std::function<
void(::std::string)>
const& notApprovedCallback,
760 ::std::function<
void()>
const& approvedCallback
763 virtual ::InputMode getCurrentInputMode()
const = 0;
765 virtual bool isTouchGameplayAllowed()
const = 0;
767 virtual ::Bedrock::NonOwnerPointer<::MinecraftInputHandler> getMinecraftInput()
const = 0;
769 virtual ::KeyboardManager& getKeyboardManager() = 0;
771 virtual void setLastPointerLocation(
float x,
float y,
float z) = 0;
773 virtual ::Vec3 getLastPointerLocation() = 0;
775 virtual void clearTouchPointerLocations() = 0;
777 virtual void clearTouchPointerLocation(
int id) = 0;
779 virtual void updateControlOptionState(uint
id,
bool active) = 0;
781 virtual void clearActiveControlOptions() = 0;
783 virtual ::std::set<uint>
const& getActiveControlOptions()
const = 0;
785 virtual ::std::vector<::OptionID> getActiveOptionIDs(::ControlOptionType controlOptionType)
const = 0;
787 virtual void setNumberOfActiveConfigs(
int numberOfActiveConfigs) = 0;
789 virtual int getNumberOfActiveConfigs()
const = 0;
791 virtual bool isNoConfigSelected()
const = 0;
793 virtual void setNumberOfEnabledConfigs(
int numberOfEnabledConfigs) = 0;
795 virtual int getNumberOfEnabledConfigs()
const = 0;
797 virtual void setWYSIWYGState(::WYSIWYGState wysiwygState) = 0;
799 virtual ::WYSIWYGState getWYSIWYGState()
const = 0;
801 virtual void setOtherConfigsExistInThisCategory(
bool otherConfigsExistInThisCategory) = 0;
803 virtual bool getOtherConfigsExistInThisCategory()
const = 0;
805 virtual void updateTouchPointerLocation(
int id,
float x,
float y) = 0;
807 virtual ::Vec2 getTouchPointerLocation(
int id)
const = 0;
809 virtual void updateActionPointerId(
int id) = 0;
811 virtual int getActionPointerId()
const = 0;
813 virtual bool shouldUseLastPointerLocationOnFocusChange() = 0;
815 virtual bool currentScreenShouldStealMouse() = 0;
817 virtual ::BuildActionIntention& getInProgressBAI()
const = 0;
819 virtual ::PacketSender& getPacketSender() = 0;
821 virtual ::ClientNetworkSystem& getClientNetworkSystem() = 0;
823 virtual ::ClientNetworkSystem
const& getClientNetworkSystem()
const = 0;
825 virtual void setMoveTurnInput(::std::unique_ptr<::ClientMoveInputHandler> pClientMoveInputHandler) = 0;
827 virtual void setupPersistentControls(::InputMode currentMode) = 0;
829 virtual void resetPlayerMovement() = 0;
831 virtual void suspendPredictedMovement() = 0;
833 virtual void onClientInputInitComplete() = 0;
835 virtual ::glm::vec2 getGamepadCursorPosition()
const = 0;
837 virtual void setClientInputHandler(::std::unique_ptr<::ClientInputHandler> pClientInputHandler) = 0;
839 virtual ::ClientInputHandler* getInput()
const = 0;
841 virtual int getControllerId()
const = 0;
843 virtual bool hasConnectedController()
const = 0;
845 virtual ::SubClientId getClientSubId()
const = 0;
847 virtual void setSuspendInput(
bool suspendInput) = 0;
849 virtual void setSuspendDirectionalInput(
bool suspendDirectionalInput) = 0;
851 virtual void setDisableInput(
bool disableInput) = 0;
853 virtual void grabMouse() = 0;
855 virtual void releaseMouse() = 0;
857 virtual void refocusMouse(
bool lostMouse) = 0;
859 virtual void setMouseType(::Bedrock::Input::PointerType type) = 0;
861 virtual void resetBai(
int baiFlags) = 0;
863 virtual void clearInProgressBAI() = 0;
865 virtual ::Bedrock::NotNullNonOwnerPtr<::SoundEngine> getSoundEngine()
const = 0;
867 virtual ::MusicManager
const* getMusicManager()
const = 0;
869 virtual ::MusicManager* getMusicManagerNonConst()
const = 0;
871 virtual void play(::std::string
const& name, ::Vec3
const& pos,
float volume,
float pitch) = 0;
873 virtual void playUI(::std::string
const& name,
float volume,
float pitch) = 0;
875 virtual void muteAudio() = 0;
877 virtual void unMuteAudio() = 0;
879 virtual void fadeOutMusic()
const = 0;
881 virtual ::TaskGroup& getTaskGroup() = 0;
883 virtual void onFullVanillaPackOnStack() = 0;
885 virtual bool isFullVanillaPackOnStack()
const = 0;
887 virtual void onPlayerLoaded(::Player& player) = 0;
889 virtual void setClientGameMode(::GameType gameType) = 0;
891 virtual void resetToDefaultGameMode() = 0;
893 virtual ::IGameConnectionListener& getGameConnectionListener() = 0;
895 virtual void connectToThirdPartyServer(::std::string
const& ipAddress,
int port) = 0;
897 virtual void connectToExperience(
898 ::ExperienceConnectionData data,
899 ::std::function<
void(::std::deque<::std::unique_ptr<::ProgressHandler>>,
bool)> joinServerCallback,
900 ::std::function<
void(::World::JoinServerWorldResult)> onErrorCallback,
901 ::PlayerJoinWorldContext context
904 virtual void startExternalNetworkWorld(
905 ::Social::GameConnectionInfo connection,
906 ::std::string
const& serverName,
907 ::PlayerJoinWorldContext context
910 virtual bool isReadyToReconnect()
const = 0;
912 virtual bool checkForPiracy() = 0;
914 virtual void updateChatFilterStatus(::ProfanityContext& profanityContext) = 0;
916 virtual void updateControllerHandling() = 0;
918 virtual void setBehaviorCommandCallback(::std::function<
void(::std::string
const&, ::BehaviorStatus)> callback) = 0;
920 virtual void setBehaviorCommandStatus(::std::string
const& treeName, ::BehaviorStatus status) = 0;
922 virtual void setConnectGamepadScreenActive(
bool active) = 0;
924 virtual ::Bedrock::Threading::Async<::Core::PathBuffer<::std::string>>
925 requestScreenshot(::ScreenshotOptions& screenshotOptions) = 0;
927 virtual ::Bedrock::NotNullNonOwnerPtr<::DevConsoleLogger> getDevConsoleLogger()
const = 0;
929 virtual ::std::shared_ptr<::FileDataRequest> requestImageFromUrl(
930 ::std::string
const& imageUrl,
931 ::std::function<
void(::Bedrock::Http::Status, ::Core::Path
const&, uint64)> callback
934 virtual void initializeRenderResources() = 0;
936 virtual void postInitRenderResources() = 0;
938 virtual void onAppSuspended() = 0;
940 virtual void onAppSuspensionDisconnect() = 0;
942 virtual void onAppResumed() = 0;
944 virtual void onActiveResourcePacksChanged(
945 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup>
const& entityResourceDefGroup
948 virtual void reloadEntityRenderers(
949 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup>
const& actorResourceDefinitionGroup
952 virtual ::BlockTessellator& getBlockTessellator() = 0;
954 virtual ::BlockActorRenderDispatcher& getBlockEntityRenderDispatcher() = 0;
956 virtual ::std::shared_ptr<::ActorRenderDispatcher> getEntityRenderDispatcher() = 0;
958 virtual ::ActorBlockRenderer& getEntityBlockRenderer() = 0;
960 virtual ::ItemInHandRenderer* getItemInHandRenderer() = 0;
962 virtual ::ItemRenderer* getItemRenderer() = 0;
964 virtual ::HudIconActorRenderer* getHudIconActorRenderer() = 0;
966 virtual ::std::deque<::std::string>& getSentMessageHistory() = 0;
968 virtual ::std::deque<::std::string>& getDevConsoleMessageHistory() = 0;
970 virtual ::Bedrock::NotNullNonOwnerPtr<::ProfanityContext> getProfanityContext()
const = 0;
972 virtual void initTTSClient(::std::shared_ptr<::TextToSpeechClient> textToSpeechClient) = 0;
974 virtual ::std::shared_ptr<::TextToSpeechClient> getTTSClient() = 0;
976 virtual ::std::shared_ptr<::TextToSpeechClient const> getTTSClient()
const = 0;
978 virtual ::std::shared_ptr<::ITTSEventManager> getTTSEventManager() = 0;
980 virtual void addTTSMessage(
981 ::std::string
const& message,
982 ::ProfanityFilterContext profanityFilterContext,
984 ::std::string
const& interruptibleId,
986 bool disregardAppFocus
989 virtual void initCommands() = 0;
991 virtual uint getUserId()
const = 0;
993 virtual bool isPrimaryUser()
const = 0;
995 virtual double getServerConnectionTime()
const = 0;
997 virtual void setServerPingTime(
int pingTime) = 0;
999 virtual int getServerPingTime()
const = 0;
1001 virtual void setDefaultPlayscreenTab(::PlayScreenDefaultTab defaultTab) = 0;
1003 virtual void setClientInstanceState(::ClientInstanceState
const& newstate) = 0;
1005 virtual void setUIEventCoordinator(::Bedrock::UniqueOwnerPointer<::UIEventCoordinator>&& coordinator) = 0;
1007 virtual ::Bedrock::NotNullNonOwnerPtr<::UIEventCoordinator> getUIEventCoordinator() = 0;
1009 virtual ::Bedrock::NotNullNonOwnerPtr<::ClientInstanceEventCoordinator> getEventCoordinator() = 0;
1011 virtual ::ClientNetworkEventCoordinator& getClientNetworkEventCoordinator() = 0;
1013 virtual ::ClientScriptEventCoordinator& getClientScriptEventCoordinator() = 0;
1015 virtual ::std::chrono::steady_clock::time_point getNoBlockBreakUntil() = 0;
1017 virtual void setNoBlockBreakUntil(::std::chrono::steady_clock::time_point timePoint) = 0;
1019 virtual ::GameModuleClient* getGameModule() = 0;
1021 virtual ::ClientHitDetectCoordinator& getHitEventCoordinator() = 0;
1023 virtual ::GameCallbacks& getGameCallbacks() = 0;
1025 virtual void setActiveFileStorageArea(::std::shared_ptr<::Core::FileStorageArea> storageArea) = 0;
1027 virtual void sendClientEnteredLevel() = 0;
1029 virtual ::HitDetectSystem* getHitDetectSystem() = 0;
1031 virtual bool isPlaying()
const = 0;
1033 virtual ::ClientInstanceState getClientInstanceState()
const = 0;
1035 virtual ::LatencyGraphDisplay* getLatencyGraphDisplay()
const = 0;
1037 virtual ::PlayerCapabilities::IClientController
const& getClientCapabilities()
const = 0;
1039 virtual ::cg::math::Rect<float> calculateViewPortModifiers(
1040 ::SubClientId
const clientId,
1041 uint64
const clientCount,
1042 ::SplitScreenDirection
const splitScreenConfiguration
1045 virtual ::std::weak_ptr<::IClientInstance> getWeakPtrToThis() = 0;
1047 virtual ::ClientRequirementVerifier
const& getClientRequirementVerifier()
const = 0;
1049 virtual ::Bedrock::NotNullNonOwnerPtr<::FogDefinitionRegistry const> getFogDefinitionRegistry()
const = 0;
1051 virtual ::Bedrock::NotNullNonOwnerPtr<::FogDefinitionRegistry> getFogDefinitionRegistry() = 0;
1053 virtual ::Bedrock::NotNullNonOwnerPtr<::FogManager const> getFogManager()
const = 0;
1055 virtual ::Bedrock::NotNullNonOwnerPtr<::FogManager> getFogManager() = 0;
1057 virtual ::Bedrock::NotNullNonOwnerPtr<::ScreenLoadTimeTracker> getScreenLoadTimeTracker() = 0;
1059 virtual ::ItemRegistryRef getItemRegistry()
const = 0;
1061 virtual ::Bedrock::NotNullNonOwnerPtr<::DisconnectionRequestHandler> getDisconnectionRequestHandler()
const = 0;
1063 virtual float getRemoteServerTimeMs()
const = 0;
1065 virtual void setRemoteServerTimeMs(
float time) = 0;
1067 virtual float getRemoteServerNetworkTimeMs()
const = 0;
1069 virtual void setRemoteServerNetworkTimeMs(
float time) = 0;
1071 virtual ::Bedrock::NonOwnerPointer<::ClientScriptManager> getClientScriptManager() = 0;
1073 virtual ::Scripting::ScriptEngine* getScriptingEngine() = 0;
1075 virtual ::Bedrock::NonOwnerPointer<::WorldTransferAgent>
const getWorldTransferAgent()
const = 0;
1077 virtual ::Bedrock::NotNullNonOwnerPtr<::PlayerReportHandler> getPlayerReportHandler() = 0;
1079 virtual void flagDisconnectionAndNotify(::Connection::DisconnectFailReason disconnectReason) = 0;
1081 virtual void flagDisconnectionAndNotifyWithParams(::DisconnectionScreenParams
const& params) = 0;
1083 virtual void disconnectSubClient(::Connection::DisconnectFailReason disconnectReason) = 0;
1085 virtual void setClientUpdateAndRenderThrottling(
bool enabled,
int threshold,
float scalar) = 0;
1087 virtual bool isClientUpdateAndRenderThrottlingEnabled()
const = 0;
1089 virtual int getClientUpdateAndRenderThrottlingThreshold()
const = 0;
1091 virtual float getClientUpdateAndRenderThrottlingScalar()
const = 0;
1093 virtual bool isUserBanned()
const = 0;
1095 virtual void setupPauseManagers() = 0;
1097 virtual bool isEligibleForPauseFeature()
const = 0;
1099 virtual bool requestInGamePause(
bool status) = 0;
1101 virtual void openContentLogHistory() = 0;
1103 virtual double getGameUpdateDurationInSeconds()
const = 0;
1105 virtual ::std::optional<::PlayerJoinWorldTelemetryInfo> getPlayerJoinWorldTelemetryInfo()
const = 0;
1107 virtual ::Bedrock::NonOwnerPointer<::LinkedAssetValidator> getLinkedAssetValidator() = 0;
1113 MCFOLD
void $reloadEntityRenderers(
1114 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup>
const& actorResourceDefinitionGroup
Definition AbstractScene.h:5
Definition ActorAnimationGroup.h:26
Definition ActorBlockRenderer.h:5
Definition ActorRenderDispatcher.h:5
Definition ActorResourceDefinitionGroup.h:5
Definition ClipboardCopy.h:7
Definition ClipboardPasteRequest.h:7
Definition AutomationClient.h:27
Definition EnableNonOwnerReferences.h:7
Definition BlockActorRenderDispatcher.h:5
Definition BlockCullingGroup.h:5
Definition BlockSource.h:72
Definition BlockTessellator.h:5
Definition BuildActionIntention.h:5
Definition CachedScenes.h:5
Definition CameraRegistry.h:5
Definition ClientHitDetectCoordinator.h:5
Definition ClientInstanceEventCoordinator.h:19
Definition ClientNetworkEventCoordinator.h:5
Definition ClientNetworkSystem.h:39
Definition ClientRequirementVerifier.h:5
Definition ClientScriptEventCoordinator.h:5
Definition ClientScriptManager.h:5
Definition FileStorageArea.h:31
Definition DateManager.h:14
Definition DeferredLighting.h:5
Definition DevConsoleLogger.h:5
Definition DisconnectionRequestHandler.h:5
Definition EDUSystems.h:33
Definition IEditorManager.h:25
Definition IEditorPlayer.h:16
Definition EntityContext.h:17
Definition EntitySystems.h:29
Definition FileDataRequest.h:5
Definition FogDefinitionRegistry.h:5
Definition FogManager.h:5
Definition FontHandle.h:5
Definition FrameUpdateContext.h:5
Definition GameCallbacks.h:5
Definition GameModuleClient.h:5
Definition GameRenderer.h:5
Definition GeometryGroup.h:5
Definition GuidedFlowManager.h:5
Definition HitDetectSystem.h:5
Definition HitResult.h:19
Definition HudIconActorRenderer.h:5
Definition IClientInstance.h:13
Definition IClientInstance.h:5
static MCAPI void ** $vftable()
Definition IClientInstances.h:5
Definition IConnectionEventing.h:10
Definition IContentKeyProvider.h:13
Definition IGameConnectionListener.h:5
Definition IMinecraftEventing.h:138
Definition IMinecraftGame.h:5
Definition IOptionRegistry.h:5
Definition IResourcePackRepository.h:34
Definition ISceneStack.h:5
Definition ITTSEventManager.h:5
Definition IUIRepository.h:5
Definition ItemInHandRenderer.h:5
Definition ItemRegistryRef.h:42
Definition ItemRenderer.h:5
Definition KeyboardManager.h:5
Definition LatencyGraphDisplay.h:5
Definition LevelRendererCameraProxy.h:5
Definition LevelRenderer.h:5
Definition LightTexture.h:5
Definition LinkedAssetValidator.h:8
Definition LocalPlayer.h:5
Definition MinecraftGraphics.h:5
Definition Minecraft.h:61
Definition MobEffectsLayout.h:5
Definition MultiPlayerLevel.h:5
Definition MusicManager.h:5
Definition OptionRegistry.h:5
Definition ITelemetry.h:7
Definition SceneProvider.h:7
Definition UIBlockThumbnailAtlasManager.h:7
Definition PackManifestFactory.h:21
Definition PacketSender.h:17
Definition PersonaClient.h:5
Definition PersonaRepository.h:5
Definition PlayerAuthentication.h:5
Definition PlayerReportHandler.h:5
Definition ProfanityContext.h:5
Definition ProgressHandler.h:5
Definition ResourcePackManager.h:35
Definition SceneFactory.h:5
Definition ScreenContext.h:5
Definition ScreenLoadTimeTracker.h:5
Definition ScriptEngine.h:22
Definition ShaderColor.h:5
Definition SkinRepository.h:5
Definition GameConnectionInfo.h:23
Definition IUserManager.h:7
Definition MultiplayerServiceManager.h:7
Definition SoundEngine.h:5
Definition TaskGroup.h:55
Definition TextToSpeechClient.h:5
Definition ToastManager.h:5
Definition TrialManager.h:5
Definition UIEventCoordinator.h:5
Definition WeakEntityRef.h:14
Definition WorldTransferAgent.h:5
Definition WorldSystem.h:7
Definition TextureGroup.h:7
Definition TexturePtr.h:7
Definition ScreenTechStackSelector.h:7
Definition ActorUniqueID.h:10
Definition ClientInstanceInitArguments.h:5
Definition DisconnectionScreenParams.h:8
Definition ExperienceConnectionData.h:5
Definition ListenerState.h:5
Definition LocalPlayerChangedConnector.h:5
Definition PacksInfoData.h:14
Definition IClientController.h:7
Definition PlayerJoinWorldContext.h:5
Definition PlayerJoinWorldTelemetryInfo.h:5
Definition ScreenshotOptions.h:9
Definition ServerSupportedAuthenticationTypes.h:5
Definition SplitScreenInfo.h:5
Definition ViewportInfo.h:7