LeviLamina
Loading...
Searching...
No Matches
SingleBlockFeature.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/container/DenseEnumMap.h"
7#include "mc/world/level/block/BlockDescriptor.h"
8#include "mc/world/level/levelgen/feature/IFeature.h"
9
10// auto generated forward declare list
11// clang-format off
12class Block;
13class BlockPos;
15// clang-format on
16
18public:
19 // SingleBlockFeature inner types declare
20 // clang-format off
22 // clang-format on
23
24 // SingleBlockFeature inner types define
25 enum class AttachCondition : uchar {
26 MayAttachTo = 0,
27 MayNotAttachTo = 1,
28 };
29
30 enum class CheckDirection : uchar {
31 Top = 0,
32 Bottom = 1,
33 North = 2,
34 East = 3,
35 South = 4,
36 West = 5,
37 All = 6,
38 Sides = 7,
39 Diagonal = 8,
40 Count = 9,
41 };
42
44 public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<8, 184, ::BlockDescriptor> mBlockDescriptor;
48 ::ll::TypedStorage<4, 4, float> mWeight;
49 // NOLINTEND
50
51 public:
52 // member functions
53 // NOLINTBEGIN
55 // NOLINTEND
56
57 public:
58 // destructor thunk
59 // NOLINTBEGIN
60 MCFOLD void $dtor();
61 // NOLINTEND
62 };
63
64 using PlacementConditions =
66
67public:
68 // member variables
69 // NOLINTBEGIN
70 ::ll::TypedStorage<8, 24, ::std::vector<::SingleBlockFeature::WeightedBlockDescriptor>> mPossibleBlocks;
71 ::ll::TypedStorage<
72 8,
73 216,
75 mMayAttachTo;
76 ::ll::TypedStorage<
77 8,
78 216,
80 mMayNotAttachTo;
81 ::ll::TypedStorage<8, 24, ::std::vector<::BlockDescriptor>> mMayReplace;
82 ::ll::TypedStorage<4, 4, int> mMinAttachedSides;
83 ::ll::TypedStorage<1, 1, bool> mEnforcePlacementRules;
84 ::ll::TypedStorage<1, 1, bool> mEnforceSurvivabilityRules;
85 ::ll::TypedStorage<1, 1, bool> mAutoRotate;
86 ::ll::TypedStorage<1, 1, bool> mRandomRotation;
87 ::ll::TypedStorage<1, 1, bool> mEnforceAttachmentRules;
88 // NOLINTEND
89
90public:
91 // virtual functions
92 // NOLINTBEGIN
93 virtual ~SingleBlockFeature() /*override*/;
94
95 virtual ::std::optional<::BlockPos> place(::IFeature::PlacementContext const& context) const /*override*/;
96 // NOLINTEND
97
98public:
99 // member functions
100 // NOLINTBEGIN
101 MCAPI ::Block const*
102 _mayAttach(::BlockDescriptor const& blockDescriptor, ::IBlockWorldGenAPI& target, ::BlockPos const& pos) const;
103
104 MCAPI bool _mayNotAttach(::IBlockWorldGenAPI& target, ::BlockPos const& pos) const;
105 // NOLINTEND
106
107public:
108 // destructor thunk
109 // NOLINTBEGIN
110 MCAPI void $dtor();
111 // NOLINTEND
112
113public:
114 // virtual function thunks
115 // NOLINTBEGIN
116 MCAPI ::std::optional<::BlockPos> $place(::IFeature::PlacementContext const& context) const;
117
118
119 // NOLINTEND
120
121public:
122 // vftables
123 // NOLINTBEGIN
124 MCNAPI static void** $vftable();
125 // NOLINTEND
126};
Definition DenseEnumMap.h:8
Definition BlockDescriptor.h:20
Definition BlockPos.h:19
Definition Block.h:43
Definition IBlockWorldGenAPI.h:25
Definition IFeature.h:18
Definition SingleBlockFeature.h:17
static MCAPI void ** $vftable()
Definition IFeature.h:26
Definition SingleBlockFeature.h:43
Definition context.h:5