LeviLamina
Loading...
Searching...
No Matches
SkullBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/block/ActorBlockBase.h"
7#include "mc/world/level/block/BlockSupportType.h"
8#include "mc/world/level/block/BlockType.h"
9
10// auto generated forward declare list
11// clang-format off
12class AABB;
13class Actor;
14class Block;
15class BlockActor;
16class BlockPos;
17class BlockSource;
18class Experiments;
19class Level;
20class Vec3;
21namespace BlockEvents { class BlockPlaceEvent; }
22// clang-format on
23
24class SkullBlock : public ::ActorBlock {
25public:
26 // SkullBlock inner types define
27 enum class SkullType : int {
28 Unset = -1,
29 Skeleton = 0,
30 Wither = 1,
31 Zombie = 2,
32 Char = 3,
33 Creeper = 4,
34 Dragon = 5,
35 Piglin = 6,
36 Count = 7,
37 };
38
39public:
40 // virtual functions
41 // NOLINTBEGIN
42 virtual ::std::string buildDescriptionId(::Block const& block) const /*override*/;
43
44 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
45
46 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
47
48 virtual ::Block const&
49 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
50 /*override*/;
51
52 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
53
54 virtual bool canProvideSupport(::Block const& block, uchar face, ::BlockSupportType type) const /*override*/;
55
56 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
57
58 virtual ~SkullBlock() /*override*/ = default;
59 // NOLINTEND
60
61public:
62 // member functions
63 // NOLINTBEGIN
64 MCAPI bool checkMobSpawn(::Level& level, ::BlockSource& region, ::BlockPos const& pos) const;
65
66 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
67 // NOLINTEND
68
69public:
70 // static functions
71 // NOLINTBEGIN
72 MCAPI static ::Block const& getFlattenedBlock(::Block const& block, ::BlockActor const& actor);
73 // NOLINTEND
74
75public:
76 // virtual function thunks
77 // NOLINTBEGIN
78 MCAPI ::std::string $buildDescriptionId(::Block const& block) const;
79
80 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
81
82 MCFOLD bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
83
84 MCAPI ::Block const& $getPlacementBlock(
85 ::Actor const& by,
86 ::BlockPos const& pos,
87 uchar face,
88 ::Vec3 const& clickPos,
89 int itemValue
90 ) const;
91
92 MCAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
93
94 MCAPI bool $canProvideSupport(::Block const& block, uchar face, ::BlockSupportType type) const;
95
96 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
97
98
99 // NOLINTEND
100
101public:
102 // vftables
103 // NOLINTBEGIN
104 MCAPI static void** $vftable();
105 // NOLINTEND
106};
Definition AABB.h:18
Definition Actor.h:105
Definition BlockActor.h:32
Definition BlockPlaceEvent.h:16
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition Block.h:43
Definition Creeper.h:13
Definition Experiments.h:14
Definition Level.h:249
Definition Piglin.h:18
Definition Skeleton.h:19
Definition SkullBlock.h:24
Definition Vec3.h:10
Definition Zombie.h:20