Skip to content
LeviMC
English
AutoLightDark
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 MCNAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
56 BlockIgnore(::std::vector<::SharedTypes::Reference<0>> const& blocks);
57
58 MCNAPI 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 MCNAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
63
64 MCNAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
65 Protected(::std::string_view tag);
66
67 MCNAPI static ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor>>
68 Rule(::std::vector<::br::worldgen::processors::RuleSet> rules);
69
70 MCNAPI static void bootstrap();
71 // NOLINTEND
72
73public:
74 // virtual function thunks
75 // NOLINTBEGIN
76 MCNAPI ::std::optional<::br::worldgen::StructureBlockInfo> $process(
81 ::br::worldgen::StructureBlockInfo&& processedBlockInfo,
83 ) const;
84
85 MCNAPI ::std::vector<::br::worldgen::StructureBlockInfo> $finalize(
86 ::IBlockSource& region,
87 ::BlockPos pos,
88 ::BlockPos structurePos,
89 ::std::vector<::br::worldgen::StructureBlockInfo> const& originalBlocks,
90 ::std::vector<::br::worldgen::StructureBlockInfo>&& processedBlocks,
92 ) const;
93
94 MCNAPI ::br::worldgen::StructureProcessorType $type() const;
95
96 MCNAPI void $appendMetadataKey(::Util::XXHash& hash) 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:14
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
MCAPI ::std::optional<::br::worldgen::StructureBlockInfo > $process(::IBlockSource &, ::BlockPos, ::BlockPos, ::br::worldgen::StructureBlockInfo const &, ::br::worldgen::StructureBlockInfo &&processedBlockInfo, ::br::worldgen::StructurePlaceSettings const &) const
static MCAPI ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor > > BlockIgnore(::std::vector<::SharedTypes::Reference< 0 > > const &blocks)
static MCAPI ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor > > Capped(::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor > > delegate, ::IntProvider limit)
MCAPI::br::worldgen::StructureProcessorType $type() const
static MCAPI ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor > > Protected(::HashedString const &tag)
MCAPI ::std::vector<::br::worldgen::StructureBlockInfo > $finalize(::IBlockSource &region, ::BlockPos pos, ::BlockPos structurePos, ::std::vector<::br::worldgen::StructureBlockInfo > const &originalBlocks, ::std::vector<::br::worldgen::StructureBlockInfo > &&processedBlocks, ::br::worldgen::StructurePlaceSettings const &settings) const
static MCAPI void ** $vftable()
MCAPI void $appendMetadataKey(::Util::XXHash &hash) const
static MCAPI ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor > > Protected(::std::string_view tag)
static MCAPI ::gsl::not_null<::std::shared_ptr<::br::worldgen::StructureProcessor > > Rule(::std::vector<::br::worldgen::processors::RuleSet > rules)
static MCAPI void bootstrap()
Definition RuleSet.h:17