LeviLamina
Loading...
Searching...
No Matches
SnapToSurfaceFeature.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/game_refs/WeakRef.h"
7#include "mc/world/level/levelgen/feature/IFeature.h"
8
9// auto generated forward declare list
10// clang-format off
11class BlockDescriptor;
12class BlockPos;
14// clang-format on
15
17public:
18 // SnapToSurfaceFeature inner types define
19 enum class Surface : int {
20 Ceiling = 0,
21 Floor = 1,
22 RandomHorizontal = 2,
23 };
24
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<8, 24, ::WeakRef<::IFeature>> mFeatureToSnap;
29 ::ll::TypedStorage<4, 4, int> mVerticalSearchRange;
30 ::ll::TypedStorage<4, 4, ::SnapToSurfaceFeature::Surface> mSurface;
31 ::ll::TypedStorage<8, 24, ::std::vector<::BlockDescriptor>> mAllowedSurfaceBlocks;
32 ::ll::TypedStorage<1, 1, bool> mAllowAirPlacement;
33 ::ll::TypedStorage<1, 1, bool> mAllowUnderwaterPlacement;
34 // NOLINTEND
35
36public:
37 // virtual functions
38 // NOLINTBEGIN
39 virtual ~SnapToSurfaceFeature() /*override*/ = default;
40
41 virtual ::std::optional<::BlockPos> place(::IFeature::PlacementContext const& context) const /*override*/;
42 // NOLINTEND
43
44public:
45 // member functions
46 // NOLINTBEGIN
47 MCAPI ::std::optional<::BlockPos> _findSnapPos(
48 ::IBlockWorldGenAPI& target,
49 ::BlockPos const& pos,
50 ::SnapToSurfaceFeature::Surface targetSurface
51 ) const;
52 // NOLINTEND
53
54public:
55 // virtual function thunks
56 // NOLINTBEGIN
57 MCAPI ::std::optional<::BlockPos> $place(::IFeature::PlacementContext const& context) const;
58
59
60 // NOLINTEND
61
62public:
63 // vftables
64 // NOLINTBEGIN
65 MCNAPI static void** $vftable();
66 // NOLINTEND
67};
Definition BlockDescriptor.h:20
Definition BlockPos.h:19
Definition IBlockWorldGenAPI.h:25
Definition IFeature.h:18
Definition SnapToSurfaceFeature.h:16
static MCAPI void ** $vftable()
Definition IFeature.h:26
Definition context.h:5