fix wheelspeed and backwards sounds

master
Elkien3 2020-09-08 09:42:12 -05:00
parent 28d3eec210
commit 32a8aeb5d5
2 changed files with 23 additions and 13 deletions

View File

@ -163,7 +163,6 @@ end
function biker.wheelspeed(bike)
--if true then return end
if not bike then return end
if not bike.wheels then return end
if not bike.object then return end
if not bike.object:getvelocity() then return end
local direction = 1
@ -325,12 +324,6 @@ function biker.drive(entity, dtime)
entity.wheelie = repair(angleLerp(k, 0 ,0.1))
entity.object:set_rotation({x=entity.wheelie, y=newrot, z=repair(l,3)})
end
if math.abs(entity.v) < .05 and math.abs(entity.v) > 0 then
biker.wheelspeed(entity)
end
if entity.lastv and vector.length(entity.lastv) == 0 and math.abs(entity.v) > 0 then
biker.wheelspeed(entity)
end
if not ctrl.sneak then
local s = get_sign(entity.v)
entity.v = entity.v - 0.04 * s
@ -390,6 +383,20 @@ function biker.drive(entity, dtime)
entity.object:setvelocity(new_velo)
entity.object:setacceleration(new_acce)
if entity.lastv and vector.length(entity.lastv) > 0 and math.abs(entity.v) == 0 then
biker.wheelspeed(entity)
if entity.wheelsound then
minetest.sound_fade(entity.wheelsound, 30, 0)
end
if entity.windsound then
minetest.sound_fade(entity.windsound, 30, 0)
end
end
if entity.lastv and vector.length(entity.lastv) == 0 and math.abs(entity.v) > 0 then
biker.wheelspeed(entity)
end
entity.lastv = entity.object:getvelocity()
--sound
@ -413,14 +420,15 @@ function biker.drive(entity, dtime)
end
end
entity.timer2 = entity.timer2 + dtime
if entity.timer2 > 1.5-entity.v/max_spd*1.1 then
if math.abs(entity.v) > .2 then
local abs_v = math.abs(entity.v)
if entity.timer2 > 1.5-abs_v/max_spd*1.1 then
if abs_v > .2 then
if math.abs(velo.y) < .1 then
entity.wheelsound = minetest.sound_play("tyresound", {
max_hear_distance = 48,
object = entity.object,
pitch = 1.1 + (entity.v/max_spd)*.6,
gain = .5 + (entity.v/max_spd)*2
pitch = 1.1 + (abs_v/max_spd)*.6,
gain = .5 + (abs_v/max_spd)*2
})
elseif entity.windsound then
minetest.sound_fade(entity.windsound, 30, 0)
@ -428,8 +436,8 @@ function biker.drive(entity, dtime)
entity.windsound = minetest.sound_play("wind", {
max_hear_distance = 10,
object = entity.object,
pitch = 1 + (entity.v/max_spd)*.6,
gain = 0 + (entity.v/max_spd)*4
pitch = 1 + (abs_v/max_spd)*.6,
gain = 0 + (abs_v/max_spd)*4
})
end
entity.timer2 = 0

View File

@ -33,6 +33,8 @@ for id, colour in pairs (bikelist) do
self.platenumber = staticdata
end
end
if not self.timer1 then self.timer1 = 0 end
if not self.timer2 then self.timer2 = 0 end
local pos = self.object:get_pos()
self.object:set_armor_groups({fleshy=0, immortal=1})
if biker.signs then