@@ -38,6 +38,7 @@ void SoundBlocks::registerBlocks(IEngine *engine)
3838 engine->addCompileFunction (this , " sound_changeeffectby" , &compileChangeEffectBy);
3939 engine->addCompileFunction (this , " sound_cleareffects" , &compileClearEffects);
4040 engine->addCompileFunction (this , " sound_changevolumeby" , &compileChangeVolumeBy);
41+ engine->addCompileFunction (this , " sound_setvolumeto" , &compileSetVolumeTo);
4142}
4243
4344void SoundBlocks::onInit (IEngine *engine)
@@ -136,6 +137,13 @@ CompilerValue *SoundBlocks::compileChangeVolumeBy(Compiler *compiler)
136137 return nullptr ;
137138}
138139
140+ CompilerValue *SoundBlocks::compileSetVolumeTo (Compiler *compiler)
141+ {
142+ auto volume = compiler->addInput (" VOLUME" );
143+ compiler->addTargetFunctionCall (" sound_setvolumeto" , Compiler::StaticType::Void, { Compiler::StaticType::Number }, { volume });
144+ return nullptr ;
145+ }
146+
139147int sound_wrap_clamp_index (Target *target, int index)
140148{
141149 const long soundCount = target->sounds ().size ();
@@ -235,3 +243,8 @@ extern "C" void sound_changevolumeby(Target *target, double volume)
235243{
236244 target->setVolume (target->volume () + volume);
237245}
246+
247+ extern " C" void sound_setvolumeto (Target *target, double volume)
248+ {
249+ target->setVolume (volume);
250+ }
0 commit comments