Cleaning
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
--@include libs/utils.txt
|
||||
--@client
|
||||
|
||||
-- @include libs/utils.txt
|
||||
-- @client
|
||||
require("/koptilnya/libs/utils.txt")
|
||||
|
||||
EngineSound = class("EngineSound")
|
||||
@@ -10,42 +9,42 @@ accessorFunc(EngineSound, "_parent", "Parent", chip())
|
||||
|
||||
local function fadeIn(rpm, range)
|
||||
local fadeIn = 1
|
||||
|
||||
if range and range[1] != range[2] then
|
||||
|
||||
if range and range[1] ~= range[2] then
|
||||
fadeIn = math.min(math.max((rpm + (range[2] - range[1] * 2)) / (range[2] - range[1]), 1) - 1, 1)
|
||||
elseif range and range[1] == range[2] then
|
||||
fadeIn = rpm >= range[1] and 1 or 0
|
||||
end
|
||||
|
||||
|
||||
return fadeIn
|
||||
end
|
||||
|
||||
local function fadeOut(rpm, range)
|
||||
local fadeOut = 1
|
||||
|
||||
if range and range[1] != range[2] then
|
||||
|
||||
if range and range[1] ~= range[2] then
|
||||
fadeOut = math.min(math.max((rpm + (range[1] - range[2] * 2)) / (range[1] - range[2]), 1) - 1, 1)
|
||||
elseif range and range[1] == range[2] then
|
||||
fadeOut = rpm >= range[1] and 1 or 0
|
||||
end
|
||||
|
||||
|
||||
return fadeOut
|
||||
end
|
||||
|
||||
function EngineSound:initialize(soundsMap)
|
||||
self.pitchDamping = 0.2
|
||||
self.volumeDamping = 0.3
|
||||
|
||||
|
||||
self._rpm = 0
|
||||
self._soundsMap = soundsMap
|
||||
|
||||
|
||||
for k, v in pairs(soundsMap) do
|
||||
bass.loadURL(v.link, "3d noblock", function(snd, err, errtxt)
|
||||
if snd then
|
||||
snd:setPos(self:getParent():getPos())
|
||||
snd:setLooping(true)
|
||||
snd:setVolume(0)
|
||||
|
||||
|
||||
v.source = snd
|
||||
v.lastPitch = 1
|
||||
v.lastVolume = 0
|
||||
@@ -54,25 +53,25 @@ function EngineSound:initialize(soundsMap)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
hook.add("think", "EngineSound_think", function()
|
||||
|
||||
hook.add("think", "EngineSound_think", function()
|
||||
for _, v in pairs(self._soundsMap) do
|
||||
if v.source then
|
||||
v.source:setPos(self:getParent():getPos())
|
||||
|
||||
|
||||
local fadeIn = fadeIn(self:getRPM(), v.fadeIn)
|
||||
local fadeOut = fadeOut(self:getRPM(), v.fadeOut)
|
||||
local targetVolume = self:getMasterVolume() * (fadeIn + fadeOut - 1)
|
||||
local targetPitch = self:getRPM() / v.rootPitch
|
||||
|
||||
|
||||
local pitch = math.lerp(self.pitchDamping, v.lastPitch, targetPitch)
|
||||
local volume = math.lerp(self.volumeDamping, v.lastVolume, targetVolume)
|
||||
|
||||
|
||||
v.source:setVolume(volume)
|
||||
v.source:setPitch(pitch)
|
||||
|
||||
|
||||
v.lastVolume = volume
|
||||
v.lastPitch = pitch
|
||||
v.lastPitch = pitch
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user