monster010

CC - DebiMobFarm

Apr 20th, 2016
698
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.72 KB | None | 0 0
  1. -- DebiMobFarm - (c) monster010
  2.  
  3.  
  4.  
  5. ----------------------------------
  6. ----- DONT CHANGE UNDER THIS -----
  7. ----------------------------------
  8. local software = "DebiMobFarm"
  9. local cfg = {}
  10. local mobs = {}
  11. local ns = {x = 21, y = 9, w = 18, h = 3, active = false}
  12. local monitor
  13. local button
  14.  
  15.  
  16. os.loadAPI("debimobfarm/api/config")
  17. os.loadAPI("debimobfarm/api/monster010")
  18. os.loadAPI("debimobfarm/api/btn")
  19.  
  20.  
  21. function addButtons()
  22.     for name, data in pairs(mobs) do
  23.         btn.add(name, data["name"], toggleFarm, name, data["x"], data["y"], data["w"], 1)
  24.     end
  25.  
  26.     btn.add("notstop", "Notstopp", notstop, false, ns["x"], ns["y"], ns["w"], ns["h"], colors.red, colors.lime)
  27.  
  28.     btn.screen()
  29. end
  30.  
  31. function toggleFarm(name)
  32.     local colorss = 32768
  33.  
  34.     if not ns["active"] then
  35.         mobs[name]["active"] = not mobs[name]["active"]
  36.         btn.toggle(name)
  37.  
  38.         if not mobs[name]["active"] then
  39.             write("Farm ")
  40.             term.setTextColor(colors.green)
  41.             write(mobs[name]["name"])
  42.             term.setTextColor(colors.white)
  43.             print(" wurde aktiviert")
  44.         else
  45.             write("Farm ")
  46.             term.setTextColor(colors.red)
  47.             write(mobs[name]["name"])
  48.             term.setTextColor(colors.white)
  49.             print(" wurde deaktiviert")
  50.         end
  51.  
  52.         for name, data in pairs(mobs) do
  53.             if data["active"] then
  54.                 colorss = colors.combine(colorss, data["color"])
  55.             else
  56.                 colorss = colors.subtract(colorss, data["color"])
  57.             end
  58.         end
  59.  
  60.         rs.setBundledOutput(cfg["redSide"], colorss)
  61.         save()
  62.     end
  63. end
  64.  
  65. function notstop()
  66.     local colorsn = 32768
  67.     local colorss = 32768
  68.  
  69.     ns["active"] = not ns["active"]
  70.     btn.toggle("notstop")
  71.  
  72.     if ns["active"] then
  73.         term.setTextColor(colors.red)
  74.         print("NOTSTOPP wurde aktiviert")
  75.         term.setTextColor(colors.white)
  76.     else
  77.         term.setTextColor(colors.red)
  78.         print("NOTSTOPP wurde deaktiviert")
  79.         term.setTextColor(colors.white)
  80.     end
  81.  
  82.     if ns["active"] then
  83.         for name, data in pairs(mobs) do
  84.             colorsn = colors.combine(colorsn, data["color"])
  85.  
  86.             btn.set(name, true)
  87.         end
  88.  
  89.         btn.screen()
  90.         rs.setBundledOutput(cfg["redSide"], colorsn)
  91.     else
  92.         for name, data in pairs(mobs) do
  93.             if data["active"] then
  94.                 colorss = colors.combine(colorss, data["color"])
  95.             else
  96.                 btn.toggle(name)
  97.             end
  98.         end
  99.  
  100.         rs.setBundledOutput(cfg["redSide"], colorss)
  101.     end
  102.  
  103.     monster010.saveFile("/debimobfarm/savens", textutils.serialize(ns))
  104. end
  105.  
  106. function save()
  107.     monster010.saveFile("/debimobfarm/save", textutils.serialize(mobs))
  108. end
  109.  
  110. function load()
  111.     local colorss = 32768
  112.     local colorsn = 32768
  113.  
  114.     if fs.exists("/debimobfarm/save") then
  115.         mobs = monster010.loadFile("/debimobfarm/save", true)
  116.     end
  117.  
  118.     if fs.exists("/debimobfarm/savens") then
  119.         ns = monster010.loadFile("/debimobfarm/savens", true)
  120.     end
  121.  
  122.     addButtons()
  123.  
  124.     if ns["active"] then
  125.         btn.set("notstop", true)
  126.  
  127.         for name, data in pairs(mobs) do
  128.             colorsn = colors.combine(colorsn, data["color"])
  129.             btn.set(name, true)
  130.         end
  131.  
  132.         btn.screen()
  133.         rs.setBundledOutput(cfg["redSide"], colorsn)
  134.     else
  135.         for name, data in pairs(mobs) do
  136.             if data["active"] then
  137.                 colorss = colors.combine(colorss, data["color"])
  138.             else
  139.                 colorss = colors.subtract(colorss, data["color"])
  140.             end
  141.  
  142.             btn.set(name, data["active"])
  143.         end
  144.  
  145.         btn.screen()
  146.         rs.setBundledOutput(cfg["redSide"], colorss)
  147.     end
  148. end
  149.  
  150. function launchRestart()
  151.     while true do
  152.         local event, args = os.pullEvent("key")
  153.  
  154.         if args == 19 then
  155.             os.reboot()
  156.         end
  157.     end
  158. end
  159.  
  160. config.load("/debimobfarm/cfg")
  161. cfg = config.getConfig()
  162.  
  163. monster010.construct(cfg["monSide"], software)
  164. monster010.startUp()
  165. monitor = monster010.getMonitor()
  166. btn.construct(monitor)
  167.  
  168. monster010.heading(software)
  169. load()
  170.  
  171. monster010.startUpDone()
  172.  
  173.  
  174. while true do
  175.     parallel.waitForAny(btn.getClick, launchRestart)
  176. end
Advertisement
Add Comment
Please, Sign In to add comment