2020-09-28 20:40:47 +01:00
|
|
|
local Public = {}
|
|
|
|
Public.__index = Public
|
|
|
|
|
|
|
|
function Public.new(player)
|
2020-11-13 20:06:01 +00:00
|
|
|
return setmetatable({player = player, _steps = {}, _teardowns = {}}, Public)
|
2020-09-28 20:40:47 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
function Public.timeout(self, delay, func)
|
|
|
|
local steps = self._steps
|
|
|
|
steps[#steps + 1] = {func = func, delay = delay or 1}
|
|
|
|
return self
|
|
|
|
end
|
|
|
|
|
|
|
|
function Public.next(self, func)
|
|
|
|
return self:timeout(1, func)
|
|
|
|
end
|
|
|
|
|
2020-11-13 20:06:01 +00:00
|
|
|
function Public.wait(self, delay)
|
|
|
|
return self:timeout(delay, function()
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
|
|
|
|
function Public.add_teardown(self, func)
|
|
|
|
local teardowns = self._teardowns
|
|
|
|
teardowns[#teardowns + 1] = func
|
|
|
|
return self
|
|
|
|
end
|
|
|
|
|
2020-09-28 20:40:47 +01:00
|
|
|
return Public
|