68 lines
1.9 KiB
Lua
68 lines
1.9 KiB
Lua
local CorePackages = game:GetService("CorePackages")
|
|
local RunService = game:GetService("RunService")
|
|
local Workspace = game:GetService("Workspace")
|
|
|
|
local Roact = require(CorePackages.Roact)
|
|
|
|
local AnimatedDot = require(script.Parent.AnimatedDot)
|
|
local ExternalEventConnection = require(script.Parent.Parent.Connection.ExternalEventConnection)
|
|
|
|
local withLayoutValues = require(script.Parent.Parent.Connection.withLayoutValues)
|
|
|
|
local ANIMATION_SPEED_MULTIPLIER = 2.00
|
|
|
|
local PurchasingAnimation = Roact.Component:extend("PurchasingAnimation")
|
|
|
|
function PurchasingAnimation:init()
|
|
self.state = {
|
|
gameTime = 0,
|
|
}
|
|
|
|
self.onRenderStepped = function()
|
|
self:setState({
|
|
gameTime = Workspace.DistributedGameTime
|
|
})
|
|
end
|
|
end
|
|
|
|
function PurchasingAnimation:render()
|
|
return withLayoutValues(function(values)
|
|
local layoutOrder = self.props.layoutOrder
|
|
|
|
local gameTime = self.state.gameTime
|
|
|
|
local animationTime = (gameTime * ANIMATION_SPEED_MULTIPLIER) % 3
|
|
|
|
return Roact.createElement("Frame", {
|
|
Size = values.Size.PurchasingAnimation,
|
|
BackgroundTransparency = 1,
|
|
BorderSizePixel = 0,
|
|
LayoutOrder = layoutOrder,
|
|
}, {
|
|
RenderSteppedConnection = Roact.createElement(ExternalEventConnection, {
|
|
event = RunService.RenderStepped,
|
|
callback = self.onRenderStepped,
|
|
}),
|
|
ListLayout = Roact.createElement("UIListLayout", {
|
|
HorizontalAlignment = Enum.HorizontalAlignment.Center,
|
|
VerticalAlignment = Enum.VerticalAlignment.Center,
|
|
FillDirection = Enum.FillDirection.Horizontal,
|
|
SortOrder = Enum.SortOrder.LayoutOrder,
|
|
}),
|
|
AnimatedDot1 = Roact.createElement(AnimatedDot, {
|
|
layoutOrder = 1,
|
|
time = animationTime,
|
|
}),
|
|
AnimatedDot2 = Roact.createElement(AnimatedDot, {
|
|
layoutOrder = 2,
|
|
time = animationTime,
|
|
}),
|
|
AnimatedDot3 = Roact.createElement(AnimatedDot, {
|
|
layoutOrder = 3,
|
|
time = animationTime,
|
|
}),
|
|
})
|
|
end)
|
|
end
|
|
|
|
return PurchasingAnimation |