LeviLamina
Loading...
Searching...
No Matches
BubbleColumnBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/optional_ref.h"
7#include "mc/world/level/block/BlockType.h"
8
9// auto generated forward declare list
10// clang-format off
11class AABB;
12class Actor;
13class Block;
14class BlockPos;
15class BlockSource;
17class HashedString;
19class Random;
21namespace BlockEvents { class BlockPlaceEvent; }
22namespace BlockEvents { class BlockQueuedTickEvent; }
24// clang-format on
25
26class BubbleColumnBlock : public ::BlockType {
27public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<1, 1, bool> mFancyBubbles;
31 // NOLINTEND
32
33public:
34 // prevent constructor by default
35 BubbleColumnBlock();
36
37public:
38 // virtual functions
39 // NOLINTBEGIN
40 virtual void animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const /*override*/;
41
42 virtual bool isPreservingMediumWhenPlaced(::BlockType const* medium) const /*override*/;
43
44 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
45 /*override*/;
46
47 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
48
49 virtual bool checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const
50 /*override*/;
51
52 virtual bool mayPick(::BlockSource const& region, ::Block const& block, bool liquid) const /*override*/;
53
54 virtual void addAABBs(
55 ::Block const& block,
56 ::IConstBlockSource const& region,
57 ::BlockPos const& pos,
58 ::AABB const* intersectTestBox,
59 ::std::vector<::AABB>& inoutBoxes
60 ) const /*override*/;
61
62 virtual bool addCollisionShapes(
63 ::Block const& block,
64 ::IConstBlockSource const& region,
65 ::BlockPos const& pos,
66 ::AABB const* intersectTestBox,
67 ::std::vector<::AABB>& inoutBoxes,
69 ) const /*override*/;
70
71 virtual ::AABB getCollisionShape(
72 ::Block const&,
74 ::BlockPos const&,
76 ) const /*override*/;
77
78 virtual bool shouldTickOnSetBlock() const /*override*/;
79
80 virtual ::std::optional<::HashedString> getRequiredMedium() const /*override*/;
81
82 virtual void onGraphicsModeChanged(::BlockGraphicsModeChangeContext const& context) /*override*/;
83 // NOLINTEND
84
85public:
86 // member functions
87 // NOLINTBEGIN
88 MCAPI BubbleColumnBlock(::std::string const& nameId, int id);
89
90 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
91
92 MCAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
93 // NOLINTEND
94
95public:
96 // static functions
97 // NOLINTBEGIN
98 MCAPI static void _createParticles(::BlockSource& region, ::BlockPos const& pos, ::Random& random, bool down);
99
100 MCAPI static bool _getFlowDownward(::Block const& block);
101
102 MCAPI static bool addBubbleColumnSegment(::BlockSource& region, ::BlockPos const& pos);
103
104 MCAPI static bool shouldDragDown(::Block const& block);
105
106 MCAPI static void spawnBubbles(::BlockSource& region, ::BlockPos const& pos);
107 // NOLINTEND
108
109public:
110 // constructor thunks
111 // NOLINTBEGIN
112 MCAPI void* $ctor(::std::string const& nameId, int id);
113 // NOLINTEND
114
115public:
116 // virtual function thunks
117 // NOLINTBEGIN
118 MCAPI void $animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const;
119
120 MCAPI bool $isPreservingMediumWhenPlaced(::BlockType const* medium) const;
121
122 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
123
124 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
125
126 MCFOLD bool $checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const;
127
128 MCAPI bool $mayPick(::BlockSource const& region, ::Block const& block, bool liquid) const;
129
130 MCFOLD void $addAABBs(
131 ::Block const& block,
132 ::IConstBlockSource const& region,
133 ::BlockPos const& pos,
134 ::AABB const* intersectTestBox,
135 ::std::vector<::AABB>& inoutBoxes
136 ) const;
137
138 MCFOLD bool $addCollisionShapes(
139 ::Block const& block,
140 ::IConstBlockSource const& region,
141 ::BlockPos const& pos,
142 ::AABB const* intersectTestBox,
143 ::std::vector<::AABB>& inoutBoxes,
145 ) const;
146
147 MCFOLD ::AABB $getCollisionShape(
148 ::Block const&,
149 ::IConstBlockSource const&,
150 ::BlockPos const&,
152 ) const;
153
154 MCFOLD bool $shouldTickOnSetBlock() const;
155
156 MCAPI ::std::optional<::HashedString> $getRequiredMedium() const;
157
158 MCAPI void $onGraphicsModeChanged(::BlockGraphicsModeChangeContext const& context);
159
160
161 // NOLINTEND
162
163public:
164 // vftables
165 // NOLINTBEGIN
166 MCAPI static void** $vftable();
167 // NOLINTEND
168};
Definition AABB.h:18
Definition Actor.h:113
Definition BlockPlaceEvent.h:16
Definition BlockQueuedTickEvent.h:16
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition Block.h:41
Definition GetCollisionShapeInterface.h:13
Definition HashedString.h:5
Definition IConstBlockSource.h:25
Definition Random.h:10
Definition optional_ref.h:10
Definition BlockAnimateTickData.h:14
Definition BlockGraphicsModeChangeContext.h:5
Definition context.h:5