LeviLamina
Loading...
Searching...
No Matches
DoublePlantBaseBlock.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#include "mc/world/phys/AABB.h"
10
11// auto generated forward declare list
12// clang-format off
13class Actor;
14class Block;
15class BlockPos;
16class BlockSource;
17class Experiments;
20class Player;
21namespace BlockEvents { class BlockPlaceEvent; }
22namespace BlockEvents { class BlockQueuedTickEvent; }
23// clang-format on
24
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<4, 24, ::AABB> mBottomVisualShape;
30 // NOLINTEND
31
32public:
33 // virtual functions
34 // NOLINTBEGIN
35 virtual ::Block const* getNextBlockPermutation(::Block const& currentBlock) const /*override*/;
36
37 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
38
39 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar face) const /*override*/;
40
41 virtual void checkAlive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
42
43 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
44
45 virtual void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const /*override*/;
46
47 virtual ::AABB getCollisionShape(
48 ::Block const&,
50 ::BlockPos const&,
52 ) const /*override*/;
53
54 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
55
56 virtual ::Block const* playerWillDestroy(::Player& player, ::BlockPos const& pos, ::Block const& block) const
57 /*override*/;
58
59 virtual bool getSecondPart(::IConstBlockSource const& region, ::BlockPos const& pos, ::BlockPos& out) const
60 /*override*/;
61
62 virtual bool
63 onFertilized(::BlockSource& region, ::BlockPos const& pos, ::Actor* actor, ::FertilizerType fType) const
64 /*override*/;
65
66 virtual bool canBeFertilized(::BlockSource& region, ::BlockPos const& pos, ::Block const& aboveBlock) const
67 /*override*/;
68
69 virtual ::Block const& _keepRelevantStateForDropping(::Block const& block) const;
70
71 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
72
73 virtual ~DoublePlantBaseBlock() /*override*/ = default;
74 // NOLINTEND
75
76public:
77 // member functions
78 // NOLINTBEGIN
79 MCAPI void _preventCreativeDropFromBottomPart(::Player const& player, ::BlockPos const& bottomHalfPos) const;
80
81 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
82 // NOLINTEND
83
84public:
85 // virtual function thunks
86 // NOLINTBEGIN
87 MCFOLD ::Block const* $getNextBlockPermutation(::Block const& currentBlock) const;
88
89 MCFOLD bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
90
91 MCFOLD bool $mayPlace(::BlockSource& region, ::BlockPos const& pos, uchar face) const;
92
93 MCFOLD void $checkAlive(::BlockSource& region, ::BlockPos const& pos) const;
94
95 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
96
97 MCFOLD void $tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
98
99 MCFOLD ::AABB $getCollisionShape(
100 ::Block const&,
101 ::IConstBlockSource const&,
102 ::BlockPos const&,
104 ) const;
105
106 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
107
108 MCAPI ::Block const* $playerWillDestroy(::Player& player, ::BlockPos const& pos, ::Block const& block) const;
109
110 MCFOLD bool $getSecondPart(::IConstBlockSource const& region, ::BlockPos const& pos, ::BlockPos& out) const;
111
112 MCAPI bool
113 $onFertilized(::BlockSource& region, ::BlockPos const& pos, ::Actor* actor, ::FertilizerType fType) const;
114
115 MCFOLD bool $canBeFertilized(::BlockSource& region, ::BlockPos const& pos, ::Block const& aboveBlock) const;
116
117 MCAPI ::Block const& $_keepRelevantStateForDropping(::Block const& block) const;
118
119 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
120
121
122 // NOLINTEND
123};
Definition AABB.h:18
Definition Actor.h:105
Definition BlockPlaceEvent.h:16
Definition BlockQueuedTickEvent.h:16
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition Block.h:43
Definition DoublePlantBaseBlock.h:25
Definition Experiments.h:14
Definition FoliageBlock.h:23
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:25
Definition Player.h:125
Definition optional_ref.h:10