Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name Realistic Steering
- @inputs POD:wirelink [Base,FL,FR]:wirelink
- @outputs Ang
- @persist [RotVel,BaseVel,A,D] [Camber,Lock] [B]:array
- interval(30)
- if(first()|dupefinished()){
- B[1,entity]=Base:entity()
- B[2,entity]=FL:entity()
- B[3,entity]=FR:entity()
- for(X=2,3){
- B[X,entity]:setMass(50000)
- }
- Camber=0
- Lock=45
- }
- RotVel=B[1,entity]:angVel():yaw()/30
- BaseVel=min((B[1,entity]:vel():length()/12000)+1,1.5)
- if(POD["Active",number]){
- A=(A*5+POD["A",number])/6
- D=(D*5+POD["D",number])/6
- }
- Ang-=2.5*(D-A)+RotVel
- Ang=Ang/BaseVel
- Ang=clamp(Ang,-Lock,Lock)
- B[2,entity]:setAng(B[1,entity]:toWorld(ang(0,Ang*(Ang<0 ? 0.75 : 1)*!B[1,entity]:isFrozen(),(-Camber-(Ang/10))*!B[1,entity]:isFrozen())))
- B[3,entity]:setAng(B[1,entity]:toWorld(ang(0,Ang*(Ang>0 ? 0.75 : 1)*!B[1,entity]:isFrozen(),(Camber-(Ang/10))*!B[1,entity]:isFrozen())))
- for(X=2,3){
- B[X,entity]:propFreeze(1)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement