LeviLamina
Loading...
Searching...
No Matches
ComponentAccessParticleEmitter.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/particlesystem/particle/ParticleEmitter.h"
7#include "mc/deps/core/utility/buffer_span.h"
8#include "mc/world/phys/AABB.h"
9
10// auto generated forward declare list
11// clang-format off
12class BlockPos;
13class HashedString;
14class Matrix;
15class Vec3;
16struct BrightnessPair;
17namespace ParticleSystem { struct CommonParticle; }
18namespace mce { class Color; }
19// clang-format on
20
21namespace ParticleSystem {
22
23class ComponentAccessParticleEmitter : public ::ParticleSystem::ParticleEmitter {
24public:
25 // ComponentAccessParticleEmitter inner types declare
26 // clang-format off
27 struct CollisionHelper;
28 // clang-format on
29
30 // ComponentAccessParticleEmitter inner types define
31 struct CollisionHelper {
32 public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<4, 24, ::AABB> mHitShape;
36 ::ll::TypedStorage<4, 4, float> mHitAlpha;
37 ::ll::TypedStorage<1, 1, uchar> mHitAxis;
38 // NOLINTEND
39 };
40
41public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<4, 4, float> mEmissionAccumulator;
45 ::ll::TypedStorage<4, 4, float> mCurrentEmitRate;
46 // NOLINTEND
47
48public:
49 // virtual functions
50 // NOLINTBEGIN
51 virtual ::Vec3 const& getPosition() const = 0;
52
53 virtual ::Matrix const& getTransform() const = 0;
54
55 virtual ::Vec3 const& getWorldPosition() const = 0;
56
57 virtual ::Vec3 const& getWorldVelocity() const = 0;
58
59 virtual void setMaxNumParticles(uint64) = 0;
60
61 virtual uint64 getMaxNumParticles() const = 0;
62
63 virtual uint64 getNumParticles() const = 0;
64
65 virtual uint64 getNumParticlesEmitted() const = 0;
66
67 virtual void setActorFrameOfReference(bool, bool, bool) = 0;
68
69 virtual void setEmitRate(float emitRate);
70
71 virtual float getEmitRate() const;
72
73 virtual void setEmissionDuration(float) = 0;
74
75 virtual float& getEmissionAccumulator();
76
77 virtual void setSleepDuration(float) = 0;
78
79 virtual void setFacing(::HashedString const&) = 0;
80
81 virtual bool blockListInitialized() = 0;
82
83 virtual void initializeBlockList(::buffer_span<::std::string>) = 0;
84
85 virtual bool blockAtPositionIsInList(::BlockPos const&) = 0;
86
87 virtual ::BrightnessPair getBrightnessPairAtBlock(::BlockPos const&) const = 0;
88
89 virtual ::BrightnessPair getMaxBrightnessPairAroundBlock(
90 ::BlockPos const&,
91 ::std::optional<::std::pair<::BlockPos, ::BlockPos>> const&
92 ) const = 0;
93
94 virtual bool getVisibilityAtBlock(::BlockPos const&) const = 0;
95
96 virtual ::mce::Color getGameplayLightForParticle(::ParticleSystem::CommonParticle const&) const = 0;
97
98 virtual ::BrightnessPair getBrightnessPairForParticle(::ParticleSystem::CommonParticle const&) const = 0;
99
100 virtual ::std::vector<::AABB> const& getCollisionShapesForBlockPosition(::BlockPos const&) = 0;
101
102 virtual ::std::vector<::AABB>& getCollisionAabbList() = 0;
103
104 virtual ::std::vector<::ParticleSystem::ComponentAccessParticleEmitter::CollisionHelper>&
105 getCollisionSweepList() = 0;
106
107 virtual void fireEvent(::HashedString const&, ::Vec3 const&, ::Vec3 const&) = 0;
108
109 virtual void fireEvent(::HashedString const&, ::Matrix const&, ::Vec3 const&) = 0;
110
111 virtual bool getUseActorPosition() const = 0;
112
113 virtual bool getUseActorRotation() const = 0;
114
115 virtual void getParticleWorldPositionAndVelocity(::ParticleSystem::CommonParticle&, ::Vec3&, ::Vec3&) = 0;
116
117 virtual bool getAreParticlesFromActorButWorldRelative() const = 0;
118
119 virtual ~ComponentAccessParticleEmitter() /*override*/;
120 // NOLINTEND
121
122public:
123 // destructor thunk
124 // NOLINTBEGIN
125 MCAPI void $dtor();
126 // NOLINTEND
127
128public:
129 // virtual function thunks
130 // NOLINTBEGIN
131 MCAPI void $setEmitRate(float emitRate);
132
133 MCFOLD float $getEmitRate() const;
134
135 MCFOLD float& $getEmissionAccumulator();
136 // NOLINTEND
137};
138
139} // namespace ParticleSystem
Definition BlockPos.h:19
Definition HashedString.h:5
Definition Matrix.h:5
Definition ComponentAccessParticleEmitter.h:7
Definition Vec3.h:10
Definition Color.h:13
Definition BrightnessPair.h:8
Definition CommonParticle.h:7
Definition ComponentAccessParticleEmitter.h:15