Skip to content
LeviMC
English
AutoLightDark
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 ItemInstance;
18namespace BlockEvents { class BlockPlaceEvent; }
19namespace BlockEvents { class BlockPlayerInteractEvent; }
20namespace BlockEvents { class BlockQueuedTickEvent; }
21namespace BlockEvents { class BlockRedstoneUpdateEvent; }
22namespace BlockEvents { class BlockStateChangeEvent; }
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 // prevent constructor by default
34 ComparatorBlock();
35
36public:
37 // virtual functions
38 // NOLINTBEGIN
39 virtual int getVariant(::Block const& block) const /*override*/;
40
41 virtual bool canSpawnOn(::Actor*) const /*override*/;
42
43 virtual bool isInteractiveBlock() const /*override*/;
44
45 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
46
47 virtual bool requiresLegacyRedstoneSetup() const /*override*/;
48
49 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
50
51 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
52
53 virtual void triggerEvent(::BlockSource& region, ::BlockPos const& pos, int b0, int b1) const /*override*/;
54
55 virtual bool isSignalSource() const /*override*/;
56
57 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
58 /*override*/;
59
60 virtual ::ItemInstance asItemInstance(::Block const&, ::BlockActor const*) const /*override*/;
61
62 virtual int getDirectSignal(::BlockSource& region, ::BlockPos const& pos, int dir) const /*override*/;
63
64 virtual bool
65 shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const
66 /*override*/;
67
68 virtual bool isPreservingMediumWhenPlaced(::BlockType const* medium) const /*override*/;
69 // NOLINTEND
70
71public:
72 // member functions
73 // NOLINTBEGIN
74 MCNAPI ComparatorBlock(::std::string const& nameId, int id, bool on);
75
76 MCNAPI void _installCircuit(::BlockSource& region, ::BlockPos const& pos, bool loading) const;
77
78 MCAPI void _onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
79
80 MCNAPI void _onStateChange(::BlockEvents::BlockStateChangeEvent const& eventData) const;
81
82 MCNAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
83
84 MCNAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
85
86 MCNAPI void use(::BlockEvents::BlockPlayerInteractEvent& eventData) const;
87 // NOLINTEND
88
89public:
90 // static functions
91 // NOLINTBEGIN
92 MCNAPI static void _refreshOutputState(::BlockSource& region, ::BlockPos const& pos, int strength);
93 // NOLINTEND
94
95public:
96 // constructor thunks
97 // NOLINTBEGIN
98 MCNAPI void* $ctor(::std::string const& nameId, int id, bool on);
99 // NOLINTEND
100
101public:
102 // virtual function thunks
103 // NOLINTBEGIN
104 MCNAPI int $getVariant(::Block const& block) const;
105
106 MCNAPI bool $canSpawnOn(::Actor*) const;
107
108 MCNAPI bool $isInteractiveBlock() const;
109
110 MCNAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
111
112 MCNAPI bool $requiresLegacyRedstoneSetup() const;
113
114 MCNAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
115
116 MCNAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
117
118 MCNAPI void $triggerEvent(::BlockSource& region, ::BlockPos const& pos, int b0, int b1) const;
119
120 MCNAPI bool $isSignalSource() const;
121
122 MCNAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
123
124 MCNAPI ::ItemInstance $asItemInstance(::Block const&, ::BlockActor const*) const;
125
126 MCNAPI int $getDirectSignal(::BlockSource& region, ::BlockPos const& pos, int dir) const;
127
128 MCNAPI bool
129 $shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const;
130
131 MCNAPI bool $isPreservingMediumWhenPlaced(::BlockType const* medium) const;
132
133
134 // NOLINTEND
135
136public:
137 // vftables
138 // NOLINTBEGIN
139 MCNAPI static void** $vftable();
140 // NOLINTEND
141};
Definition Actor.h:116
Definition BlockActor.h:30
Definition BlockPlaceEvent.h:16
Definition BlockPlayerInteractEvent.h:18
Definition BlockQueuedTickEvent.h:16
Definition BlockRedstoneUpdateEvent.h:15
Definition BlockStateChangeEvent.h:17
Definition BlockPos.h:14
Definition BlockSource.h:72
Definition Block.h:42
MCAPI bool $canSpawnOn(::Actor *) const
MCAPI::ItemInstance $asItemInstance(::Block const &, ::BlockActor const *) const
MCAPI bool $canSurvive(::BlockSource &region, ::BlockPos const &pos) const
MCAPI bool $shouldConnectToRedstone(::BlockSource &region, ::BlockPos const &pos, ::Direction::Type direction) const
MCAPI bool $requiresLegacyRedstoneSetup() const
MCAPI bool $mayPlace(::BlockSource &region, ::BlockPos const &pos) const
static MCAPI void _refreshOutputState(::BlockSource &region, ::BlockPos const &pos, int strength)
MCAPI void $setupRedstoneComponent(::BlockSource &region, ::BlockPos const &pos) const
MCAPI void _onStateChange(::BlockEvents::BlockStateChangeEvent const &eventData) const
MCAPI void $triggerEvent(::BlockSource &region, ::BlockPos const &pos, int b0, int b1) const
MCAPI int $getDirectSignal(::BlockSource &region, ::BlockPos const &pos, int dir) const
MCAPI void tick(::BlockEvents::BlockQueuedTickEvent &eventData) const
MCAPI int $getVariant(::Block const &block) const
MCAPI bool $isSignalSource() const
MCAPI bool $isPreservingMediumWhenPlaced(::BlockType const *medium) const
static MCAPI void ** $vftable()
MCAPI bool $isInteractiveBlock() const
MCAPI void $neighborChanged(::BlockSource &region, ::BlockPos const &pos, ::BlockPos const &neighborPos) const
MCAPI void _installCircuit(::BlockSource &region, ::BlockPos const &pos, bool loading) const
MCAPI void * $ctor(::std::string const &nameId, int id, bool on)
MCAPI void use(::BlockEvents::BlockPlayerInteractEvent &eventData) const
MCAPI ComparatorBlock(::std::string const &nameId, int id, bool on)
MCAPI void onPlace(::BlockEvents::BlockPlaceEvent &eventData) const
Definition ItemInstance.h:15