Advertisement
OfficialStamper

derEmulatorV1.1.0

Aug 22nd, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.00 KB | None | 0 0
  1. --derEmulator (Draconic Evolution Reactor Emulator) V1.1.0
  2. --Official Stamper (c) Aug 2018
  3.  
  4. --Changelog V1.1.0 added OC Code
  5.  
  6.  
  7. -- Listen for modem request from control
  8.  
  9. local modemSide = 'top'    -- Only required for CC
  10. local modemTx = 299
  11. local modemRx = 299
  12.  
  13. -- Emulation values
  14. local fuelInject = 10368
  15. local fuelConversion = 0 --0.5427
  16.  
  17. --Peripherals and components (do not initialise to values)
  18. --local monitor
  19. local modem
  20. --local emulatedReactor
  21. local serialization
  22.  
  23. --check os version
  24. local OSVer = ""
  25. local OC = false
  26. local CC = false
  27.  
  28. if _OSVERSION then
  29.     OSVer = _OSVERSION
  30.     OC = true
  31. elseif os.version() then
  32.     OSVer = os.version()
  33.     CC = true
  34. end
  35.  
  36. if CC then
  37.     --Open the modem on the channel specified
  38.     modem = peripheral.wrap(modemSide)
  39.     os.loadAPI("emulatedReactor")
  40.     --local reactor = peripheral.wrap(reactorSide)
  41.  
  42. elseif OC then
  43.     local component = require("component")
  44.     local computer = require("computer")
  45.     local event = require("event")
  46.     local term = require("term")
  47.     serialization = require("serialization")
  48.     modem = component.modem
  49.     local gpu = component.gpu
  50.     emulatedReactor = require("mooviesReactor")
  51.     os.pullEvent = event.pull
  52.     modem.transmit = modem.broadcast
  53. else
  54.     -- no valid OS
  55. end
  56.  
  57. --Initialise emulatedReactor
  58. emulatedReactor.fluxGates.input.setFlowOverride(0)
  59. emulatedReactor.fluxGates.output.setFlowOverride(0)
  60. emulatedReactor.fluxGates.input.setOverrideEnabled(true)
  61. emulatedReactor.fluxGates.output.setOverrideEnabled(true)
  62. emulatedReactor.setFuel(fuelInject, fuelConversion)
  63.  
  64. modem.open(modemRx)
  65. print("Listening.....")
  66.  
  67. local request = {
  68.     getReactorInfo  = function(id)
  69.                             local info = emulatedReactor.getReactorInfo()
  70.                             if OC then info = serialization.serialize(info) end
  71.                             modem.transmit(modemTx, id, info)
  72.                         end,
  73.     chargeReactor   = function() emulatedReactor.chargeReactor() end,
  74.     activateReactor = function() emulatedReactor.activateReactor() end,
  75.     stopReactor     = function() emulatedReactor.stopReactor() end,
  76.     setFailSafe     = function() emulatedReactor.setFailSafe() end,
  77.     reset           = function() emulatedReactor.reset() end
  78. }
  79.  
  80. function main()
  81.     while true do
  82.    
  83.         local event, modemSide, senderChannel, id, message, senderDistance, more = os.pullEvent("modem_message")
  84.  
  85.         if OC then
  86.             senderChannel = id
  87.             id = senderDistance
  88.             message = serialization.unserialize(more)
  89.         end
  90.        
  91.         if (senderChannel == modemRx) then  -- is this message for me?
  92.             emulatedReactor.fluxGates.input.setFlowOverride(message.inRF)
  93.             emulatedReactor.fluxGates.output.setFlowOverride(message.outRF)
  94.             emulatedReactor.update()
  95.             request[message.req](id)
  96.         else
  97.             --Message not for me
  98.         end
  99.  
  100.     end
  101. end
  102.  
  103. main()
  104. --local errNo, errMsg = pcall(main)
  105.  
  106. -- print(tostring(errNo).." : "..errMsg)
  107.  
  108. -- if errMsg == "Terminated" then
  109.     -- return
  110. -- else
  111.     -- local f = fs.open("log","a")
  112.     -- f.writeLine(textutils.formatTime(os.time("utc"),true).."(UTC) #"..os.getComputerID()..": "..errMsg)
  113.     -- f.close()
  114.     -- os.reboot()
  115. -- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement