Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
SoundMapping.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/sound/EventToSoundListMap.h"
7#include "mc/deps/core/string/HashedString.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/deps/shared_types/legacy/LevelSoundEvent.h"
10#include "mc/platform/brstd/flat_map.h"
11#include "mc/util/molang/ExpressionNode.h"
12
13// auto generated forward declare list
14// clang-format off
17class Random;
19struct Sound;
20namespace Json { class Value; }
21// clang-format on
22
23class SoundMapping {
24public:
25 // SoundMapping inner types declare
26 // clang-format off
28 struct EntitySounds;
29 struct EntitySoundList;
30 struct BlockSounds;
32 // clang-format on
33
34 // SoundMapping inner types define
35 struct SoundVariantCompare {
36 public:
37 // SoundVariantCompare inner types define
38 using is_transparent = void;
39 };
40
41 struct EntitySounds {
42 public:
43 // member variables
44 // NOLINTBEGIN
45 ::ll::TypedStorage<8, 64, ::std::unordered_map<::SharedTypes::Legacy::LevelSoundEvent, ::Sound>> mBaseSounds;
46 ::ll::TypedStorage<
47 8,
48 48,
49 ::brstd::flat_map<
50 ::HashedString,
51 ::std::unordered_map<::SharedTypes::Legacy::LevelSoundEvent, ::Sound>,
52 ::SoundMapping::SoundVariantCompare,
53 ::std::vector<::HashedString>,
54 ::std::vector<::std::unordered_map<::SharedTypes::Legacy::LevelSoundEvent, ::Sound>>>>
55 mVariantSounds;
56 ::ll::TypedStorage<8, 16, ::ExpressionNode> mVariantKey;
57 // NOLINTEND
58 };
59
60 struct EntitySoundList {
61 public:
62 // member variables
63 // NOLINTBEGIN
64 ::ll::TypedStorage<8, 80, ::EventToSoundListMap> mBaseSounds;
65 ::ll::TypedStorage<
66 8,
67 48,
68 ::brstd::flat_map<
69 ::HashedString,
70 ::EventToSoundListMap,
71 ::SoundMapping::SoundVariantCompare,
72 ::std::vector<::HashedString>,
73 ::std::vector<::EventToSoundListMap>>>
74 mVariantSounds;
75 ::ll::TypedStorage<8, 16, ::ExpressionNode> mVariantKey;
76 // NOLINTEND
77 };
78
79 struct BlockSounds {
80 public:
81 // member variables
82 // NOLINTBEGIN
83 ::ll::TypedStorage<8, 64, ::std::unordered_map<::SharedTypes::Legacy::LevelSoundEvent, ::Sound>> mSounds;
84 ::ll::TypedStorage<8, 32, ::std::string> mBaseBlock;
85 // NOLINTEND
86 };
87
89 public:
90 // member variables
91 // NOLINTBEGIN
92 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::SoundMapping::BlockSounds>> mDefaultBlockSounds;
93 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::SoundMapping::EntitySoundList>>
94 mEntitySoundLists;
95 // NOLINTEND
96 };
97
98 using EventSoundMap = ::std::unordered_map<::SharedTypes::Legacy::LevelSoundEvent, ::Sound>;
99
100 using NamedSoundMap = ::std::unordered_map<::HashedString, ::Sound>;
101
102public:
103 // member variables
104 // NOLINTBEGIN
105 ::ll::TypedStorage<8, 64, ::std::unordered_map<::SharedTypes::Legacy::LevelSoundEvent, ::Sound>> mEventSounds;
106 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::Sound>> mNamedSounds;
107 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::SoundMapping::EntitySounds>> mEntitySounds;
108 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::SoundMapping::BlockSounds>> mBlockSounds;
109 ::ll::TypedStorage<8, 128, ::SoundMapping::ActorInteractiveSounds> mEntityInteractiveSounds;
110 // NOLINTEND
111
112public:
113 // virtual functions
114 // NOLINTBEGIN
115 virtual ~SoundMapping() = default;
116 // NOLINTEND
117
118public:
119 // member functions
120 // NOLINTBEGIN
121 MCNAPI ::Sound const& _getBlockSound(
122 ::std::unordered_map<::std::string, ::SoundMapping::BlockSounds> const& blockSounds,
123 ::SharedTypes::Legacy::LevelSoundEvent eventType,
124 ::std::string const& blockType
125 ) const;
126
128
130 ::SharedTypes::Legacy::LevelSoundEvent eventType,
131 ::ActorDefinitionIdentifier const& identifier
132 ) const;
133
134 MCNAPI ::Sound const& getEntitySound(
135 ::SharedTypes::Legacy::LevelSoundEvent eventType,
136 ::ActorSoundIdentifier const& actorSoundIdentifier
137 ) const;
138
139 MCNAPI ::Sound const& getEventSound(::SharedTypes::Legacy::LevelSoundEvent eventType) const;
140
141 MCNAPI ::Sound const& getNamedSound(::HashedString const& name) const;
142
143 MCNAPI ::Sound getSound(
144 ::SharedTypes::Legacy::LevelSoundEvent eventType,
145 ::ActorSoundIdentifier const& actorSoundIdentifier,
146 ::std::string const& blockType,
147 ::Random& rand
148 ) const;
149 // NOLINTEND
150
151public:
152 // static functions
153 // NOLINTBEGIN
154 MCNAPI static void _loadBlockSounds(
155 ::Json::Value const& root,
156 ::std::unordered_map<::std::string, ::SoundMapping::BlockSounds>& blockSoundList
157 );
158
160 ::Json::Value const& root,
161 ::std::unordered_map<::std::string, ::SoundMapping::BlockSounds>& blockSounds,
162 ::std::unordered_map<::std::string, ::SoundMapping::EntitySoundList>& entitySoundLists
163 );
164
165 MCNAPI static void _loadEventSounds(
166 ::Json::Value const& root,
167 ::std::unordered_map<::SharedTypes::Legacy::LevelSoundEvent, ::Sound>& eventSoundMap,
168 bool allowEmpty
169 );
170 // NOLINTEND
171};
Definition ActorSoundIdentifier.h:17
Definition NonOwnerPointer.h:9
Definition HashedString.h:5
Definition Value.h:16
Definition LinkedAssetValidator.h:9
Definition Random.h:10
Definition SoundMapping.h:5
MCAPI::Sound const & _getBlockSound(::std::unordered_map<::std::string, ::SoundMapping::BlockSounds > const &blockSounds, ::SharedTypes::Legacy::LevelSoundEvent eventType, ::std::string const &blockType) const
MCAPI::Sound const & getEntitySound(::SharedTypes::Legacy::LevelSoundEvent eventType, ::ActorSoundIdentifier const &actorSoundIdentifier) const
MCAPI::Sound getSound(::SharedTypes::Legacy::LevelSoundEvent eventType, ::ActorSoundIdentifier const &actorSoundIdentifier, ::std::string const &blockType, ::Random &rand) const
static MCAPI void _loadEntityInteractiveSounds(::Json::Value const &root, ::std::unordered_map<::std::string, ::SoundMapping::BlockSounds > &blockSounds, ::std::unordered_map<::std::string, ::SoundMapping::EntitySoundList > &entitySoundLists)
MCAPI::Sound const & getEventSound(::SharedTypes::Legacy::LevelSoundEvent eventType) const
static MCAPI void _loadEventSounds(::Json::Value const &root, ::std::unordered_map<::SharedTypes::Legacy::LevelSoundEvent, ::Sound > &eventSoundMap, bool allowEmpty)
MCAPI void _loadSounds(::Json::Value const &json, ::Bedrock::NonOwnerPointer<::LinkedAssetValidator > validator)
MCAPI::Sound const & getNamedSound(::HashedString const &name) const
MCAPI bool canPlayEntitySound(::SharedTypes::Legacy::LevelSoundEvent eventType, ::ActorDefinitionIdentifier const &identifier) const
static MCAPI void _loadBlockSounds(::Json::Value const &root, ::std::unordered_map<::std::string, ::SoundMapping::BlockSounds > &blockSoundList)
Definition ActorDefinitionIdentifier.h:15
Definition SoundMapping.h:25
Definition SoundMapping.h:23
Definition SoundMapping.h:21
Definition SoundMapping.h:19
Definition SoundMapping.h:17
Definition Sound.h:5