LeviLamina
Loading...
Searching...
No Matches
MultifaceSpreader.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7class Block;
8class BlockPos;
10// clang-format on
11
13public:
14 // MultifaceSpreader inner types define
15 enum class SpreadType : uchar {
16 SamePosition = 0,
17 SamePlane = 1,
18 WrapAround = 2,
19 };
20
21 using SpreadTypes = ::std::vector<::MultifaceSpreader::SpreadType>;
22
23public:
24 // member variables
25 // NOLINTBEGIN
26 ::ll::TypedStorage<8, 24, ::std::vector<::MultifaceSpreader::SpreadType>> mSpreadTypes;
27 // NOLINTEND
28
29public:
30 // virtual functions
31 // NOLINTBEGIN
32 // vIndex: 0
33 virtual ~MultifaceSpreader() = default;
34
35 // vIndex: 1
36 virtual bool _canSpreadFrom(::Block const& block, uchar const facing) const;
37
38 // vIndex: 2
39 virtual bool _canSpreadInto(
40 ::IBlockWorldGenAPI& target,
41 ::Block const& self,
42 ::BlockPos const& pos,
43 uchar const placementDirection
44 ) const;
45
46 // vIndex: 3
47 virtual bool _isOtherBlockValidAsSource(::Block const&) const;
48 // NOLINTEND
49
50public:
51 // member functions
52 // NOLINTBEGIN
53 MCAPI ::std::optional<::std::pair<::BlockPos const, uchar const>> _getSpreadWrappingAround(
54 ::IBlockWorldGenAPI& target,
55 ::Block const& self,
56 ::BlockPos const& pos,
57 uchar startingFace,
58 uchar spreadDirection
59 ) const;
60
61 MCAPI ::std::optional<::std::pair<::BlockPos const, uchar const>> getSpreadFromFaceTowardDirection(
62 ::IBlockWorldGenAPI& target,
63 ::Block const& self,
64 ::Block const& block,
65 ::BlockPos const& pos,
66 uchar startingFace,
67 uchar spreadDirection
68 ) const;
69
70 MCAPI int spreadFromAllFacesTowardAllDirections(
71 ::IBlockWorldGenAPI& target,
72 ::Block const& self,
73 ::Block const& block,
74 ::BlockPos const& pos
75 ) const;
76
77 MCAPI bool spreadFromFaceTowardRandomDirection(
78 ::IBlockWorldGenAPI& target,
79 ::Block const& self,
80 ::Block const& block,
81 ::BlockPos const& pos,
82 uchar startingFace
83 ) const;
84 // NOLINTEND
85
86public:
87 // static variables
88 // NOLINTBEGIN
89 MCAPI static ::std::vector<::MultifaceSpreader::SpreadType> const& ALL_SPREAD_TYPES();
90
91 MCAPI static ::std::vector<::MultifaceSpreader::SpreadType> const& SAME_POSITION_ONLY();
92 // NOLINTEND
93
94public:
95 // virtual function thunks
96 // NOLINTBEGIN
97 MCAPI bool $_canSpreadFrom(::Block const& block, uchar const facing) const;
98
99 MCAPI bool $_canSpreadInto(
100 ::IBlockWorldGenAPI& target,
101 ::Block const& self,
102 ::BlockPos const& pos,
103 uchar const placementDirection
104 ) const;
105
106 MCFOLD bool $_isOtherBlockValidAsSource(::Block const&) const;
107 // NOLINTEND
108
109public:
110 // vftables
111 // NOLINTBEGIN
112 MCNAPI static void** $vftable();
113 // NOLINTEND
114};
Definition BlockPos.h:17
Definition Block.h:37
Definition IBlockWorldGenAPI.h:25
Definition MultifaceSpreader.h:12
static MCAPI void ** $vftable()