xMAC94x

Light System v2

Jul 22nd, 2013
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --mMultiOS
  2. --<~t<true>marcelOS<info<0||name<0|explorer>version<1|0.2>changePrint<2|false>eventfilter<0|internet|mouse_click|window_resize|window_fullscreen>EventManager<3|true>Debug<3|true>>code<0|print("Hello, explorer run under marcelOS")>>other<info<0||name<0|explorer>version<2|0.2>>code<0|~i<23>print("Unknown OS ...")>>>
  3. Application.window = windows.CreateWindow( "LightSystem" , Application , true)
  4. Application.window:SetSize(40,35)
  5. Application.window:FindSpace(111)
  6. -- denk drann beim Server in der 2ten Zeile beim eventfilter "internet" drinnen zu haben, andernfalls bekommt er keine internet events...
  7.  
  8. function Rahmen()
  9.     local streifen = string.rep("-",Application.window.width)
  10.     function ComputerraumRahmen()
  11.      Application.window:writePos(1,1,"Computerraum:")
  12.      Application.window:writePos(15,1,"On",colors.white,colors.green)
  13.      Application.window:writePos(20,1,"Off",colors.white,colors.red)
  14.      Application.window:writePos(26,1,"Status:")
  15.      Application.window:writePos(1,2,streifen)
  16.     end
  17.    
  18.     function ServerraumRahmen()
  19.      Application.window:writePos(1,3,"Serverraum:")
  20.      Application.window:writePos(15,3,"On",colors.white,colors.green)
  21.      Application.window:writePos(20,3,"Off",colors.white,colors.red)
  22.      Application.window:writePos(26,3,"Status:")
  23.      Application.window:writePos(1,4,streifen)
  24.     end
  25.    
  26.     function TekkitraumRahmen()
  27.      Application.window:writePos(1,5,"Tekkitraum:")
  28.      Application.window:writePos(15,5,"On",colors.white,colors.green)
  29.      Application.window:writePos(20,5,"Off",colors.white,colors.red)
  30.      Application.window:writePos(26,5,"Status:")
  31.      Application.window:writePos(1,6,streifen)
  32.     end
  33.  
  34.     function LagerraumRahmen()
  35.      Application.window:writePos(1,7,"Lagerraum:")
  36.      Application.window:writePos(15,7,"On",colors.white,colors.green)
  37.      Application.window:writePos(20,7,"Off",colors.white,colors.red)
  38.      Application.window:writePos(26,7,"Status:")
  39.      Application.window:writePos(1,8,streifen)
  40.     end
  41.    
  42.     -- hier kein while true, da er sonnst immer zeichnen würde und niemals zur eventabfrage kommt. Außerdem soll er ja nur einmal zeichnen bei der Function Rahmen...
  43.  
  44.     ComputerraumRahmen()
  45.     ServerraumRahmen()
  46.     TekkitraumRahmen()
  47.     LagerraumRahmen()
  48.    
  49. end
  50.  
  51.  -- Auch hier kein While true,,,
  52.  
  53.  
  54. function Eingabe()
  55. local event,side,x,y = os.pullEvent()
  56. -- Durch diese Debugausgabe werden alle Events angezeigt, das sollte es um einiges einfacher machen ;)
  57. Debug(event,tostring(side) .. " " .. tostring(x) .. " " .. tostring(y))
  58. -- mouse_click statt monitor_toch abfragen...
  59.   if event == "mouse_click" then
  60.    
  61.     -- Die Klammern sind wichtig, das hat zwar nichts mit marcelOS zu tun , aber mit lua allgemein...
  62.     if ((x == 15) and (y == 1)) or ((x == 16) and (y == 1)) then
  63.     rs.setOutput("bottom", true)
  64.     -- 1 = ID des Servers
  65.     -- 100 = Port des Servers, falls mehrere Programme gleichzeitig senden...
  66.     -- "ComputerraumLightOn" = die Message
  67.     ip.SendMessage( nil, 1, nil, 100, nil ,  "ComputerraumLightOn" )
  68.     --rednet.send(1, "ComputerraumLightOn") --Zahl= Id des Server
  69.     end
  70.        
  71.     if ((x == 20) and (y == 1)) or ((x == 21) and (y == 1)) or ((x == 22) and (y == 1)) then
  72.     ip.SendMessage( nil, 1, nil, 100, nil ,  "ComputerraumLightOff" )
  73.     --rednet.send(1, "ComputerraumLightOff") --Zahl= Id des Server
  74.     end
  75.    
  76.     -- Die anderen Events wie das letzte erstellen...
  77.  
  78.   end
  79. end
  80.  
  81. while true do
  82.     Rahmen()
  83.     Eingabe()
  84.     Application.window:Paint()
  85.     mTask.sleepEvent(Application,1)
  86. end
Advertisement
Add Comment
Please, Sign In to add comment