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
21public:
22 // member variables
23 // NOLINTBEGIN
25 // NOLINTEND
26
27public:
28 // prevent constructor by default
29 MultifaceSpreader& operator=(MultifaceSpreader const&);
32
33public:
34 // virtual functions
35 // NOLINTBEGIN
36 // vIndex: 0
37 virtual ~MultifaceSpreader() = default;
38
39 // vIndex: 1
40 virtual bool _canSpreadFrom(::Block const& block, uchar const facing) const;
41
42 // vIndex: 2
43 virtual bool _canSpreadInto(
44 ::IBlockWorldGenAPI& target,
45 ::Block const& self,
46 ::BlockPos const& pos,
47 uchar const placementDirection
48 ) const;
49
50 // vIndex: 3
51 virtual bool _isOtherBlockValidAsSource(::Block const&) const;
52 // NOLINTEND
53
54public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI ::std::optional<::std::pair<::BlockPos const, uchar const>> _getSpreadWrappingAround(
58 ::IBlockWorldGenAPI& target,
59 ::Block const& self,
60 ::BlockPos const& pos,
61 uchar startingFace,
62 uchar spreadDirection
63 ) const;
64
65 MCAPI ::std::optional<::std::pair<::BlockPos const, uchar const>> getSpreadFromFaceTowardDirection(
66 ::IBlockWorldGenAPI& target,
67 ::Block const& self,
68 ::Block const& block,
69 ::BlockPos const& pos,
70 uchar startingFace,
71 uchar spreadDirection
72 ) const;
73
74 MCAPI int spreadFromAllFacesTowardAllDirections(
75 ::IBlockWorldGenAPI& target,
76 ::Block const& self,
77 ::Block const& block,
78 ::BlockPos const& pos
79 ) const;
80
81 MCAPI bool spreadFromFaceTowardRandomDirection(
82 ::IBlockWorldGenAPI& target,
83 ::Block const& self,
84 ::Block const& block,
85 ::BlockPos const& pos,
86 uchar startingFace
87 ) const;
88 // NOLINTEND
89
90public:
91 // static variables
92 // NOLINTBEGIN
93 MCAPI static ::std::vector<::MultifaceSpreader::SpreadType> const& ALL_SPREAD_TYPES();
94
95 MCAPI static ::std::vector<::MultifaceSpreader::SpreadType> const& SAME_POSITION_ONLY();
96 // NOLINTEND
97
98public:
99 // virtual function thunks
100 // NOLINTBEGIN
101 MCAPI bool $_canSpreadFrom(::Block const& block, uchar const facing) const;
102
103 MCAPI bool $_canSpreadInto(
104 ::IBlockWorldGenAPI& target,
105 ::Block const& self,
106 ::BlockPos const& pos,
107 uchar const placementDirection
108 ) const;
109
110 MCFOLD bool $_isOtherBlockValidAsSource(::Block const&) const;
111 // NOLINTEND
112
113public:
114 // vftables
115 // NOLINTBEGIN
116 MCNAPI static void** $vftable();
117 // NOLINTEND
118};
Definition BlockPos.h:18
Definition Block.h:38
Definition IBlockWorldGenAPI.h:25
Definition MultifaceSpreader.h:12
static MCAPI void ** $vftable()
Definition Alias.h:14