Advertisement
sumguytwitches

accel queue

Jun 10th, 2023 (edited)
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. set runvq to false.
  2. wait 0.1.
  3. set runvq to true.
  4.  
  5. set vq to queue().
  6. set vqtime to 5.
  7. set runvq to true.
  8.  
  9. set vlast to lex().
  10. set vlast["time"] to time:seconds.
  11. set vlast["speed"] to airspeed.
  12. set vlast["accel"] to 0.
  13.  
  14. set accel to 0.
  15. set runningacceltotal to 0.
  16. set vHz to 3.
  17. on round(time:seconds * vHz) {
  18. local vdata is lex().
  19. set vdata["time"] to time:seconds.
  20. set vdata["speed"] to airspeed.
  21. set deltatime to vdata:time - vlast:time.
  22. set deltaspeed to vdata:speed - vlast:speed.
  23. set vdata["accel"] to deltaspeed / deltatime.
  24. set vlast to vdata.
  25. vq:push(vdata).
  26. set runningacceltotal to runningacceltotal + vdata:accel.
  27. if (time:seconds - vq:peek():time) > vqtime {
  28. set runningacceltotal to runningacceltotal - vq:pop():accel.
  29. }
  30. set accel to runningacceltotal / vq:length.
  31. return runvq.
  32. }
  33.  
  34.  
  35.  
  36. set autoblade to true.
  37. set deploystep to 0.1.
  38. set accelwiggle to 0.1.
  39.  
  40. set acHz to 10.
  41. on round(time:seconds * acHz) {
  42. if abs(accel) < accelwiggle {
  43. set deploy to max(9,min(89,deploy + deploystep)).
  44. set deploystep to (accel / abs(accel))*deploystep.
  45. }
  46.  
  47. return autoblade.
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement