LeviLamina
Loading...
Searching...
No Matches
SweetBerryBushBlock.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/item/FertilizerType.h"
8#include "mc/world/level/block/FoliageBlock.h"
9
10// auto generated forward declare list
11// clang-format off
12class AABB;
13class Actor;
14class Block;
15class BlockActor;
16class BlockPos;
17class BlockSource;
18class Experiments;
21class ItemInstance;
22namespace BlockEvents { class ActorInternalEvent; }
23namespace BlockEvents { class BlockPlayerInteractEvent; }
24namespace BlockEvents { class BlockRandomTickEvent; }
25// clang-format on
26
27class SweetBerryBushBlock : public ::FoliageBlock {
28public:
29 // SweetBerryBushBlock inner types define
30 enum class BerryStage : int {
31 Sapling = 0,
32 NoBerries = 1,
33 SomeBerries = 2,
34 FullBerries = 3,
35 };
36
37public:
38 // prevent constructor by default
39 SweetBerryBushBlock();
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
45
46 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
47
48 virtual void entityInside(::BlockSource& region, ::BlockPos const& pos, ::Actor& entity) const /*override*/;
49
50 virtual bool isInteractiveBlock() const /*override*/;
51
52 virtual int getVariant(::Block const& block) const /*override*/;
53
54 virtual ::AABB getCollisionShape(
55 ::Block const&,
57 ::BlockPos const&,
59 ) const /*override*/;
60
61 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
62
63 virtual ::ItemInstance asItemInstance(::Block const&, ::BlockActor const*) const /*override*/;
64
65 virtual bool checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const
66 /*override*/;
67
68 virtual bool dealsContactDamage(::Actor const& actor, ::Block const& block, bool isPathFinding) const /*override*/;
69
70 virtual bool
71 hasTag(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, ::std::string const& tagName) const
72 /*override*/;
73
74 virtual bool mayPlaceOn(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
75
76 virtual bool
77 onFertilized(::BlockSource& region, ::BlockPos const& pos, ::Actor* actor, ::FertilizerType fType) const
78 /*override*/;
79
80 virtual bool canBeFertilized(::BlockSource& region, ::BlockPos const& pos, ::Block const& aboveBlock) const
81 /*override*/;
82
83 virtual void _addHardCodedBlockComponents(::Experiments const& experiments) /*override*/;
84
85 virtual ~SweetBerryBushBlock() /*override*/ = default;
86 // NOLINTEND
87
88public:
89 // member functions
90 // NOLINTBEGIN
91 MCAPI SweetBerryBushBlock(::std::string const& nameId, int id);
92
93 MCAPI void onEvent(::BlockEvents::ActorInternalEvent& event) const;
94
95 MCAPI void randomTick(::BlockEvents::BlockRandomTickEvent& eventData) const;
96
97 MCAPI void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
98 // NOLINTEND
99
100public:
101 // static functions
102 // NOLINTBEGIN
103 MCAPI static bool
104 _growBush(::BlockSource& region, ::BlockPos const& pos, bool forceFullGrowth, ::Actor* sourceEntity);
105
106 MCAPI static bool
107 _pickBerries(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, ::Actor& sourceEntity);
108 // NOLINTEND
109
110public:
111 // constructor thunks
112 // NOLINTBEGIN
113 MCAPI void* $ctor(::std::string const& nameId, int id);
114 // NOLINTEND
115
116public:
117 // virtual function thunks
118 // NOLINTBEGIN
119 MCFOLD bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
120
121 MCFOLD bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
122
123 MCAPI void $entityInside(::BlockSource& region, ::BlockPos const& pos, ::Actor& entity) const;
124
125 MCFOLD bool $isInteractiveBlock() const;
126
127 MCAPI int $getVariant(::Block const& block) const;
128
129 MCFOLD ::AABB $getCollisionShape(
130 ::Block const&,
131 ::IConstBlockSource const&,
132 ::BlockPos const&,
134 ) const;
135
136 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
137
138 MCAPI ::ItemInstance $asItemInstance(::Block const&, ::BlockActor const*) const;
139
140 MCAPI bool $checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const;
141
142 MCAPI bool $dealsContactDamage(::Actor const& actor, ::Block const& block, bool isPathFinding) const;
143
144 MCAPI bool
145 $hasTag(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, ::std::string const& tagName) const;
146
147 MCFOLD bool $mayPlaceOn(::BlockSource& region, ::BlockPos const& pos) const;
148
149 MCAPI bool
150 $onFertilized(::BlockSource& region, ::BlockPos const& pos, ::Actor* actor, ::FertilizerType fType) const;
151
152 MCFOLD bool $canBeFertilized(::BlockSource& region, ::BlockPos const& pos, ::Block const& aboveBlock) const;
153
154 MCAPI void $_addHardCodedBlockComponents(::Experiments const& experiments);
155
156
157 // NOLINTEND
158
159public:
160 // vftables
161 // NOLINTBEGIN
162 MCAPI static void** $vftable();
163 // NOLINTEND
164};
Definition AABB.h:18
Definition Actor.h:106
Definition BlockActor.h:30
Definition ActorInternalEvent.h:16
Definition BlockPlayerInteractEvent.h:17
Definition BlockRandomTickEvent.h:16
Definition BlockPos.h:19
Definition BlockSource.h:71
Definition Block.h:43
Definition Experiments.h:14
Definition FoliageBlock.h:23
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:25
Definition ItemInstance.h:15
Definition optional_ref.h:10