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 BlockPalette;
16class BlockPos;
17class BlockSource;
18class BlockType;
19class CompoundTag;
20class LevelChunk;
21class ListTag;
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
48
50 : public ::MovePriorityQueue<::BlockTickingQueue::BlockTick, ::std::greater<::BlockTickingQueue::BlockTick>> {
51 public:
52 // member functions
53 // NOLINTBEGIN
54 MCAPI void _pruneQueueForMemory();
55
56 MCAPI ~TickDataSet();
57 // NOLINTEND
58
59 public:
60 // destructor thunk
61 // NOLINTBEGIN
62 MCAPI void $dtor();
63 // NOLINTEND
64 };
65
66public:
67 // member variables
68 // NOLINTBEGIN
69 ::ll::TypedStorage<8, 8, ::LevelChunk*> mOwningChunk;
70 ::ll::TypedStorage<8, 8, ::Tick> mCurrentTick;
71 ::ll::TypedStorage<8, 24, ::BlockTickingQueue::TickDataSet> mNextTickQueue;
72 ::ll::TypedStorage<8, 24, ::BlockTickingQueue::TickDataSet> mActiveTickQueue;
73 ::ll::TypedStorage<8, 24, ::BlockTickingQueue::TickDataSet> mDeferredTicks;
74 ::ll::TypedStorage<1, 1, ::TickingQueueType> mQueueType;
75 ::ll::TypedStorage<1, 1, bool> mInstaTick;
76 // NOLINTEND
77
78public:
79 // member functions
80 // NOLINTBEGIN
81 MCAPI void _acquireAllTicks(::BlockTickingQueue& otherChunkQueue);
82
83 MCAPI void _addToNextTickQueue(::BlockPos const& pos, ::Block const& block, int tickDelay, int priorityOffset);
84
85 MCAPI void _eliminateTicksForZeroAndAbove(::BlockTickingQueue::TickDataSet& queue);
86
87 MCAPI void _saveQueue(::ListTag& list, ::BlockTickingQueue::TickDataSet const& queue) const;
88
89 MCAPI void
90 add(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, int tickDelay, int priorityOffset);
91
92 MCAPI void addTickToLevelChunk(
93 ::LevelChunk& lc,
94 ::BlockPos const& pos,
95 ::Block const& block,
96 int tickDelay,
97 int priorityOffset
98 );
99
100 MCAPI void eliminateDuplicatesOf(::BlockType const& block);
101
102 MCAPI void finishInstaticking();
103
104 MCAPI bool getNextUpdateForPos(::BlockPos const& pos, ::Tick& tick) const;
105
106 MCAPI void load(::CompoundTag const& tag, ::BlockPalette const& palette);
107
108 MCAPI void remove(::std::function<bool(::TickNextTickData const&)> const& removeCondition);
109
110 MCAPI void remove(::BlockPos const& pos, ::Block const& block);
111
112 MCAPI void save(::CompoundTag& tag) const;
113
114 MCAPI bool tickPendingTicks(::BlockSource& region, ::Tick const& until, int max, bool instaTick_);
115
116 MCAPI ~BlockTickingQueue();
117 // NOLINTEND
118
119public:
120 // destructor thunk
121 // NOLINTBEGIN
122 MCAPI void $dtor();
123 // NOLINTEND
124};
Definition BlockPalette.h:19
Definition BlockPos.h:17
Definition BlockSource.h:66
Definition BlockTickingQueue.h:34
Definition BlockTickingQueue.h:50
Definition BlockTickingQueue.h:24
Definition BlockType.h:84
Definition Block.h:38
Definition CompoundTag.h:13
Definition LevelChunk.h:78
Definition ListTag.h:12
Definition MovePriorityQueue.h:6
Definition TickNextTickData.h:16
Definition BlockTickingQueue.h:46
Definition Tick.h:5