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 // vIndex: 0
40 virtual ~SnapToSurfaceFeature() /*override*/ = default;
41
42 // vIndex: 1
43 virtual ::std::optional<::BlockPos> place(::IFeature::PlacementContext const& context) const /*override*/;
44 // NOLINTEND
45
46public:
47 // member functions
48 // NOLINTBEGIN
49 MCAPI ::std::optional<::BlockPos> _findSnapPos(
50 ::IBlockWorldGenAPI& target,
51 ::BlockPos const& pos,
52 ::SnapToSurfaceFeature::Surface targetSurface
53 ) const;
54 // NOLINTEND
55
56public:
57 // virtual function thunks
58 // NOLINTBEGIN
59 MCAPI ::std::optional<::BlockPos> $place(::IFeature::PlacementContext const& context) const;
60 // NOLINTEND
61
62public:
63 // vftables
64 // NOLINTBEGIN
65 MCNAPI static void** $vftable();
66 // NOLINTEND
67};
Definition BlockDescriptor.h:20
Definition BlockPos.h:17
Definition IBlockWorldGenAPI.h:25
Definition IFeature.h:18
Definition SnapToSurfaceFeature.h:16
static MCAPI void ** $vftable()
Definition IFeature.h:26
Definition context.h:5