LeviLamina
Loading...
Searching...
No Matches
ServerPlayerSleepManager.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/deps/core/utility/pub_sub/Subscription.h"
10#include "mc/server/IServerPlayerSleepManagerConnector.h"
11#include "mc/world/level/PlayerSleepManager.h"
12
13// auto generated forward declare list
14// clang-format off
19class Player;
21namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
22// clang-format on
23
24class ServerPlayerSleepManager : public ::PlayerSleepManager, public ::IServerPlayerSleepManagerConnector {
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> const> mGameplayUserManager;
29 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::IPlayerSleepPercentageGetter>> const>
30 mPlayerSleepPercentageGetter;
31 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::LevelEventManager> const> mLevelEventManager;
32 ::ll::TypedStorage<
33 8,
34 128,
36 mOnPlayerWakeUpPublisher;
38 mOnWakeUpAllPlayersPublisher;
39 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnPlayerDeathSubscription;
40 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnGameplayUserAddedSubscription;
41 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnGameplayUserRemovedSubscription;
42 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription>
43 mOnAnyPlayerChangeDimensionPrepareRegionCompleteSubscription;
44 ::ll::TypedStorage<1, 1, bool> mEnoughPlayersAreSleeping;
45 ::ll::TypedStorage<1, 1, bool> mShouldSendSleepMessage;
46 // NOLINTEND
47
48public:
49 // prevent constructor by default
50 ServerPlayerSleepManager();
51
52public:
53 // virtual functions
54 // NOLINTBEGIN
55 virtual ~ServerPlayerSleepManager() /*override*/ = default;
56
57 virtual void updateSleepingPlayerList() /*override*/;
58
59 virtual ::Bedrock::PubSub::Connector<void(::Player&)>& getPlayerWakeUpConnector() /*override*/;
60
61 virtual ::Bedrock::PubSub::Connector<void()>& getOnWakeUpAllPlayersConnector() /*override*/;
62 // NOLINTEND
63
64public:
65 // member functions
66 // NOLINTBEGIN
67 MCAPI ServerPlayerSleepManager(
68 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager,
69 ::std::unique_ptr<::IPlayerSleepPercentageGetter> playerSleepPercentageGetter,
70 ::Bedrock::NotNullNonOwnerPtr<::LevelEventManager> levelEventManager
71 );
72
73 MCFOLD void _onPlayerDeath();
74
75 MCAPI bool enoughPlayersDeepSleeping() const;
76
77 MCAPI void initializeWithPlayerDeathManager(::PlayerDeathManager& playerDeathManager);
78
79 MCAPI void
80 registerWithPlayerDimensionTransferConnector(::IPlayerDimensionTransferConnector& playerDimensionTransferConnector);
81
82 MCAPI void tickCheckToWakeUpPlayers();
83 // NOLINTEND
84
85public:
86 // constructor thunks
87 // NOLINTBEGIN
88 MCAPI void* $ctor(
89 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager,
90 ::std::unique_ptr<::IPlayerSleepPercentageGetter> playerSleepPercentageGetter,
91 ::Bedrock::NotNullNonOwnerPtr<::LevelEventManager> levelEventManager
92 );
93 // NOLINTEND
94
95public:
96 // virtual function thunks
97 // NOLINTBEGIN
98 MCAPI void $updateSleepingPlayerList();
99
100#ifdef LL_PLAT_S
101 MCAPI ::Bedrock::PubSub::Connector<void(::Player&)>& $getPlayerWakeUpConnector();
102#else // LL_PLAT_C
103 MCFOLD ::Bedrock::PubSub::Connector<void(::Player&)>& $getPlayerWakeUpConnector();
104#endif
105
106#ifdef LL_PLAT_S
107 MCAPI ::Bedrock::PubSub::Connector<void()>& $getOnWakeUpAllPlayersConnector();
108#else // LL_PLAT_C
109 MCFOLD ::Bedrock::PubSub::Connector<void()>& $getOnWakeUpAllPlayersConnector();
110#endif
111
112
113 // NOLINTEND
114};
Definition Publisher.h:25
Definition GameplayUserManager.h:26
Definition IPlayerDimensionTransferConnector.h:13
Definition IPlayerSleepPercentageGetter.h:5
Definition IServerPlayerSleepManagerConnector.h:13
Definition LevelEventManager.h:23
Definition PlayerDeathManager.h:20
Definition PlayerSleepManager.h:9
Definition Player.h:129