Add sound while flying.

master
David G 2019-02-19 12:10:38 -07:00
parent 2ec2bf165a
commit b8efac792a
3 changed files with 18 additions and 1 deletions

View File

@ -5,7 +5,7 @@ This is a fork of the minetest-hangglider mod by Piezo_ (orderofthefourthwall@gm
Which is located at:
<https://notabug.org/Piezo_/minetest-hangglider>
This was synched up with Piezo_'s updates from Nov 25.
This was last synched up with Piezo_'s updates from Nov 25.
- hud overlay and debug can be enabled/disabled.
- Added blender-rendered overlay for struts using the actual model.
@ -23,3 +23,4 @@ I've made the following changes to the code:
- Wear is back and better than ever. Breaks on unequip rather than equip, so doesn't leave you falling from a cliff.
- Number of uses is configurable, currently defaults to 50, but expect this will need tuning.
- Updated pos offset for launching, so don't have unintended wear when standing.
- Added sound while flying. Loop derived from "Flag Flapping in Wind" by Felix Blume, CC0 1.0 Universal License.

View File

@ -55,6 +55,10 @@
-- Wear is back and better than ever. Breaks on unequip rather than equip.
-- Adjust glider_uses below, default 50.
-- 2019-02-19
-- Add sound while gliding.
-- Loop derived from "Flag Flapping in Wind" by Felix Blume, CC0 1.0 Universal License
-- Configuration variables
local HUD_Overlay = true --show glider struts as overlay on HUD
local debug = false --show debug info in top-center of hud
@ -62,6 +66,7 @@ local glider_uses = 50 -- define number of uses before hangglider wears out
-- End configuration
hangglider = {} --Make this global, so other mods can tell if hangglider exists.
local handles = {}
hangglider.use = {}
local prev_equip_key = {}
if HUD_Overlay then
@ -171,6 +176,10 @@ minetest.register_entity("hangglider:glider", {
newspeed = -vel.y * 0.375 + 1 -- gradually increase from 1 to 1.75
end
player:set_physics_override({gravity = grav, speed = newspeed})
if not handles[pname] then
local handle = minetest.sound_play("hangglider_flying", {to_player = pname, gain = 0.5, loop = true})-- {object = self.object, loop = true})
handles[pname] = handle
end
end
end
end
@ -181,6 +190,10 @@ minetest.register_entity("hangglider:glider", {
speed = 1,
})
hangglider.use[pname] = false
if handles[pname] then -- stop sound if playing
minetest.sound_stop(handles[pname])
handles[pname] = nil
end
if HUD_Overlay then
player:hud_change(hangglider.id[pname], "text", "")
end
@ -207,6 +220,7 @@ minetest.register_on_dieplayer(function(player)
})
hangglider.use[pname] = false
prev_equip_key[pname] = false
handles[pname] = nil
end)
@ -217,6 +231,7 @@ minetest.register_on_joinplayer(function(player)
jump = 1,
})
hangglider.use[pname] = false
handles[pname] = nil
prev_equip_key[pname] = false
if HUD_Overlay then
hangglider.id[pname] = player:hud_add({
@ -241,6 +256,7 @@ end)
minetest.register_on_leaveplayer(function(player)
local pname = player:get_player_name()
hangglider.use[pname] = nil
handles[pname] = nil
prev_equip_key[pname] = nil
if HUD_Overlay then hangglider.id[pname] = nil end
if debug then hangglider.debug[pname] = nil end

Binary file not shown.