Advertisement
brokenVectors

Untitled

Sep 28th, 2020
1,938
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1.  
  2. local module = {}
  3. module.positions = {}
  4. module.tracking = {}
  5. module.anchored = {}
  6. module.time = 0
  7. module.speed = 1
  8. module.reverse = false
  9. function module:Track(obj)
  10. table.insert(module.tracking, obj)
  11. module.positions[obj] = {}
  12. if obj.Anchored then
  13. table.insert(module.anchored, obj)
  14. end
  15. end
  16. function module:Update()
  17. if module.time < 0 then
  18. for _,obj in ipairs(module.tracking) do
  19. if not table.find(module.anchored, obj) then
  20. module.positions = {} -- just in case
  21. obj.Anchored = false
  22. end
  23. end
  24.  
  25. module:SetSpeed(1)
  26. module.reverse = false
  27. end
  28.  
  29. if module.reverse then
  30. module.time -= module.speed
  31. else
  32. module.time += module.speed
  33. end
  34.  
  35.  
  36. for _,obj in ipairs(module.tracking) do
  37. if module.reverse then
  38. obj.Anchored = true
  39. end
  40. if not module.positions[obj] then
  41. module.positions[obj] = {}
  42. end
  43. if not module.positions[obj][module.time] then
  44. module.positions[obj][module.time] = obj.CFrame
  45. end
  46. if module.reverse then
  47. obj.CFrame = module.positions[obj][module.time] -- support time reversing
  48. end
  49. end
  50. end
  51. function module:SetSpeed(speed)
  52. assert(speed == math.abs(speed), "Speed must be a positive integer!")
  53. assert(speed == math.floor(speed), "Speed must be an integer!")
  54. module.speed = speed
  55. end
  56. function module:Reverse()
  57. module.reverse = true
  58. end
  59. return module
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement