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/AutomaticID.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/deps/core/utility/pub_sub/Connector.h"
9#include "mc/deps/core/utility/pub_sub/Publisher.h"
10#include "mc/world/level/IPlayerDimensionTransferer.h"
11
12// auto generated forward declare list
13// clang-format off
15class Dimension;
16class EntityRegistry;
20class LevelStorage;
22class PacketSender;
23class Player;
25class PortalForcer;
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
136 MCAPI void _loadAgentFromTag(
137 ::Player& player,
138 ::ChangeDimensionRequest& changeRequest,
139 ::AddLimboActorHelper& addLimboActorHelper
140 );
141 // NOLINTEND
142
143public:
144 // constructor thunks
145 // NOLINTBEGIN
146 MCAPI void* $ctor(
147 ::std::unique_ptr<::IPlayerDimensionTransferProxy> playerDimensionTransferProxy,
148 bool isClientSide,
149 ::Bedrock::NotNullNonOwnerPtr<::PortalForcer> portalForcer,
150 ::std::unique_ptr<::ISharedSpawnGetter> sharedSpawnGetter,
153 );
154 // NOLINTEND
155
156public:
157 // destructor thunk
158 // NOLINTBEGIN
159 MCAPI void $dtor();
160 // NOLINTEND
161
162public:
163 // virtual function thunks
164 // NOLINTBEGIN
165 MCAPI void $playerSaveLimboActors(
166 ::Player& player,
167 ::ChangeDimensionRequest& changeRequest,
168 ::Dimension& toDimension,
169 ::PlayerLimboActorManager* playerLimboActorManager
170 );
171
172 MCAPI void $playerDestroyRemotePlayers(::GameplayUserManager& gameplayUserManager);
173
174 MCAPI void $playerStartChangeDimensionSuspendRegion(::Player& player, ::DimensionType fromDimension);
175
176 MCAPI void
177 $setTransitionLocation(::Player& player, ::ChangeDimensionRequest& changeRequest, ::Dimension& toDimension);
178
179 MCAPI void $syncTransitionComponentTargetPosition(::Player& player, ::ChangeDimensionRequest const& changeRequest);
180
181 MCAPI void $playerDestroyRegion(::Player& player, ::ChangeDimensionRequest const& changeRequest);
182
183 MCAPI void $playerPrepareRegion(
184 ::Player& player,
185 ::ChangeDimensionRequest const& changeRequest,
186 ::Dimension const& toDimension
187 );
188
189 MCFOLD ::Bedrock::PubSub::Connector<void(::DimensionType)>&
190 $getOnAnyPlayerChangeDimensionPreSuspendRegionConnector();
191
192 MCFOLD ::Bedrock::PubSub::Connector<void()>& $getOnAnyPlayerChangeDimensionPrepareRegionCompleteConnector();
193
194 MCAPI bool $playerWaitForServer(::Player& player, ::std::chrono::steady_clock::time_point currentTime);
195
196 MCAPI bool $playerWaitForDimensionTransitionSystem(::Player const& player, ::EntityRegistry& entityRegistry);
197
198 MCAPI void $sendClientRespawnMovePacketFromServer(::Player const& player, ::ChangeDimensionRequest& changeRequest);
199
200 MCAPI bool $waitForSubChunks(::Player& player, ::Dimension const& toDimension);
201
202 MCAPI void $startWaitForRespawn(::Player const& player);
203
204 MCAPI void $playerSwitchDimension(
205 ::Player& player,
206 ::ChangeDimensionRequest& changeRequest,
207 ::AddLimboActorHelper* addLimboActorHelper
208 );
209
210 MCAPI bool $doRespawnIfReady(
211 ::Player& player,
212 ::ChangeDimensionRequest& changeRequest,
213 ::AddLimboActorHelper* addLimboActorHelper
214 );
215
216 MCAPI void $setPacketSender(::PacketSender& packetSender);
217
218
219 // NOLINTEND
220
221public:
222 // vftables
223 // NOLINTBEGIN
224 MCNAPI static void** $vftable();
225 // NOLINTEND
226};
Definition NonOwnerPointer.h:9
Definition Publisher.h:8
Definition ChangeDimensionRequest.h:15
Definition Dimension.h:85
Definition EntityRegistry.h:11
Definition GameplayUserManager.h:22
Definition IPlayerDimensionTransferProxy.h:20
Definition IPlayerDimensionTransferer.h:21
Definition ISharedSpawnGetter.h:10
Definition LevelStorage.h:25
Definition LoadingScreenIdManager.h:5
Definition PacketSender.h:17
static MCAPI void ** $vftable()
Definition PlayerLimboActorManager.h:21
Definition Player.h:125
Definition PortalForcer.h:25
Definition AddLimboActorHelper.h:12