Jump to content

[Computercraft] LUA Button-API V1.0


Corona

Empfohlene Beiträge

Hallo alle zusammen, ob ihr's nun wollt oder nicht: hier bin ich wieder. Nachdem ich mal etwas mehr Zeit im Alltag habe, habe ich wieder mal entschlossen Minecraft zu spielen, besonders Computercraft, und wollte endlich eine eigene API haben, mit der man Buttons ganz einfach und schnell erstellen und benutzen kann. Das hier ist dabei rausgekommen und naja, ich hoffe es kann von anderen auch genutzt werden ^^

	    --(C) Corona 2013 PLEASE DO NOT STEAL THIS CODE!    function draw(button,side)      xStart=button["x1"]      xEnd=button["x2"]      yStart=button["y1"]      yEnd=button["y2"]      fillColor=button["color"]      x=xEnd-xStart      y=yEnd-yStart      textCentery=math.ceil(yStart+y/2)      textCenterx=math.ceil((xStart+(x/2))-(string.len(button["text"])/2))      print("")      print("Putting Text at y-Coordinates:"..textCentery)      print("Putting Text at x-Coordinates:"..textCenterx)      print("Drawing x:"..x)      print("Drawing y:"..y)      print("Draw Color:"..button["color"])      monitor=peripheral.wrap(side)      monitor.setCursorPos(xStart,yStart)      monitor.setBackgroundColor(fillColor)      for j=1,y do        for i=1,x do            monitor.write(" ")        end        monitor.setCursorPos(xStart,yStart+j)      end      monitor.setCursorPos(textCenterx,textCentery)      monitor.write(button["text"])      monitor.setBackgroundColor(colors.black)    end         function cls(side)      local monitor=peripheral.wrap(side)      monitor.setBackgroundColor(colors.black)      monitor.clear()    end         function pressed(button,x,y)      if (button["x1"]<=x) and (button["x2"]>=x) and (button["y1"]<=y) and (button["y2"]>=y) then        return true      else        return false      end    end         function changeColor(button,color)      button["color"] = color      draw(button)      return button    end         function moveButton(button,newx1,newx2,newy1,newy2)      button["x1"] = newx1      button["x2"] = newx2      button["y1"] = newy1      button["y2"] = newy2      draw(button)      return button    end

und hier der Pastebin zu diesem Code, damit man es direkt in Computercraft mit pastebin get runterladen kann: P5kM0hgh

Hier noch 2 Bilder im Anhang was ich damit gemacht habe :D

Und der Code zu dem, was auf den Bildern zu sehen ist:

	    os.loadAPI("buttonAPI")    mon = peripheral.wrap("right")    maxx,maxy = mon.getSize()    local button1 = {x1 = 3,x2 = 23,y1 = 2,y2 = 16,state = false,rs = colors.white,text = "Boiler 1",color = colors.red}    local button2 = {x1 = maxx-22,x2 = maxx-2,y1 = 2,y2 = 16,state = false,rs = colors.blue,text = "Boiler 2",color = colors.red}    local button3 = {x1 = 3,x2 = 23,y1 = maxy-15,y2 = maxy-1,state = false,rs = colors.lime,text="Boiler 3",color = colors.red}    local button4 = {x1 = maxx-22,x2 = maxx-2,y1 = maxy-15,y2 = maxy-1,state = false,rs = colors.red,text = "Boiler 4",color = colors.red}    local buttons = {button1,button2,button3,button4}    local outputs = {0,0,0,0}    while true do      buttonAPI.cls("right")      for i=1,#buttons do        buttonAPI.draw(buttons[i],"right")      end      rs.setBundledOutput("bottom",outputs[1]+outputs[2]+outputs[3]+outputs[4])      local ev,btn,x,y = os.pullEvent("monitor_touch")      print(x)      print(y)      for i=1,#buttons do        if buttonAPI.pressed(buttons[i],x,y) then          print("triggered")          if buttons[i]["state"] then            outputs[i] = 0            buttons[i]["state"] = false            buttons[i]["color"] = colors.red            --button1 = buttonAPI.moveButton(button1,5,6,5,6)          else            outputs[i] = buttons[i]["rs"]            buttons[i]["state"] = true            buttons[i]["color"] = colors.lime          end        end      end    end

post-673-0-73054500-1385904229_thumb.png

post-673-0-11960800-1385904280_thumb.png

bearbeitet von Corona
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B