Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. local oldmath = math;
  2. local newmath = {};
  3. for k,v in pairs(oldmath) do
  4. newmath[k] = v;
  5. end
  6.  
  7. local function CheckGlobalFunctionExists(name,func)
  8. if not _G[name] then
  9. _G[name] = func;
  10. end
  11. end
  12.  
  13. function newmath.clamp(val,min,max)
  14. return (val <= min) and min or (val >= max) and max or val;
  15. end
  16.  
  17. function newmath.frac(num)
  18. return num - math2.trunc(num);
  19. end
  20.  
  21. function newmath.mod(a,b)
  22. return a - math.floor(a/b) * b;
  23. end
  24.  
  25. function newmath.round(num,ndp)
  26. local multi = 10 ^ (ndp or 0);
  27. if num > 0 then
  28. return math.floor(num * multi + 0.5) / multi;
  29. else
  30. return math.ceil(num * multi - 0.5) / multi;
  31. end
  32. end
  33.  
  34. function newmath.sign(num)
  35. return num / math.abs(num);
  36. end
  37.  
  38. function newmath.trunc(num,ndp)
  39. local multi = 10 ^ (ndp or 0);
  40. if num > 0 then
  41. return math.floor(num * multi) / multi;
  42. else
  43. return math.ceil(num * multi) / multi;
  44. end
  45. end
  46.  
  47. local function approach(val,other_val,to_move)
  48. if val ~= other_val then
  49. local delta = other_val - val;
  50. local sign = delta / math.abs(delta);
  51. local tomove = sign * to_move;
  52. if math.abs(tomove) > math.abs(delta) then
  53. tomove = delta;
  54. end
  55. val = val + tomove;
  56. end
  57. return val;
  58. end
  59.  
  60. local function lerp(x,l,h)
  61. return x * (h - l) + l;
  62. end
  63.  
  64. local function scale(x,l1,h1,l2,h2)
  65. return (x - l1) * (h2 - l2) / (h1 - l1) + l2;
  66. end
  67.  
  68. CheckGlobalFunctionExists('approach',approach);
  69. CheckGlobalFunctionExists('lerp',lerp);
  70. CheckGlobalFunctionExists('scale',scale);
  71.  
  72. return newmath;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement