Add temple ambience
parent
7cbd327ad4
commit
89d06d6b34
|
@ -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/>
|
||||
|
|
|
@ -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.
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue