LeviLamina
Loading...
Searching...
No Matches
IFeature.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/BlockPos.h"
7#include "mc/world/level/levelgen/feature/FeaturePlacementFailureLogProxy.h"
8
9// auto generated forward declare list
10// clang-format off
11class BlockDescriptor;
13class Random;
14class RenderParams;
15class SemVersion;
16// clang-format on
17
18class IFeature {
19public:
20 // IFeature inner types declare
21 // clang-format off
22 struct PlacementContext;
23 // clang-format on
24
25 // IFeature inner types define
26 struct PlacementContext {
27 public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<8, 8, ::IBlockWorldGenAPI&> mTarget;
31 ::ll::TypedStorage<4, 12, ::BlockPos> mPos;
32 ::ll::TypedStorage<8, 8, ::Random&> mRandom;
33 ::ll::TypedStorage<8, 8, ::RenderParams&> mRenderParams;
34 ::ll::TypedStorage<8, 8, ::FeaturePlacementFailureLogProxy> mLogger;
35 // NOLINTEND
36
37 public:
38 // prevent constructor by default
39 PlacementContext& operator=(PlacementContext const&);
40 PlacementContext(PlacementContext const&);
41 PlacementContext();
42 };
43
44public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<1, 1, bool> mInternal;
48 ::ll::TypedStorage<1, 1, bool> mCanUseInternalFeature;
49 // NOLINTEND
50
51public:
52 // virtual functions
53 // NOLINTBEGIN
54 virtual ~IFeature();
55
56 virtual ::std::optional<::BlockPos> place(::IFeature::PlacementContext const&) const = 0;
57
58 virtual bool isValidPlacement(::std::string const& pass);
59
60 virtual void upgradeFormat(::SemVersion const&);
61 // NOLINTEND
62
63public:
64 // static functions
65 // NOLINTBEGIN
66 MCAPI static bool
67 isExposedTo(::IBlockWorldGenAPI const& target, ::BlockPos const& candidatePos, ::BlockDescriptor const& exposedTo);
68 // NOLINTEND
69
70public:
71 // static variables
72 // NOLINTBEGIN
73 MCAPI static ::std::string_view const& DEFAULT_NOT_SUPPORTED_PASS();
74 // NOLINTEND
75
76public:
77 // destructor thunk
78 // NOLINTBEGIN
79 MCFOLD void $dtor();
80 // NOLINTEND
81
82public:
83 // virtual function thunks
84 // NOLINTBEGIN
85 MCAPI bool $isValidPlacement(::std::string const& pass);
86
87 MCFOLD void $upgradeFormat(::SemVersion const&);
88
89
90 // NOLINTEND
91
92public:
93 // vftables
94 // NOLINTBEGIN
95 MCNAPI static void** $vftable();
96 // NOLINTEND
97};
Definition BlockDescriptor.h:20
Definition BlockPos.h:19
Definition IBlockWorldGenAPI.h:25
Definition IFeature.h:18
static MCAPI void ** $vftable()
Definition Random.h:10
Definition RenderParams.h:30
Definition SemVersion.h:15
Definition IFeature.h:26