Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
RedStoneWireBlock.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/optional_ref.h"
7#include "mc/world/Direction.h"
8#include "mc/world/level/block/BlockType.h"
9#include "mc/world/level/block/RedstoneSide.h"
10
11// auto generated forward declare list
12// clang-format off
13class AABB;
14class Actor;
15class Block;
16class BlockActor;
17class BlockPos;
18class BlockSource;
21class ItemInstance;
22class Vec3;
24namespace BlockEvents { class BlockPlaceEvent; }
25namespace BlockEvents { class BlockQueuedTickEvent; }
26namespace BlockEvents { class BlockRedstoneUpdateEvent; }
27// clang-format on
28
29class RedStoneWireBlock : public ::BlockType {
30public:
31 // RedStoneWireBlock inner types declare
32 // clang-format off
34 // clang-format on
35
36 // RedStoneWireBlock inner types define
38 public:
39 // member variables
40 // NOLINTBEGIN
41 ::ll::TypedStorage<4, 4, ::RedstoneSide> north;
42 ::ll::TypedStorage<4, 4, ::RedstoneSide> east;
43 ::ll::TypedStorage<4, 4, ::RedstoneSide> south;
44 ::ll::TypedStorage<4, 4, ::RedstoneSide> west;
45 // NOLINTEND
46 };
47
48public:
49 // member variables
50 // NOLINTBEGIN
51 ::ll::TypedStorage<4, 4, int const> mConnectionUpdateFlags;
52 // NOLINTEND
53
54public:
55 // prevent constructor by default
56 RedStoneWireBlock();
57
58public:
59 // virtual functions
60 // NOLINTBEGIN
61 virtual ::AABB getCollisionShape(
62 ::Block const&,
64 ::BlockPos const&,
66 ) const /*override*/;
67
68 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
69
70 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
71
72 virtual void onStructureBlockPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
73
74 virtual ::Block const&
75 getPlacementBlock(::Actor const& by, ::BlockPos const& pos, uchar face, ::Vec3 const& clickPos, int itemValue) const
76 /*override*/;
77
78 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
79
80 virtual bool requiresLegacyRedstoneSetup() const /*override*/;
81
82 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
83 /*override*/;
84
85 virtual ::ItemInstance asItemInstance(::Block const&, ::BlockActor const*) const /*override*/;
86
87 virtual void animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const /*override*/;
88
89 virtual bool
90 shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const
91 /*override*/;
92
93 virtual bool canSpawnOn(::Actor*) const /*override*/;
94
95 virtual void onRemove(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
96 // NOLINTEND
97
98public:
99 // member functions
100 // NOLINTBEGIN
101 MCNAPI RedStoneWireBlock(::std::string const& nameId, int id, int connectionUpdateFlags);
102
103 MCAPI void _onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
104
105 MCNAPI void
106 _updateIndirectConnectionShapes(::BlockSource& region, ::BlockPos const& pos, bool isBeingRemoved) const;
107
108 MCNAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
109
110 MCAPI void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
111
112 MCAPI void updateConnectionShape(::BlockSource& region, ::BlockPos const& pos) const;
113 // NOLINTEND
114
115public:
116 // static functions
117 // NOLINTBEGIN
118 MCNAPI static bool _shouldUpdateConnectionShapes(::BlockSource& region, ::BlockPos const& pos);
119
120 MCNAPI static ::RedstoneSide
121 computeWireSideShape(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction);
122 // NOLINTEND
123
124public:
125 // constructor thunks
126 // NOLINTBEGIN
127 MCNAPI void* $ctor(::std::string const& nameId, int id, int connectionUpdateFlags);
128 // NOLINTEND
129
130public:
131 // virtual function thunks
132 // NOLINTBEGIN
134 ::Block const&,
135 ::IConstBlockSource const&,
136 ::BlockPos const&,
138 ) const;
139
140 MCNAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
141
142 MCNAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
143
144 MCNAPI void $onStructureBlockPlace(::BlockSource& region, ::BlockPos const& pos) const;
145
146 MCNAPI ::Block const& $getPlacementBlock(
147 ::Actor const& by,
148 ::BlockPos const& pos,
149 uchar face,
150 ::Vec3 const& clickPos,
151 int itemValue
152 ) const;
153
154 MCAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
155
156 MCNAPI bool $requiresLegacyRedstoneSetup() const;
157
158 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
159
160 MCNAPI ::ItemInstance $asItemInstance(::Block const&, ::BlockActor const*) const;
161
162 MCNAPI void $animateTickBedrockLegacy(::BlockAnimateTickData const& tickData) const;
163
164 MCNAPI bool
165 $shouldConnectToRedstone(::BlockSource& region, ::BlockPos const& pos, ::Direction::Type direction) const;
166
167 MCNAPI bool $canSpawnOn(::Actor*) const;
168
169 MCNAPI void $onRemove(::BlockSource& region, ::BlockPos const& pos) const;
170
171
172 // NOLINTEND
173
174public:
175 // vftables
176 // NOLINTBEGIN
177 MCNAPI static void** $vftable();
178 // NOLINTEND
179};
Definition AABB.h:18
Definition Actor.h:116
Definition BlockActor.h:30
Definition BlockPlaceEvent.h:16
Definition BlockQueuedTickEvent.h:16
Definition BlockRedstoneUpdateEvent.h:15
Definition BlockPos.h:14
Definition BlockSource.h:72
Definition Block.h:42
Definition Direction.h:5
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:25
Definition ItemInstance.h:15
MCAPI::ItemInstance $asItemInstance(::Block const &, ::BlockActor const *) const
MCAPI void onPlace(::BlockEvents::BlockPlaceEvent &eventData) const
MCAPI void _updateIndirectConnectionShapes(::BlockSource &region, ::BlockPos const &pos, bool isBeingRemoved) const
MCAPI bool $shouldConnectToRedstone(::BlockSource &region, ::BlockPos const &pos, ::Direction::Type direction) const
MCAPI bool $mayPlace(::BlockSource &region, ::BlockPos const &pos) const
MCAPI bool $requiresLegacyRedstoneSetup() const
MCAPI void $animateTickBedrockLegacy(::BlockAnimateTickData const &tickData) const
static MCAPI ::RedstoneSide computeWireSideShape(::BlockSource &region, ::BlockPos const &pos, ::Direction::Type direction)
MCAPI bool $canSurvive(::BlockSource &region, ::BlockPos const &pos) const
MCAPI void $onRemove(::BlockSource &region, ::BlockPos const &pos) const
static MCAPI bool _shouldUpdateConnectionShapes(::BlockSource &region, ::BlockPos const &pos)
MCAPI void $onStructureBlockPlace(::BlockSource &region, ::BlockPos const &pos) const
MCAPI::Block const & $getPlacementBlock(::Actor const &by, ::BlockPos const &pos, uchar face, ::Vec3 const &clickPos, int itemValue) const
MCAPI bool $canSpawnOn(::Actor *) const
static MCAPI void ** $vftable()
MCAPI::AABB $getCollisionShape(::Block const &, ::IConstBlockSource const &, ::BlockPos const &, ::optional_ref<::GetCollisionShapeInterface const >) const
MCAPI void * $ctor(::std::string const &nameId, int id, int connectionUpdateFlags)
Definition Vec3.h:10
Definition optional_ref.h:10
STL namespace.
Definition BlockAnimateTickData.h:14
Definition RedStoneWireBlock.h:37