LeviLamina
Loading...
Searching...
No Matches
TrackingRecord.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/ecs/EntityId.h"
7#include "mc/deps/game_refs/OwnerPtr.h"
8#include "mc/world/level/BlockPos.h"
9#include "mc/world/level/PositionTrackingId.h"
10#include "mc/world/level/dimension/DimensionType.h"
11
12// auto generated forward declare list
13// clang-format off
14class CompoundTag;
15namespace PositionTrackingDB { class OperationBase; }
16namespace PositionTrackingDB { class PositionTrackingDBServer; }
17// clang-format on
18
19namespace PositionTrackingDB {
20
22public:
23 // TrackingRecord inner types define
24 enum class RecordStatus : uchar {
25 Ok = 0,
26 PendingUpdate = 1,
27 Deleted = 2,
28 };
29
30public:
31 // member variables
32 // NOLINTBEGIN
33 ::ll::TypedStorage<4, 4, ::PositionTrackingId> mId;
34 ::ll::TypedStorage<4, 12, ::BlockPos> mPosition;
35 ::ll::TypedStorage<4, 4, ::DimensionType> mDimensionType;
36 ::ll::TypedStorage<1, 1, ::PositionTrackingDB::TrackingRecord::RecordStatus> mStatus;
37 ::ll::TypedStorage<1, 1, bool> mDirty;
38 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::PositionTrackingDB::OperationBase>>> mPendingOperations;
39 ::ll::TypedStorage<8, 32, ::OwnerPtr<::EntityId>> mEntity;
40 // NOLINTEND
41
42public:
43 // member functions
44 // NOLINTBEGIN
45 MCAPI bool _addTransaction(
46 ::std::weak_ptr<::PositionTrackingDB::PositionTrackingDBServer> parent,
47 ::std::unique_ptr<::PositionTrackingDB::OperationBase> newTransaction
48 );
49
50#ifdef LL_PLAT_C
51 MCAPI void deserialize(::CompoundTag const& tag);
52#endif
53
54 MCAPI bool processPendingTransactions(::std::weak_ptr<::PositionTrackingDB::PositionTrackingDBServer> parent);
55
56 MCAPI ::CompoundTag serialize() const;
57 // NOLINTEND
58};
59
60} // namespace PositionTrackingDB
Definition CompoundTag.h:18
Definition OperationBase.h:13
Definition PositionTrackingDBServer.h:22
Definition TrackingRecord.h:21