LeviLamina
Loading...
Searching...
No Matches
BaseRailBlock.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/level/block/BlockLegacy.h"
8#include "mc/world/level/block/BlockRenderLayer.h"
9
10// auto generated forward declare list
11// clang-format off
12class AABB;
13class Actor;
14class Block;
15class BlockPos;
16class BlockSource;
17class Experiments;
21namespace BlockEvents { class BlockPlaceEvent; }
22namespace BlockEvents { class BlockQueuedTickEvent; }
23// clang-format on
24
26public:
27 // BaseRailBlock inner types declare
28 // clang-format off
29 class Rail;
30 // clang-format on
31
32 // BaseRailBlock inner types define
33 class Rail {
34 public:
35 // member variables
36 // NOLINTBEGIN
41 // NOLINTEND
42
43 public:
44 // prevent constructor by default
45 Rail& operator=(Rail const&);
46 Rail(Rail const&);
47 Rail();
48
49 public:
50 // member functions
51 // NOLINTBEGIN
52 MCNAPI Rail(::BlockSource& region, ::BlockPos const& pos);
53
54 MCNAPI void connectTo(::BaseRailBlock::Rail& rail);
55
56 MCNAPI ::std::shared_ptr<::BaseRailBlock::Rail> getRail(::BlockPos const& p);
57
58 MCNAPI bool hasNeighborRail(::BlockPos const& pos);
59
60 MCNAPI void place(int signalStrength, bool first);
61
62 MCNAPI void removeSoftConnections();
63
64 MCNAPI void updateConnections(int direction);
65
66 MCNAPI ~Rail();
67 // NOLINTEND
68
69 public:
70 // constructor thunks
71 // NOLINTBEGIN
72 MCNAPI void* $ctor(::BlockSource& region, ::BlockPos const& pos);
73 // NOLINTEND
74
75 public:
76 // destructor thunk
77 // NOLINTBEGIN
78 MCNAPI void $dtor();
79 // NOLINTEND
80 };
81
82public:
83 // member variables
84 // NOLINTBEGIN
85 ::ll::TypedStorage<1, 1, bool const> mUsesDataBit;
86 // NOLINTEND
87
88public:
89 // virtual functions
90 // NOLINTBEGIN
91 // vIndex: 11
92 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
93
94 // vIndex: 5
95 virtual ::AABB getCollisionShape(
96 ::Block const&,
98 ::BlockPos const&,
100 ) const /*override*/;
101
102 // vIndex: 78
103 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
104
105 // vIndex: 139
106 virtual ::BlockRenderLayer getRenderLayer(::Block const&, ::BlockSource& region, ::BlockPos const& pos) const
107 /*override*/;
108
109 // vIndex: 66
110 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
111
112 // vIndex: 60
113 virtual void onRedstoneUpdate(::BlockSource& region, ::BlockPos const& pos, int strength, bool isFirstTime) const
114 /*override*/;
115
116 // vIndex: 86
117 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
118 /*override*/;
119
120 // vIndex: 38
121 virtual bool isRailBlock() const /*override*/;
122
123 // vIndex: 118
124 virtual bool canSpawnOn(::Actor*) const /*override*/;
125
126 // vIndex: 30
127 virtual bool isLavaBlocking() const /*override*/;
128
129 // vIndex: 114
130 virtual void onGraphicsModeChanged(::BlockGraphicsModeChangeContext const& context) /*override*/;
131
132 // vIndex: 147
133 virtual void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
134
135 // vIndex: 138
136 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
137
138 // vIndex: 130
139 virtual void _addHardCodedBlockComponents(::Experiments const&) /*override*/;
140
141 // vIndex: 0
142 virtual ~BaseRailBlock() /*override*/ = default;
143 // NOLINTEND
144
145public:
146 // member functions
147 // NOLINTBEGIN
148 MCFOLD void _updatePlacement(::BlockSource& region, ::BlockPos const& pos) const;
149
150 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
151
152 MCAPI void updateDir(::BlockSource& region, ::BlockPos const& pos, bool first) const;
153 // NOLINTEND
154
155public:
156 // static functions
157 // NOLINTBEGIN
158 MCAPI static void _createCircuitComponent(::BlockSource& region, ::BlockPos const& pos);
159 // NOLINTEND
160
161public:
162 // virtual function thunks
163 // NOLINTBEGIN
164 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
165
166 MCFOLD ::AABB $getCollisionShape(
167 ::Block const&,
168 ::IConstBlockSource const&,
169 ::BlockPos const&,
171 ) const;
172
173 MCAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
174
175 MCAPI ::BlockRenderLayer $getRenderLayer(::Block const&, ::BlockSource& region, ::BlockPos const& pos) const;
176
177 MCAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
178
179 MCAPI void $onRedstoneUpdate(::BlockSource& region, ::BlockPos const& pos, int strength, bool isFirstTime) const;
180
181 MCAPI void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
182
183 MCFOLD bool $isRailBlock() const;
184
185 MCFOLD bool $canSpawnOn(::Actor*) const;
186
187 MCFOLD bool $isLavaBlocking() const;
188
189 MCAPI void $onGraphicsModeChanged(::BlockGraphicsModeChangeContext const& context);
190
191 MCAPI void $tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
192
193 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
194
195 MCAPI void $_addHardCodedBlockComponents(::Experiments const&);
196 // NOLINTEND
197};
Definition AABB.h:18
Definition Actor.h:103
Definition BaseRailBlock.h:33
MCAPI void removeSoftConnections()
MCAPI void $dtor()
MCAPI bool hasNeighborRail(::BlockPos const &pos)
MCAPI Rail(::BlockSource &region, ::BlockPos const &pos)
MCAPI void updateConnections(int direction)
MCAPI ::std::shared_ptr<::BaseRailBlock::Rail > getRail(::BlockPos const &p)
MCAPI void connectTo(::BaseRailBlock::Rail &rail)
MCAPI void place(int signalStrength, bool first)
MCAPI void * $ctor(::BlockSource &region, ::BlockPos const &pos)
Definition BaseRailBlock.h:25
Definition BlockLegacy.h:88
Definition BlockPos.h:18
Definition BlockSource.h:67
Definition Block.h:38
Definition Experiments.h:14
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:24
Definition optional_ref.h:10
Definition BlockGraphicsModeChangeContext.h:5
Definition context.h:5
Definition Alias.h:14