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;
25struct ActorUniqueID;
27struct DimensionType;
29namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
30// clang-format on
31
32class PlayerDimensionTransferer : public ::IPlayerDimensionTransferer {
33public:
34 // member variables
35 // NOLINTBEGIN
36 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::IPlayerDimensionTransferProxy>> const>
37 mPlayerDimensionTransferProxy;
38 ::ll::TypedStorage<1, 1, bool const> mIsClientSide;
39 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::PortalForcer> const> mPortalForcer;
40 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::ISharedSpawnGetter>> const> mSharedSpawnGetter;
41 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LevelStorage> const> mLevelStorage;
42 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LoadingScreenIdManager> const> mLoadingScreenIdManager;
43 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::PacketSender>> mPacketSender;
44 ::ll::TypedStorage<
45 8,
46 128,
48 mOnAnyPlayerChangeDimensionPreSuspendRegion;
50 mOnAnyPlayerChangeDimensionPrepareRegionComplete;
51 ::ll::TypedStorage<
52 8,
53 128,
54 ::Bedrock::PubSub::
56 mOnAnyPlayerChangeDimensionComplete;
57 ::ll::TypedStorage<
58 8,
59 128,
63 0>>
64 mOnPlayerLeftDimension;
65 // NOLINTEND
66
67public:
68 // prevent constructor by default
69 PlayerDimensionTransferer();
70
71public:
72 // virtual functions
73 // NOLINTBEGIN
74 virtual ~PlayerDimensionTransferer() /*override*/ = default;
75
76 virtual void playerSaveLimboActors(
77 ::Player& player,
78 ::ChangeDimensionRequest& changeRequest,
79 ::Dimension& toDimension,
80 ::PlayerLimboActorManager* playerLimboActorManager
81 ) /*override*/;
82
83 virtual void playerDestroyRemotePlayers(::GameplayUserManager& gameplayUserManager) /*override*/;
84
85 virtual void playerStartChangeDimensionSuspendRegion(::Player& player, ::DimensionType fromDimension) /*override*/;
86
87 virtual void setTransitionLocation(
88 ::Player& player,
89 ::ChangeDimensionRequest& changeRequest,
90 ::Dimension& toDimension
91 ) /*override*/;
92
93 virtual void
94 syncTransitionComponentTargetPosition(::Player& player, ::ChangeDimensionRequest const& changeRequest) /*override*/;
95
96 virtual void playerDestroyRegion(::Player& player, ::ChangeDimensionRequest const& changeRequest) /*override*/;
97
98 virtual void playerPrepareRegion(
99 ::Player& player,
100 ::ChangeDimensionRequest const& changeRequest,
101 ::Dimension const& toDimension
102 ) /*override*/;
103
104 virtual ::Bedrock::PubSub::Connector<void(::DimensionType)>&
105 getOnAnyPlayerChangeDimensionPreSuspendRegionConnector() /*override*/;
106
107 virtual ::Bedrock::PubSub::Connector<void()>&
108 getOnAnyPlayerChangeDimensionPrepareRegionCompleteConnector() /*override*/;
109
110 virtual ::Bedrock::PubSub::Connector<void(::ActorUniqueID, ::DimensionType)>&
111 getOnAnyPlayerChangeDimensionCompleteConnector() /*override*/;
112
113 virtual ::Bedrock::PubSub::Connector<void(::NetworkIdentifierWithSubId const&, ::DimensionType)>&
114 getOnPlayerLeftDimensionConnector() /*override*/;
115
116 virtual bool
117 playerWaitForServer(::Player& player, ::std::chrono::steady_clock::time_point currentTime) /*override*/;
118
119 virtual bool
120 playerWaitForDimensionTransitionSystem(::Player const& player, ::EntityRegistry& entityRegistry) /*override*/;
121
122 virtual void
123 sendClientRespawnMovePacketFromServer(::Player const& player, ::ChangeDimensionRequest& changeRequest) /*override*/;
124
125 virtual bool waitForSubChunks(::Player& player, ::Dimension const& toDimension) /*override*/;
126
127 virtual void startWaitForRespawn(::Player const& player) /*override*/;
128
129 virtual void playerSwitchDimension(
130 ::Player& player,
131 ::ChangeDimensionRequest& changeRequest,
132 ::AddLimboActorHelper* addLimboActorHelper
133 ) /*override*/;
134
135 virtual bool doRespawnIfReady(
136 ::Player& player,
137 ::ChangeDimensionRequest& changeRequest,
138 ::AddLimboActorHelper* addLimboActorHelper
139 ) /*override*/;
140
141 virtual void setPacketSender(::PacketSender& packetSender) /*override*/;
142 // NOLINTEND
143
144public:
145 // member functions
146 // NOLINTBEGIN
147 MCAPI PlayerDimensionTransferer(
148 ::std::unique_ptr<::IPlayerDimensionTransferProxy> playerDimensionTransferProxy,
149 bool isClientSide,
150 ::Bedrock::NotNullNonOwnerPtr<::PortalForcer> portalForcer,
151 ::std::unique_ptr<::ISharedSpawnGetter> sharedSpawnGetter,
154 );
155
156 MCAPI void _finalizeDimensionChange(::Player& player, ::ChangeDimensionRequest const& changeRequest);
157 // NOLINTEND
158
159public:
160 // constructor thunks
161 // NOLINTBEGIN
162 MCAPI void* $ctor(
163 ::std::unique_ptr<::IPlayerDimensionTransferProxy> playerDimensionTransferProxy,
164 bool isClientSide,
165 ::Bedrock::NotNullNonOwnerPtr<::PortalForcer> portalForcer,
166 ::std::unique_ptr<::ISharedSpawnGetter> sharedSpawnGetter,
169 );
170 // NOLINTEND
171
172public:
173 // virtual function thunks
174 // NOLINTBEGIN
175 MCAPI void $playerSaveLimboActors(
176 ::Player& player,
177 ::ChangeDimensionRequest& changeRequest,
178 ::Dimension& toDimension,
179 ::PlayerLimboActorManager* playerLimboActorManager
180 );
181
182 MCAPI void $playerDestroyRemotePlayers(::GameplayUserManager& gameplayUserManager);
183
184 MCAPI void $playerStartChangeDimensionSuspendRegion(::Player& player, ::DimensionType fromDimension);
185
186 MCAPI void
187 $setTransitionLocation(::Player& player, ::ChangeDimensionRequest& changeRequest, ::Dimension& toDimension);
188
189 MCAPI void $syncTransitionComponentTargetPosition(::Player& player, ::ChangeDimensionRequest const& changeRequest);
190
191 MCAPI void $playerDestroyRegion(::Player& player, ::ChangeDimensionRequest const& changeRequest);
192
193 MCAPI void $playerPrepareRegion(
194 ::Player& player,
195 ::ChangeDimensionRequest const& changeRequest,
196 ::Dimension const& toDimension
197 );
198
199 MCFOLD ::Bedrock::PubSub::Connector<void(::DimensionType)>&
200 $getOnAnyPlayerChangeDimensionPreSuspendRegionConnector();
201
202 MCAPI ::Bedrock::PubSub::Connector<void()>& $getOnAnyPlayerChangeDimensionPrepareRegionCompleteConnector();
203
204 MCAPI ::Bedrock::PubSub::Connector<void(::ActorUniqueID, ::DimensionType)>&
205 $getOnAnyPlayerChangeDimensionCompleteConnector();
206
207 MCAPI ::Bedrock::PubSub::Connector<void(::NetworkIdentifierWithSubId const&, ::DimensionType)>&
208 $getOnPlayerLeftDimensionConnector();
209
210 MCAPI bool $playerWaitForServer(::Player& player, ::std::chrono::steady_clock::time_point currentTime);
211
212 MCAPI bool $playerWaitForDimensionTransitionSystem(::Player const& player, ::EntityRegistry& entityRegistry);
213
214 MCAPI void $sendClientRespawnMovePacketFromServer(::Player const& player, ::ChangeDimensionRequest& changeRequest);
215
216 MCAPI bool $waitForSubChunks(::Player& player, ::Dimension const& toDimension);
217
218 MCAPI void $startWaitForRespawn(::Player const& player);
219
220 MCAPI void $playerSwitchDimension(
221 ::Player& player,
222 ::ChangeDimensionRequest& changeRequest,
223 ::AddLimboActorHelper* addLimboActorHelper
224 );
225
226 MCAPI bool $doRespawnIfReady(
227 ::Player& player,
228 ::ChangeDimensionRequest& changeRequest,
229 ::AddLimboActorHelper* addLimboActorHelper
230 );
231
232 MCAPI void $setPacketSender(::PacketSender& packetSender);
233
234
235 // NOLINTEND
236};
Definition NonOwnerPointer.h:9
Definition Publisher.h:25
Definition ChangeDimensionRequest.h:14
Definition Dimension.h:86
Definition EntityRegistry.h:10
Definition GameplayUserManager.h:25
Definition IPlayerDimensionTransferProxy.h:20
Definition IPlayerDimensionTransferer.h:21
Definition ISharedSpawnGetter.h:10
Definition LevelStorage.h:25
Definition LoadingScreenIdManager.h:5
Definition PacketSender.h:17
Definition PlayerLimboActorManager.h:21
Definition Player.h:129
Definition PortalForcer.h:23
Definition ActorUniqueID.h:5
Definition AddLimboActorHelper.h:12
Definition DimensionType.h:5
Definition NetworkIdentifierWithSubId.h:10