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)
      print ('biome_name is '..biome_name)
      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
