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