Guest User

Untitled

a guest
Jul 20th, 2018
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. --[[
  2. © 2012 Slidefuse.net do not share, re-distribute or modify
  3. without permission of its author (spencer@sf-n.com).
  4. --]]
  5.  
  6.  
  7. SF.Fades = {};
  8.  
  9. function SF.Fades:Init(lifeTime, startVal, endVal, pause)
  10. self.pause = pause or 0;
  11. self.startTime = CurTime() + self.pause;
  12. self.lifeTime = lifeTime;
  13. self.startVal = startVal;
  14. self.endVal = endVal;
  15. self.decrease = false;
  16. if ((startVal <= 0 and endVal <= 0 and startVal < endVal) or (startVal >= 0 and endVal >= 0 and endVal < startVal)) then
  17. self.decrease = true;
  18. end;
  19. end;
  20.  
  21. function SF.Fades:SetCurve(cType)
  22. if (cType == "quadratic") then
  23. self.parabolic = true;
  24. end;
  25. end;
  26.  
  27. function SF.Fades:Value()
  28. local frac = math.Clamp((CurTime() - self.startTime) / self.lifeTime, 0, 1);
  29. if (self.decrease) then
  30. return self.startVal - Lerp(frac, self.startVal, self.endVal);
  31. end;
  32.  
  33. if (CurTime() < self.startTime) then
  34. return self.startVal;
  35. end;
  36. if (self:Active()) then
  37. return Lerp(frac, self.startVal, self.endVal);
  38. end;
  39. return self.endVal;
  40. end;
  41.  
  42. function SF.Fades:Active()
  43. if (CurTime() < self.startTime + self.lifeTime + self.pause + FrameTime()) then
  44. return true;
  45. end;
  46. end;
  47.  
  48. function SF:NewFade(lifeTime, startVal, endVal, pause)
  49. local init = {};
  50. setmetatable(init, self.Fades);
  51. self.Fades.__index = self.Fades;
  52. init:Init(lifeTime, startVal, endVal, pause);
  53. return init;
  54. end;
Add Comment
Please, Sign In to add comment