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(
39 ::IBlockSource& region,
40 ::BlockPos pos,
41 ::BlockPos structurePos,
42 ::std::vector<::br::worldgen::StructureBlockInfo> const& originalBlocks,
43 ::std::vector<::br::worldgen::StructureBlockInfo>&& processedBlocks,
45 ) const;
46
47 virtual ::br::worldgen::StructureProcessorType type() const;
48
49 virtual void appendMetadataKey(::Util::XXHash& hash) 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 // NOLINTEND
70
71public:
72 // virtual function thunks
73 // NOLINTBEGIN
74 MCAPI ::std::optional<::br::worldgen::StructureBlockInfo> $process(
79 ::br::worldgen::StructureBlockInfo&& processedBlockInfo,
81 ) const;
82
83 MCAPI ::std::vector<::br::worldgen::StructureBlockInfo> $finalize(
84 ::IBlockSource& region,
85 ::BlockPos pos,
86 ::BlockPos structurePos,
87 ::std::vector<::br::worldgen::StructureBlockInfo> const& originalBlocks,
88 ::std::vector<::br::worldgen::StructureBlockInfo>&& processedBlocks,
90 ) const;
91
92 MCFOLD ::br::worldgen::StructureProcessorType $type() const;
93
94 MCAPI void $appendMetadataKey(::Util::XXHash& hash) const;
95
96
97 // NOLINTEND
98};
99
100} // namespace br::worldgen
Definition BlockPos.h:17
Definition HashedString.h:5
Definition IBlockSource.h:39
Definition XXHash.h:7
Definition IntProvider.h:15
Definition Reference.h:8
Definition StructureBlockInfo.h:16
Definition StructurePlaceSettings.h:18
Definition StructureProcessor.h:23
Definition RuleSet.h:17