LeviLamina
Loading...
Searching...
No Matches
ObserverBlock.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/Flip.h"
8#include "mc/world/level/block/BlockType.h"
9
10// auto generated forward declare list
11// clang-format off
12class Block;
13class BlockPos;
14class BlockSource;
15class PulseCapacitor;
16namespace BlockEvents { class BlockPlaceEvent; }
17namespace BlockEvents { class BlockQueuedTickEvent; }
18// clang-format on
19
20class ObserverBlock : public ::BlockType {
21public:
22 // prevent constructor by default
23 ObserverBlock();
24
25public:
26 // virtual functions
27 // NOLINTBEGIN
28 virtual ~ObserverBlock() /*override*/ = default;
29
30 virtual int getVariant(::Block const& block) const /*override*/;
31
32 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
33 /*override*/;
34
35 virtual void onRemove(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
36
37 virtual void movedByPiston(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
38
39 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
40
41 virtual bool
42 shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const
43 /*override*/;
44
45 virtual bool isValidAuxValue(int value) const /*override*/;
46
47 virtual bool isSignalSource() const /*override*/;
48
49 virtual bool allowStateMismatchOnPlacement(::Block const&, ::Block const&) const /*override*/;
50
51 virtual ::Block const& getRenderBlock() const /*override*/;
52
53 virtual uchar getMappedFace(uchar face, ::Block const& block) const /*override*/;
54
55 virtual ::Flip getFaceFlip(uchar face, ::Block const& block) const /*override*/;
56 // NOLINTEND
57
58public:
59 // member functions
60 // NOLINTBEGIN
61 MCAPI ObserverBlock(::std::string const& nameId, int id);
62
63 MCAPI void _installCircuit(::BlockSource& region, ::BlockPos const& pos, bool calledFromLoad, bool turnOn) const;
64
65 MCAPI void _startSignal(::BlockSource& region, ::BlockPos const& pos) const;
66
67 MCAPI void
68 _updateState(::BlockSource& region, ::BlockPos const& pos, ::PulseCapacitor& component, bool turnOn) const;
69
70 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
71
72 MCAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
73 // NOLINTEND
74
75public:
76 // constructor thunks
77 // NOLINTBEGIN
78 MCAPI void* $ctor(::std::string const& nameId, int id);
79 // NOLINTEND
80
81public:
82 // virtual function thunks
83 // NOLINTBEGIN
84 MCAPI int $getVariant(::Block const& block) const;
85
86 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
87
88 MCAPI void $onRemove(::BlockSource& region, ::BlockPos const& pos) const;
89
90 MCAPI void $movedByPiston(::BlockSource& region, ::BlockPos const& pos) const;
91
92 MCAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
93
94 MCAPI bool
95 $shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const;
96
97 MCAPI bool $isValidAuxValue(int value) const;
98
99 MCFOLD bool $isSignalSource() const;
100
101 MCFOLD bool $allowStateMismatchOnPlacement(::Block const&, ::Block const&) const;
102
103 MCAPI ::Block const& $getRenderBlock() const;
104
105 MCAPI uchar $getMappedFace(uchar face, ::Block const& block) const;
106
107 MCAPI ::Flip $getFaceFlip(uchar face, ::Block const& block) const;
108
109
110 // NOLINTEND
111
112public:
113 // vftables
114 // NOLINTBEGIN
115 MCAPI static void** $vftable();
116 // NOLINTEND
117};
Definition BlockPlaceEvent.h:18
Definition BlockQueuedTickEvent.h:18
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition Block.h:69
Definition PulseCapacitor.h:17