Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
WorldClock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/container/EnumSet.h"
7#include "mc/deps/core/string/HashedString.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/deps/core/utility/UniqueOwnerPointer.h"
10#include "mc/deps/core/utility/pub_sub/Publisher.h"
11#include "mc/platform/brstd/flat_map.h"
12
13// auto generated forward declare list
14// clang-format off
16class PacketSender;
17class TimeMarker;
18struct TimeMarkerError;
19struct WorldClockData;
20namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
21// clang-format on
22
24public:
25 // WorldClock inner types define
26 enum class DirtyFlags : uchar {
27 SyncState = 0,
28 AddTimeMarker = 1,
29 RemoveTimeMarker = 2,
30 Count = 3,
31 };
32
33 using AddTimeMarkerResult = ::nonstd::expected<::Bedrock::NotNullNonOwnerPtr<::TimeMarker>, ::TimeMarkerError>;
34
35 using OnPauseSignature = void(::std::string const&);
36
37 using OnRestartSignature = void(::std::string const&, int&);
38
39 using OnResumeSignature = void(::std::string const&);
40
41 using OnTimeMarkerSignature = void(::std::string const&, ::Bedrock::NonOwnerPointer<::TimeMarker const> const);
42
43 using OnTimeModifiedSignature = void(::std::string const&, int);
44
45public:
46 // member variables
47 // NOLINTBEGIN
48 ::ll::TypedStorage<8, 48, ::HashedString> mName;
49 ::ll::TypedStorage<4, 4, int> mTime;
50 ::ll::TypedStorage<1, 1, bool> mIsPaused;
51 ::ll::TypedStorage<
52 8,
53 48,
55 uint64,
57 ::std::less<uint64>,
58 ::std::vector<uint64>,
59 ::std::vector<::Bedrock::UniqueOwnerPointer<::TimeMarker>>>>
60 mTimeMarkers;
61 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::LevelEventCoordinator>> mLevelEventCoordinator;
62 ::ll::TypedStorage<8, 24, ::std::vector<uint64>> mTimeMarkersToAdd;
63 ::ll::TypedStorage<8, 24, ::std::vector<uint64>> mTimeMarkersToRemove;
64 ::ll::TypedStorage<1, 1, ::Bedrock::EnumSet<::WorldClock::DirtyFlags, 3>> mDirtyFlags;
65 ::ll::TypedStorage<
66 8,
67 128,
69 mOnPause;
70 ::ll::TypedStorage<
71 8,
72 128,
74 mOnResume;
75 ::ll::TypedStorage<
76 8,
77 128,
78 ::Bedrock::PubSub::
79 Publisher<void(::std::string const&, int&), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
80 mOnRestart;
81 ::ll::TypedStorage<
82 8,
83 128,
85 void(::std::string const&, ::Bedrock::NonOwnerPointer<::TimeMarker const>),
87 0>>
88 mOnTimeMarker;
89 ::ll::TypedStorage<
90 8,
91 128,
93 mOnTimeModified;
94 ::ll::TypedStorage<1, 1, bool> mTimeMarkerEventsRanThisTick;
95 // NOLINTEND
96
97public:
98 // member functions
99 // NOLINTBEGIN
100 MCNAPI WorldClock();
101
102#ifdef LL_PLAT_C
103 MCNAPI explicit WorldClock(::WorldClockData const& data);
104#endif
105
106 MCNAPI WorldClock(::WorldClock const& rhs);
107
109
110 MCNAPI void _sendAddTimeMarker(::PacketSender& packetSender) const;
111
112 MCNAPI void _sendRemoveTimeMarker(::PacketSender& packetSender) const;
113
114 MCNAPI void _sendSyncWorldClockState(::PacketSender& packetSender) const;
115
116 MCNAPI void addTime(int time);
117
118 MCNAPI ::nonstd::expected<::Bedrock::NotNullNonOwnerPtr<::TimeMarker>, ::TimeMarkerError>
119 addTimeMarker(::TimeMarker const& timeMarker, bool isVanilla);
120
121#ifdef LL_PLAT_C
122 MCNAPI void
123 initializeLevelEventCoordinator(::Bedrock::NonOwnerPointer<::LevelEventCoordinator> const eventCoordinator);
124#endif
125
126 MCNAPI ::WorldClock& operator=(::WorldClock const& rhs);
127
128 MCNAPI ::std::optional<::TimeMarkerError>
129 serverReloadCreatorTimeMarkers(::std::vector<::TimeMarker> const& timeMarkers);
130
131 MCNAPI void setIsPaused(bool isPaused);
132
133#ifdef LL_PLAT_C
134 MCNAPI void tick();
135#endif
136
137 MCNAPI ::Bedrock::NonOwnerPointer<::TimeMarker const> const tryGetTimeMarker(uint64 timeMarkerId) const;
138
139 MCNAPI ::Bedrock::NonOwnerPointer<::TimeMarker> const tryGetTimeMarker(uint64 timeMarkerId);
140 // NOLINTEND
141
142public:
143 // constructor thunks
144 // NOLINTBEGIN
145 MCNAPI void* $ctor();
146
147#ifdef LL_PLAT_C
148 MCNAPI void* $ctor(::WorldClockData const& data);
149#endif
150
151 MCNAPI void* $ctor(::WorldClock const& rhs);
152 // NOLINTEND
153};
Definition NonOwnerPointer.h:9
Definition Publisher.h:25
Definition UniqueOwnerPointer.h:11
Definition LevelEventCoordinator.h:22
Definition PacketSender.h:17
Definition TimeMarker.h:13
MCAPI void * $ctor(::WorldClock const &rhs)
MCAPI void _fireTimeMarkerEvents()
MCAPI void _sendAddTimeMarker(::PacketSender &packetSender) const
MCAPI ::std::optional<::TimeMarkerError > serverReloadCreatorTimeMarkers(::std::vector<::TimeMarker > const &timeMarkers)
MCAPI ::Bedrock::NonOwnerPointer<::TimeMarker const > const tryGetTimeMarker(uint64 timeMarkerId) const
MCAPI ::nonstd::expected<::Bedrock::NotNullNonOwnerPtr<::TimeMarker >, ::TimeMarkerError > addTimeMarker(::TimeMarker const &timeMarker, bool isVanilla)
MCAPI::WorldClock & operator=(::WorldClock const &rhs)
MCAPI WorldClock(::WorldClock const &rhs)
MCAPI void * $ctor()
MCAPI void _sendRemoveTimeMarker(::PacketSender &packetSender) const
MCAPI ::Bedrock::NonOwnerPointer<::TimeMarker > const tryGetTimeMarker(uint64 timeMarkerId)
MCAPI WorldClock()
MCAPI void _sendSyncWorldClockState(::PacketSender &packetSender) const
MCAPI void addTime(int time)
MCAPI void setIsPaused(bool isPaused)
Definition flat_map.h:15
Definition TimeMarkerError.h:8
Definition WorldClockData.h:12