LeviLamina
Loading...
Searching...
No Matches
ComparatorBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/Direction.h"
7#include "mc/world/level/block/ActorBlockBase.h"
8#include "mc/world/level/block/BlockType.h"
9
10// auto generated forward declare list
11// clang-format off
12class Actor;
13class Block;
14class BlockActor;
15class BlockPos;
16class BlockSource;
17class Experiments;
18class ItemInstance;
19namespace BlockEvents { class BlockPlaceEvent; }
20namespace BlockEvents { class BlockPlayerInteractEvent; }
21namespace BlockEvents { class BlockQueuedTickEvent; }
22namespace BlockEvents { class BlockRedstoneUpdateEvent; }
23// clang-format on
24
25class ComparatorBlock : public ::ActorBlock {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<1, 1, bool> mOn;
30 // NOLINTEND
31
32public:
33 // virtual functions
34 // NOLINTBEGIN
35 virtual int getVariant(::Block const& block) const /*override*/;
36
37 virtual bool canSpawnOn(::Actor*) const /*override*/;
38
39 virtual bool isInteractiveBlock() const /*override*/;
40
41 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
42
43 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
44
45 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
46
47 virtual void triggerEvent(::BlockSource& region, ::BlockPos const& pos, int b0, int b1) const /*override*/;
48
49 virtual bool isSignalSource() const /*override*/;
50
51 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
52 /*override*/;
53
54 virtual ::ItemInstance asItemInstance(::Block const&, ::BlockActor const*) const /*override*/;
55
56 virtual int getDirectSignal(::BlockSource& region, ::BlockPos const& pos, int dir) const /*override*/;
57
58 virtual bool
59 shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const
60 /*override*/;
61
62 virtual bool isPreservingMediumWhenPlaced(::BlockType const* medium) const /*override*/;
63
64 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
65
66 virtual ~ComparatorBlock() /*override*/ = default;
67 // NOLINTEND
68
69public:
70 // member functions
71 // NOLINTBEGIN
72 MCAPI void _installCircuit(::BlockSource& region, ::BlockPos const& pos, bool loading) const;
73
74 MCAPI void _onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
75
76 MCAPI void _refreshOutputState(::BlockSource& region, ::BlockPos const& pos, int strength) const;
77
78 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
79
80 MCAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
81
82 MCAPI void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
83 // NOLINTEND
84
85public:
86 // virtual function thunks
87 // NOLINTBEGIN
88 MCFOLD int $getVariant(::Block const& block) const;
89
90 MCFOLD bool $canSpawnOn(::Actor*) const;
91
92 MCFOLD bool $isInteractiveBlock() const;
93
94 MCAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
95
96 MCAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
97
98 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
99
100 MCAPI void $triggerEvent(::BlockSource& region, ::BlockPos const& pos, int b0, int b1) const;
101
102 MCFOLD bool $isSignalSource() const;
103
104 MCFOLD void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
105
106 MCAPI ::ItemInstance $asItemInstance(::Block const&, ::BlockActor const*) const;
107
108 MCAPI int $getDirectSignal(::BlockSource& region, ::BlockPos const& pos, int dir) const;
109
110 MCFOLD bool
111 $shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const;
112
113 MCFOLD bool $isPreservingMediumWhenPlaced(::BlockType const* medium) const;
114
115 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
116
117
118 // NOLINTEND
119
120public:
121 // vftables
122 // NOLINTBEGIN
123 MCAPI static void** $vftable();
124 // NOLINTEND
125};
Definition Actor.h:105
Definition BlockActor.h:32
Definition BlockPlaceEvent.h:16
Definition BlockPlayerInteractEvent.h:17
Definition BlockQueuedTickEvent.h:16
Definition BlockRedstoneUpdateEvent.h:15
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition Block.h:43
Definition ComparatorBlock.h:25
Definition Experiments.h:14
Definition ItemInstance.h:15