Guest User

Recreate Computer State

a guest
Dec 4th, 2013
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.23 KB | None | 0 0
  1. local TasksBetweenSleeps = 50
  2. local stepsTaken = 0
  3. local isRestoring = fs.exists(".events")
  4. local fileInstance
  5. local function overwrite(original, fake)
  6.     original = function(sFilter)
  7.         if isRestoring then
  8.             if not fileInstance then
  9.                 fileInstance = fs.open(".events","r")
  10.             end
  11.             stepsTaken = stepsTaken + 1
  12.             if stepsTaken > TasksBetweenSleeps then
  13.                 stepsTaken = 0
  14.                 os.queueEvent("isomnia")
  15.                 fake("isomnia")
  16.             end
  17.             local fakeEvent = fileInstance.readLine()
  18.             if not fakeEvent or #fakeEvent == 0 then
  19.                 isRestoring = false
  20.                 fileInstance.close()
  21.                 fileInstance = fs.open(".events","a")
  22.                 return original(sFilter) --recursive pull
  23.             end
  24.             return textutils.unserialize(fakeEvent)
  25.         else
  26.             if not fileInstance then
  27.                 fileInstance = fs.open(".events","w")
  28.             end
  29.             local event = {fake(sFilter)}
  30.             fileInstance.write(textutils.serialize(event))
  31.             fileInstance.write("\n")
  32.             if event and #event==2 and event[1] == "key" and event[2] == 59 then
  33.                 fileInstance.close()
  34.                 fs.delete(".events")
  35.                 print("History deleted!")
  36.             end
  37.             return unpack(event)
  38.         end
  39.     end
  40. end
  41. local pull = os.pullEventRaw
  42. overwrite(os.pullEventRaw,pull)
  43. local rand = math.random
  44. overwrite(math.random,rand)
Advertisement
Add Comment
Please, Sign In to add comment