LeviLamina
Loading...
Searching...
No Matches
ParticleSystemEngine.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/particlesystem/particle/ParticleRenderer.h"
7#include "mc/deps/core/container/dense_slot_map.h"
8#include "mc/deps/core/container/slot_map_handle.h"
9#include "mc/deps/core/math/Color.h"
10#include "mc/deps/core/math/Vec3.h"
11#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
12
13// auto generated forward declare list
14// clang-format off
15class Actor;
16class BlockSource;
17class HashedString;
18class LightTexture;
19class Matrix;
23namespace ParticleSystem { class ParticleEmitter; }
24// clang-format on
25
27public:
28 // ParticleSystemEngine inner types define
29 using ParticleSlotMap = ::Bedrock::dense_slot_map<
30 ::std::unique_ptr<::ParticleSystem::ParticleEmitter>,
31 64,
32 32,
33 ::std::allocator<::std::unique_ptr<::ParticleSystem::ParticleEmitter>>>;
34
35public:
36 // member variables
37 // NOLINTBEGIN
38 ::ll::TypedStorage<
39 8,
40 72,
41 ::Bedrock::dense_slot_map<
42 ::std::unique_ptr<::ParticleSystem::ParticleEmitter>,
43 64,
44 32,
45 ::std::allocator<::std::unique_ptr<::ParticleSystem::ParticleEmitter>>>>
46 mEmitterMap;
47 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::ParticleSystem::ParticleEmitter*>>> mEmitterTickQueue;
48 ::ll::TypedStorage<8, 64, ::ParticleRenderer> mParticleRenderer;
49 ::ll::TypedStorage<1, 1, bool> mLastTickTimeValid;
50 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastTickTime;
51 ::ll::TypedStorage<8, 8, ::ParticleEffectGroup&> mParticleEffectGroup;
52 ::ll::TypedStorage<8, 8, ::std::reference_wrapper<::BlockSource>> mBlockSource;
53 ::ll::TypedStorage<8, 8, ::LightTexture&> mLightTexture;
54 ::ll::TypedStorage<4, 4096, ::std::array<::std::array<::mce::Color, 16>, 16>> mLightTextureData;
55 ::ll::TypedStorage<4, 4, int> mFramesToInterpolate;
56 ::ll::TypedStorage<1, 1, bool> mBeingDestroyed;
57 ::ll::TypedStorage<8, 8, uint64> mTotalParticleCount;
58 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, uint64>> mEffectEmitterCounts;
59 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, uint64>> mEffectParticleCounts;
60 ::ll::TypedStorage<4, 12, ::Vec3> mLastCameraPosition;
61 // NOLINTEND
62
63public:
64 // prevent constructor by default
65 ParticleSystemEngine& operator=(ParticleSystemEngine const&);
66 ParticleSystemEngine(ParticleSystemEngine const&);
67 ParticleSystemEngine();
68
69public:
70 // virtual functions
71 // NOLINTBEGIN
72 virtual ~ParticleSystemEngine() /*override*/;
73 // NOLINTEND
74
75public:
76 // member functions
77 // NOLINTBEGIN
78 MCAPI ParticleSystemEngine(
79 ::ParticleEffectGroup& particleEffectGroup,
80 ::BlockSource& region,
81 ::LightTexture& lightTexture
82 );
83
84 MCAPI void clear();
85
86 MCAPI ::Bedrock::slot_map_handle<::std::unique_ptr<::ParticleSystem::ParticleEmitter>, 64, 32>
87 createParticleEmitter(
88 ::std::shared_ptr<::ParticleEffectInfo> const& effectInfo,
89 ::Matrix const& transform,
90 ::MolangVariableMap molangVariableMap
91 );
92
93 MCAPI ::Bedrock::slot_map_handle<::std::unique_ptr<::ParticleSystem::ParticleEmitter>, 64, 32>
94 createParticleEmitter(::HashedString const& effectName, ::Vec3 const& pos, ::MolangVariableMap molangVariableMap);
95
96 MCAPI ::Bedrock::slot_map_handle<::std::unique_ptr<::ParticleSystem::ParticleEmitter>, 64, 32>
97 createParticleEmitter(
98 ::HashedString const& effectName,
99 ::Matrix const& transform,
100 ::MolangVariableMap molangVariableMap
101 );
102
103 MCAPI ::Bedrock::slot_map_handle<::std::unique_ptr<::ParticleSystem::ParticleEmitter>, 64, 32>
104 createParticleEmitter(
105 ::HashedString const& effectName,
106 ::Actor const& actor,
107 ::HashedString const& locator,
108 ::Vec3 const& offset,
109 ::MolangVariableMap molangVariableMap
110 );
111
112 MCAPI ::ParticleSystem::ParticleEmitter* getParticleEmitter(
113 ::Bedrock::slot_map_handle<::std::unique_ptr<::ParticleSystem::ParticleEmitter>, 64, 32> emitterHandle
114 );
115
116 MCAPI void tick(float a, bool paused);
117 // NOLINTEND
118
119public:
120 // constructor thunks
121 // NOLINTBEGIN
122 MCAPI void* $ctor(::ParticleEffectGroup& particleEffectGroup, ::BlockSource& region, ::LightTexture& lightTexture);
123 // NOLINTEND
124
125public:
126 // destructor thunk
127 // NOLINTBEGIN
128 MCAPI void $dtor();
129 // NOLINTEND
130
131public:
132 // vftables
133 // NOLINTBEGIN
134 MCNAPI static void** $vftable();
135 // NOLINTEND
136};
Definition Actor.h:105
Definition EnableNonOwnerReferences.h:7
Definition BlockSource.h:68
Definition HashedString.h:5
Definition LightTexture.h:5
Definition Matrix.h:5
Definition MolangVariableMap.h:17
Definition ParticleEffectGroup.h:5
Definition ParticleEffectInfo.h:5
Definition ParticleSystemEngine.h:5
static MCAPI void ** $vftable()
Definition ParticleEmitter.h:7