LeviLamina
Loading...
Searching...
No Matches
ButtonBlock.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;
16class Experiments;
19class Vec3;
20namespace BlockEvents { class BlockPlaceEvent; }
21namespace BlockEvents { class BlockPlayerInteractEvent; }
22namespace BlockEvents { class BlockQueuedTickEvent; }
23// clang-format on
24
25class ButtonBlock : public ::BlockType {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<1, 1, bool const> mSensitive;
30 // NOLINTEND
31
32public:
33 // virtual functions
34 // NOLINTBEGIN
35 virtual ::AABB getCollisionShape(
36 ::Block const& block,
38 ::BlockPos const& pos,
40 ) const /*override*/;
41
42 virtual ::AABB const&
43 getOutline(::Block const& block, ::IConstBlockSource const&, ::BlockPos const& pos, ::AABB& bufferValue) const
44 /*override*/;
45
46 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
47
48 virtual ::AABB const& getUIShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
49
50 virtual void addAABBs(
51 ::Block const& block,
52 ::IConstBlockSource const& region,
53 ::BlockPos const& pos,
54 ::AABB const* intersectTestBox,
55 ::std::vector<::AABB>& inoutBoxes
56 ) const /*override*/;
57
58 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar face) const /*override*/;
59
60 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
61
62 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
63 /*override*/;
64
65 virtual ::Block const&
66 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
67 /*override*/;
68
69 virtual void entityInside(::BlockSource& region, ::BlockPos const& pos, ::Actor&) const /*override*/;
70
71 virtual bool isAttachedTo(::BlockSource& region, ::BlockPos const& pos, ::BlockPos& outAttachedTo) const
72 /*override*/;
73
74 virtual bool isInteractiveBlock() const /*override*/;
75
76 virtual int getVariant(::Block const& block) const /*override*/;
77
78 virtual bool canSpawnOn(::Actor*) const /*override*/;
79
80 virtual bool isButtonBlock() const /*override*/;
81
82 virtual bool checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const
83 /*override*/;
84
85 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
86
87 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
88
89 virtual void _onHitByActivatingAttack(::BlockSource& region, ::BlockPos const& pos, ::Actor*) const /*override*/;
90
91 virtual ~ButtonBlock() /*override*/ = default;
92 // NOLINTEND
93
94public:
95 // member functions
96 // NOLINTBEGIN
97 MCAPI void
98 _buttonUnpressed(::BlockSource& region, ::Block const& buttonBlock, ::Vec3 const& pos, ::Actor* sourceActor) const;
99
100 MCAPI void _checkPressed(::BlockSource& region, ::BlockPos const& pos) const;
101
102 MCAPI ::AABB _getShape(bool pressed, uchar facingDirection, bool ignorePressedState) const;
103
104 MCAPI void
105 buttonPressed(::BlockSource& region, ::Block const& buttonBlock, ::Vec3 const& pos, ::Actor* sourceActor) const;
106
107 MCFOLD void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
108
109 MCAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
110
111 MCAPI void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
112 // NOLINTEND
113
114public:
115 // static functions
116 // NOLINTBEGIN
117 MCAPI static bool canAttachTo(::BlockSource& region, ::BlockPos const& pos, uchar facing);
118 // NOLINTEND
119
120public:
121 // virtual function thunks
122 // NOLINTBEGIN
123 MCAPI ::AABB $getCollisionShape(
124 ::Block const& block,
125 ::IConstBlockSource const&,
126 ::BlockPos const& pos,
128 ) const;
129
130 MCAPI ::AABB const&
131 $getOutline(::Block const& block, ::IConstBlockSource const&, ::BlockPos const& pos, ::AABB& bufferValue) const;
132
133 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
134
135 MCAPI ::AABB const& $getUIShape(::Block const& block, ::AABB& bufferAABB) const;
136
137 MCAPI void $addAABBs(
138 ::Block const& block,
139 ::IConstBlockSource const& region,
140 ::BlockPos const& pos,
141 ::AABB const* intersectTestBox,
142 ::std::vector<::AABB>& inoutBoxes
143 ) const;
144
145 MCFOLD bool $mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar face) const;
146
147 MCAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
148
149 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
150
151 MCFOLD ::Block const& $getPlacementBlock(
152 ::Actor const& by,
153 ::BlockPos const& pos,
154 uchar face,
155 ::Vec3 const& clickPos,
156 int itemValue
157 ) const;
158
159 MCAPI void $entityInside(::BlockSource& region, ::BlockPos const& pos, ::Actor&) const;
160
161 MCAPI bool $isAttachedTo(::BlockSource& region, ::BlockPos const& pos, ::BlockPos& outAttachedTo) const;
162
163 MCFOLD bool $isInteractiveBlock() const;
164
165 MCFOLD int $getVariant(::Block const& block) const;
166
167 MCFOLD bool $canSpawnOn(::Actor*) const;
168
169 MCFOLD bool $isButtonBlock() const;
170
171 MCFOLD bool $checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const;
172
173 MCFOLD bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
174
175 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
176
177 MCAPI void $_onHitByActivatingAttack(::BlockSource& region, ::BlockPos const& pos, ::Actor*) const;
178
179
180 // NOLINTEND
181
182public:
183 // vftables
184 // NOLINTBEGIN
185 MCAPI static void** $vftable();
186 // NOLINTEND
187};
Definition AABB.h:18
Definition Actor.h:105
Definition BlockPlaceEvent.h:16
Definition BlockPlayerInteractEvent.h:17
Definition BlockQueuedTickEvent.h:16
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition Block.h:43
Definition ButtonBlock.h:25
Definition Experiments.h:14
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:25
Definition Vec3.h:10
Definition optional_ref.h:10