Add temple ambience

master
Wuzzy 2022-03-06 16:24:20 +01:00
parent 7cbd327ad4
commit 89d06d6b34
9 changed files with 32 additions and 16 deletions

View File

@ -43,8 +43,10 @@ Models:
- Player models comes from Minetest Game (see license of Minetest Game 5.4.1 for details)
Sounds:
- Ocean waves come from <https://freesound.org/people/inchadney/sounds/135805/>
- `lzr_ambience_ocean.ogg` comes from <https://freesound.org/people/inchadney/sounds/135805/>
- by inchadney (CC BY 3.0)
- `lzr_ambience_temple.ogg` comes from <https://freesound.org/people/Zixem/sounds/69391/>
- by Zixem (CC0)
- Mirror rotation sound comes from <https://freesound.org/people/killianm97/sounds/554236/>
- by killanm97 (CC0)
- `screwdriver2_rotate.ogg` comes from <https://freesound.org/people/el_boss/sounds/560700/>

View File

@ -24,6 +24,11 @@ function lzr_ambience.set_ambience(id)
minetest.log("error", "[lzr_ambience] set_ambience called with invalid ambience ID ("..tostring(id)..")")
return false
end
minetest.log("info", "[lzr_ambience] Ambience set to: "..tostring(id))
-- No-op if we already have this ambience active
if current_singleplayer_ambience_id == id then
return true
end
lzr_ambience.stop_ambience()
current_singleplayer_ambience = minetest.sound_play({name=ambience.soundname}, {gain = ambience.gain, to_player="singleplayer", loop=true})
current_singleplayer_ambience_id = id
@ -31,10 +36,7 @@ function lzr_ambience.set_ambience(id)
end
lzr_ambience.add_ambience("ocean", "lzr_ambience_ocean", 0.08)
current_singleplayer_ambience_id = "ocean"
lzr_ambience.add_ambience("temple", "lzr_ambience_temple", 1.0)
local setting = minetest.settings:get_bool("lzr_ambience_start_with_ambience")
if setting == nil then setting = true end

Binary file not shown.

View File

@ -159,5 +159,6 @@ lzr_gamestate.register_on_enter_state(function(state)
local player = minetest.get_player_by_name("singleplayer")
lzr_player.set_editor_inventory(player)
lzr_gui.set_editor_gui(player)
lzr_ambience.set_ambience("ocean")
end
end)

View File

@ -1,2 +1,2 @@
name = lzr_editor
depends = lzr_gamestate, lzr_gui, lzr_player, lzr_node_drops
depends = lzr_gamestate, lzr_gui, lzr_player, lzr_node_drops, lzr_ambience

View File

@ -1,6 +1,6 @@
lzr_levels_level_1.mts,Demo Level 1,lzr_core:wood|lzr_decor:woodframed_glass
lzr_levels_level_2.mts,Demo Level 2,lzr_core:wood|lzr_decor:woodframed_glass
lzr_levels_level_3.mts,Demo Level 3,lzr_core:wood|lzr_decor:woodframed_glass
lzr_levels_level_4.mts,Demo Level 4,lzr_core:wood|lzr_decor:woodframed_glass
lzr_levels_level_5.mts,Demo Level 5,lzr_core:wood|lzr_decor:woodframed_glass
lzr_levels_level_6.mts,Demo Level 6,lzr_decor:ocean_stone|lzr_decor:ocean_stone|lzr_core:dirt|lzr_core:dirt
lzr_levels_level_1.mts,Demo Level 1,lzr_core:wood|lzr_decor:woodframed_glass,ocean
lzr_levels_level_2.mts,Demo Level 2,lzr_core:wood|lzr_decor:woodframed_glass,ocean
lzr_levels_level_3.mts,Demo Level 3,lzr_core:wood|lzr_decor:woodframed_glass,ocean
lzr_levels_level_4.mts,Demo Level 4,lzr_core:wood|lzr_decor:woodframed_glass,ocean
lzr_levels_level_5.mts,Demo Level 5,lzr_core:wood|lzr_decor:woodframed_glass,ocean
lzr_levels_level_6.mts,Demo Level 6,lzr_decor:ocean_stone|lzr_decor:ocean_stone|lzr_core:dirt|lzr_core:dirt,temple

1 lzr_levels_level_1.mts Demo Level 1 lzr_core:wood|lzr_decor:woodframed_glass ocean
2 lzr_levels_level_2.mts Demo Level 2 lzr_core:wood|lzr_decor:woodframed_glass ocean
3 lzr_levels_level_3.mts Demo Level 3 lzr_core:wood|lzr_decor:woodframed_glass ocean
4 lzr_levels_level_4.mts Demo Level 4 lzr_core:wood|lzr_decor:woodframed_glass ocean
5 lzr_levels_level_5.mts Demo Level 5 lzr_core:wood|lzr_decor:woodframed_glass ocean
6 lzr_levels_level_6.mts Demo Level 6 lzr_decor:ocean_stone|lzr_decor:ocean_stone|lzr_core:dirt|lzr_core:dirt temple

View File

@ -42,8 +42,16 @@ local flat_index_to_pos = function(index, size)
return vector.new(x,y,z)
end
-- Read the level schematics to find out some metadata about them
-- and count the number of levels
--[[ Read the level schematics to find out some metadata about them
and count the number of levels. A CSV file is used for metadata.
Syntax of level_data.cvs:
<File name>, <Title>, <Border nodes>, <Ambience>
Border nodes is a list of nodenames for the level border, separated by the pipe symbol (|), in this order:
wall, window, floor, ceiling
wall is mandatory, the rest is optional (will default to the wall node)
Ambience is an ambience ID for the background noise (see lzr_ambience).
]]
local analyze_levels = function()
local level_list_path = minetest.get_modpath("lzr_levels").."/data/level_data.csv"
local level_list_file = io.open(level_list_path, "r")
@ -55,12 +63,13 @@ local analyze_levels = function()
local filename = matches[1]
local lname = matches[2]
local nodes = matches[3]
local ambience = matches[4]
local node_matches = string.split(nodes, "|")
local node_wall = node_matches[1]
local node_window = node_matches[2] or node_wall
local node_floor = node_matches[3] or node_wall
local node_ceiling = node_matches[4] or node_wall
table.insert(level_data, {filename=filename, name=lname, node_wall=node_wall, node_window=node_window, node_floor=node_floor, node_ceiling=node_ceiling})
table.insert(level_data, {filename=filename, name=lname, node_wall=node_wall, node_window=node_window, node_floor=node_floor, node_ceiling=node_ceiling, ambience=ambience})
end
lzr_levels.LAST_LEVEL = #level_data
@ -297,6 +306,7 @@ function lzr_levels.start_level(level)
if lzr_gamestate.get_state() ~= lzr_gamestate.EDITOR then
lzr_gamestate.set_state(lzr_gamestate.LEVEL)
end
lzr_ambience.set_ambience(level_data[level].ambience)
minetest.log("action", "[lzr_levels] Starting level "..level)
end

View File

@ -1,2 +1,2 @@
name = lzr_levels
depends = lzr_core, lzr_mapgen, lzr_globals, screwdriver2, lzr_gamestate
depends = lzr_core, lzr_mapgen, lzr_globals, screwdriver2, lzr_gamestate, lzr_ambience

View File

@ -69,6 +69,7 @@ lzr_gamestate.register_on_enter_state(function(state)
local player = minetest.get_player_by_name("singleplayer")
lzr_player.set_play_inventory(player)
lzr_gui.set_menu_gui(player)
lzr_ambience.set_ambience("ocean")
end
end)