SHOW:
|
|
- or go back to the newest paste.
| 1 | function boot_logo() | |
| 2 | term.clear() | |
| 3 | local boot = {
| |
| 4 | ||
| 5 | ||
| 6 | } | |
| 7 | for i = 1, #boot do | |
| 8 | while false do | |
| 9 | print(" ")
| |
| 10 | break | |
| 11 | end | |
| 12 | end | |
| 13 | print("Loading DevilLabs, please wait...")
| |
| 14 | term.setCursorPos(1,19) | |
| 15 | - | term.setTextColour(colours.lime) |
| 15 | + | term.setTextColour(colours.white) |
| 16 | textutils.slowPrint("LOADING...")
| |
| 17 | sleep(1) | |
| 18 | end | |
| 19 | boot_logo() | |
| 20 | ||
| 21 | ||
| 22 | local buttons = {
| |
| 23 | [1] = {
| |
| 24 | x = 10, | |
| 25 | y = 10, | |
| 26 | - | term.setTextScale(5) |
| 26 | + | on_state = "Door Closed", |
| 27 | - | on_state = "Door Closed", |
| 27 | + | |
| 28 | current_state = true, -- Initially the button is off | |
| 29 | onClick = function(state) -- Open of close the door | |
| 30 | if state then -- Currently on, closing | |
| 31 | --rednet.open("back")
| |
| 32 | term.setCursorPos(1,18) | |
| 33 | - | term.setTextScale(1) |
| 33 | + | term.setTextColour(colours.white) |
| 34 | textutils.slowPrint("Pocessing...")
| |
| 35 | term.setCursorPos(1,19) | |
| 36 | term.setTextColour(colours.blue) | |
| 37 | textutils.slowPrint("Complete!")
| |
| 38 | --rednet.broadcast("Closed")
| |
| 39 | --rednet.close("back")
| |
| 40 | ||
| 41 | sleep(1) | |
| 42 | os.reboot() | |
| 43 | ||
| 44 | -- The current state is off: Open The Door | |
| 45 | else | |
| 46 | --rednet.open(back") | |
| 47 | term.setCursorPos(1,18) | |
| 48 | term.setTextColour(colours.lime) | |
| 49 | - | term.settextScale(1) |
| 49 | + | |
| 50 | term.setCursorPos(1,19) | |
| 51 | term.setTextColour(colours.blue) | |
| 52 | textutils.slowPrint("Complete!")
| |
| 53 | --rednet.broadcast("Open")
| |
| 54 | --rednet.close("back")
| |
| 55 | sleep(1) | |
| 56 | os.reboot() | |
| 57 | -- The current state is off: Close The Door | |
| 58 | end | |
| 59 | end | |
| 60 | } | |
| 61 | } | |
| 62 | ||
| 63 | local function drawButton(button) | |
| 64 | term.setCursorPos(button.x, button.y) | |
| 65 | if button.current_state then -- If it’s on, our button is green | |
| 66 | term.setBackgroundColor(colors.green) | |
| 67 | else -- Otherwise it’s red | |
| 68 | term.setBackgroundColor(colors.red) | |
| 69 | end | |
| 70 | ||
| 71 | term.setTextColor(colors.white) | |
| 72 | ||
| 73 | local button_text -- We’ll store what text we want to write here | |
| 74 | if button.current_state then | |
| 75 | button_text = button.on_state | |
| 76 | --rednet.broadcast("Close")
| |
| 77 | else | |
| 78 | button_text = button.off_state | |
| 79 | --rednet.broadcast("Open")
| |
| 80 | end | |
| 81 | ||
| 82 | local button_length = #button.on_state -- How long is our button? | |
| 83 | if #button.off_state > #button.on_state then -- We want the longest it ever gets | |
| 84 | button_length = #button.off_state | |
| 85 | end | |
| 86 | ||
| 87 | term.write(string.rep(" ", 2 + button_length)) -- Give it a little space on each side
| |
| 88 | term.setCursorPos(button.x + 1 + button_length / 2 - | |
| 89 | #button_text / 2, button.y) -- Nothing too complicated here: just centering the text inside of the button | |
| 90 | term.write(button_text) -- Draw our text | |
| 91 | end | |
| 92 | ||
| 93 | local function checkClick(x, y) | |
| 94 | for index, button in pairs(buttons) do | |
| 95 | local button_length = #button.on_state + 4 | |
| 96 | if #button.off_state > #button.on_state then | |
| 97 | button_length = #button.off_state + 4 | |
| 98 | end | |
| 99 | ||
| 100 | if button.y == y and | |
| 101 | x >= button.x and | |
| 102 | x <= button.x + button_length then | |
| 103 | -- Yep, we clicked this button | |
| 104 | button.onClick(button.current_state) | |
| 105 | button.current_state = not button.current_state | |
| 106 | end | |
| 107 | end | |
| 108 | end | |
| 109 | ||
| 110 | local width, height = term.getSize() | |
| 111 | ||
| 112 | ||
| 113 | - | local width, height = term.setSize() |
| 113 | + | |
| 114 | term.setBackgroundColor(colors.black) | |
| 115 | term.clear() | |
| 116 | for index, button in pairs(buttons) do drawButton(button) end | |
| 117 | - | x = width / 2 - 10 / 2, |
| 117 | + | |
| 118 | - | ... -- The rest stays the same |
| 118 | + | |
| 119 | - | }, [2] = { ... }
|
| 119 | + |