LeviLamina
Loading...
Searching...
No Matches
HopperBlock.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/ShapeType.h"
8#include "mc/world/level/block/ActorBlockBase.h"
9#include "mc/world/level/block/BlockSupportType.h"
10#include "mc/world/level/block/BlockType.h"
11
12// auto generated forward declare list
13// clang-format off
14class AABB;
15class Actor;
16class BaseGameVersion;
17class Block;
18class BlockActor;
19class BlockPos;
20class BlockSource;
22class HitResult;
24class ItemInstance;
25class Vec3;
26namespace BlockEvents { class BlockPlayerInteractEvent; }
27namespace BlockEvents { class BlockRedstoneUpdateEvent; }
28// clang-format on
29
30class HopperBlock : public ::ActorBlock {
31public:
32 // virtual functions
33 // NOLINTBEGIN
34 virtual void onRemove(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
35
36 virtual bool isInteractiveBlock() const /*override*/;
37
38 virtual bool isContainerBlock() const /*override*/;
39
40 virtual bool addCollisionShapes(
41 ::Block const& block,
42 ::IConstBlockSource const& region,
43 ::BlockPos const& pos,
44 ::AABB const* intersectTestBox,
45 ::std::vector<::AABB>& inoutBoxes,
47 ) const /*override*/;
48
49 virtual void addAABBs(
50 ::Block const& block,
51 ::IConstBlockSource const& region,
52 ::BlockPos const& pos,
53 ::AABB const* intersectTestBox,
54 ::std::vector<::AABB>& inoutBoxes
55 ) const /*override*/;
56
57 virtual ::HitResult clip(
58 ::Block const& block,
59 ::BlockSource const& region,
60 ::BlockPos const& pos,
61 ::Vec3 const& A,
62 ::Vec3 const& B,
63 ::ShapeType shapeType,
65 ) const /*override*/;
66
67 virtual bool canProvideSupport(::Block const&, uchar face, ::BlockSupportType) const /*override*/;
68
69 virtual ::Block const&
70 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
71 /*override*/;
72
73 virtual bool hasComparatorSignal() const /*override*/;
74
75 virtual int getComparatorSignal(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, uchar dir) const
76 /*override*/;
77
78 virtual ::ItemInstance asItemInstance(::Block const&, ::BlockActor const*) const /*override*/;
79
80 virtual bool breaksFallingBlocks(::Block const& block, ::BaseGameVersion const version) const /*override*/;
81
82 virtual bool allowStateMismatchOnPlacement(::Block const& clientTarget, ::Block const& serverTarget) const
83 /*override*/;
84
85 virtual void movedByPiston(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
86
87 virtual ~HopperBlock() /*override*/ = default;
88 // NOLINTEND
89
90public:
91 // member functions
92 // NOLINTBEGIN
93 MCAPI ::AABB _getSpoutAABB(::Block const& block) const;
94
95 MCAPI void _onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
96
97 MCAPI void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
98 // NOLINTEND
99
100public:
101 // static functions
102 // NOLINTBEGIN
103 MCAPI static void _onSetupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos);
104 // NOLINTEND
105
106public:
107 // static variables
108 // NOLINTBEGIN
109 MCAPI static ::BaseGameVersion const& HOPPER_DOESNT_BREAK_FALLING_BLOCK_VERSION();
110 // NOLINTEND
111
112public:
113 // virtual function thunks
114 // NOLINTBEGIN
115 MCAPI void $onRemove(::BlockSource& region, ::BlockPos const& pos) const;
116
117 MCFOLD bool $isInteractiveBlock() const;
118
119 MCFOLD bool $isContainerBlock() const;
120
121 MCFOLD bool $addCollisionShapes(
122 ::Block const& block,
123 ::IConstBlockSource const& region,
124 ::BlockPos const& pos,
125 ::AABB const* intersectTestBox,
126 ::std::vector<::AABB>& inoutBoxes,
128 ) const;
129
130 MCAPI 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 MCAPI ::HitResult $clip(
139 ::Block const& block,
140 ::BlockSource const& region,
141 ::BlockPos const& pos,
142 ::Vec3 const& A,
143 ::Vec3 const& B,
144 ::ShapeType shapeType,
146 ) const;
147
148 MCFOLD bool $canProvideSupport(::Block const&, uchar face, ::BlockSupportType) const;
149
150 MCAPI ::Block const& $getPlacementBlock(
151 ::Actor const& by,
152 ::BlockPos const& pos,
153 uchar face,
154 ::Vec3 const& clickPos,
155 int itemValue
156 ) const;
157
158 MCFOLD bool $hasComparatorSignal() const;
159
160 MCFOLD int
161 $getComparatorSignal(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, uchar dir) const;
162
163 MCAPI ::ItemInstance $asItemInstance(::Block const&, ::BlockActor const*) const;
164
165 MCAPI bool $breaksFallingBlocks(::Block const& block, ::BaseGameVersion const version) const;
166
167 MCFOLD bool $allowStateMismatchOnPlacement(::Block const& clientTarget, ::Block const& serverTarget) const;
168
169 MCAPI void $movedByPiston(::BlockSource& region, ::BlockPos const& pos) const;
170
171
172 // NOLINTEND
173
174public:
175 // vftables
176 // NOLINTBEGIN
177 MCAPI static void** $vftable();
178 // NOLINTEND
179};
Definition AABB.h:18
Definition Actor.h:106
Definition BaseGameVersion.h:8
Definition BlockActor.h:30
Definition BlockPlayerInteractEvent.h:17
Definition BlockRedstoneUpdateEvent.h:15
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition Block.h:43
Definition GetCollisionShapeInterface.h:13
Definition HitResult.h:17
Definition HopperBlock.h:30
Definition IConstBlockSource.h:25
Definition ItemInstance.h:15
Definition Vec3.h:10
Definition optional_ref.h:10