LeviLamina
Loading...
Searching...
No Matches
StructurePoolBlockRule.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7class Block;
8class BlockPos;
9class BlockSource;
10class IRandom;
12class Random;
13namespace Util { class XXHash; }
14// clang-format on
15
16class StructurePoolBlockRule {
17public:
18 // member variables
19 // NOLINTBEGIN
20 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IStructurePoolBlockPredicate> const> mSourcePredicate;
21 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IStructurePoolBlockPredicate> const> mTargetPredicate;
22 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IStructurePoolBlockPredicate> const> mPositionPredicate;
23 ::ll::TypedStorage<8, 8, ::Block const*> mResultBlock;
24 // NOLINTEND
25
26public:
27 // prevent constructor by default
28 StructurePoolBlockRule();
29
30public:
31 // member functions
32 // NOLINTBEGIN
33 MCAPI StructurePoolBlockRule(
34 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& sourceBlockPredicate,
35 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& targetBlockPredicate,
36 ::Block const* resultBlock
37 );
38
39 MCAPI StructurePoolBlockRule(
40 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& sourceBlockPredicate,
41 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& targetBlockPredicate,
42 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& distancePredicate,
43 ::Block const* resultBlock
44 );
45
46 MCAPI void appendMetadataKey(::Util::XXHash& hash) const;
47
48 MCAPI bool finalizeRule(::BlockSource& region, ::IRandom& random);
49
50 MCAPI bool processRule(
51 ::Block const& sourceBlock,
52 ::Block const& targetBlock,
53 ::Random& random,
54 ::Block const*& outputBlock,
55 ::BlockPos const& worldPos,
56 ::BlockPos const& refPos
57 ) const;
58 // NOLINTEND
59
60public:
61 // constructor thunks
62 // NOLINTBEGIN
63 MCAPI void* $ctor(
64 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& sourceBlockPredicate,
65 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& targetBlockPredicate,
66 ::Block const* resultBlock
67 );
68
69 MCAPI void* $ctor(
70 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& sourceBlockPredicate,
71 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& targetBlockPredicate,
72 ::std::unique_ptr<::IStructurePoolBlockPredicate>&& distancePredicate,
73 ::Block const* resultBlock
74 );
75 // NOLINTEND
76};
Definition BlockPos.h:21
Definition BlockSource.h:72
Definition Block.h:69
Definition IRandom.h:10
Definition IStructurePoolBlockPredicate.h:17
Definition Random.h:10
Definition XXHash.h:7