-- FILLEDBOX local function drawPixelInternal(xPos, yPos) term.setCursorPos(xPos, yPos) term.write(" ") end local tColourLookup = {} for n = 1, 16 do tColourLookup[string.byte("0123456789abcdef", n, n)] = 2 ^ (n - 1) end function drawFilledBox(startX, startY, endX, endY, nColour) if type(startX) ~= "number" or type(startX) ~= "number" or type(endX) ~= "number" or type(endY) ~= "number" or (nColour ~= nil and type(nColour) ~= "number") then error("Expected startX, startY, endX, endY, colour", 2) end startX = math.floor(startX) startY = math.floor(startY) endX = math.floor(endX) endY = math.floor(endY) if nColour then term.setBackgroundColor(nColour) end if startX == endX and startY == endY then drawPixelInternal(startX, startY) return end local minX = math.min(startX, endX) if minX == startX then minY = startY maxX = endX maxY = endY else minY = endY maxX = startX maxY = startY end for x = minX, maxX do for y = minY, maxY do drawPixelInternal(x, y) end end end function has_value (tab, val) for index, value in ipairs(tab) do if value == val then return true end end return false end -- CODE -- Variables clicktocolor = {} itinerari = {} -- Load data local h = fs.open("qlvdata-published", "r") data = textutils.unserialize(h.readAll()) h.close() function reset() term.setBackgroundColor(colors.white) term.clear() local qlv = paintutils.loadImage("qlv") --paintutils.drawImage(qlv, 2, 1) for k, v in ipairs(data) do clicktocolor[v.position.x.."_"..v.position.y] = data.color local c = colors.lightGray if v.type == "d" then c = colors.gray end term.setBackgroundColor(c) --drawPixelInternal(v.position.x, v.position.y) end term.setTextColor(colors.black) print(textutils.serialize(clicktocolor)) term.setBackgroundColor(colors.white) drawFilledBox(1, 1, 51, 1) end while true do reset() term.setCursorPos(12, 1) term.setTextColor(colors.black) term.setBackgroundColor(colors.white) term.write("CREA ITINERARIO") term.setCursorPos(1, 2) term.write("Nome:") term.setCursorPos(7, 2) local name = read() if name == "EXIT" then break end term.setCursorPos(5, 3) term.write("Seleziona gli enti da attivare") enti = {} while true do local ev, bt, x, y = os.pullEvent("mouse_click") if y > 17 then break end local pos = x.."_"..y if has_value(clicktocolor, pos) == true then table.insert(enti, clicktocolor[pos]) term.setBackgroundColor(colors.red) term.setCursorPos(x, y) term.write(" ") term.setBackgroundColor(colors.white) end end table.insert(itinerari, {name=name,enti=enti}) end local h2 = fs.open("qlvd", "w") h2.write(textutils.serialize(itinerari)) h2.close() print("DONEEEE")