LeviLamina
Loading...
Searching...
No Matches
NoteBlock.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/BlockType.h"
8
9// auto generated forward declare list
10// clang-format off
11class BlockPos;
12class BlockSource;
13class Experiments;
14class Level;
15class Player;
16class Vec3;
17namespace BlockEvents { class BlockPlaceEvent; }
18namespace BlockEvents { class BlockPlayerInteractEvent; }
19// clang-format on
20
21class NoteBlock : public ::ActorBlock {
22public:
23 // member variables
24 // NOLINTBEGIN
25 ::ll::TypedStorage<1, 1, bool> mSkullPlacementEnabled;
26 // NOLINTEND
27
28public:
29 // virtual functions
30 // NOLINTBEGIN
31 virtual bool isInteractiveBlock() const /*override*/;
32
33 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
34
35 virtual void onRedstoneUpdate(::BlockSource& region, ::BlockPos const& pos, int strength, bool isFirstTime) const
36 /*override*/;
37
38 virtual bool attack(::Player* player, ::BlockPos const& pos) const /*override*/;
39
40 virtual void triggerEvent(::BlockSource& region, ::BlockPos const& pos, int b0, int b1) const /*override*/;
41
42 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
43
44 virtual ~NoteBlock() /*override*/ = default;
45 // NOLINTEND
46
47public:
48 // member functions
49 // NOLINTBEGIN
50 MCAPI void _triggerNoteParticle(::Level& level, ::Vec3 const& vPos, int note) const;
51
52 MCAPI ::NoteBlock& enableSkullPlacement(bool enabled);
53
54 MCFOLD void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
55
56 MCAPI void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
57 // NOLINTEND
58
59public:
60 // virtual function thunks
61 // NOLINTBEGIN
62 MCFOLD bool $isInteractiveBlock() const;
63
64 MCFOLD void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
65
66 MCAPI void $onRedstoneUpdate(::BlockSource& region, ::BlockPos const& pos, int strength, bool isFirstTime) const;
67
68 MCAPI bool $attack(::Player* player, ::BlockPos const& pos) const;
69
70 MCAPI void $triggerEvent(::BlockSource& region, ::BlockPos const& pos, int b0, int b1) const;
71
72 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
73
74
75 // NOLINTEND
76
77public:
78 // vftables
79 // NOLINTBEGIN
80 MCNAPI static void** $vftable();
81 // NOLINTEND
82};
Definition BlockPlaceEvent.h:16
Definition BlockPlayerInteractEvent.h:17
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition Experiments.h:14
Definition Level.h:249
Definition NoteBlock.h:21
static MCAPI void ** $vftable()
Definition Player.h:125
Definition Vec3.h:10