Don't Starve Revision History Viewer

Comparing Six Feet Under (Rev 86935) to All's Well That Maxwell (Rev 88237)

scheduler.lua

37383940414243444546474849505152
end ------------------------------- Periodic = Class(function(self, fn, period, limit, ...) self.fn = fn self.period = period self.limit = limit self.list = nil self.onfinish = nil self.arg = {...} end) function Periodic:Cancel() self.limit = 0 if self.list then self.list[self] = nil
37383940414243444546474849505152535455565758
end ------------------------------- Periodic = Class(function(self, fn, period, limit, id, ...) self.fn = fn self.id = id self.period = period self.limit = limit self.list = nil self.onfinish = nil if ... then self.arg = {...} end end) function Periodic:Cancel() self.limit = 0 if self.list then self.list[self] = nil
535455565758596061
end if self.onfinish then self.onfinish(false) end end function Periodic:__tostring()
59606162636465666768697071727374
end if self.onfinish then if self.arg then self.onfinish(self, false, unpack(self.arg)) else self.onfinish(self, false) end self.onfinish = nil end self.fn = nil self.arg = nil end function Periodic:__tostring()
153154155156157158159
local already_dead = k.limit and k.limit == 0 if not already_dead and k.fn then k.fn(unpack(k.arg)) end if k.limit then
166167168169170171172173174175176
local already_dead = k.limit and k.limit == 0 if not already_dead and k.fn then if k.arg then k.fn(unpack(k.arg)) else k.fn() end end if k.limit then
166167168169170171172
k.list = list else if k.onfinish and not already_dead then k.onfinish(true) end end end
183184185186187188189190191192193194
k.list = list else if k.onfinish and not already_dead then if k.arg then k.onfinish(k, true, unpack(k.arg)) else k.onfinish(k, true) end k.onfinish = nil end end end
243244245246247248249250
end end function Scheduler:ExecuteInTime(timefromnow, fn, ...) return self:ExecutePeriodic(timefromnow, fn, 1, nil, ...) end function Scheduler:GetListForTimeFromNow(dt)
265266267268269270271272
end end function Scheduler:ExecuteInTime(timefromnow, fn, id, ...) return self:ExecutePeriodic(timefromnow, fn, 1, nil, id, ...) end function Scheduler:GetListForTimeFromNow(dt)
262263264265266267268269270
return list end function Scheduler:ExecutePeriodic(period, fn, limit, initialdelay, ...) local periodic = Periodic(fn, period, limit, ...) local list = self:GetListForTimeFromNow(initialdelay or period) list[periodic] = true periodic.list = list
284285286287288289290291
return list end function Scheduler:ExecutePeriodic(period, fn, limit, initialdelay, id, ...) local periodic = Periodic(fn, period, limit, id, ...) local list = self:GetListForTimeFromNow(initialdelay or period) list[periodic] = true periodic.list = list