LeviLamina
Loading...
Searching...
No Matches
GrassBlockBase.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/item/FertilizerType.h"
7#include "mc/world/level/block/BlockType.h"
8
9// auto generated forward declare list
10// clang-format off
11class Actor;
12class Block;
13class BlockPos;
14class BlockSource;
15class HashedString;
16class IRandom;
17class ItemStack;
18namespace BlockEvents { class BlockPlayerInteractEvent; }
19namespace BlockEvents { class BlockRandomTickEvent; }
20// clang-format on
21
22class GrassBlockBase : public ::BlockType {
23public:
24 // member variables
25 // NOLINTBEGIN
26 ::ll::TypedStorage<8, 8, ::HashedString const&> mTillsIntoBlock;
27 ::ll::TypedStorage<8, 8, ::HashedString const&> mGrowsOnBlock;
28 // NOLINTEND
29
30public:
31 // prevent constructor by default
32 GrassBlockBase& operator=(GrassBlockBase const&);
33 GrassBlockBase(GrassBlockBase const&);
34 GrassBlockBase();
35
36public:
37 // virtual functions
38 // NOLINTBEGIN
39 virtual bool onFertilized(::BlockSource& region, ::BlockPos const& pos, ::Actor*, ::FertilizerType) const
40 /*override*/;
41
42 virtual bool canBeFertilized(::BlockSource& aboveBlock, ::BlockPos const&, ::Block const&) const /*override*/;
43
44 virtual bool canBeOriginalSurface(bool) const /*override*/;
45
46 virtual bool tryToTill(::BlockSource& region, ::BlockPos const& pos, ::Actor& entity, ::ItemStack& item) const
47 /*override*/;
48
49 virtual bool _plantGrass(::BlockSource& region, ::BlockPos const& abovePos, ::IRandom& random) const = 0;
50
51 virtual bool _shouldStopRandomWalk(::BlockSource& region, ::BlockPos& pos) const = 0;
52 // NOLINTEND
53
54public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI bool _canBeGrass(::BlockSource const& region, ::BlockPos const& pos) const;
58
59 MCAPI bool _isGrowthBlockingSolidBlock(::Block const& block) const;
60
61 MCAPI bool _isGrowthBlockingStairBlock(::Block const& block) const;
62
63 MCAPI bool fertilize(::BlockSource& region, ::BlockPos const& pos, ::IRandom& random) const;
64
65 MCAPI void randomTick(::BlockEvents::BlockRandomTickEvent& eventData) const;
66
67 MCFOLD void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
68 // NOLINTEND
69
70public:
71 // virtual function thunks
72 // NOLINTBEGIN
73 MCAPI bool $onFertilized(::BlockSource& region, ::BlockPos const& pos, ::Actor*, ::FertilizerType) const;
74
75 MCFOLD bool $canBeFertilized(::BlockSource& aboveBlock, ::BlockPos const&, ::Block const&) const;
76
77 MCFOLD bool $canBeOriginalSurface(bool) const;
78
79 MCFOLD bool $tryToTill(::BlockSource& region, ::BlockPos const& pos, ::Actor& entity, ::ItemStack& item) const;
80
81
82 // NOLINTEND
83
84public:
85 // vftables
86 // NOLINTBEGIN
87 MCNAPI static void** $vftable();
88 // NOLINTEND
89};
Definition Actor.h:125
Definition BlockPlayerInteractEvent.h:20
Definition BlockRandomTickEvent.h:17
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition Block.h:69
static MCAPI void ** $vftable()
Definition HashedString.h:5
Definition IRandom.h:10
Definition ItemStack.h:35