Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Basic UI Animation Manager by darraghd493
- A basic management library for UI libraries.
- ]]
- local TweenService = game:GetService("TweenService")
- local UIAnimationManager = {}
- UIAnimationManager.ActiveTweens = {}
- function UIAnimationManager:Play(instance: Instance, tweenInfo: TweenInfo, properties: table, tag: string?)
- assert(instance, "Instance is required")
- assert(tweenInfo, "TweenInfo is required")
- assert(properties, "Properties table is required")
- self:Cancel(instance, tag)
- local tween = TweenService:Create(instance, tweenInfo, properties)
- local tweenTag = tag or "default"
- self.ActiveTweens[instance] = self.ActiveTweens[instance] or {}
- self.ActiveTweens[instance][tweenTag] = tween
- tween.Completed:Connect(function()
- if self.ActiveTweens[instance] then
- self.ActiveTweens[instance][tweenTag] = nil
- if next(self.ActiveTweens[instance]) == nil then
- self.ActiveTweens[instance] = nil
- end
- end
- end)
- tween:Play()
- return tween
- end
- function UIAnimationManager:Cancel(instance: Instance, tag: string?)
- local instanceTweens = self.ActiveTweens[instance]
- if not instanceTweens then return end
- if tag then
- local tween = instanceTweens[tag]
- if tween then
- tween:Cancel()
- instanceTweens[tag] = nil
- end
- else
- for key, tween in pairs(instanceTweens) do
- tween:Cancel()
- instanceTweens[key] = nil
- end
- end
- if next(instanceTweens) == nil then
- self.ActiveTweens[instance] = nil
- end
- end
- function UIAnimationManager:CancelAll()
- for instance, _ in pairs(self.ActiveTweens) do
- self:Cancel(instance)
- end
- end
- return UIAnimationManager
Advertisement
Add Comment
Please, Sign In to add comment