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/world/level/TickingQueueType.h"
9
10// auto generated forward declare list
11// clang-format off
12class Block;
13class BlockLegacy;
14class BlockPalette;
15class BlockPos;
16class BlockSource;
17class CompoundTag;
18class LevelChunk;
19class ListTag;
21struct Tick;
22// clang-format on
23
25public:
26 // BlockTickingQueue inner types declare
27 // clang-format off
28 class BlockTick;
29 struct HashBlockTick;
30 class TickDataSet;
31 // clang-format on
32
33 // BlockTickingQueue inner types define
34 class BlockTick {
35 public:
36 [[nodiscard]] bool operator>(BlockTick const& other) const { return mData > other.mData; }
37
38 public:
39 // member variables
40 // NOLINTBEGIN
41 bool mIsRemoved;
43 // NOLINTEND
44 };
45
46 struct HashBlockTick {};
47
49 : public ::MovePriorityQueue<::BlockTickingQueue::BlockTick, ::std::greater<::BlockTickingQueue::BlockTick>> {
50 public:
51 // member functions
52 // NOLINTBEGIN
53 MCAPI void _pruneQueueForMemory();
54
55 MCAPI bool remove(::BlockPos const& pos, ::Block const& block);
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 MCAPI void addTickToLevelChunk(
94 ::LevelChunk& lc,
95 ::BlockPos const& pos,
96 ::Block const& block,
97 int tickDelay,
98 int priorityOffset
99 );
100
101 MCAPI void eliminateDuplicatesOf(::BlockLegacy const& block);
102
103 MCAPI void finishInstaticking();
104
105 MCAPI bool getNextUpdateForPos(::BlockPos const& pos, ::Tick& tick) const;
106
107 MCAPI void load(::CompoundTag const& tag, ::BlockPalette const& palette);
108
109 MCAPI void remove(::std::function<bool(::TickNextTickData const&)> const& removeCondition);
110
111 MCAPI void save(::CompoundTag& tag) const;
112
113 MCAPI bool tickPendingTicks(::BlockSource& region, ::Tick const& until, int max, bool instaTick_);
114
115 MCAPI ~BlockTickingQueue();
116 // NOLINTEND
117
118public:
119 // destructor thunk
120 // NOLINTBEGIN
121 MCAPI void $dtor();
122 // NOLINTEND
123};
Definition BlockLegacy.h:88
Definition BlockPalette.h:18
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition BlockTickingQueue.h:34
Definition BlockTickingQueue.h:49
Definition BlockTickingQueue.h:24
Definition Block.h:36
Definition CompoundTag.h:13
Definition LevelChunk.h:73
Definition ListTag.h:12
Definition MovePriorityQueue.h:6
Definition TickNextTickData.h:14
Definition BlockTickingQueue.h:46
Definition Tick.h:5