LeviLamina
Loading...
Searching...
No Matches
StructureProcessor.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/shared_types/util/Reference.h"
7#include "mc/world/level/levelgen/v2/processors/StructureProcessorType.h"
8
9// auto generated forward declare list
10// clang-format off
11class BlockPos;
12class HashedString;
13class IBlockSource;
14struct IntProvider;
15namespace Util { class XXHash; }
16namespace br::worldgen { struct StructureBlockInfo; }
17namespace br::worldgen { struct StructurePlaceSettings; }
18namespace br::worldgen::processors { struct RuleSet; }
19// clang-format on
20
21namespace br::worldgen {
22
24public:
25 // virtual functions
26 // NOLINTBEGIN
27 // vIndex: 0
28 virtual ~StructureProcessor() = default;
29
30 // vIndex: 1
31 virtual ::std::optional<::br::worldgen::StructureBlockInfo> process(
36 ::br::worldgen::StructureBlockInfo&& processedBlockInfo,
38 ) const;
39
40 // vIndex: 2
41 virtual ::std::vector<::br::worldgen::StructureBlockInfo> finalize(
45 ::std::vector<::br::worldgen::StructureBlockInfo> const&,
46 ::std::vector<::br::worldgen::StructureBlockInfo>&& processedBlocks,
48 ) const;
49
50 // vIndex: 3
51 virtual ::br::worldgen::StructureProcessorType type() const;
52
53 // vIndex: 4
54 virtual void appendMetadataKey(::Util::XXHash&) const;
55 // NOLINTEND
56
57public:
58 // static functions
59 // NOLINTBEGIN
60 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
61 BlockIgnore(::std::vector<::SharedTypes::Reference<0>> const& blocks);
62
63 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
64 Capped(::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>> delegate, ::IntProvider limit);
65
66 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
67 Protected(::std::string_view tag);
68
69 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
70 Protected(::HashedString const& tag);
71
72 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
73 Rule(::std::vector<::br::worldgen::processors::RuleSet> rules);
74
75 MCAPI static void bootstrap();
76 // NOLINTEND
77
78public:
79 // virtual function thunks
80 // NOLINTBEGIN
81 MCAPI ::std::optional<::br::worldgen::StructureBlockInfo> $process(
86 ::br::worldgen::StructureBlockInfo&& processedBlockInfo,
88 ) const;
89
90 MCAPI ::std::vector<::br::worldgen::StructureBlockInfo> $finalize(
94 ::std::vector<::br::worldgen::StructureBlockInfo> const&,
95 ::std::vector<::br::worldgen::StructureBlockInfo>&& processedBlocks,
97 ) const;
98
99 MCFOLD ::br::worldgen::StructureProcessorType $type() const;
100
101 MCAPI void $appendMetadataKey(::Util::XXHash&) const;
102 // NOLINTEND
103
104public:
105 // vftables
106 // NOLINTBEGIN
107 MCNAPI static void** $vftable();
108 // NOLINTEND
109};
110
111} // namespace br::worldgen
Definition BlockPos.h:17
Definition HashedString.h:5
Definition IBlockSource.h:35
Definition XXHash.h:7
Definition IntProvider.h:15
Definition RuleSet.h:10
Definition Reference.h:8
Definition StructureBlockInfo.h:16
Definition StructurePlaceSettings.h:18
Definition StructureProcessor.h:23
static MCAPI void ** $vftable()