New file structure

master
PilzAdam 2012-08-19 12:15:31 +02:00
parent eb600cddaf
commit d93f5cd3c5
20 changed files with 213 additions and 0 deletions

1
depends.txt Normal file
View File

@ -0,0 +1 @@
default

181
init.lua Normal file
View File

@ -0,0 +1,181 @@
local night = {
handler = {},
{name="horned_owl", length=3},
{name="horned_owl", length=3},
{name="horned_owl", length=3},
{name="Wolves_Howling", length=11}
}
local night_frequent = {
handler = {},
{name="Crickets_At_NightCombo", length=69}
}
local day = {
handler = {},
{name="Best Cardinal Bird", length=4},
{name="craw", length=3},
{name="bluejay", length=18}
}
local day_frequent = {
handler = {},
{name="robin2", length=43},
{name="birdsongnl", length=72},
{name="bird", length=30}
}
local cave = {
handler = {},
{name="Bats_in_Cave", length=5}
}
local cave_frequent = {
handler = {},
{name="drippingwater_drip_a", length=2},
{name="drippingwater_drip_b", length=2},
{name="drippingwater_drip_c", length=2},
{name="Single_Water_Droplet", length=3},
{name="Spooky_Water_Drops", length=7}
}
local music = {
handler = nil,
{name="mtest", length=4*60+33}
}
-- start playing the sound, set the handler and delete the handler after sound is played
local play_sound = function(player, list, number)
local player_name = player:get_player_name()
if list.handler[player_name] == nil then
local handler = minetest.sound_play(list[number].name, {to_player=player_name})
if handler ~= nil then
list.handler[player_name] = handler
minetest.after(list[number].length, function(args)
local list = args[1]
local player_name = args[2]
if list.handler[player_name] ~= nil then
minetest.sound_stop(list.handler[player_name])
list.handler[player_name] = nil
end
end, {list, player_name})
end
end
end
-- stops all sounds that are not in still_playing
local stop_sound = function(still_playing, player)
local player_name = player:get_player_name()
if still_playing.cave == nil then
local list = cave
if list.handler[player_name] ~= nil then
minetest.sound_stop(list.handler[player_name])
list.handler[player_name] = nil
end
end
if still_playing.cave_frequent == nil then
local list = cave_frequent
if list.handler[player_name] ~= nil then
minetest.sound_stop(list.handler[player_name])
list.handler[player_name] = nil
end
end
if still_playing.night == nil then
local list = night
if list.handler[player_name] ~= nil then
minetest.sound_stop(list.handler[player_name])
list.handler[player_name] = nil
end
end
if still_playing.night_frequent == nil then
local list = night_frequent
if list.handler[player_name] ~= nil then
minetest.sound_stop(list.handler[player_name])
list.handler[player_name] = nil
end
end
if still_playing.day == nil then
local list = day
if list.handler[player_name] ~= nil then
minetest.sound_stop(list.handler[player_name])
list.handler[player_name] = nil
end
end
if still_playing.day_frequent == nil then
local list = day_frequent
if list.handler[player_name] ~= nil then
minetest.sound_stop(list.handler[player_name])
list.handler[player_name] = nil
end
end
end
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer+dtime
if timer < 5 then
return
end
timer = 0
-- normal sounds
if math.random(1, 100) <= 5 then
if minetest.env:get_timeofday() < 0.2 or minetest.env:get_timeofday() > 0.8 then
for _,player in ipairs(minetest.get_connected_players()) do
if player:getpos().y < 0 then
stop_sound({cave=true, cave_frequent=true}, player)
play_sound(player, cave, math.random(1, #cave))
else
stop_sound({night=true, night_frequent=true}, player)
play_sound(player, night, math.random(1, #night))
end
end
else
for _,player in ipairs(minetest.get_connected_players()) do
if player:getpos().y < 0 then
stop_sound({cave=true, cave_frequent=true}, player)
play_sound(player, cave, math.random(1, #cave))
else
stop_sound({day=true, day_frequent=true}, player)
play_sound(player, day, math.random(1, #day))
end
end
end
end
-- frequent sounds
if math.random(1, 100) <= 50 then
if minetest.env:get_timeofday() < 0.2 or minetest.env:get_timeofday() > 0.8 then
for _,player in ipairs(minetest.get_connected_players()) do
if player:getpos().y < 0 then
stop_sound({cave=true, cave_frequent=true}, player)
play_sound(player, cave_frequent, math.random(1, #cave_frequent))
else
stop_sound({night=true, night_frequent=true}, player)
play_sound(player, night_frequent, math.random(1, #night_frequent))
end
end
else
for _,player in ipairs(minetest.get_connected_players()) do
if player:getpos().y < 0 then
stop_sound({cave=true, cave_frequent=true}, player)
play_sound(player, cave_frequent, math.random(1, #cave_frequent))
else
stop_sound({day=true, day_frequent=true}, player)
play_sound(player, day_frequent, math.random(1, #day_frequent))
end
end
end
end
-- music
if math.random(1, 100) <= 1 and music.handler == nil then
local track = music[math.random(1, #music)]
music.handler = minetest.sound_play(track.name)
minetest.after(track.length, function(handler)
if handler ~= nil then
minetest.sound_stop(handler, {gain=0.3})
music.handler = nil
end
end, music.handler)
end
end)

BIN
sounds/Bats_in_Cave.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
sounds/Hollow_Wind.ogg Normal file

Binary file not shown.

Binary file not shown.

31
sounds/SoundLicenses.txt Normal file
View File

@ -0,0 +1,31 @@
--Nightime Sound, Recorded by Mike Koenig, License: Attribution 3.0 http://soundbible.com/951-Nightime.html
--Crickets At Night Sound, License: Attribution 3.0 | Recorded by Mike Koenig |http://soundbible.com/365-Crickets-At-Night.html
--Medium Pack Of Wolves Howling, License: Public Domain | Recorded by fws.gov, http://soundbible.com/277-Medium-Pack-Of-Wolves-Howling.html
--Horned Owl Sound, License: Attribution 3.0 | Recorded by Mike Koenig , http://soundbible.com/1851-Horned-Owl.html
--Bats In Cave Sound, License: Attr-Noncommercial 3.0 | Recorded by Mike Koenig , http://soundbible.com/1939-Bats-In-Cave.html
--Spooky Water Drops Sound, License: Attribution 3.0 | Recorded by Mike Koenig, http://soundbible.com/380-Spooky-Water-Drops.html
-- Single Water Droplet Sound, License: Attribution 3.0 | Recorded by Mike Koenig, http://soundbible.com/384-Single-Water-Droplet.html
--HollowWind, Black Boe, Creative Commons 0 License, http://www.freesound.org/people/Black%20Boe/sounds/22331/
--drippingwater*.ogg sounds: CC0, Dripping Water Mod, by kddekadenz, http://minetest.net/forum/viewtopic.php?id=1688
--best cardinal bird: License: Attribution 3.0 | Recorded by PsychoBird, http://soundbible.com/1515-Best-Cardinal-Bird.html
--birdsongnl: the Attribution License, HerbertBoland, http://www.freesound.org/people/HerbertBoland/sounds/28312/ (end)
--robin2: Attribution License, reinsamba, http://www.freesound.org/people/reinsamba/sounds/32479/ (end)
--Craw.WAV, Attribution License, inchadney, http://www.freesound.org/people/inchadney/sounds/52450/
--bluejay.wav, Creative Commons 0 License, UncleSigmund, http://www.freesound.org/people/UncleSigmund/sounds/42382/
--natural night sounds in Boquete.wav, Attribution License, laurent, http://www.freesound.org/people/laurent/sounds/15851/

Binary file not shown.

BIN
sounds/Wolves_Howling.ogg Normal file

Binary file not shown.

BIN
sounds/bird.ogg Normal file

Binary file not shown.

BIN
sounds/birdsongnl.ogg Normal file

Binary file not shown.

BIN
sounds/bluejay.ogg Normal file

Binary file not shown.

BIN
sounds/craw.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
sounds/horned_owl.ogg Normal file

Binary file not shown.

BIN
sounds/mtest.ogg Normal file

Binary file not shown.

BIN
sounds/robin2.ogg Normal file

Binary file not shown.