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 // NOLINTEND
85
86public:
87 // constructor thunks
88 // NOLINTBEGIN
89 MCAPI void* $ctor(
90 ::Bedrock::NotNullNonOwnerPtr<::GameplayUserManager> gameplayUserManager,
91 ::std::unique_ptr<::IPlayerSleepPercentageGetter> playerSleepPercentageGetter,
92 ::Bedrock::NotNullNonOwnerPtr<::LevelEventManager> levelEventManager
93 );
94 // NOLINTEND
95
96public:
97 // destructor thunk
98 // NOLINTBEGIN
99 MCAPI void $dtor();
100 // NOLINTEND
101
102public:
103 // virtual function thunks
104 // NOLINTBEGIN
105 MCAPI void $updateSleepingPlayerList();
106
107 MCFOLD ::Bedrock::PubSub::Connector<void(::Player&)>& $getPlayerWakeUpConnector();
108
109 MCFOLD ::Bedrock::PubSub::Connector<void()>& $getOnWakeUpAllPlayersConnector();
110
111
112 // NOLINTEND
113
114public:
115 // vftables
116 // NOLINTBEGIN
118
119 MCNAPI static void** $vftableForPlayerSleepManager();
120 // NOLINTEND
121};
Definition Publisher.h:8
Definition GameplayUserManager.h:22
Definition IPlayerDimensionTransferConnector.h:14
Definition IPlayerSleepPercentageGetter.h:5
Definition IServerPlayerSleepManagerConnector.h:13
Definition LevelEventManager.h:23
Definition PlayerDeathManager.h:20
Definition PlayerSleepManager.h:9
Definition Player.h:125
static MCAPI void ** $vftableForIServerPlayerSleepManagerConnector()
static MCAPI void ** $vftableForPlayerSleepManager()
Definition PlayerSleepStatus.h:5