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;
15class EntityContext;
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#ifdef LL_PLAT_C
54 MCFOLD ::DimensionType const& getDimensionType() const;
55#endif
56
57 MCAPI ::EntityContext& getEntity();
58
59 MCFOLD ::PositionTrackingId const& getId() const;
60
61#ifdef LL_PLAT_C
62 MCFOLD ::BlockPos const& getPosition() const;
63#endif
64
65 MCAPI ::PositionTrackingDB::TrackingRecord::RecordStatus const getStatus() const;
66
67 MCAPI bool processPendingTransactions(::std::weak_ptr<::PositionTrackingDB::PositionTrackingDBServer> parent);
68
69 MCAPI ::CompoundTag serialize() const;
70 // NOLINTEND
71};
72
73} // namespace PositionTrackingDB
Definition CompoundTag.h:23
Definition EntityContext.h:17
Definition OperationBase.h:13
Definition PositionTrackingDBServer.h:24
Definition TrackingRecord.h:22