LeviLamina
Loading...
Searching...
No Matches
VineBlock.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/BlockLegacy.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 BlockQueuedTickEvent; }
21namespace BlockEvents { class BlockRandomTickEvent; }
22// clang-format on
23
24class VineBlock : public ::BlockLegacy {
25public:
26 // virtual functions
27 // NOLINTBEGIN
28 // vIndex: 10
29 virtual ::AABB const& getVisualShapeInWorld(
30 ::Block const& block,
31 ::IConstBlockSource const& region,
32 ::BlockPos const& pos,
33 ::AABB& bufferAABB
34 ) const /*override*/;
35
36 // vIndex: 5
37 virtual ::AABB getCollisionShape(
38 ::Block const&,
40 ::BlockPos const&,
42 ) const /*override*/;
43
44 // vIndex: 9
45 virtual ::AABB const& getOutline(
46 ::Block const& block,
47 ::IConstBlockSource const& region,
48 ::BlockPos const& pos,
49 ::AABB& bufferValue
50 ) const /*override*/;
51
52 // vIndex: 79
53 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar face) const /*override*/;
54
55 // vIndex: 86
56 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
57 /*override*/;
58
59 // vIndex: 91
60 virtual ::Block const&
61 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
62 /*override*/;
63
64 // vIndex: 130
65 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
66
67 // vIndex: 138
68 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
69
70 // vIndex: 49
71 virtual ::Block const& sanitizeFillBlock(::Block const& block) const /*override*/;
72
73 // vIndex: 0
74 virtual ~VineBlock() /*override*/ = default;
75 // NOLINTEND
76
77public:
78 // member functions
79 // NOLINTBEGIN
80 MCAPI bool _canGrowDown(::BlockSource& region, ::BlockPos const& pos) const;
81
82 MCAPI bool _canSideSpread(::BlockSource& region, ::BlockPos const& pos) const;
83
84 MCAPI int _nextVineDirections(::BlockSource& region, ::BlockPos const& pos) const;
85
86 MCAPI void growDown(::BlockSource& region, ::BlockPos const& pos, int spawnFacings) const;
87
88 MCAPI void growSideways(::BlockSource& region, ::BlockPos const& pos, int testDirection) const;
89
90 MCAPI void growUp(::BlockSource& region, ::BlockPos const& pos, int spawnFacings) const;
91
92 MCAPI void randomTick(::BlockEvents::BlockRandomTickEvent& eventData) const;
93
94 MCFOLD void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
95 // NOLINTEND
96
97public:
98 // static functions
99 // NOLINTBEGIN
100 MCAPI static bool isAcceptableNeighbour(::Block const& block);
101 // NOLINTEND
102
103public:
104 // static variables
105 // NOLINTBEGIN
106 MCAPI static int const& VINE_ALL();
107
108 MCAPI static int const& VINE_EAST();
109
110 MCAPI static int const& VINE_NORTH();
111
112 MCAPI static int const& VINE_SOUTH();
113
114 MCAPI static int const& VINE_WEST();
115 // NOLINTEND
116
117public:
118 // virtual function thunks
119 // NOLINTBEGIN
120 MCAPI ::AABB const& $getVisualShapeInWorld(
121 ::Block const& block,
122 ::IConstBlockSource const& region,
123 ::BlockPos const& pos,
124 ::AABB& bufferAABB
125 ) const;
126
127 MCFOLD ::AABB $getCollisionShape(
128 ::Block const&,
129 ::IConstBlockSource const&,
130 ::BlockPos const&,
132 ) const;
133
134 MCFOLD ::AABB const& $getOutline(
135 ::Block const& block,
136 ::IConstBlockSource const& region,
137 ::BlockPos const& pos,
138 ::AABB& bufferValue
139 ) const;
140
141 MCAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar face) const;
142
143 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
144
145 MCAPI ::Block const& $getPlacementBlock(
146 ::Actor const& by,
147 ::BlockPos const& pos,
148 uchar face,
149 ::Vec3 const& clickPos,
150 int itemValue
151 ) const;
152
153 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
154
155 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
156
157 MCAPI ::Block const& $sanitizeFillBlock(::Block const& block) const;
158 // NOLINTEND
159
160public:
161 // vftables
162 // NOLINTBEGIN
163 MCNAPI static void** $vftable();
164 // NOLINTEND
165};
Definition AABB.h:18
Definition Actor.h:103
Definition BlockQueuedTickEvent.h:16
Definition BlockRandomTickEvent.h:16
Definition BlockLegacy.h:88
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition Block.h:38
Definition Experiments.h:14
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:24
Definition Vec3.h:10
Definition VineBlock.h:24
static MCAPI void ** $vftable()
Definition optional_ref.h:10
Definition BlockRandomTickEvent.h:13