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