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;
22namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
23// clang-format on
24
25class ServerPlayerSleepManager : public ::PlayerSleepManager, public ::IServerPlayerSleepManagerConnector {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> const> mGameplayUserManager;
30 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::IPlayerSleepPercentageGetter>> const>
31 mPlayerSleepPercentageGetter;
32 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::LevelEventManager> const> mLevelEventManager;
33 ::ll::TypedStorage<
34 8,
35 128,
37 mOnPlayerWakeUpPublisher;
39 mOnWakeUpAllPlayersPublisher;
40 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnPlayerDeathSubscription;
41 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnGameplayUserAddedSubscription;
42 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnGameplayUserRemovedSubscription;
43 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription>
44 mOnAnyPlayerChangeDimensionPrepareRegionCompleteSubscription;
45 ::ll::TypedStorage<1, 1, bool> mEnoughPlayersAreSleeping;
46 ::ll::TypedStorage<1, 1, bool> mShouldSendSleepMessage;
47 // NOLINTEND
48
49public:
50 // prevent constructor by default
51 ServerPlayerSleepManager();
52
53public:
54 // virtual functions
55 // NOLINTBEGIN
56 virtual ~ServerPlayerSleepManager() /*override*/;
57
58 virtual void updateSleepingPlayerList() /*override*/;
59
60 virtual ::Bedrock::PubSub::Connector<void(::Player&)>& getPlayerWakeUpConnector() /*override*/;
61
62 virtual ::Bedrock::PubSub::Connector<void()>& getOnWakeUpAllPlayersConnector() /*override*/;
63 // NOLINTEND
64
65public:
66 // member functions
67 // NOLINTBEGIN
68 MCAPI ServerPlayerSleepManager(
69 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager,
70 ::std::unique_ptr<::IPlayerSleepPercentageGetter> playerSleepPercentageGetter,
71 ::Bedrock::NotNullNonOwnerPtr<::LevelEventManager> levelEventManager
72 );
73
74 MCAPI void _broadcastSleepingPlayerList(::PlayerSleepStatus const& playerSleepStatus);
75
76 MCFOLD void _onPlayerDeath();
77
78 MCAPI bool enoughPlayersDeepSleeping() const;
79
80 MCAPI void initializeWithPlayerDeathManager(::PlayerDeathManager& playerDeathManager);
81
82 MCAPI void
83 registerWithPlayerDimensionTransferConnector(::IPlayerDimensionTransferConnector& playerDimensionTransferConnector);
84
85 MCAPI void setShouldSendSleepMessage(bool shouldSend);
86
87 MCAPI bool shouldSendSleepMessage() const;
88
89 MCAPI void tickCheckToWakeUpPlayers();
90 // NOLINTEND
91
92public:
93 // constructor thunks
94 // NOLINTBEGIN
95 MCAPI void* $ctor(
96 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager,
97 ::std::unique_ptr<::IPlayerSleepPercentageGetter> playerSleepPercentageGetter,
98 ::Bedrock::NotNullNonOwnerPtr<::LevelEventManager> levelEventManager
99 );
100 // NOLINTEND
101
102public:
103 // destructor thunk
104 // NOLINTBEGIN
105 MCAPI void $dtor();
106 // NOLINTEND
107
108public:
109 // virtual function thunks
110 // NOLINTBEGIN
111 MCAPI void $updateSleepingPlayerList();
112
113 MCFOLD ::Bedrock::PubSub::Connector<void(::Player&)>& $getPlayerWakeUpConnector();
114
115 MCFOLD ::Bedrock::PubSub::Connector<void()>& $getOnWakeUpAllPlayersConnector();
116
117
118 // NOLINTEND
119
120public:
121 // vftables
122 // NOLINTBEGIN
124
125 MCNAPI static void** $vftableForPlayerSleepManager();
126 // NOLINTEND
127};
Definition Publisher.h:8
Definition GameplayUserManager.h:22
Definition IPlayerDimensionTransferConnector.h:8
Definition IPlayerSleepPercentageGetter.h:5
Definition IServerPlayerSleepManagerConnector.h:13
Definition LevelEventManager.h:24
Definition PlayerDeathManager.h:20
Definition Player.h:136
static MCAPI void ** $vftableForIServerPlayerSleepManagerConnector()
static MCAPI void ** $vftableForPlayerSleepManager()
Definition PlayerSleepStatus.h:5