monster010

CC - DebiSludgeBoiler

Apr 20th, 2016
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.45 KB | None | 0 0
  1. -- DebiSludgeBoiler - (c) monster010
  2.  
  3. local boiler = {
  4.     sb1 = {color = colors.red, name = "Boiler 1", x = 2, y = 2, w = 13, active = false},
  5.     sb2 = {color = colors.green, name = "Boiler 2", x = 16, y = 2, w = 13, active = false},
  6. }
  7.  
  8.  
  9. ----------------------------------
  10. ----- DONT CHANGE UNDER THIS -----
  11. ----------------------------------
  12. local software = "DebiSludgeBoiler"
  13. local cfg = {}
  14. local monitor
  15. local button
  16.  
  17.  
  18. os.loadAPI("debisludgeboiler/api/config")
  19. os.loadAPI("debisludgeboiler/api/monster010")
  20. os.loadAPI("debisludgeboiler/api/btn")
  21.  
  22.  
  23. function addButtons()
  24.     for name, data in pairs(boiler) do
  25.         btn.add(name, data["name"], toggleFarm, name, data["x"], data["y"], data["w"], 3)
  26.     end
  27.  
  28.     btn.screen()
  29. end
  30.  
  31. function toggleFarm(name)
  32.     local colorss = 32768
  33.  
  34.     boiler[name]["active"] = not boiler[name]["active"]
  35.     btn.toggle(name)
  36.  
  37.     if not boiler[name]["active"] then
  38.         write("Farm ")
  39.         term.setTextColor(colors.green)
  40.         write(boiler[name]["name"])
  41.         term.setTextColor(colors.white)
  42.         print(" wurde aktiviert")
  43.     else
  44.         write("Farm ")
  45.         term.setTextColor(colors.red)
  46.         write(boiler[name]["name"])
  47.         term.setTextColor(colors.white)
  48.         print(" wurde deaktiviert")
  49.     end
  50.  
  51.     for name, data in pairs(boiler) do
  52.         if data["active"] then
  53.             colorss = colors.combine(colorss, data["color"])
  54.         else
  55.             colorss = colors.subtract(colorss, data["color"])
  56.         end
  57.     end
  58.  
  59.     rs.setBundledOutput(cfg["redSide"], colorss)
  60.     save()
  61. end
  62.  
  63. function save()
  64.     monster010.saveFile("/debisludgeboiler/save", textutils.serialize(boiler))
  65. end
  66.  
  67. function load()
  68.     local colorss = 32768
  69.  
  70.     if fs.exists("/debisludgeboiler/save") then
  71.         boiler = monster010.loadFile("/debisludgeboiler/save", true)
  72.     end
  73.  
  74.     addButtons()
  75.  
  76.     for name, data in pairs(boiler) do
  77.         if data["active"] then
  78.             colorss = colors.combine(colorss, data["color"])
  79.         else
  80.             colorss = colors.subtract(colorss, data["color"])
  81.         end
  82.  
  83.         btn.set(name, data["active"])
  84.     end
  85.  
  86.     btn.screen()
  87.     rs.setBundledOutput(cfg["redSide"], colorss)
  88. end
  89.  
  90. function launchRestart()
  91.     while true do
  92.         local event, args = os.pullEvent("key")
  93.  
  94.         if args == 19 then
  95.             os.reboot()
  96.         end
  97.     end
  98. end
  99.  
  100. config.load("/debisludgeboiler/cfg")
  101. cfg = config.getConfig()
  102.  
  103. monster010.construct(cfg["monSide"], software)
  104. monster010.startUp()
  105. monitor = monster010.getMonitor()
  106. btn.construct(monitor)
  107.  
  108. load()
  109.  
  110. monster010.startUpDone()
  111.  
  112.  
  113. while true do
  114.     parallel.waitForAny(btn.getClick, launchRestart)
  115. end
Advertisement
Add Comment
Please, Sign In to add comment