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