SHOW:
|
|
- or go back to the newest paste.
| 1 | -- (C) 2022 FoxInvest | |
| 2 | menu = {}
| |
| 3 | scambi = {}
| |
| 4 | semafori = {}
| |
| 5 | scambiPos = {}
| |
| 6 | scambiName = {}
| |
| 7 | scambiStatus = {}
| |
| 8 | semaforiPos = {}
| |
| 9 | semaforiName = {}
| |
| 10 | semaforiStatus = {}
| |
| 11 | ||
| 12 | function clearAllTables() | |
| 13 | menu = {}
| |
| 14 | scambi = {}
| |
| 15 | semafori = {}
| |
| 16 | scambiPos = {}
| |
| 17 | scambiName = {}
| |
| 18 | scambiStatus = {}
| |
| 19 | semaforiPos = {}
| |
| 20 | semaforiName = {}
| |
| 21 | semaforiStatus = {}
| |
| 22 | end | |
| 23 | ||
| 24 | function setMenu(tratte) | |
| 25 | local colori = {"gray", "lightGray", "gray", "lightGray", "gray", "lightGray"}
| |
| 26 | term.setCursorPos(1, 1) | |
| 27 | for i, v in pairs(tratte) do | |
| 28 | local cursorX, cursorY = term.getCursorPos() | |
| 29 | term.setBackgroundColor(colors[colori[i]]) | |
| 30 | term.setTextColor(colors.white) | |
| 31 | term.write(v) | |
| 32 | table.insert(menu, cursorX .. "," .. cursorX + #v) | |
| 33 | end | |
| 34 | end | |
| 35 | ||
| 36 | function split(s, delimiter) | |
| 37 | result = {}
| |
| 38 | - | table.insert(semaforiStatus, "false") |
| 38 | + | |
| 39 | table.insert(result, match) | |
| 40 | end | |
| 41 | - | function getSemaforoPositionByName(color) |
| 41 | + | |
| 42 | end | |
| 43 | - | if (v == color) then |
| 43 | + | |
| 44 | - | return semaforiPos[i] |
| 44 | + | |
| 45 | local scambio = {}
| |
| 46 | table.insert(scambio, color) | |
| 47 | table.insert(scambio, x) | |
| 48 | table.insert(scambio, y) | |
| 49 | table.insert(scambio, type) | |
| 50 | table.insert(scambi, scambio) | |
| 51 | - | if (v == color) then |
| 51 | + | |
| 52 | - | return scambiPos[i] |
| 52 | + | |
| 53 | table.insert(scambiStatus, "false") | |
| 54 | end | |
| 55 | ||
| 56 | function semaforo(x, y, color) | |
| 57 | local semaforo = {}
| |
| 58 | table.insert(semaforo, color) | |
| 59 | - | if (v == color) then |
| 59 | + | |
| 60 | - | return scambi[i][4] |
| 60 | + | |
| 61 | table.insert(semafori, semaforo) | |
| 62 | table.insert(semaforiPos, x .. "," .. y) | |
| 63 | table.insert(semaforiName, color) | |
| 64 | table.insert(semaforiStatus, "true") | |
| 65 | end | |
| 66 | ||
| 67 | function getSemaforoPosByName(color) | |
| 68 | return semaforiPos[getSemaforoNumberInArray(color)] | |
| 69 | end | |
| 70 | ||
| 71 | function getSemaforoNameByPos(x, y) | |
| 72 | for i, v in pairs(semaforiPos) do | |
| 73 | if (x .. "," .. y == v) then | |
| 74 | return semaforiName[i] | |
| 75 | end | |
| 76 | end | |
| 77 | return nil | |
| 78 | end | |
| 79 | - | term.setBackgroundColor(colors.blue) |
| 79 | + | |
| 80 | function getSemaforoStatus(color) | |
| 81 | return semaforiStatus[getSemaforoNumberInArray(color)] | |
| 82 | end | |
| 83 | ||
| 84 | function getScambioPosByName(color) | |
| 85 | return scambiPos[getSegnaleNumberInArray(color)] | |
| 86 | end | |
| 87 | ||
| 88 | function getScambioTypeByName(color) | |
| 89 | return scambi[getSegnaleNumberInArray(color)][4] | |
| 90 | end | |
| 91 | - | return scambiStatus[i] |
| 91 | + | |
| 92 | function getScambioNameByPos(x, y) | |
| 93 | for i, v in pairs(scambiPos) do | |
| 94 | if (x .. "," .. y == v) then | |
| 95 | return scambiName[i] | |
| 96 | end | |
| 97 | end | |
| 98 | return nil | |
| 99 | end | |
| 100 | ||
| 101 | function viewScambi() | |
| 102 | for i, v in pairs(scambiName) do | |
| 103 | local dim = split(scambiPos[i], ",") | |
| 104 | local type = getScambioTypeByName(v) | |
| 105 | term.setCursorPos(tonumber(dim[1]), tonumber(dim[2])) | |
| 106 | term.setTextColor(colors.white) | |
| 107 | term.setBackgroundColor(colors.black) | |
| 108 | if isScambioDeviato(v) == "true" then | |
| 109 | term.write(type) | |
| 110 | - | term.setBackgroundColor(colors.blue) |
| 110 | + | |
| 111 | term.write("-")
| |
| 112 | end | |
| 113 | end | |
| 114 | end | |
| 115 | ||
| 116 | function viewSemafori() | |
| 117 | for i, v in pairs(semaforiName) do | |
| 118 | local dim = split(semaforiPos[i], ",") | |
| 119 | term.setCursorPos(tonumber(dim[1]), tonumber(dim[2])) | |
| 120 | term.setTextColor(colors.white) | |
| 121 | if getSemaforoStatus(v) == "true" then | |
| 122 | term.setBackgroundColor(colors.green) | |
| 123 | term.write(" ")
| |
| 124 | else | |
| 125 | term.setBackgroundColor(colors.red) | |
| 126 | term.write(" ")
| |
| 127 | end | |
| 128 | end | |
| 129 | end | |
| 130 | ||
| 131 | function isScambioDeviato(color) | |
| 132 | return scambiStatus[getSegnaleNumberInArray(color)] | |
| 133 | end | |
| 134 | ||
| 135 | function getSegnaleNumberInArray(color) | |
| 136 | for i, v in pairs(scambiName) do | |
| 137 | if v == color then | |
| 138 | return i | |
| 139 | end | |
| 140 | end | |
| 141 | return false | |
| 142 | end | |
| 143 | ||
| 144 | function getSemaforoNumberInArray(color) | |
| 145 | for i, v in pairs(semaforiName) do | |
| 146 | if v == color then | |
| 147 | return i | |
| 148 | end | |
| 149 | end | |
| 150 | return false | |
| 151 | end | |
| 152 | ||
| 153 | function setScambio(color) | |
| 154 | local pos = split(getScambioPosByName(color), ',') | |
| 155 | term.setCursorPos(tonumber(pos[1]), tonumber(pos[2])) | |
| 156 | term.setTextColor(colors.white) | |
| 157 | term.setBackgroundColor(colors.black) | |
| 158 | local number = getSegnaleNumberInArray(color) | |
| 159 | if isScambioDeviato(color) == "true" then | |
| 160 | scambiStatus[number] = "false" | |
| 161 | else | |
| 162 | scambiStatus[number] = "true" | |
| 163 | end | |
| 164 | local actNumber = 0 | |
| 165 | for i, v in pairs(scambiStatus) do | |
| 166 | if v == "true" then | |
| 167 | actNumber = actNumber + colors[scambiName[i]] | |
| 168 | end | |
| 169 | end | |
| 170 | rs.setBundledOutput("bottom", actNumber)
| |
| 171 | end | |
| 172 | ||
| 173 | function setSemaforo(color) | |
| 174 | local pos = split(getSemaforoPosByName(color), ',') | |
| 175 | term.setCursorPos(tonumber(pos[1]), tonumber(pos[2])) | |
| 176 | term.setTextColor(colors.white) | |
| 177 | local number = getSemaforoNumberInArray(color) | |
| 178 | if getSemaforoStatus(color) == "true" then | |
| 179 | semaforiStatus[number] = "false" | |
| 180 | else | |
| 181 | semaforiStatus[number] = "true" | |
| 182 | end | |
| 183 | local actNumber = 0 | |
| 184 | for i, v in pairs(semaforiStatus) do | |
| 185 | if v == "false" then | |
| 186 | actNumber = actNumber + colors[semaforiName[i]] | |
| 187 | end | |
| 188 | end | |
| 189 | rs.setBundledOutput("right", actNumber)
| |
| 190 | end |