30 lines
592 B
Plaintext
30 lines
592 B
Plaintext
ManualGearbox = class('ManualGearbox')
|
|
|
|
function ManualGearbox:initialize(config)
|
|
self.ratios = config.Ratios
|
|
self.reverse = config.Reverse
|
|
|
|
self.rpm = 0
|
|
self.torque = 0
|
|
self.gear = 0
|
|
|
|
self:recalcRatio()
|
|
|
|
self.axles = {}
|
|
self.clutch = {}
|
|
end
|
|
|
|
function ManualGearbox:update()
|
|
if self.clutch ~= nil then
|
|
self.torque = self.clutch.torque * self.ratio
|
|
end
|
|
|
|
local axlesRPM = table.map(self.axles, function(diff)
|
|
return diff.avgRPM
|
|
end)
|
|
|
|
local maxAxlesRPM = math.max(unpack(axlesRPM))
|
|
|
|
self.rpm = maxAxlesRPM * self.ratio
|
|
end
|