3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/screens/BaseScreen.h"
7#include "mc/client/renderer/game/OnCameraEffectRenderer.h"
8#include "mc/deps/core/math/Vec2.h"
9#include "mc/deps/core/math/Vec3.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/deps/input/InputMode.h"
12#include "mc/deps/input/enums/DirectionId.h"
13#include "mc/deps/input/enums/FocusImpact.h"
29namespace mce {
class Camera; }
36 ::ll::TypedStorage<4, 12, ::Vec3> mPickDirection;
37 ::ll::TypedStorage<4, 8, ::Vec2> mTurnDelta;
38 ::ll::TypedStorage<4, 8, ::Vec2> mLastPlayerRotation;
39 ::ll::TypedStorage<4, 8, ::Vec2> mLastPlayerAngleVel;
40 ::ll::TypedStorage<4, 8, ::Vec2> mLastHandRotation;
41 ::ll::TypedStorage<4, 8, ::Vec2> mLastHandVel;
42 ::ll::TypedStorage<8, 8, double> mLastTime;
43 ::ll::TypedStorage<8, 8, double> mLastVRStepSoundTime;
44 ::ll::TypedStorage<4, 12, ::Vec3> mPreviousDirectTurnVector;
45 ::ll::TypedStorage<4, 4, float> mTapTurnAmountRadians;
46 ::ll::TypedStorage<4, 4, float> mLastDirectTurnAmountRadians;
47 ::ll::TypedStorage<4, 4, float> mRotXTouch;
48 ::ll::TypedStorage<4, 4, float> mRotYTouch;
49 ::ll::TypedStorage<4, 4, float> mRotXTouchLast;
50 ::ll::TypedStorage<4, 4, float> mRotYTouchLast;
51 ::ll::TypedStorage<4, 4, float> mLastTickT;
52 ::ll::TypedStorage<4, 4, int> mTick;
53 ::ll::TypedStorage<1, 1, bool> mTapTurnActive;
54 ::ll::TypedStorage<1, 1, bool> mPrevTapTurnActive;
55 ::ll::TypedStorage<1, 1, bool> mPrevAtBorder;
56 ::ll::TypedStorage<1, 1, bool> mRollTurnTempActivation;
57 ::ll::TypedStorage<4, 4, float> mDXLast;
58 ::ll::TypedStorage<4, 4, float> mDYLast;
59 ::ll::TypedStorage<4, 12, ::Vec3> mLastHitLocation;
60 ::ll::TypedStorage<1, 1, bool> mbHitLocationRecorded;
61 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::FullScreenEffectRenderer>> mFullscreenEffectRenderer;
62 ::ll::TypedStorage<8, 176, ::OnCameraEffectRenderer> mOnCameraEffectRenderer;
63 ::ll::TypedStorage<8, 8, ::IMinecraftGame&> mMinecraft;
64 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mClient;
69 InGamePlayScreen& operator=(InGamePlayScreen
const&);
70 InGamePlayScreen(InGamePlayScreen
const&);
76 virtual ~InGamePlayScreen() ;
78 virtual void applyInput(
float a) ;
80 virtual void prepareFrame(::ScreenContext& screenContext) ;
82 virtual void render(::ScreenContext& screenContext, ::FrameRenderObject
const& renderObj) ;
84 virtual void postRenderUpdate(::ScreenContext&) ;
86 virtual void onFocusGained() ;
88 virtual bool renderGameBehind() const ;
90 virtual
void tick(
int nTick,
int maxTick) ;
92 virtual
bool isShowingMenu() const ;
94 virtual
bool isModal() const ;
96 virtual
bool renderOnlyWhenTopMost() const ;
98 virtual
bool shouldStealMouse() const ;
100 virtual
void handleDirection(::DirectionId directionId,
float dx,
float dy, ::FocusImpact) ;
102 virtual
void handlePointerPressed(
bool pressed) ;
104 virtual
void init(::ScreenSizeData const& screenSizeData) ;
106 virtual ::std::
string getScreenName() const ;
108 virtual
bool equalsScreenName(::std::string_view comparison) const ;
110 virtual
bool containsScreenNameSubstring(::std::string_view substring) const ;
112 virtual
bool isPlayScreen() const ;
114 virtual ::RectangleArea getAreaOfControlByName(::std::
string const&) const ;
116 virtual
bool forceUpdateActiveSceneStackWhenPushed() const ;
118 virtual
bool _isPlayerSuspended() const;
121 _renderLevelPrep(::ScreenContext& screenContext, ::LevelRenderer& levelRenderer, ::Actor& cameraEntity);
123 virtual
void _renderLevel(::ScreenContext& screenContext, ::FrameRenderObject const& renderObj);
125 virtual
void _preLevelRender(::ScreenContext& screenContext);
127 virtual
void _postLevelRender(::ScreenContext& screenContext, ::LevelRenderer& levelRenderer);
129 virtual
bool _shouldRenderFirstPersonObjects(::LevelRenderer& levelRenderer) const;
131 virtual
bool _updateFreeformPickDirection(
135 ::HitResult& outHitResult,
136 ::HitResult& outLiquidHit
139 virtual
void _saveMatrices(::mce::Camera& camera);
141 virtual
void _renderTransparentFirstPerson3DObjects(::ScreenContext& screenContext, ::LevelRenderer& levelRenderer);
143 virtual
void _renderItemInHand(::ScreenContext& screenContext, ::Player& player);
145 virtual
void _prepareCuller(::mce::Camera& camera, ::Frustum& frustumData);
147 virtual
void _localPlayerTurned(
float yawDegrees);
149 virtual
float _getPickRange();
151 virtual
bool _shouldPushHUD();
153 virtual
void _updateInGameCursor();
160 InGamePlayScreen(::IMinecraftGame& minecraftGame, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& client);
162 MCAPI
void _applyInput_Standard(::InputMode const& inputMode,
float xo,
float yo,
float a);
164 MCAPI
void _pick(
float a);
166 MCAPI
bool _showHand() const;
168 MCAPI
void _tryTickRelativeStrafeRotation();
175 calculateTurnDelta(::IClientInstance const& client, ::Vec2 const& newDelta, ::Vec2 const& currentDelta);
181 MCAPI
void* $ctor(::IMinecraftGame& minecraftGame, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& client);
193 MCAPI
void $applyInput(
float a);
195 MCAPI
void $prepareFrame(::ScreenContext& screenContext);
197 MCAPI
void $render(::ScreenContext& screenContext, ::FrameRenderObject const& renderObj);
199 MCFOLD
void $postRenderUpdate(::ScreenContext&);
201 MCFOLD
void $onFocusGained();
203 MCFOLD
bool $renderGameBehind() const;
205 MCAPI
void $tick(
int nTick,
int maxTick);
207 MCFOLD
bool $isShowingMenu() const;
209 MCFOLD
bool $isModal() const;
211 MCFOLD
bool $renderOnlyWhenTopMost() const;
213 MCAPI
bool $shouldStealMouse() const;
215 MCAPI
void $handleDirection(::DirectionId directionId,
float dx,
float dy, ::FocusImpact);
217 MCAPI
void $handlePointerPressed(
bool pressed);
219 MCAPI
void $init(::ScreenSizeData const& screenSizeData);
221 MCAPI ::std::
string $getScreenName() const;
223 MCAPI
bool $equalsScreenName(::std::string_view comparison) const;
225 MCAPI
bool $containsScreenNameSubstring(::std::string_view substring) const;
227 MCFOLD
bool $isPlayScreen() const;
229 MCFOLD ::RectangleArea $getAreaOfControlByName(::std::
string const&) const;
231 MCFOLD
bool $forceUpdateActiveSceneStackWhenPushed() const;
233 MCAPI
bool $_isPlayerSuspended() const;
235 MCAPI
void $_renderLevelPrep(::ScreenContext& screenContext, ::LevelRenderer& levelRenderer, ::Actor& cameraEntity);
237 MCAPI
void $_renderLevel(::ScreenContext& screenContext, ::FrameRenderObject const& renderObj);
239 MCFOLD
void $_preLevelRender(::ScreenContext& screenContext);
241 MCAPI
void $_postLevelRender(::ScreenContext& screenContext, ::LevelRenderer& levelRenderer);
243 MCAPI
bool $_shouldRenderFirstPersonObjects(::LevelRenderer& levelRenderer) const;
245 MCAPI
bool $_updateFreeformPickDirection(
249 ::HitResult& outHitResult,
250 ::HitResult& outLiquidHit
253 MCAPI
void $_saveMatrices(::mce::Camera& camera);
255 MCAPI
void $_renderTransparentFirstPerson3DObjects(::ScreenContext& screenContext, ::LevelRenderer& levelRenderer);
257 MCAPI
void $_renderItemInHand(::ScreenContext& screenContext, ::Player& player);
259 MCAPI
void $_prepareCuller(::mce::Camera& camera, ::Frustum& frustumData);
261 MCFOLD
void $_localPlayerTurned(
float yawDegrees);
263 MCAPI
float $_getPickRange();
265 MCFOLD
bool $_shouldPushHUD();
267 MCFOLD
void $_updateInGameCursor();
Definition BaseScreen.h:5
Definition HitResult.h:17
Definition IClientInstance.h:5
Definition IMinecraftGame.h:5
Definition InGamePlayScreen.h:5
static MCAPI void ** $vftable()
Definition LevelRenderer.h:5
Definition RectangleArea.h:5
Definition ScreenContext.h:5
Definition FrameRenderObject.h:5
Definition FullScreenEffectRenderer.h:5
Definition ScreenSizeData.h:5