Epic/mods/sounds/init.lua

62 lines
2.6 KiB
Lua

sounds = {}
minetest.register_node('sounds:test', {
description = 'biome test',
tiles = {'letters_station.png'},
paramtype = 'light',
paramtype2 = 'facedir',
selection_box = {
type = 'fixed',
fixed = {-.5, -.5, -.5, .5, .5, .5}},
collision_box = {
type = 'fixed',
fixed = {-.5, -.5, -.5, .5, .5, .5}},
groups = {oddly_breakable_by_hand=2, choppy=3, not_in_creative_inventory=1},
on_punch = function(pos, node, puncher, pointed_thing)
local player_name = puncher:get_player_name()
local biome_data = minetest.get_biome_data(pos)
local biome_id = biome_data.biome
local biome_name = minetest.get_biome_name(biome_id)
minetest.chat_send_player(player_name, 'You are in a '..biome_name..' biome.')
sounds.play_sound(puncher)
end
})
function sounds.random_player()
local key = #(minetest.get_connected_players())
local people = minetest.get_connected_players()
local person = math.random(1, key)
local name = people[person] --userdata
sounds.play_sound(name)
end
function sounds.play_sound(player)
local pos = player:get_pos()
if pos.y > -20 and pos.y < 500 then
local player_name = player:get_player_name()
local biome_data = minetest.get_biome_data(pos)
local biome_id = biome_data.biome
local biome_name = minetest.get_biome_name(biome_id)
if biome_name == 'grassland_ocean' or biome_name == 'snowy_grassland_ocean'
or biome_name == 'savanna_ocean' or biome_name == 'taiga_ocean' then
minetest.sound_play('ocean_beach', {to_player = player_name, gain = .5})
elseif biome_name == 'rainforest' then
minetest.sound_play('rainforest', {to_player = player_name, gain = .75})
elseif biome_name == 'grassland' then
minetest.sound_play('grassland', {to_player = player_name, gain = .75})
elseif biome_name == 'deciduous_forest' then
minetest.sound_play('deciduous_forest', {to_player = player_name, gain = .75})
elseif biome_name == 'coniferous_forest' then
minetest.sound_play('coniferous_forest', {to_player = player_name, gain = .75})
elseif biome_name == 'desert' or biome_name == 'sandstone_desert' then
minetest.sound_play('desert', {to_player = player_name, gain = .75})
elseif biome_name == 'icesheet' then
minetest.sound_play('icesheet', {to_player = player_name, gain = .75})
elseif biome_name == 'savanna' then
minetest.sound_play('savanna', {to_player = player_name, gain = .7})
elseif biome_name == 'tundra' then
minetest.sound_play('tundra', {to_player = player_name, gain = .7})
end
end
end