Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name ACF Manual Gearbox
- @inputs GearUp GearDown RPM W
- @outputs OGear
- @persist GearWait Gear Clutch TClutch
- @trigger
- ## This chip was made by Kickasskyle
- interval(20)
- ################
- ## IMPORTANT: If you have more than one engine, use the example line below, and add an RPM variable for each engine
- # and divide rpm by the amount of engines. Don't forget to put an input for each rpm (RPM1 RPM2 RPM3 etc)
- #Example:
- #EngineRPM = RPM1+RPM2 / 2
- #Constants
- MinRPM = 1800
- ClutchSmoother = 0.1
- if(clk()){
- GearChange = GearUp + GearDown
- #RPM & ClutchControl
- #RPM Monitor
- if(RPM>MinRPM){
- TClutch = clamp(!W,0,0.9)
- }else{
- TClutch = 1
- }
- #ClutchSmoother
- Clutch = clamp(TClutch,Clutch-ClutchSmoother,Clutch+ClutchSmoother)
- ClutchR = Clutch
- ClutchL = Clutch
- if(!GearChange & GearWait){
- GearWait = 0
- }
- if(GearChange){
- #Neutral Shifting
- if(Gear == 0 & !GearWait){
- if(GearUp){
- Gear = 1
- GearWait = 1
- }
- }
- #Gear 1 Shifting
- if(Gear == 1 & !GearWait){
- if(GearUp){
- Gear = 2
- GearWait = 1
- }
- if(GearDown){
- Gear = 0
- GearWait = 1
- }
- }
- #Gear 2 Shifting
- if(Gear == 2 & !GearWait){
- if(GearUp){
- Gear = 3
- GearWait = 1
- }
- if(GearDown){
- Gear = 1
- GearWait = 1
- }
- }
- #Gear 3 Shifting
- if(Gear == 3 & !GearWait){
- if(GearUp){
- Gear = 4
- GearWait = 1
- }
- if(GearDown){
- Gear = 2
- GearWait = 1
- }
- }
- #Gear 3 Shifting
- if(Gear == 4 & !GearWait){
- if(GearUp){
- Gear = 5
- GearWait = 1
- }
- if(GearDown){
- Gear = 3
- GearWait = 1
- }
- }
- #Gear 3 Shifting
- if(Gear == 5 & !GearWait){
- if(GearUp){
- Gear = 6
- GearWait = 1
- }
- if(GearDown){
- Gear = 4
- GearWait = 1
- }
- }
- #Gear 4 Shifting
- if(Gear == 6 & !GearWait){
- if(GearDown){
- Gear = 5
- GearWait = 1
- }
- }
- }
- if(Gear == 0){
- OGear = 0
- }
- if(Gear == 1){
- OGear = 1
- }
- if(Gear == 2){
- OGear = 2
- }
- if(Gear == 3){
- OGear = 3
- }
- if(Gear == 4){
- OGear = 4
- }
- if(Gear == 5){
- OGear = 5
- }
- if(Gear == 6){
- OGear = 6
- }
- }
Add Comment
Please, Sign In to add comment