mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
parent
03ff53e16b
commit
ff73c7a5da
10 changed files with 68 additions and 54 deletions
|
@ -925,6 +925,7 @@ void read_server_sound_params(lua_State *L, int index,
|
|||
getfloatfield(L, index, "gain", params.gain);
|
||||
getstringfield(L, index, "to_player", params.to_player);
|
||||
getfloatfield(L, index, "fade", params.fade);
|
||||
getfloatfield(L, index, "pitch", params.pitch);
|
||||
lua_getfield(L, index, "pos");
|
||||
if(!lua_isnil(L, -1)){
|
||||
v3f p = read_v3f(L, -1)*BS;
|
||||
|
@ -958,6 +959,7 @@ void read_soundspec(lua_State *L, int index, SimpleSoundSpec &spec)
|
|||
getstringfield(L, index, "name", spec.name);
|
||||
getfloatfield(L, index, "gain", spec.gain);
|
||||
getfloatfield(L, index, "fade", spec.fade);
|
||||
getfloatfield(L, index, "pitch", spec.pitch);
|
||||
} else if(lua_isstring(L, index)){
|
||||
spec.name = lua_tostring(L, index);
|
||||
}
|
||||
|
@ -972,6 +974,8 @@ void push_soundspec(lua_State *L, const SimpleSoundSpec &spec)
|
|||
lua_setfield(L, -2, "gain");
|
||||
lua_pushnumber(L, spec.fade);
|
||||
lua_setfield(L, -2, "fade");
|
||||
lua_pushnumber(L, spec.pitch);
|
||||
lua_setfield(L, -2, "pitch");
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
|
|
@ -227,12 +227,14 @@ int ModApiClient::l_sound_play(lua_State *L)
|
|||
|
||||
SimpleSoundSpec spec;
|
||||
read_soundspec(L, 1, spec);
|
||||
float gain = 1.0;
|
||||
float gain = 1.0f;
|
||||
float pitch = 1.0f;
|
||||
bool looped = false;
|
||||
s32 handle;
|
||||
|
||||
if (lua_istable(L, 2)) {
|
||||
getfloatfield(L, 2, "gain", gain);
|
||||
getfloatfield(L, 2, "pitch", pitch);
|
||||
getboolfield(L, 2, "loop", looped);
|
||||
|
||||
lua_getfield(L, 2, "pos");
|
||||
|
@ -240,13 +242,13 @@ int ModApiClient::l_sound_play(lua_State *L)
|
|||
v3f pos = read_v3f(L, -1) * BS;
|
||||
lua_pop(L, 1);
|
||||
handle = sound->playSoundAt(
|
||||
spec.name, looped, gain * spec.gain, pos);
|
||||
spec.name, looped, gain * spec.gain, pos, pitch);
|
||||
lua_pushinteger(L, handle);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
handle = sound->playSound(spec.name, looped, gain * spec.gain);
|
||||
handle = sound->playSound(spec.name, looped, gain * spec.gain, 0.0f, pitch);
|
||||
lua_pushinteger(L, handle);
|
||||
|
||||
return 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue