43 lines
1.2 KiB
Lua
43 lines
1.2 KiB
Lua
--[[
|
|
A simple component that allows you to bind to RenderStep
|
|
|
|
Props:
|
|
name - the name of the bind
|
|
priority - when during the render step to call the function
|
|
callback - function that will be invoked on render step
|
|
|
|
Usage:
|
|
|
|
RenderCn = Roact.createElement(RenderStep, {
|
|
name = "MyRenderStep",
|
|
priority = Enum.RenderPriority.Input.Value,
|
|
callback = function() print("stepping") end
|
|
})
|
|
]]
|
|
local RunService = game:GetService("RunService")
|
|
local Modules = game:GetService("CoreGui").RobloxGui.Modules
|
|
|
|
local Roact = require(Modules.Common.Roact)
|
|
|
|
local RenderStep = Roact.Component:extend("RenderStep")
|
|
|
|
function RenderStep:render()
|
|
return nil
|
|
end
|
|
|
|
function RenderStep:didMount()
|
|
RunService:BindToRenderStep(self.props.name, self.props.priority, self.props.callback)
|
|
end
|
|
|
|
function RenderStep:didUpdate(oldProps)
|
|
if self.props.callback ~= oldProps.callback or self.props.name ~= oldProps.name then
|
|
RunService:UnbindFromRenderStep(oldProps.name)
|
|
RunService:BindToRenderStep(self.props.name, self.props.priority, self.props.callback)
|
|
end
|
|
end
|
|
|
|
function RenderStep:willUnmount()
|
|
RunService:UnbindFromRenderStep(self.props.name)
|
|
end
|
|
|
|
return RenderStep |