Advertisement
Guest User

Untitled

a guest
May 7th, 2020
2,926
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.77 KB | None | 0 0
  1. local valueCreator = {}
  2. local runService = game:GetService("RunService")
  3.  
  4. local function lerpNumber(a, b, t)
  5.     return a + (b - a) * t
  6. end
  7.  
  8. function valueCreator:create(initialValue, target, speed)
  9.     local value = {}
  10.     value.value = initialValue or 0
  11.     value.speed = speed or 10
  12.     value.target = target or 0
  13.    
  14.     function value:increment(x)
  15.         value.target = value.target + x
  16.     end
  17.    
  18.     function value:multiply(x)
  19.         value.target = value.target * x
  20.     end
  21.    
  22.     function value:set(x)
  23.         value.target = x
  24.     end
  25.    
  26.     function value:get()
  27.         return value.value
  28.     end
  29.    
  30.     function value:update(dt)
  31.         local lerp = math.min(dt * value.speed, 1)
  32.         value.value = lerpNumber(value.value,value.target,lerp)
  33.        
  34.         return value.value
  35.     end
  36.    
  37.     return value
  38. end
  39.  
  40.  
  41. return valueCreator
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement