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/BlockPos.h"
8#include "mc/world/level/block/BlockRenderLayer.h"
9#include "mc/world/level/block/BlockType.h"
10
11// auto generated forward declare list
12// clang-format off
13class AABB;
14class Actor;
15class Block;
16class BlockSource;
19namespace BlockEvents { class BlockPlaceEvent; }
20namespace BlockEvents { class BlockQueuedTickEvent; }
21namespace BlockEvents { class BlockRedstoneUpdateEvent; }
23// clang-format on
24
25class BaseRailBlock : public ::BlockType {
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
37 ::ll::TypedStorage<8, 8, ::BlockSource&> mRegion;
38 ::ll::TypedStorage<4, 12, ::BlockPos> mPos;
39 ::ll::TypedStorage<1, 1, bool> mUsesDataBit;
40 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mConnections;
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 MCAPI Rail(::BlockSource& region, ::BlockPos const& pos);
53
54 MCAPI ::std::shared_ptr<::BaseRailBlock::Rail> getRail(::BlockPos const& p);
55
56 MCAPI bool hasNeighborRail(::BlockPos const& pos);
57
58 MCAPI void place(int signalStrength, bool first);
59
60 MCAPI void removeSoftConnections();
61
62 MCAPI void updateConnections(int direction);
63 // NOLINTEND
64
65 public:
66 // constructor thunks
67 // NOLINTBEGIN
68 MCAPI void* $ctor(::BlockSource& region, ::BlockPos const& pos);
69 // NOLINTEND
70 };
71
72public:
73 // member variables
74 // NOLINTBEGIN
75 ::ll::TypedStorage<1, 1, bool const> mUsesDataBit;
76 // NOLINTEND
77
78public:
79 // prevent constructor by default
80 BaseRailBlock();
81
82public:
83 // virtual functions
84 // NOLINTBEGIN
85 virtual ::AABB const& getVisualShape(::Block const& block, ::AABB& bufferAABB) const /*override*/;
86
87 virtual ::AABB getCollisionShape(
88 ::Block const&,
90 ::BlockPos const&,
92 ) const /*override*/;
93
94 virtual bool mayPlace(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
95
96 virtual ::BlockRenderLayer getRenderLayer(::Block const&, ::BlockSource& region, ::BlockPos const& pos) const
97 /*override*/;
98
99 virtual void setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
100
101 virtual void neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const
102 /*override*/;
103
104 virtual bool isRailBlock() const /*override*/;
105
106 virtual bool canSpawnOn(::Actor*) const /*override*/;
107
108 virtual bool isLavaBlocking() const /*override*/;
109
110 virtual void onGraphicsModeChanged(::BlockGraphicsModeChangeContext const& context) /*override*/;
111
112 virtual void tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
113
114 virtual bool canSurvive(::BlockSource& region, ::BlockPos const& pos) const /*override*/;
115
116 virtual void _onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
117 // NOLINTEND
118
119public:
120 // member functions
121 // NOLINTBEGIN
122 MCAPI BaseRailBlock(::std::string const& nameId, int id, bool usesDataBit);
123
124 MCFOLD void _onRedstoneUpdateBase(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
125
126 MCAPI void onPlace(::BlockEvents::BlockPlaceEvent& eventData) const;
127 // NOLINTEND
128
129public:
130 // static functions
131 // NOLINTBEGIN
132 MCAPI static void _createCircuitComponent(::BlockSource& region, ::BlockPos const& pos);
133
134 MCAPI static bool isCorner(::BlockSource const& region, ::BlockPos const& pos);
135
136 MCAPI static bool isFacingWestEast(::BlockSource const& region, ::BlockPos const& pos);
137
138 MCAPI static bool isRail(::Block const& block);
139
140 MCAPI static bool isRail(::IConstBlockSource const& region, ::BlockPos const& pos);
141
142 MCAPI static bool isSlope(::Block const& block);
143 // NOLINTEND
144
145public:
146 // constructor thunks
147 // NOLINTBEGIN
148 MCAPI void* $ctor(::std::string const& nameId, int id, bool usesDataBit);
149 // NOLINTEND
150
151public:
152 // virtual function thunks
153 // NOLINTBEGIN
154 MCAPI ::AABB const& $getVisualShape(::Block const& block, ::AABB& bufferAABB) const;
155
156 MCFOLD ::AABB $getCollisionShape(
157 ::Block const&,
158 ::IConstBlockSource const&,
159 ::BlockPos const&,
161 ) const;
162
163 MCAPI bool $mayPlace(::BlockSource& region, ::BlockPos const& pos) const;
164
165 MCAPI ::BlockRenderLayer $getRenderLayer(::Block const&, ::BlockSource& region, ::BlockPos const& pos) const;
166
167 MCAPI void $setupRedstoneComponent(::BlockSource& region, ::BlockPos const& pos) const;
168
169 MCFOLD void $neighborChanged(::BlockSource& region, ::BlockPos const& pos, ::BlockPos const& neighborPos) const;
170
171 MCFOLD bool $isRailBlock() const;
172
173 MCFOLD bool $canSpawnOn(::Actor*) const;
174
175 MCFOLD bool $isLavaBlocking() const;
176
177 MCAPI void $onGraphicsModeChanged(::BlockGraphicsModeChangeContext const& context);
178
179 MCAPI void $tick(::BlockEvents::BlockQueuedTickEvent& eventData) const;
180
181 MCAPI bool $canSurvive(::BlockSource& region, ::BlockPos const& pos) const;
182
183 MCAPI void $_onRedstoneUpdate(::BlockEvents::BlockRedstoneUpdateEvent& blockEvent) const;
184
185
186 // NOLINTEND
187
188public:
189 // vftables
190 // NOLINTBEGIN
191 MCNAPI static void** $vftable();
192 // NOLINTEND
193};
Definition AABB.h:18
Definition Actor.h:113
Definition BaseRailBlock.h:33
static MCAPI void ** $vftable()
Definition BlockPlaceEvent.h:16
Definition BlockQueuedTickEvent.h:16
Definition BlockRedstoneUpdateEvent.h:15
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition Block.h:41
Definition GetCollisionShapeInterface.h:13
Definition IConstBlockSource.h:25
Definition optional_ref.h:10
STL namespace.
Definition BlockGraphicsModeChangeContext.h:5
Definition context.h:5