fix wheelspeed and backwards sounds
This commit is contained in:
parent
28d3eec210
commit
32a8aeb5d5
@ -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
|
||||
|
2
init.lua
2
init.lua
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user