LeviLamina
Loading...
Searching...
No Matches
PlayerDimensionTransferer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/deps/core/utility/pub_sub/Connector.h"
8#include "mc/deps/core/utility/pub_sub/Publisher.h"
9#include "mc/world/level/IPlayerDimensionTransferer.h"
10
11// auto generated forward declare list
12// clang-format off
14class Dimension;
15class EntityRegistry;
19class LevelStorage;
21class PacketSender;
22class Player;
24class PortalForcer;
26struct DimensionType;
27namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
28// clang-format on
29
30class PlayerDimensionTransferer : public ::IPlayerDimensionTransferer {
31public:
32 // member variables
33 // NOLINTBEGIN
34 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::IPlayerDimensionTransferProxy>> const>
35 mPlayerDimensionTransferProxy;
36 ::ll::TypedStorage<1, 1, bool const> mIsClientSide;
37 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::PortalForcer> const> mPortalForcer;
38 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ISharedSpawnGetter>> const> mSharedSpawnGetter;
39 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LevelStorage> const> mLevelStorage;
40 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LoadingScreenIdManager> const> mLoadingScreenIdManager;
41 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::PacketSender>> mPacketSender;
42 ::ll::TypedStorage<
43 8,
44 128,
46 mOnAnyPlayerChangeDimensionPreSuspendRegion;
48 mOnAnyPlayerChangeDimensionPrepareRegionComplete;
49 // NOLINTEND
50
51public:
52 // prevent constructor by default
53 PlayerDimensionTransferer();
54
55public:
56 // virtual functions
57 // NOLINTBEGIN
58 virtual ~PlayerDimensionTransferer() /*override*/;
59
60 virtual void playerSaveLimboActors(
61 ::Player& player,
62 ::ChangeDimensionRequest& changeRequest,
63 ::Dimension& toDimension,
64 ::PlayerLimboActorManager* playerLimboActorManager
65 ) /*override*/;
66
67 virtual void playerDestroyRemotePlayers(::GameplayUserManager& gameplayUserManager) /*override*/;
68
69 virtual void playerStartChangeDimensionSuspendRegion(::Player& player, ::DimensionType fromDimension) /*override*/;
70
71 virtual void setTransitionLocation(
72 ::Player& player,
73 ::ChangeDimensionRequest& changeRequest,
74 ::Dimension& toDimension
75 ) /*override*/;
76
77 virtual void
78 syncTransitionComponentTargetPosition(::Player& player, ::ChangeDimensionRequest const& changeRequest) /*override*/;
79
80 virtual void playerDestroyRegion(::Player& player, ::ChangeDimensionRequest const& changeRequest) /*override*/;
81
82 virtual void playerPrepareRegion(
83 ::Player& player,
84 ::ChangeDimensionRequest const& changeRequest,
85 ::Dimension const& toDimension
86 ) /*override*/;
87
88 virtual ::Bedrock::PubSub::Connector<void(::DimensionType)>&
89 getOnAnyPlayerChangeDimensionPreSuspendRegionConnector() /*override*/;
90
91 virtual ::Bedrock::PubSub::Connector<void()>&
92 getOnAnyPlayerChangeDimensionPrepareRegionCompleteConnector() /*override*/;
93
94 virtual bool
95 playerWaitForServer(::Player& player, ::std::chrono::steady_clock::time_point currentTime) /*override*/;
96
97 virtual bool
98 playerWaitForDimensionTransitionSystem(::Player const& player, ::EntityRegistry& entityRegistry) /*override*/;
99
100 virtual void
101 sendClientRespawnMovePacketFromServer(::Player const& player, ::ChangeDimensionRequest& changeRequest) /*override*/;
102
103 virtual bool waitForSubChunks(::Player& player, ::Dimension const& toDimension) /*override*/;
104
105 virtual void startWaitForRespawn(::Player const& player) /*override*/;
106
107 virtual void playerSwitchDimension(
108 ::Player& player,
109 ::ChangeDimensionRequest& changeRequest,
110 ::AddLimboActorHelper* addLimboActorHelper
111 ) /*override*/;
112
113 virtual bool doRespawnIfReady(
114 ::Player& player,
115 ::ChangeDimensionRequest& changeRequest,
116 ::AddLimboActorHelper* addLimboActorHelper
117 ) /*override*/;
118
119 virtual void setPacketSender(::PacketSender& packetSender) /*override*/;
120 // NOLINTEND
121
122public:
123 // member functions
124 // NOLINTBEGIN
125 MCAPI PlayerDimensionTransferer(
126 ::std::unique_ptr<::IPlayerDimensionTransferProxy> playerDimensionTransferProxy,
127 bool isClientSide,
128 ::Bedrock::NotNullNonOwnerPtr<::PortalForcer> portalForcer,
129 ::std::unique_ptr<::ISharedSpawnGetter> sharedSpawnGetter,
132 );
133
134 MCAPI void _finalizeDimensionChange(::Player& player, ::ChangeDimensionRequest const& changeRequest);
135 // NOLINTEND
136
137public:
138 // constructor thunks
139 // NOLINTBEGIN
140 MCAPI void* $ctor(
141 ::std::unique_ptr<::IPlayerDimensionTransferProxy> playerDimensionTransferProxy,
142 bool isClientSide,
143 ::Bedrock::NotNullNonOwnerPtr<::PortalForcer> portalForcer,
144 ::std::unique_ptr<::ISharedSpawnGetter> sharedSpawnGetter,
147 );
148 // NOLINTEND
149
150public:
151 // destructor thunk
152 // NOLINTBEGIN
153 MCAPI void $dtor();
154 // NOLINTEND
155
156public:
157 // virtual function thunks
158 // NOLINTBEGIN
159 MCAPI void $playerSaveLimboActors(
160 ::Player& player,
161 ::ChangeDimensionRequest& changeRequest,
162 ::Dimension& toDimension,
163 ::PlayerLimboActorManager* playerLimboActorManager
164 );
165
166 MCAPI void $playerDestroyRemotePlayers(::GameplayUserManager& gameplayUserManager);
167
168 MCAPI void $playerStartChangeDimensionSuspendRegion(::Player& player, ::DimensionType fromDimension);
169
170 MCAPI void
171 $setTransitionLocation(::Player& player, ::ChangeDimensionRequest& changeRequest, ::Dimension& toDimension);
172
173 MCAPI void $syncTransitionComponentTargetPosition(::Player& player, ::ChangeDimensionRequest const& changeRequest);
174
175 MCAPI void $playerDestroyRegion(::Player& player, ::ChangeDimensionRequest const& changeRequest);
176
177 MCAPI void $playerPrepareRegion(
178 ::Player& player,
179 ::ChangeDimensionRequest const& changeRequest,
180 ::Dimension const& toDimension
181 );
182
183 MCFOLD ::Bedrock::PubSub::Connector<void(::DimensionType)>&
184 $getOnAnyPlayerChangeDimensionPreSuspendRegionConnector();
185
186 MCFOLD ::Bedrock::PubSub::Connector<void()>& $getOnAnyPlayerChangeDimensionPrepareRegionCompleteConnector();
187
188 MCAPI bool $playerWaitForServer(::Player& player, ::std::chrono::steady_clock::time_point currentTime);
189
190 MCAPI bool $playerWaitForDimensionTransitionSystem(::Player const& player, ::EntityRegistry& entityRegistry);
191
192 MCAPI void $sendClientRespawnMovePacketFromServer(::Player const& player, ::ChangeDimensionRequest& changeRequest);
193
194 MCAPI bool $waitForSubChunks(::Player& player, ::Dimension const& toDimension);
195
196 MCAPI void $startWaitForRespawn(::Player const& player);
197
198 MCAPI void $playerSwitchDimension(
199 ::Player& player,
200 ::ChangeDimensionRequest& changeRequest,
201 ::AddLimboActorHelper* addLimboActorHelper
202 );
203
204 MCAPI bool $doRespawnIfReady(
205 ::Player& player,
206 ::ChangeDimensionRequest& changeRequest,
207 ::AddLimboActorHelper* addLimboActorHelper
208 );
209
210 MCAPI void $setPacketSender(::PacketSender& packetSender);
211
212
213 // NOLINTEND
214
215public:
216 // vftables
217 // NOLINTBEGIN
218 MCNAPI static void** $vftable();
219 // NOLINTEND
220};
Definition NonOwnerPointer.h:9
Definition Publisher.h:8
Definition ChangeDimensionRequest.h:14
Definition Dimension.h:89
Definition EntityRegistry.h:11
Definition GameplayUserManager.h:22
Definition IPlayerDimensionTransferProxy.h:20
Definition IPlayerDimensionTransferer.h:21
Definition ISharedSpawnGetter.h:10
Definition LevelStorage.h:26
Definition LoadingScreenIdManager.h:10
Definition PacketSender.h:17
static MCAPI void ** $vftable()
Definition PlayerLimboActorManager.h:21
Definition Player.h:137
Definition PortalForcer.h:23
Definition AddLimboActorHelper.h:12
Definition DimensionType.h:5