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 // destructor thunk
100 // NOLINTBEGIN
101
102 // NOLINTEND
103
104public:
105 // virtual function thunks
106 // NOLINTBEGIN
107 MCAPI bool $_canSpreadFrom(::Block const& block, uchar const facing) const;
108
109 MCAPI bool $_canSpreadInto(
110 ::IBlockWorldGenAPI& target,
111 ::Block const& self,
112 ::BlockPos const& pos,
113 uchar const placementDirection
114 ) const;
115
116 MCFOLD bool $_isOtherBlockValidAsSource(::Block const&) const;
117 // NOLINTEND
118
119public:
120 // vftables
121 // NOLINTBEGIN
122 MCAPI static void** $vftable();
123 // NOLINTEND
124};
Definition BlockPos.h:18
Definition Block.h:36
Definition IBlockWorldGenAPI.h:25
Definition MultifaceSpreader.h:12
Definition Alias.h:14