Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
BaseCircuitComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/container/RefCountedSet.h"
7#include "mc/world/level/BlockPos.h"
8#include "mc/world/redstone/circuit/components/CircuitComponentList.h"
9#include "mc/world/redstone/circuit/components/CircuitComponentType.h"
10#include "mc/world/redstone/circuit/components/RedstoneLogicExecutionFlags.h"
11
12// auto generated forward declare list
13// clang-format off
15class CircuitSystem;
17// clang-format on
18
20public:
21 // member variables
22 // NOLINTBEGIN
23 ::ll::TypedStorage<8, 24, ::CircuitComponentList> mSources;
24 ::ll::TypedStorage<8, 16, ::Core::RefCountedSet<::BaseCircuitComponent*>> mDestinations;
25 ::ll::TypedStorage<1, 1, bool> mIgnoreFirstUpdate;
26 ::ll::TypedStorage<1, 1, bool> mIsFirstTime;
27 ::ll::TypedStorage<1, 1, bool> mNeedsUpdate;
28 ::ll::TypedStorage<4, 12, ::BlockPos> mPos;
29 ::ll::TypedStorage<4, 12, ::BlockPos> mChunkPosition;
30 ::ll::TypedStorage<1, 1, bool> mShouldEvaluate;
31 ::ll::TypedStorage<2, 2, short> mStrength;
32 ::ll::TypedStorage<2, 2, short> mOldStrength;
33 ::ll::TypedStorage<1, 1, uchar> mDirection;
34 ::ll::TypedStorage<1, 1, bool> mAllowPowerUp;
35 ::ll::TypedStorage<1, 1, bool> mAllowPowerDown;
36 ::ll::TypedStorage<1, 1, bool> mRemoved;
37 ::ll::TypedStorage<1, 1, bool> mConsumePowerAnyDirection;
38 ::ll::TypedStorage<8, 8, ::CircuitComponentType> mCircuitComponentType;
39 // NOLINTEND
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual ~BaseCircuitComponent();
45
46 virtual int getStrength() const;
47
48 virtual int getDirection() const;
49
50 virtual void setOldStrength(short strength);
51
52 virtual void setStrength(int strength);
53
54 virtual void setDirection(uchar direction);
55
56 virtual void setConsumePowerAnyDirection(bool canConsumePowerAnyDirection);
57
58 virtual bool canConsumePowerAnyDirection() const;
59
60 virtual bool canConsumerPower() const;
61
62 virtual bool canStopPower() const;
63
64 virtual void setStopPower(bool bPower);
65
66 virtual bool needsUpdate();
67
68 virtual void removeSource(::BlockPos const& posSource, ::BaseCircuitComponent const* pComponent);
69
70 virtual bool
71 addSource(::CircuitSceneGraph& graph, ::CircuitTrackingInfo const& info, int& dampening, bool& bDirectlyPowered);
72
73 virtual bool allowConnection(::CircuitSceneGraph& graph, ::CircuitTrackingInfo const& info, bool& bDirectlyPowered);
74
75 virtual void checkLock(::CircuitSystem& system, ::BlockPos const& pos);
76
77 virtual bool evaluate(::CircuitSystem& system, ::BlockPos const& pos);
78
79 virtual void cacheValues(::CircuitSystem& system, ::BlockPos const& pos);
80
81 virtual void updateDependencies(::CircuitSceneGraph& system, ::BlockPos const& pos);
82
83 virtual ::RedstoneLogicExecutionFlags getLogicExecutionFlags() const;
84
85 virtual bool allowIndirect() const;
86
87 virtual bool isHalfPulse() const;
88
89 virtual bool hasSource(::BaseCircuitComponent const& source) const;
90
91 virtual bool hasChildrenSource() const;
92
93 virtual bool isSecondaryPowered() const;
94
95 virtual void removeFromAnySourceList(::BaseCircuitComponent const* component);
96
97 virtual ::CircuitComponentType getCircuitComponentType() const;
98
99 virtual ::CircuitComponentType getCircuitComponentGroupType() const;
100 // NOLINTEND
101
102public:
103 // member functions
104 // NOLINTBEGIN
105#ifdef LL_PLAT_C
106 MCNAPI BaseCircuitComponent();
107#endif
108
110
111 MCNAPI bool trackPowerSource(
112 ::CircuitTrackingInfo const& info,
113 int dampening,
114 bool directlyPowered,
115 int data,
116 bool isDirectional
117 );
118 // NOLINTEND
119
120public:
121 // constructor thunks
122 // NOLINTBEGIN
123#ifdef LL_PLAT_C
124 MCNAPI void* $ctor();
125#endif
126 // NOLINTEND
127
128public:
129 // destructor thunk
130 // NOLINTBEGIN
131 MCNAPI void $dtor();
132 // NOLINTEND
133
134public:
135 // virtual function thunks
136 // NOLINTBEGIN
137 MCNAPI int $getStrength() const;
138
139 MCNAPI int $getDirection() const;
140
141 MCNAPI void $setOldStrength(short strength);
142
143 MCNAPI void $setStrength(int strength);
144
145 MCNAPI void $setDirection(uchar direction);
146
147 MCNAPI void $setConsumePowerAnyDirection(bool canConsumePowerAnyDirection);
148
149 MCNAPI bool $canConsumePowerAnyDirection() const;
150
151 MCNAPI bool $canConsumerPower() const;
152
153 MCNAPI bool $canStopPower() const;
154
155 MCNAPI void $setStopPower(bool bPower);
156
157 MCNAPI bool $needsUpdate();
158
159 MCNAPI void $removeSource(::BlockPos const& posSource, ::BaseCircuitComponent const* pComponent);
160
161 MCNAPI bool
162 $addSource(::CircuitSceneGraph& graph, ::CircuitTrackingInfo const& info, int& dampening, bool& bDirectlyPowered);
163
164 MCNAPI bool $allowConnection(::CircuitSceneGraph& graph, ::CircuitTrackingInfo const& info, bool& bDirectlyPowered);
165
166 MCNAPI void $checkLock(::CircuitSystem& system, ::BlockPos const& pos);
167
168 MCNAPI bool $evaluate(::CircuitSystem& system, ::BlockPos const& pos);
169
170 MCNAPI void $cacheValues(::CircuitSystem& system, ::BlockPos const& pos);
171
172 MCNAPI void $updateDependencies(::CircuitSceneGraph& system, ::BlockPos const& pos);
173
174 MCNAPI ::RedstoneLogicExecutionFlags $getLogicExecutionFlags() const;
175
176 MCNAPI bool $allowIndirect() const;
177
178 MCNAPI bool $isHalfPulse() const;
179
180 MCNAPI bool $hasSource(::BaseCircuitComponent const& source) const;
181
182 MCNAPI bool $hasChildrenSource() const;
183
184 MCNAPI bool $isSecondaryPowered() const;
185
187
188 MCNAPI ::CircuitComponentType $getCircuitComponentType() const;
189
190 MCNAPI ::CircuitComponentType $getCircuitComponentGroupType() const;
191
192
193 // NOLINTEND
194
195public:
196 // vftables
197 // NOLINTBEGIN
198 MCNAPI static void** $vftable();
199 // NOLINTEND
200};
Definition BaseCircuitComponent.h:19
MCAPI bool trackPowerSource(::CircuitTrackingInfo const &info, int dampening, bool directlyPowered, int data, bool isDirectional)
MCAPI bool $hasSource(::BaseCircuitComponent const &source) const
MCAPI int $getStrength() const
MCAPI void addSourceItem(::CircuitComponentList::Item const &item)
MCAPI bool $canStopPower() const
MCAPI void $cacheValues(::CircuitSystem &system, ::BlockPos const &pos)
MCAPI void $setDirection(uchar direction)
MCAPI void $updateDependencies(::CircuitSceneGraph &system, ::BlockPos const &pos)
MCAPI bool $isSecondaryPowered() const
MCAPI bool $addSource(::CircuitSceneGraph &graph, ::CircuitTrackingInfo const &info, int &dampening, bool &bDirectlyPowered)
MCAPI bool $evaluate(::CircuitSystem &system, ::BlockPos const &pos)
MCAPI bool $needsUpdate()
MCAPI void $setConsumePowerAnyDirection(bool canConsumePowerAnyDirection)
MCAPI void $removeFromAnySourceList(::BaseCircuitComponent const *component)
MCAPI bool $canConsumePowerAnyDirection() const
MCAPI::RedstoneLogicExecutionFlags $getLogicExecutionFlags() const
MCAPI void $setStrength(int strength)
MCAPI int $getDirection() const
MCAPI bool $canConsumerPower() const
MCAPI void $setStopPower(bool bPower)
MCAPI void $removeSource(::BlockPos const &posSource, ::BaseCircuitComponent const *pComponent)
MCAPI bool $allowIndirect() const
MCAPI bool $hasChildrenSource() const
MCAPI void $checkLock(::CircuitSystem &system, ::BlockPos const &pos)
static MCAPI void ** $vftable()
MCAPI bool $isHalfPulse() const
MCAPI void $dtor()
MCAPI bool $allowConnection(::CircuitSceneGraph &graph, ::CircuitTrackingInfo const &info, bool &bDirectlyPowered)
MCAPI::CircuitComponentType $getCircuitComponentType() const
MCAPI void $setOldStrength(short strength)
MCAPI::CircuitComponentType $getCircuitComponentGroupType() const
Definition BlockPos.h:14
Definition CircuitComponentList.h:22
Definition CircuitSceneGraph.h:18
Definition CircuitSystem.h:15
Definition CircuitTrackingInfo.h:14