LeviLamina
Loading...
Searching...
No Matches
ParticleProvider.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/comprehensive/ParticleType.h"
7#include "mc/deps/core/utility/pub_sub/Connector.h"
8#include "mc/deps/core/utility/pub_sub/Publisher.h"
9
10// auto generated forward declare list
11// clang-format off
12class Actor;
13class Block;
14class BlockPos;
15class CompoundTag;
16class HashedString;
18class IRandom;
20class Vec3;
23namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
24namespace mce { class Color; }
25class Particle;
27// clang-format on
28
29class ParticleProvider {
30public:
31 // ParticleProvider inner types define
32 using AddBiomeTintedParticleFunction =
33 void(::HashedString const&, ::BlockPos const&, ::Block const&, ::std::optional<::mce::Color>);
34
35 using AddBreakingItemParticleFunction =
36 void(::Vec3 const&, ::BreakingItemParticleData const&, ::ResolvedItemIconInfo const&);
37
38 using AddTerrainParticleFunction = void(::BlockPos const&, ::Block const&, ::Vec3 const&, float, float, float);
39
40 using AddTerrainSlideFunction = void(::BlockPos const&, ::Block const&, ::Vec3 const&, float, float, float);
41
42 using SendLegacyParticleFunction = void(::ParticleType, ::Vec3 const&, ::Vec3 const&, int);
43
44public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ParticleSystemInterface>> mParticleSystemInterface;
48 ::ll::TypedStorage<
49 8,
50 128,
52 void(::ParticleType, ::Vec3 const&, ::Vec3 const&, int),
54 0>>
55 mSendServerLegacyParticlePublisher;
56 ::ll::TypedStorage<
57 8,
58 128,
60 void(::BlockPos const&, ::Block const&, ::Vec3 const&, float, float, float),
62 0>>
63 mAddTerrainParticleEffectPublisher;
64 ::ll::TypedStorage<
65 8,
66 128,
68 void(::BlockPos const&, ::Block const&, ::Vec3 const&, float, float, float),
70 0>>
71 mAddTerrainSlideEffectPublisher;
72 ::ll::TypedStorage<
73 8,
74 128,
76 void(::Vec3 const&, ::BreakingItemParticleData const&, ::ResolvedItemIconInfo const&),
78 0>>
79 mAddBreakingItemParticleEffectPublisher;
80 ::ll::TypedStorage<
81 8,
82 128,
84 void(::HashedString const&, ::BlockPos const&, ::Block const&, ::std::optional<::mce::Color>),
86 0>>
87 mAddBiomeTintedParticleEffectPublisher;
88 // NOLINTEND
89
90public:
91 // virtual functions
92 // NOLINTBEGIN
93 virtual ~ParticleProvider();
94
95 virtual void addSprintParticleEffect(::Actor const& mob, ::IConstBlockSource const& region, ::IRandom& random);
96 // NOLINTEND
97
98public:
99 // member functions
100 // NOLINTBEGIN
101 MCAPI ParticleProvider();
102
103 MCAPI void addBiomeTintedParticleEffect(
104 ::HashedString const& effect,
105 ::BlockPos const& pos,
106 ::Block const& block,
107 ::std::optional<::mce::Color> overrideColor
108 );
109
110 MCAPI void addBreakingItemParticleEffect(
111 ::Vec3 const& pos,
112 ::BreakingItemParticleData const& data,
113 ::ResolvedItemIconInfo const& textureInfo
114 );
115
116 MCAPI ::Particle* addParticle(
117 ::ParticleType type,
118 ::Vec3 const& pos,
119 ::Vec3 const& dir,
120 int data,
121 ::CompoundTag const* tag,
122 bool isGlobal
123 );
124
125 MCAPI void addParticleEffect(
126 ::HashedString const& effect,
127 ::Vec3 const& emitterPosition,
128 ::MolangVariableMap const& molangVariables
129 );
130
131 MCAPI void addTerrainParticleEffect(
132 ::BlockPos const& pos,
133 ::Block const& block,
134 ::Vec3 const& emitterPosition,
135 float intensity,
136 float velocityScalar,
137 float emitterRadius
138 );
139
140 MCAPI void addTerrainSlideEffect(
141 ::BlockPos const& pos,
142 ::Block const& block,
143 ::Vec3 const& emitterPosition,
144 float intensity,
145 float velocityScalar,
146 float emitterRadius
147 );
148
149 MCFOLD ::Bedrock::PubSub::Connector<
150 void(::HashedString const&, ::BlockPos const&, ::Block const&, ::std::optional<::mce::Color>)>&
151 getAddBiomeTintedParticleEffectConnector();
152
153 MCFOLD ::Bedrock::PubSub::Connector<
154 void(::Vec3 const&, ::BreakingItemParticleData const&, ::ResolvedItemIconInfo const&)>&
155 getAddBreakingItemParticleEffectConnector();
156
157 MCFOLD ::Bedrock::PubSub::Connector<void(::BlockPos const&, ::Block const&, ::Vec3 const&, float, float, float)>&
158 getAddTerrainParticleEffectConnector();
159
160 MCFOLD ::Bedrock::PubSub::Connector<void(::BlockPos const&, ::Block const&, ::Vec3 const&, float, float, float)>&
161 getAddTerrainSlideEffectConnector();
162
163 MCFOLD ::Bedrock::PubSub::Connector<void(::ParticleType, ::Vec3 const&, ::Vec3 const&, int)>&
164 getSendServerLegacyParticleConnector();
165
166#ifdef LL_PLAT_C
167 MCAPI ::std::function<void()>
168 initializeParticleSystemInterfaceProxy(::std::unique_ptr<::ParticleSystemInterface> particleSystemInterface);
169#endif
170
171 MCAPI void sendServerLegacyParticle(::ParticleType id, ::Vec3 const& pos, ::Vec3 const& dir, int data);
172 // NOLINTEND
173
174public:
175 // constructor thunks
176 // NOLINTBEGIN
177 MCAPI void* $ctor();
178 // NOLINTEND
179
180public:
181 // destructor thunk
182 // NOLINTBEGIN
183 MCAPI void $dtor();
184 // NOLINTEND
185
186public:
187 // virtual function thunks
188 // NOLINTBEGIN
189 MCFOLD void $addSprintParticleEffect(::Actor const& mob, ::IConstBlockSource const& region, ::IRandom& random);
190
191
192 // NOLINTEND
193
194public:
195 // vftables
196 // NOLINTBEGIN
197 MCNAPI static void** $vftable();
198 // NOLINTEND
199};
Definition Actor.h:123
Definition Publisher.h:8
Definition BlockPos.h:21
Definition Block.h:69
Definition CompoundTag.h:23
Definition HashedString.h:5
Definition IConstBlockSource.h:23
Definition IRandom.h:10
Definition MolangVariableMap.h:18
static MCAPI void ** $vftable()
Definition ParticleSystemInterface.h:5
Definition Particle.h:5
Definition Vec3.h:10
Definition Color.h:13
Definition BreakingItemParticleData.h:8
Definition ResolvedItemIconInfo.h:8