LeviLamina
Loading...
Searching...
No Matches
SculkSensorBlock.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/BlockSupportType.h"
9#include "mc/world/level/block/BlockType.h"
10#include "mc/world/level/block/actor/BlockActorType.h"
11
12// auto generated forward declare list
13// clang-format off
14class Actor;
15class Block;
16class BlockPos;
17class BlockSource;
18class EntityContext;
20struct Brightness;
21namespace BlockEvents { class BlockPlaceEvent; }
22namespace BlockEvents { class BlockQueuedTickEvent; }
23// clang-format on
24
25class SculkSensorBlock : public ::ActorBlock {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<4, 4, int> mActiveTicks;
30 // NOLINTEND
31
32public:
33 // prevent constructor by default
34 SculkSensorBlock();
35
36public:
37 // virtual functions
38 // NOLINTBEGIN
39 virtual bool canProvideSupport(::Block const& face, uchar, ::BlockSupportType) const /*override*/;
40
41 virtual void onStandOn(::EntityContext& entityContext, ::BlockPos const& pos) const /*override*/;
42
43 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
44
45 virtual bool isSignalSource() const /*override*/;
46
47 virtual bool shouldConnectToRedstone(::BlockSource&, ::BlockPos const&, ::Direction::Type) const /*override*/;
48
49 virtual void animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const /*override*/;
50
51 virtual ::Brightness getLightEmission(::Block const& block) const /*override*/;
52
53 virtual ::Brightness getEmissiveBrightness(::Block const& block) const /*override*/;
54
55 virtual bool hasComparatorSignal() const /*override*/;
56
57 virtual int getComparatorSignal(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, uchar) const
58 /*override*/;
59
60 virtual bool liquidCanFlowIntoFromDirection(
61 uchar flowIntoFacing,
62 ::std::function<::Block const&(::BlockPos const&)> const& getBlock,
63 ::BlockPos const& pos
64 ) const /*override*/;
65 // NOLINTEND
66
67public:
68 // member functions
69 // NOLINTBEGIN
70 MCAPI SculkSensorBlock(::std::string const& nameId, int id);
71
72 MCAPI SculkSensorBlock(::std::string const& nameId, int id, ::BlockActorType type, int activeTicks);
73
74 MCFOLD void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
75
76 MCAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
77 // NOLINTEND
78
79public:
80 // static functions
81 // NOLINTBEGIN
82 MCAPI static void _setInactivePhase(::BlockSource& region, ::Block const& block, ::BlockPos const& pos);
83
84 MCAPI static void
85 _tryResonateVibration(::BlockSource& region, ::BlockPos const& pos, ::Actor* source, int vibrationFrequency);
86
87#ifdef LL_PLAT_C
88 MCAPI static bool isActive(::Block const& block);
89#endif
90
91 MCAPI static bool isActive(::BlockSource& region, ::BlockPos const& pos);
92
93#ifdef LL_PLAT_C
94 MCAPI static bool isInactive(::Block const& block);
95#endif
96
97 MCAPI static bool isOnCooldown(::BlockSource& region, ::BlockPos const& pos);
98
99 MCAPI static void setActivePhase(
100 ::BlockSource& region,
101 ::BlockPos const& pos,
102 ::Actor* source,
103 int redstoneStrength,
104 int vibrationFrequency
105 );
106 // NOLINTEND
107
108public:
109 // constructor thunks
110 // NOLINTBEGIN
111 MCAPI void* $ctor(::std::string const& nameId, int id);
112
113 MCAPI void* $ctor(::std::string const& nameId, int id, ::BlockActorType type, int activeTicks);
114 // NOLINTEND
115
116public:
117 // virtual function thunks
118 // NOLINTBEGIN
119 MCFOLD bool $canProvideSupport(::Block const& face, uchar, ::BlockSupportType) const;
120
121 MCAPI void $onStandOn(::EntityContext& entityContext, ::BlockPos const& pos) const;
122
123 MCAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
124
125 MCFOLD bool $isSignalSource() const;
126
127 MCFOLD bool $shouldConnectToRedstone(::BlockSource&, ::BlockPos const&, ::Direction::Type) const;
128
129 MCAPI void $animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const;
130
131 MCAPI ::Brightness $getLightEmission(::Block const& block) const;
132
133 MCAPI ::Brightness $getEmissiveBrightness(::Block const& block) const;
134
135 MCFOLD bool $hasComparatorSignal() const;
136
137 MCAPI int $getComparatorSignal(::BlockSource& region, ::BlockPos const& pos, ::Block const& block, uchar) const;
138
139 MCFOLD bool $liquidCanFlowIntoFromDirection(
140 uchar flowIntoFacing,
141 ::std::function<::Block const&(::BlockPos const&)> const& getBlock,
142 ::BlockPos const& pos
143 ) const;
144
145
146 // NOLINTEND
147
148public:
149 // vftables
150 // NOLINTBEGIN
151 MCAPI static void** $vftable();
152 // NOLINTEND
153};
Definition Actor.h:125
Definition BlockPlaceEvent.h:18
Definition BlockQueuedTickEvent.h:18
Definition BlockPos.h:21
Definition BlockSource.h:73
Definition Block.h:69
Definition EntityContext.h:17
Definition BlockAnimateTickData.h:14
Definition Brightness.h:8