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, 176, ::BlockDescriptor> mBlockDescriptor;
48 ::ll::TypedStorage<4, 4, float> mWeight;
49 // NOLINTEND
50 };
51
52 using PlacementConditions =
54
55public:
56 // member variables
57 // NOLINTBEGIN
58 ::ll::TypedStorage<8, 24, ::std::vector<::SingleBlockFeature::WeightedBlockDescriptor>> mPossibleBlocks;
59 ::ll::TypedStorage<
60 8,
61 216,
63 mMayAttachTo;
64 ::ll::TypedStorage<
65 8,
66 216,
68 mMayNotAttachTo;
69 ::ll::TypedStorage<8, 24, ::std::vector<::BlockDescriptor>> mMayReplace;
70 ::ll::TypedStorage<4, 4, int> mMinAttachedSides;
71 ::ll::TypedStorage<1, 1, bool> mEnforcePlacementRules;
72 ::ll::TypedStorage<1, 1, bool> mEnforceSurvivabilityRules;
73 ::ll::TypedStorage<1, 1, bool> mAutoRotate;
74 ::ll::TypedStorage<1, 1, bool> mRandomRotation;
75 ::ll::TypedStorage<1, 1, bool> mEnforceAttachmentRules;
76 // NOLINTEND
77
78public:
79 // virtual functions
80 // NOLINTBEGIN
81 virtual ~SingleBlockFeature() /*override*/;
82
83 virtual ::std::optional<::BlockPos> place(::IFeature::PlacementContext const& context) const /*override*/;
84 // NOLINTEND
85
86public:
87 // member functions
88 // NOLINTBEGIN
89 MCAPI ::Block const*
90 _mayAttach(::BlockDescriptor const& blockDescriptor, ::IBlockWorldGenAPI& target, ::BlockPos const& pos) const;
91
92 MCAPI bool _mayNotAttach(::IBlockWorldGenAPI& target, ::BlockPos const& pos) const;
93 // NOLINTEND
94
95public:
96 // destructor thunk
97 // NOLINTBEGIN
98 MCAPI void $dtor();
99 // NOLINTEND
100
101public:
102 // virtual function thunks
103 // NOLINTBEGIN
104 MCAPI ::std::optional<::BlockPos> $place(::IFeature::PlacementContext const& context) const;
105
106
107 // NOLINTEND
108
109public:
110 // vftables
111 // NOLINTBEGIN
112 MCNAPI static void** $vftable();
113 // NOLINTEND
114};
Definition DenseEnumMap.h:9
Definition BlockDescriptor.h:21
Definition BlockPos.h:21
Definition Block.h:69
Definition IBlockWorldGenAPI.h:25
Definition IFeature.h:19
Definition SingleBlockFeature.h:17
static MCAPI void ** $vftable()
Definition IFeature.h:27
Definition SingleBlockFeature.h:43
Definition context.h:5