-- -- revLimiter -- Specialization for farmer car mod -- -- @author Stefan Geiger -- @date 10/01/09 -- -- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved. revLimiter = {}; function revLimiter.prerequisitesPresent(specializations) return SpecializationUtil.hasSpecialization(Motorized, specializations); end; function revLimiter:load(xmlFile) local motorMinRpm = Utils.getNoNil(getXMLFloat(xmlFile, "vehicle.motor#minRpm"), 1000); local motorMaxRpmStr = getXMLString(xmlFile, "vehicle.motor#maxRpm"); local motorMaxRpm1, motorMaxRpm2, motorMaxRpm3 = Utils.getVectorFromString(motorMaxRpmStr); motorMaxRpm1 = Utils.getNoNil(motorMaxRpm1, 800); motorMaxRpm2 = Utils.getNoNil(motorMaxRpm2, 1000); motorMaxRpm3 = Utils.getNoNil(motorMaxRpm3, 1800); local motorMaxRpm = {motorMaxRpm1, motorMaxRpm2, motorMaxRpm3}; self.motorMaxRpmLimit = motorMaxRpm; end; function revLimiter:delete() end; function revLimiter:mouseEvent(posX, posY, isDown, isUp, button) end; function revLimiter:keyEvent(unicode, sym, modifier, isDown) end; function revLimiter:update(dt) if self:getIsActiveForInput() and self.isEntered then if self.motor.speedLevel ~= 0 then if InputBinding.isPressed(InputBinding.ACCELERATE) then if self.motor.maxRpm[self.motor.speedLevel] <= (self.motorMaxRpmLimit[3] - 10) then self.motor.maxRpm[self.motor.speedLevel] = self.motor.maxRpm[self.motor.speedLevel] + 10; end; elseif InputBinding.isPressed(InputBinding.DECELERATE) then if self.motor.maxRpm[self.motor.speedLevel] >= 10 then self.motor.maxRpm[self.motor.speedLevel] = self.motor.maxRpm[self.motor.speedLevel] - 10; end; end; else if InputBinding.isPressed(InputBinding.ACCELERATE) then if self.motor.maxRpm[3] <= (self.motorMaxRpmLimit[3] - 10) then self.motor.maxRpm[3] = self.motor.maxRpm[3] + 10; end; elseif InputBinding.isPressed(InputBinding.DECELERATE) then if self.motor.maxRpm[3] >= 10 then self.motor.maxRpm[3] = self.motor.maxRpm[3] - 10; end; end; end; end; end; function revLimiter:draw() if self.motor.speedLevel ~= 0 then g_currentMission:addExtraPrintText("Taste NUM +/-: "..string.format("%d RPM",self.motor.maxRpm[self.motor.speedLevel])..""); else g_currentMission:addExtraPrintText("Taste NUM +/-: "..string.format("%d RPM",self.motor.maxRpm[3])..""); end; end;