LeviLamina
Loading...
Searching...
No Matches
MusicManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/sound/Category.h"
7#include "mc/client/sound/CustomMusic.h"
8#include "mc/client/sound/Music.h"
9#include "mc/deps/core/threading/CountTracker.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/deps/core/utility/pub_sub/Connector.h"
12#include "mc/deps/core/utility/pub_sub/Subscription.h"
13#include "mc/sound/MusicRepeatMode.h"
14
15// auto generated forward declare list
16// clang-format off
18class LocalPlayer;
19class Player;
23struct BiomeIdType;
24namespace Bedrock::Resources { class PreloadedPathHandle; }
25// clang-format on
26
27class MusicManager {
28public:
29 // member variables
30 // NOLINTBEGIN
31 ::ll::TypedStorage<8, 216, ::CustomMusic> mCustomMusic;
32 ::ll::TypedStorage<1, 1, bool> mPaused;
33 ::ll::TypedStorage<4, 4, int> mNextSongDelay;
34 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::SoundPlayerInterface>> mSoundPlayer;
35 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::Music>> mCurrentMusic;
36 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::Music>> mPausedMusic;
37 ::ll::TypedStorage<4, 4, ::Category> mLastMusicCategory;
38 ::ll::TypedStorage<8, 32, ::std::string> mCurrentMusicName;
39 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::unique_ptr<::Music>>> mMusicDefinitions;
40 ::ll::TypedStorage<8, 16, ::Bedrock::Threading::CountTracker> mDeferMusicRefCount;
41 ::ll::TypedStorage<8, 16, ::std::shared_ptr<void*>> mInitLoadingDeferment;
42 ::ll::TypedStorage<8, 16, ::std::shared_ptr<void*>> mResumeLoadingDeferment;
43 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mOnPauseStateChangeSubscription;
44 ::ll::TypedStorage<1, 1, bool> mIsMusicReady;
45 // NOLINTEND
46
47public:
48 // prevent constructor by default
49 MusicManager();
50
51public:
52 // member functions
53 // NOLINTBEGIN
54 MCAPI explicit MusicManager(::Bedrock::NotNullNonOwnerPtr<::SoundPlayerInterface> const& soundPlayer);
55
56 MCAPI ::Bedrock::NonOwnerPointer<::Music> _findBiomeSpecificMusic(
57 ::Player const&,
58 ::std::string const& biomeName,
59 ::std::optional<::std::string> const& biomeMusicDefinition
60 ) const;
61
62 MCAPI ::Bedrock::NonOwnerPointer<::Music> _getMusic(::std::string const& musicDefinition);
63
64 MCAPI void _update(::Bedrock::NotNullNonOwnerPtr<::Music> desiredMusic);
65
66 MCAPI ::Bedrock::NonOwnerPointer<::Music>
67 getSituationalMusic(::LocalPlayer const* player, bool isCreditsScreen, bool isLoadingProgressScreen);
68
69 MCAPI void load(
70 ::ResourcePackManager& resourcePackManager,
71 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
72 ::Bedrock::NonOwnerPointer<::LinkedAssetValidator> validator,
73 ::std::shared_ptr<::std::vector<::Bedrock::Resources::PreloadedPathHandle>> preloadHandles
74 );
75
76 MCAPI void
77 playCustomMusic(::std::string const& eventName, float volume, float fadeoutSeconds, ::MusicRepeatMode playMode);
78
79 MCAPI void registerPauseManagerCallback(::Bedrock::PubSub::Connector<void(bool)>& connector);
80
81 MCAPI void update(::LocalPlayer const* player, bool isCreditsScreen, bool isLoadingProgressScreen);
82
83 MCAPI ~MusicManager();
84 // NOLINTEND
85
86public:
87 // static functions
88 // NOLINTBEGIN
89 MCAPI static bool shouldPlayCreativeMusic(bool playerIsCreative, ::BiomeIdType const biomeId);
90 // NOLINTEND
91
92public:
93 // constructor thunks
94 // NOLINTBEGIN
95 MCAPI void* $ctor(::Bedrock::NotNullNonOwnerPtr<::SoundPlayerInterface> const& soundPlayer);
96 // NOLINTEND
97
98public:
99 // destructor thunk
100 // NOLINTBEGIN
101 MCAPI void $dtor();
102 // NOLINTEND
103};
Definition PreloadedPathHandle.h:16
Definition LinkedAssetValidator.h:8
Definition LocalPlayer.h:5
Definition MusicManager.h:5
Definition Player.h:129
Definition ResourceLoadManager.h:18
Definition ResourcePackManager.h:38
Definition SoundPlayerInterface.h:24
Definition BiomeIdType.h:8