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 virtual ~StructureProcessor() = default;
28
29 virtual ::std::optional<::br::worldgen::StructureBlockInfo> process(
34 ::br::worldgen::StructureBlockInfo&& processedBlockInfo,
36 ) const;
37
38 virtual ::std::vector<::br::worldgen::StructureBlockInfo> finalize(
42 ::std::vector<::br::worldgen::StructureBlockInfo> const&,
43 ::std::vector<::br::worldgen::StructureBlockInfo>&& processedBlocks,
45 ) const;
46
47 virtual ::br::worldgen::StructureProcessorType type() const;
48
49 virtual void appendMetadataKey(::Util::XXHash&) const;
50 // NOLINTEND
51
52public:
53 // static functions
54 // NOLINTBEGIN
55 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
56 BlockIgnore(::std::vector<::SharedTypes::Reference<0>> const& blocks);
57
58 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
59 Capped(::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>> delegate, ::IntProvider limit);
60
61 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
62 Protected(::HashedString const& tag);
63
64 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
65 Protected(::std::string_view tag);
66
67 MCAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
68 Rule(::std::vector<::br::worldgen::processors::RuleSet> rules);
69
70 MCAPI static void bootstrap();
71 // NOLINTEND
72
73public:
74 // virtual function thunks
75 // NOLINTBEGIN
76 MCAPI ::std::optional<::br::worldgen::StructureBlockInfo> $process(
81 ::br::worldgen::StructureBlockInfo&& processedBlockInfo,
83 ) const;
84
85 MCAPI ::std::vector<::br::worldgen::StructureBlockInfo> $finalize(
89 ::std::vector<::br::worldgen::StructureBlockInfo> const&,
90 ::std::vector<::br::worldgen::StructureBlockInfo>&& processedBlocks,
92 ) const;
93
94 MCFOLD ::br::worldgen::StructureProcessorType $type() const;
95
96 MCAPI void $appendMetadataKey(::Util::XXHash&) const;
97
98
99 // NOLINTEND
100
101public:
102 // vftables
103 // NOLINTBEGIN
104 MCNAPI static void** $vftable();
105 // NOLINTEND
106};
107
108} // namespace br::worldgen
Definition BlockPos.h:19
Definition HashedString.h:5
Definition IBlockSource.h:37
Definition XXHash.h:7
Definition IntProvider.h:15
Definition Reference.h:8
Definition StructureBlockInfo.h:16
Definition StructurePlaceSettings.h:18
Definition StructureProcessor.h:23
static MCAPI void ** $vftable()
Definition RuleSet.h:17