LeviLamina
Loading...
Searching...
No Matches
ParticleEffect.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/string/HashedString.h"
7
8// auto generated forward declare list
9// clang-format off
10class Random;
11namespace ParticleSystem { class EmitterInitialComponentBase; }
12namespace ParticleSystem { class EmitterLifetimeComponentBase; }
13namespace ParticleSystem { class EmitterRateComponentBase; }
14namespace ParticleSystem { class EmitterShapeComponentBase; }
15namespace ParticleSystem { class ParticleAppearanceComponentBase; }
16namespace ParticleSystem { class ParticleCurveBase; }
17namespace ParticleSystem { class ParticleEffectComponentRegistry; }
18namespace ParticleSystem { class ParticleEventNode; }
19namespace ParticleSystem { class ParticleInitialComponentBase; }
20namespace ParticleSystem { class ParticleLifetimeComponentBase; }
21namespace ParticleSystem { class ParticleMotionComponentBase; }
22namespace SharedTypes::v1_20_80 { struct ParticleCurve; }
23namespace SharedTypes::v1_20_80 { struct ParticleEffectComponents; }
24namespace SharedTypes::v1_20_80 { struct ParticleEffectData; }
25// clang-format on
26
27namespace ParticleSystem {
28
29class ParticleEffect {
30public:
31 // member variables
32 // NOLINTBEGIN
33 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::EmitterInitialComponentBase>>>
34 mEmitterInitialComponents;
35 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::EmitterLifetimeComponentBase>>>
36 mEmitterLifetimeComponents;
37 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::EmitterRateComponentBase>>>
38 mEmitterRateComponents;
39 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::EmitterShapeComponentBase>>>
40 mEmitterShapeComponents;
41 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::ParticleAppearanceComponentBase>>>
42 mParticleAppearanceComponents;
43 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::ParticleInitialComponentBase>>>
44 mParticleInitialComponents;
45 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::ParticleLifetimeComponentBase>>>
46 mParticleLifetimeComponents;
47 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::ParticleMotionComponentBase>>>
48 mParticleMotionComponents;
49 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ParticleSystem::ParticleCurveBase>>> mParticleCurves;
50 ::ll::TypedStorage<
51 8,
52 64,
53 ::std::unordered_map<::HashedString, ::std::unique_ptr<::ParticleSystem::ParticleEventNode>>>
54 mParticleEvents;
55 ::ll::TypedStorage<8, 32, ::std::string> mName;
56 ::ll::TypedStorage<8, 32, ::std::string> mContainerName;
57 ::ll::TypedStorage<8, 48, ::HashedString> mMaterialNameHash;
58 ::ll::TypedStorage<8, 32, ::std::string> mTextureName;
59 // NOLINTEND
60
61public:
62 // prevent constructor by default
63 ParticleEffect();
64
65public:
66 // member functions
67 // NOLINTBEGIN
68 MCAPI ParticleEffect(
69 ::SharedTypes::v1_20_80::ParticleEffectData& data,
70 ::ParticleSystem::ParticleEffectComponentRegistry const* particleComponentRegistry
71 );
72
73 MCAPI void
74 _addEffectCurveFromData(::HashedString const& curveName, ::SharedTypes::v1_20_80::ParticleCurve& curveData);
75
76 MCAPI void _generateEffectComponents(
77 ::SharedTypes::v1_20_80::ParticleEffectComponents& componentData,
78 ::ParticleSystem::ParticleEffectComponentRegistry const* particleComponentRegistry
79 );
80
81 MCAPI void _generateEffectCurves(
82 ::std::optional<::std::map<::std::string, ::SharedTypes::v1_20_80::ParticleCurve>>& curveData
83 );
84
85 MCAPI ~ParticleEffect();
86 // NOLINTEND
87
88public:
89 // static variables
90 // NOLINTBEGIN
91 MCAPI static ::std::unique_ptr<::Random>& mRandomNumberGenerator();
92 // NOLINTEND
93
94public:
95 // constructor thunks
96 // NOLINTBEGIN
97 MCAPI void* $ctor(
98 ::SharedTypes::v1_20_80::ParticleEffectData& data,
99 ::ParticleSystem::ParticleEffectComponentRegistry const* particleComponentRegistry
100 );
101 // NOLINTEND
102
103public:
104 // destructor thunk
105 // NOLINTBEGIN
106 MCAPI void $dtor();
107 // NOLINTEND
108};
109
110} // namespace ParticleSystem
Definition EmitterInitialComponentBase.h:7
Definition EmitterLifetimeComponentBase.h:7
Definition EmitterRateComponentBase.h:7
Definition EmitterShapeComponentBase.h:7
Definition ParticleAppearanceComponentBase.h:7
Definition ParticleCurveBase.h:7
Definition ParticleEffectComponentRegistry.h:7
Definition ParticleEffect.h:7
Definition ParticleEventNode.h:7
Definition ParticleInitialComponentBase.h:7
Definition ParticleLifetimeComponentBase.h:7
Definition ParticleMotionComponentBase.h:7
Definition Random.h:10
Definition ParticleCurve.h:18
Definition ParticleEffectComponents.h:15
Definition ParticleEffectData.h:19