Corona Posted December 1, 2013 Share Posted December 1, 2013 (edited) 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 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 Edited December 1, 2013 by Corona Link to comment Share on other sites More sharing options...
Biber Posted December 1, 2013 Share Posted December 1, 2013 Corona is back... Hamma *.* Beib aktiv LG Link to comment Share on other sites More sharing options...
DaDesasta Posted December 6, 2013 Share Posted December 6, 2013 Corona is wieder da... ENDLICH war ganz schön ruhig ohne dich^^ Und bleib aktiv Beitrag á la Handy Link to comment Share on other sites More sharing options...
Biber Posted December 6, 2013 Share Posted December 6, 2013 Och DaDesasta sei doch mal nicht so. Corona schämt sich doch ._. Link to comment Share on other sites More sharing options...
Corona Posted December 6, 2013 Author Share Posted December 6, 2013 Haha ist gut, wieder da zu sein Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now