LeviLamina
Loading...
Searching...
No Matches
BlockTickingQueue.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/world/level/TickNextTickData.h"
5
6// auto generated inclusion list
7#include "mc/deps/core/container/MovePriorityQueue.h"
8#include "mc/platform/brstd/function_ref.h"
9#include "mc/world/level/Tick.h"
10#include "mc/world/level/TickNextTickData.h"
11#include "mc/world/level/TickingQueueType.h"
12
13// auto generated forward declare list
14// clang-format off
15class Block;
16class BlockPalette;
17class BlockPos;
18class BlockSource;
19class BlockType;
20class CompoundTag;
21class LevelChunk;
22class ListTag;
23// clang-format on
24
26public:
27 // BlockTickingQueue inner types declare
28 // clang-format off
29 class BlockTick;
30 struct HashBlockTick;
31 class TickDataSet;
32 // clang-format on
33
34 // BlockTickingQueue inner types define
35 class BlockTick {
36 public:
37 [[nodiscard]] bool operator>(BlockTick const& other) const { return mData > other.mData; }
38
39 public:
40 // member variables
41 // NOLINTBEGIN
42 bool mIsRemoved;
44 // NOLINTEND
45 };
46
47 struct HashBlockTick {};
48
49
51 : public ::MovePriorityQueue<::BlockTickingQueue::BlockTick, ::std::greater<::BlockTickingQueue::BlockTick>> {
52 public:
53 // member functions
54 // NOLINTBEGIN
55 MCAPI void _pruneQueueForMemory();
56
57 MCAPI ~TickDataSet();
58 // NOLINTEND
59
60 public:
61 // destructor thunk
62 // NOLINTBEGIN
63 MCFOLD void $dtor();
64 // NOLINTEND
65 };
66
67public:
68 // member variables
69 // NOLINTBEGIN
70 ::ll::TypedStorage<8, 8, ::LevelChunk*> mOwningChunk;
71 ::ll::TypedStorage<8, 8, ::Tick> mCurrentTick;
72 ::ll::TypedStorage<8, 24, ::BlockTickingQueue::TickDataSet> mNextTickQueue;
73 ::ll::TypedStorage<8, 24, ::BlockTickingQueue::TickDataSet> mActiveTickQueue;
74 ::ll::TypedStorage<8, 24, ::BlockTickingQueue::TickDataSet> mDeferredTicks;
75 ::ll::TypedStorage<1, 1, ::TickingQueueType> mQueueType;
76 ::ll::TypedStorage<1, 1, bool> mInstaTick;
77 // NOLINTEND
78
79public:
80 // member functions
81 // NOLINTBEGIN
82 MCAPI void _acquireAllTicks(::BlockTickingQueue& otherChunkQueue);
83
84 MCAPI void _addToNextTickQueue(::BlockPos const& pos, ::Block const& block, int tickDelay, int priorityOffset);
85
86 MCAPI void _eliminateTicksForZeroAndAbove(::BlockTickingQueue::TickDataSet& queue);
87
88 MCAPI void _saveQueue(::ListTag& list, ::BlockTickingQueue::TickDataSet const& queue) const;
89
90 MCAPI void
91 add(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, int tickDelay, int priorityOffset);
92
93#ifdef LL_PLAT_C
94 MCAPI void addTickToLevelChunk(
95 ::LevelChunk& lc,
96 ::BlockPos const& pos,
97 ::Block const& block,
98 int tickDelay,
99 int priorityOffset
100 );
101#endif
102
103 MCAPI void eliminateDuplicatesOf(::BlockType const& block);
104
105 MCAPI void finishInstaticking();
106
107 MCAPI bool getNextUpdateForPos(::BlockPos const& pos, ::Tick& tick) const;
108
109 MCAPI void load(::CompoundTag const& tag, ::BlockPalette const& palette);
110
111 MCAPI void remove(::brstd::function_ref<bool(::TickNextTickData const&)> removeCondition);
112
113 MCAPI void remove(::BlockPos const& pos, ::Block const& block);
114
115 MCAPI void save(::CompoundTag& tag) const;
116
117 MCAPI bool tickPendingTicks(::BlockSource& region, ::Tick const& until, int max, bool instaTick_);
118
119 MCAPI ~BlockTickingQueue();
120 // NOLINTEND
121
122public:
123 // destructor thunk
124 // NOLINTBEGIN
125 MCAPI void $dtor();
126 // NOLINTEND
127};
Definition BlockPalette.h:19
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition BlockTickingQueue.h:35
Definition BlockTickingQueue.h:51
Definition BlockTickingQueue.h:25
Definition BlockType.h:84
Definition Block.h:43
Definition CompoundTag.h:23
Definition LevelChunk.h:79
Definition ListTag.h:19
Definition MovePriorityQueue.h:6
Definition TickNextTickData.h:16
Definition function_ref.h:60
Definition BlockTickingQueue.h:47
Definition Tick.h:5