LeviLamina
Loading...
Searching...
No Matches
BedBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/block/BlockType.h"
7
8// auto generated forward declare list
9// clang-format off
10class Actor;
11class Block;
12class BlockActor;
13class BlockPos;
14class BlockSource;
16class ItemInstance;
17class Player;
18class Vec3;
19namespace BlockEvents { class BlockEntityFallOnEvent; }
20namespace BlockEvents { class BlockPlaceEvent; }
21namespace BlockEvents { class BlockPlayerInteractEvent; }
22namespace mce { class Color; }
23// clang-format on
24
25class BedBlock : public ::BlockType {
26public:
27 // prevent constructor by default
28 BedBlock();
29
30public:
31 // virtual functions
32 // NOLINTBEGIN
33 virtual bool isInteractiveBlock() const /*override*/;
34
35 virtual int getVariant(::Block const& block) const /*override*/;
36
37 virtual uchar getMappedFace(uchar face, ::Block const& block) const /*override*/;
38
39 virtual ::Block const* getNextBlockPermutation(::Block const& currentBlock) const /*override*/;
40
41 virtual ::Block const* playerWillDestroy(::Player& player, ::BlockPos const& pos, ::Block const& block) const
42 /*override*/;
43
44 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
45 /*override*/;
46
47 virtual ::ItemInstance asItemInstance(::Block const& blockActor, ::BlockActor const*) const /*override*/;
48
49 virtual bool getSecondPart(::IConstBlockSource const& region, ::BlockPos const& pos, ::BlockPos& out) const
50 /*override*/;
51
52 virtual bool canFillAtPos(::BlockSource& region, ::BlockPos const& pos, ::Block const& block) const /*override*/;
53
54 virtual ::Block const& sanitizeFillBlock(::Block const& block) const /*override*/;
55
56 virtual void onFillBlock(::BlockSource& region, ::BlockPos const& pos, ::Block const& block) const /*override*/;
57
58 virtual int telemetryVariant(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
59
60 virtual bool checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const
61 /*override*/;
62
63 virtual bool canSpawnAt(::BlockSource const&, ::BlockPos const&) const /*override*/;
64
65 virtual ::mce::Color getMapColor(::BlockSource& source, ::BlockPos const& pos, ::Block const& block) const
66 /*override*/;
67
68 virtual float getBounciness(::IConstBlockSource const&, ::BlockPos const&) const /*override*/;
69 // NOLINTEND
70
71public:
72 // member functions
73 // NOLINTBEGIN
74 MCAPI BedBlock(::std::string const& nameId, int id);
75
76 MCAPI void onFallOn(::BlockEvents::BlockEntityFallOnEvent& eventData) const;
77
78 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
79
80 MCAPI void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
81 // NOLINTEND
82
83public:
84 // static functions
85 // NOLINTBEGIN
86 MCAPI static ::std::optional<::BlockPos>
87 findWakeupPosition(::BlockSource& region, ::BlockPos const& pos, ::std::optional<::Vec3> const& enteredBedPos);
88
89 MCAPI static bool isDangerousSpawnPosition(::BlockSource& region, ::BlockPos const& pos);
90
91 MCAPI static bool isValidStandUpPosition(::BlockSource& region, ::BlockPos const& pos);
92
93 MCAPI static void setOccupied(::BlockSource& region, ::BlockPos const& pos, bool occupied);
94 // NOLINTEND
95
96public:
97 // static variables
98 // NOLINTBEGIN
99 MCAPI static ::std::add_lvalue_reference_t<int[][2]> HEAD_DIRECTION_OFFSETS();
100 // NOLINTEND
101
102public:
103 // constructor thunks
104 // NOLINTBEGIN
105 MCAPI void* $ctor(::std::string const& nameId, int id);
106 // NOLINTEND
107
108public:
109 // virtual function thunks
110 // NOLINTBEGIN
111 MCFOLD bool $isInteractiveBlock() const;
112
113 MCAPI int $getVariant(::Block const& block) const;
114
115 MCAPI uchar $getMappedFace(uchar face, ::Block const& block) const;
116
117 MCFOLD ::Block const* $getNextBlockPermutation(::Block const& currentBlock) const;
118
119 MCAPI ::Block const* $playerWillDestroy(::Player& player, ::BlockPos const& pos, ::Block const& block) const;
120
121 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
122
123 MCAPI ::ItemInstance $asItemInstance(::Block const& blockActor, ::BlockActor const*) const;
124
125 MCAPI bool $getSecondPart(::IConstBlockSource const& region, ::BlockPos const& pos, ::BlockPos& out) const;
126
127 MCAPI bool $canFillAtPos(::BlockSource& region, ::BlockPos const& pos, ::Block const& block) const;
128
129 MCAPI ::Block const& $sanitizeFillBlock(::Block const& block) const;
130
131 MCAPI void $onFillBlock(::BlockSource& region, ::BlockPos const& pos, ::Block const& block) const;
132
133 MCAPI int $telemetryVariant(::BlockSource& region, ::BlockPos const& pos) const;
134
135 MCAPI bool $checkIsPathable(::Actor& entity, ::BlockPos const& lastPathPos, ::BlockPos const& pathPos) const;
136
137 MCFOLD bool $canSpawnAt(::BlockSource const&, ::BlockPos const&) const;
138
139 MCAPI ::mce::Color $getMapColor(::BlockSource& source, ::BlockPos const& pos, ::Block const& block) const;
140
141 MCAPI float $getBounciness(::IConstBlockSource const&, ::BlockPos const&) const;
142
143
144 // NOLINTEND
145
146public:
147 // vftables
148 // NOLINTBEGIN
149 MCAPI static void** $vftable();
150 // NOLINTEND
151};
Definition Actor.h:125
Definition BlockActor.h:30
Definition BlockEntityFallOnEvent.h:20
Definition BlockPlaceEvent.h:18
Definition BlockPlayerInteractEvent.h:20
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition Block.h:69
Definition IConstBlockSource.h:24
Definition ItemInstance.h:15
Definition Player.h:137
Definition Vec3.h:10
Definition Color.h:13