fix wheelspeed and backwards sounds
This commit is contained in:
parent
28d3eec210
commit
32a8aeb5d5
@ -163,7 +163,6 @@ end
|
|||||||
function biker.wheelspeed(bike)
|
function biker.wheelspeed(bike)
|
||||||
--if true then return end
|
--if true then return end
|
||||||
if not bike 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 then return end
|
||||||
if not bike.object:getvelocity() then return end
|
if not bike.object:getvelocity() then return end
|
||||||
local direction = 1
|
local direction = 1
|
||||||
@ -325,12 +324,6 @@ function biker.drive(entity, dtime)
|
|||||||
entity.wheelie = repair(angleLerp(k, 0 ,0.1))
|
entity.wheelie = repair(angleLerp(k, 0 ,0.1))
|
||||||
entity.object:set_rotation({x=entity.wheelie, y=newrot, z=repair(l,3)})
|
entity.object:set_rotation({x=entity.wheelie, y=newrot, z=repair(l,3)})
|
||||||
end
|
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
|
if not ctrl.sneak then
|
||||||
local s = get_sign(entity.v)
|
local s = get_sign(entity.v)
|
||||||
entity.v = entity.v - 0.04 * s
|
entity.v = entity.v - 0.04 * s
|
||||||
@ -390,6 +383,20 @@ function biker.drive(entity, dtime)
|
|||||||
|
|
||||||
entity.object:setvelocity(new_velo)
|
entity.object:setvelocity(new_velo)
|
||||||
entity.object:setacceleration(new_acce)
|
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()
|
entity.lastv = entity.object:getvelocity()
|
||||||
|
|
||||||
--sound
|
--sound
|
||||||
@ -413,14 +420,15 @@ function biker.drive(entity, dtime)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
entity.timer2 = entity.timer2 + dtime
|
entity.timer2 = entity.timer2 + dtime
|
||||||
if entity.timer2 > 1.5-entity.v/max_spd*1.1 then
|
local abs_v = math.abs(entity.v)
|
||||||
if math.abs(entity.v) > .2 then
|
if entity.timer2 > 1.5-abs_v/max_spd*1.1 then
|
||||||
|
if abs_v > .2 then
|
||||||
if math.abs(velo.y) < .1 then
|
if math.abs(velo.y) < .1 then
|
||||||
entity.wheelsound = minetest.sound_play("tyresound", {
|
entity.wheelsound = minetest.sound_play("tyresound", {
|
||||||
max_hear_distance = 48,
|
max_hear_distance = 48,
|
||||||
object = entity.object,
|
object = entity.object,
|
||||||
pitch = 1.1 + (entity.v/max_spd)*.6,
|
pitch = 1.1 + (abs_v/max_spd)*.6,
|
||||||
gain = .5 + (entity.v/max_spd)*2
|
gain = .5 + (abs_v/max_spd)*2
|
||||||
})
|
})
|
||||||
elseif entity.windsound then
|
elseif entity.windsound then
|
||||||
minetest.sound_fade(entity.windsound, 30, 0)
|
minetest.sound_fade(entity.windsound, 30, 0)
|
||||||
@ -428,8 +436,8 @@ function biker.drive(entity, dtime)
|
|||||||
entity.windsound = minetest.sound_play("wind", {
|
entity.windsound = minetest.sound_play("wind", {
|
||||||
max_hear_distance = 10,
|
max_hear_distance = 10,
|
||||||
object = entity.object,
|
object = entity.object,
|
||||||
pitch = 1 + (entity.v/max_spd)*.6,
|
pitch = 1 + (abs_v/max_spd)*.6,
|
||||||
gain = 0 + (entity.v/max_spd)*4
|
gain = 0 + (abs_v/max_spd)*4
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
entity.timer2 = 0
|
entity.timer2 = 0
|
||||||
|
2
init.lua
2
init.lua
@ -33,6 +33,8 @@ for id, colour in pairs (bikelist) do
|
|||||||
self.platenumber = staticdata
|
self.platenumber = staticdata
|
||||||
end
|
end
|
||||||
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()
|
local pos = self.object:get_pos()
|
||||||
self.object:set_armor_groups({fleshy=0, immortal=1})
|
self.object:set_armor_groups({fleshy=0, immortal=1})
|
||||||
if biker.signs then
|
if biker.signs then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user