April_The_Sergal

MainController

Nov 25th, 2024
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.65 KB | Gaming | 0 0
  1. -- Main Controller Script
  2. local nodeManager = require("nodeManager")
  3. local buttonManager = require("buttonManager")
  4. local stateManager = require("stateManager")
  5. local networkManager = require("networkManager")
  6.  
  7. -- Variables
  8. local PROTOCOL = "mobFarm"
  9. local LOCAL_ID = "controller"
  10. local monitor = peripheral.find("monitor")
  11.  
  12. if not monitor then error("Monitor not found!") end
  13. if not rednet.isOpen() then error("Rednet is not open! Check the modem.") end
  14.  
  15. -- Configuration
  16. monitor.setTextScale(0.5)
  17. monitor.clear()
  18.  
  19. -- Host controller
  20. rednet.host(PROTOCOL, LOCAL_ID)
  21.  
  22. -- Initialization
  23. nodeManager.initNodes()               -- Initialize node structure
  24. stateManager.loadNodeStates(nodeManager.getNodes()) -- Load saved node states
  25. networkManager.initNetwork(PROTOCOL, LOCAL_ID) -- Initialize network
  26.  
  27. -- Main Loop
  28. parallel.waitForAll(
  29.     networkManager.handleIncomingMessages,  -- Receive and process messages
  30.     nodeManager.validateNodeStates,         -- Ensure nodes match expected states
  31.     buttonManager.handleMouseClicks,        -- Handle monitor clicks for buttons
  32.     function()
  33.         -- Monitor update loop
  34.         while true do
  35.             buttonManager.drawButtons(monitor, nodeManager.getNodes()) -- Refresh monitor UI
  36.             sleep(1)
  37.         end
  38.     end,
  39.     function()
  40.         -- Controller commands loop
  41.         while true do
  42.             write("> ")
  43.             local input = read()
  44.             if input == "update" then
  45.                 networkManager.initiateUpdate(nodeManager.getNodes())
  46.             else
  47.                 print("Unknown command. Available commands: update")
  48.             end
  49.         end
  50.     end
  51. )
Advertisement
Add Comment
Please, Sign In to add comment