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)
|
- Player models comes from Minetest Game (see license of Minetest Game 5.4.1 for details)
|
||||||
|
|
||||||
Sounds:
|
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)
|
- 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/>
|
- Mirror rotation sound comes from <https://freesound.org/people/killianm97/sounds/554236/>
|
||||||
- by killanm97 (CC0)
|
- by killanm97 (CC0)
|
||||||
- `screwdriver2_rotate.ogg` comes from <https://freesound.org/people/el_boss/sounds/560700/>
|
- `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)..")")
|
minetest.log("error", "[lzr_ambience] set_ambience called with invalid ambience ID ("..tostring(id)..")")
|
||||||
return false
|
return false
|
||||||
end
|
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()
|
lzr_ambience.stop_ambience()
|
||||||
current_singleplayer_ambience = minetest.sound_play({name=ambience.soundname}, {gain = ambience.gain, to_player="singleplayer", loop=true})
|
current_singleplayer_ambience = minetest.sound_play({name=ambience.soundname}, {gain = ambience.gain, to_player="singleplayer", loop=true})
|
||||||
current_singleplayer_ambience_id = id
|
current_singleplayer_ambience_id = id
|
||||||
|
@ -31,10 +36,7 @@ function lzr_ambience.set_ambience(id)
|
||||||
end
|
end
|
||||||
|
|
||||||
lzr_ambience.add_ambience("ocean", "lzr_ambience_ocean", 0.08)
|
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")
|
local setting = minetest.settings:get_bool("lzr_ambience_start_with_ambience")
|
||||||
if setting == nil then setting = true end
|
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")
|
local player = minetest.get_player_by_name("singleplayer")
|
||||||
lzr_player.set_editor_inventory(player)
|
lzr_player.set_editor_inventory(player)
|
||||||
lzr_gui.set_editor_gui(player)
|
lzr_gui.set_editor_gui(player)
|
||||||
|
lzr_ambience.set_ambience("ocean")
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
name = lzr_editor
|
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_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
|
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
|
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
|
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
|
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
|
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)
|
return vector.new(x,y,z)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Read the level schematics to find out some metadata about them
|
--[[ Read the level schematics to find out some metadata about them
|
||||||
-- and count the number of levels
|
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 analyze_levels = function()
|
||||||
local level_list_path = minetest.get_modpath("lzr_levels").."/data/level_data.csv"
|
local level_list_path = minetest.get_modpath("lzr_levels").."/data/level_data.csv"
|
||||||
local level_list_file = io.open(level_list_path, "r")
|
local level_list_file = io.open(level_list_path, "r")
|
||||||
|
@ -55,12 +63,13 @@ local analyze_levels = function()
|
||||||
local filename = matches[1]
|
local filename = matches[1]
|
||||||
local lname = matches[2]
|
local lname = matches[2]
|
||||||
local nodes = matches[3]
|
local nodes = matches[3]
|
||||||
|
local ambience = matches[4]
|
||||||
local node_matches = string.split(nodes, "|")
|
local node_matches = string.split(nodes, "|")
|
||||||
local node_wall = node_matches[1]
|
local node_wall = node_matches[1]
|
||||||
local node_window = node_matches[2] or node_wall
|
local node_window = node_matches[2] or node_wall
|
||||||
local node_floor = node_matches[3] or node_wall
|
local node_floor = node_matches[3] or node_wall
|
||||||
local node_ceiling = node_matches[4] 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
|
end
|
||||||
lzr_levels.LAST_LEVEL = #level_data
|
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
|
if lzr_gamestate.get_state() ~= lzr_gamestate.EDITOR then
|
||||||
lzr_gamestate.set_state(lzr_gamestate.LEVEL)
|
lzr_gamestate.set_state(lzr_gamestate.LEVEL)
|
||||||
end
|
end
|
||||||
|
lzr_ambience.set_ambience(level_data[level].ambience)
|
||||||
minetest.log("action", "[lzr_levels] Starting level "..level)
|
minetest.log("action", "[lzr_levels] Starting level "..level)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
name = lzr_levels
|
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")
|
local player = minetest.get_player_by_name("singleplayer")
|
||||||
lzr_player.set_play_inventory(player)
|
lzr_player.set_play_inventory(player)
|
||||||
lzr_gui.set_menu_gui(player)
|
lzr_gui.set_menu_gui(player)
|
||||||
|
lzr_ambience.set_ambience("ocean")
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue