LeviLamina
Loading...
Searching...
No Matches
ParticleEffectGroup.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#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/deps/puv/LoadResult.h"
9#include "mc/deps/resource_processing/category/CategoryLoader.h"
10#include "mc/platform/threading/Mutex.h"
11
12// auto generated forward declare list
13// clang-format off
17class PackStats;
21namespace ParticleSystem { class ParticleEffect; }
22namespace ParticleSystem { class ParticleEffectComponentRegistry; }
23namespace ParticleSystem { struct ParticleEffectLoaderTraits; }
24namespace SharedTypes::v1_20_80 { struct ParticleEffectData; }
25namespace cereal { struct ReflectionCtx; }
26// clang-format on
27
29public:
30 // ParticleEffectGroup inner types define
31 using PuvLoader = ::Bedrock::Resources::CategoryLoader<::ParticleSystem::ParticleEffectLoaderTraits>;
32
33public:
34 // member variables
35 // NOLINTBEGIN
36 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::ParticleEffectInfo>>>
37 mParticleEffectInfos;
38 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mParticleEffectInfoLock;
39 ::ll::TypedStorage<8, 264, ::Bedrock::Resources::CategoryLoader<::ParticleSystem::ParticleEffectLoaderTraits>>
40 mLoader;
41 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mEventing;
42 // NOLINTEND
43
44public:
45 // prevent constructor by default
46 ParticleEffectGroup& operator=(ParticleEffectGroup const&);
47 ParticleEffectGroup(ParticleEffectGroup const&);
48 ParticleEffectGroup();
49
50public:
51 // member functions
52 // NOLINTBEGIN
53 MCAPI ParticleEffectGroup(::cereal::ReflectionCtx& ctx, ::IMinecraftEventing& eventing);
54
55 MCAPI bool _createParticleEffectInfo(
56 ::HashedString const& name,
57 ::std::shared_ptr<::ParticleSystem::ParticleEffect> candidateParticle,
58 ::std::string const& containerName
59 );
60
61 MCAPI ::Puv::LoadResult<::SharedTypes::v1_20_80::ParticleEffectData> _loadParticleEffect(
62 ::std::string const& fileWithExtension,
63 ::std::string const& containerName,
64 ::std::string&& fileData,
65 ::MinEngineVersion const& minEngineVersion,
66 ::ParticleSystem::ParticleEffectComponentRegistry const& particleComponentRegistry,
67 ::PackStats& stats,
68 ::Bedrock::NonOwnerPointer<::LinkedAssetValidator> validator
69 );
70
71 MCAPI ::std::shared_ptr<::ParticleEffectInfo> getParticleEffectInfo(::HashedString const& name);
72
73 MCAPI void loadParticleEffects(
74 ::ResourcePackManager& resourcePackManager,
75 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
76 ::ParticleSystem::ParticleEffectComponentRegistry const& particleComponentRegistry,
77 ::LinkedAssetValidator& validator
78 );
79
80 MCAPI void unloadParticleEffects();
81
82 MCAPI ~ParticleEffectGroup();
83 // NOLINTEND
84
85public:
86 // constructor thunks
87 // NOLINTBEGIN
88 MCAPI void* $ctor(::cereal::ReflectionCtx& ctx, ::IMinecraftEventing& eventing);
89 // NOLINTEND
90
91public:
92 // destructor thunk
93 // NOLINTBEGIN
94 MCAPI void $dtor();
95 // NOLINTEND
96};
Definition IMinecraftEventing.h:138
Definition LinkedAssetValidator.h:8
Definition MinEngineVersion.h:15
Definition PackStats.h:5
Definition ParticleEffectGroup.h:5
Definition ParticleEffectInfo.h:5
Definition ParticleEffectComponentRegistry.h:7
Definition ParticleEffect.h:7
Definition ResourceLoadManager.h:19
Definition ResourcePackManager.h:35
Definition ParticleEffectLoaderTraits.h:7
Definition ParticleEffectData.h:19
Definition ReflectionCtx.h:11