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