LeviLamina
Loading...
Searching...
No Matches
BellBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/Direction.h"
7#include "mc/world/level/block/ActorBlockBase.h"
8#include "mc/world/level/block/BlockType.h"
9
10// auto generated forward declare list
11// clang-format off
12class AABB;
13class Actor;
14class Block;
15class BlockPos;
16class BlockSource;
17class Experiments;
18class Vec3;
19namespace BlockEvents { class BlockPlayerInteractEvent; }
20namespace BlockEvents { class BlockQueuedTickEvent; }
21// clang-format on
22
23class BellBlock : public ::ActorBlock {
24public:
25 // virtual functions
26 // NOLINTBEGIN
27 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
28
29 virtual ::Block const&
30 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
31 /*override*/;
32
33 virtual void entityInside(::BlockSource& region, ::BlockPos const& pos, ::Actor& actor) const /*override*/;
34
35 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
36
37 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
38 /*override*/;
39
40 virtual void movedByPiston(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
41
42 virtual bool
43 shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const
44 /*override*/;
45
46 virtual void onProjectileHit(::BlockSource& region, ::BlockPos const& pos, ::Actor const& projectile) const
47 /*override*/;
48
49 virtual bool isInteractiveBlock() const /*override*/;
50
51 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
52
53 virtual void _onHitByActivatingAttack(::BlockSource& region, ::BlockPos const& pos, ::Actor* sourceActor) const
54 /*override*/;
55
56 virtual ~BellBlock() /*override*/ = default;
57 // NOLINTEND
58
59public:
60 // member functions
61 // NOLINTBEGIN
62 MCAPI ::Block const&
63 _determineAttachment(::Actor const& by, ::BlockSource& region, ::BlockPos const& pos, uchar face) const;
64
65 MCAPI short _getItemId(::BlockSource const& region, ::std::string_view itemName) const;
66
67 MCAPI void _sendBellUsedEventToClient(::BlockSource const& region, ::Actor const& sourceActor) const;
68
69 MCAPI void _tryAttachToNeighbors(
70 ::BlockSource& region,
71 ::BlockPos const& pos,
72 ::BlockPos const& neighborPos,
73 int updateFlags
74 ) const;
75
76 MCAPI bool hasValidAttachment(::Block const& block, ::BlockSource& region, ::BlockPos const& pos) const;
77
78 MCFOLD void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
79
80 MCAPI void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
81 // NOLINTEND
82
83public:
84 // virtual function thunks
85 // NOLINTBEGIN
86 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
87
88 MCAPI ::Block const& $getPlacementBlock(
89 ::Actor const& by,
90 ::BlockPos const& pos,
91 uchar face,
92 ::Vec3 const& clickPos,
93 int itemValue
94 ) const;
95
96 MCAPI void $entityInside(::BlockSource& region, ::BlockPos const& pos, ::Actor& actor) const;
97
98 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
99
100 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
101
102 MCAPI void $movedByPiston(::BlockSource& region, ::BlockPos const& pos) const;
103
104 MCFOLD bool
105 $shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const;
106
107 MCAPI void $onProjectileHit(::BlockSource& region, ::BlockPos const& pos, ::Actor const& projectile) const;
108
109 MCFOLD bool $isInteractiveBlock() const;
110
111 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
112
113 MCAPI void $_onHitByActivatingAttack(::BlockSource& region, ::BlockPos const& pos, ::Actor* sourceActor) const;
114
115
116 // NOLINTEND
117
118public:
119 // vftables
120 // NOLINTBEGIN
121 MCAPI static void** $vftable();
122 // NOLINTEND
123};
Definition AABB.h:18
Definition Actor.h:106
Definition BellBlock.h:23
Definition BlockPlayerInteractEvent.h:17
Definition BlockQueuedTickEvent.h:16
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition Block.h:43
Definition Experiments.h:14
Definition Vec3.h:10