LeviLamina
Loading...
Searching...
No Matches
CaveVinesBlock.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/BlockType.h"
9#include "mc/world/level/block/CaveVinesVariant.h"
10
11// auto generated forward declare list
12// clang-format off
13class AABB;
14class Actor;
15class Block;
16class BlockActor;
17class BlockPos;
18class BlockSource;
21class ItemInstance;
22class ItemStack;
23class Player;
24namespace BlockEvents { class ActorInternalEvent; }
25namespace BlockEvents { class BlockPlaceEvent; }
26namespace BlockEvents { class BlockPlayerInteractEvent; }
27namespace BlockEvents { class BlockQueuedTickEvent; }
28namespace BlockEvents { class BlockRandomTickEvent; }
29// clang-format on
30
31class CaveVinesBlock : public ::BlockType {
32public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<1, 1, bool const> mHasBerries;
36 // NOLINTEND
37
38public:
39 // prevent constructor by default
40 CaveVinesBlock();
41
42public:
43 // virtual functions
44 // NOLINTBEGIN
45 virtual int getVariant(::Block const& block) const /*override*/;
46
47 virtual void onRemove(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
48
49 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
50
51 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
52
53 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
54 /*override*/;
55
56 virtual ::AABB getCollisionShape(
57 ::Block const&,
59 ::BlockPos const&,
61 ) const /*override*/;
62
63 virtual ::AABB const&
64 getOutline(::Block const& pos, ::IConstBlockSource const& bufferValue, ::BlockPos const&, ::AABB&) const
65 /*override*/;
66
67 virtual bool onFertilized(::BlockSource& region, ::BlockPos const& pos, ::Actor*, ::FertilizerType) const
68 /*override*/;
69
70 virtual bool canBeFertilized(::BlockSource&, ::BlockPos const&, ::Block const&) const /*override*/;
71
72 virtual ::ItemInstance asItemInstance(::Block const&, ::BlockActor const*) const /*override*/;
73
74 virtual bool
75 hasTag(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, ::std::string const& tagName) const
76 /*override*/;
77 // NOLINTEND
78
79public:
80 // member functions
81 // NOLINTBEGIN
82 MCAPI CaveVinesBlock(::std::string const& nameId, int id, ::CaveVinesVariant variant);
83
84 MCAPI int _getAgeForPlacement(::BlockSource& region, ::BlockPos const& pos) const;
85
86 MCAPI bool _isCaveVinesHead(::BlockSource& region, ::BlockPos const& pos) const;
87
88 MCAPI bool _pickBerries(::BlockSource& region, ::BlockPos const& pos, ::Actor& sourceEntity) const;
89
90 MCAPI bool _shearCaveVine(
91 ::Player& player,
92 ::BlockSource& region,
93 ::BlockPos const& pos,
94 ::Block const& vineBlock,
95 ::ItemStack& shears
96 ) const;
97
98 MCAPI void _updateBlockBasedOnNeighborBelow(::BlockSource& region, ::BlockPos const& pos) const;
99
100 MCAPI void
101 _updateVineBlockAndBroadcastEvents(::BlockSource& region, ::BlockPos const& pos, ::Block const& vineBlock) const;
102
103 MCAPI void onEvent(::BlockEvents::ActorInternalEvent& event) const;
104
105 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
106
107 MCAPI void randomTick(::BlockEvents::BlockRandomTickEvent& eventData) const;
108
109 MCFOLD 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 _shouldGrow(::BlockSource& region, ::BlockPos const& pos, float randomNumber);
118
119 MCAPI static void
120 tryGrow(::BlockSource& region, ::BlockPos const& pos, float randomNumberForGrowing, float randomNumberForBerries);
121 // NOLINTEND
122
123public:
124 // constructor thunks
125 // NOLINTBEGIN
126 MCAPI void* $ctor(::std::string const& nameId, int id, ::CaveVinesVariant variant);
127 // NOLINTEND
128
129public:
130 // virtual function thunks
131 // NOLINTBEGIN
132 MCFOLD int $getVariant(::Block const& block) const;
133
134 MCAPI void $onRemove(::BlockSource& region, ::BlockPos const& pos) const;
135
136 MCFOLD bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
137
138 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
139
140 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
141
142 MCFOLD ::AABB $getCollisionShape(
143 ::Block const&,
144 ::IConstBlockSource const&,
145 ::BlockPos const&,
147 ) const;
148
149 MCFOLD ::AABB const&
150 $getOutline(::Block const& pos, ::IConstBlockSource const& bufferValue, ::BlockPos const&, ::AABB&) const;
151
152 MCAPI bool $onFertilized(::BlockSource& region, ::BlockPos const& pos, ::Actor*, ::FertilizerType) const;
153
154 MCFOLD bool $canBeFertilized(::BlockSource&, ::BlockPos const&, ::Block const&) const;
155
156 MCAPI ::ItemInstance $asItemInstance(::Block const&, ::BlockActor const*) const;
157
158 MCAPI bool
159 $hasTag(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, ::std::string const& tagName) const;
160
161
162 // NOLINTEND
163
164public:
165 // vftables
166 // NOLINTBEGIN
167 MCAPI static void** $vftable();
168 // NOLINTEND
169};
Definition AABB.h:18
Definition Actor.h:125
Definition BlockActor.h:30
Definition ActorInternalEvent.h:17
Definition BlockPlaceEvent.h:18
Definition BlockPlayerInteractEvent.h:20
Definition BlockQueuedTickEvent.h:18
Definition BlockRandomTickEvent.h:17
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition Block.h:69
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:24
Definition ItemInstance.h:15
Definition ItemStack.h:35
Definition Player.h:137
Definition optional_ref.h:10