Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local rs
- local component = require("component")
- local gpu = component.gpu
- local sides = require("sides")
- local event = require("event")
- local term = require("term")
- --Проверим есть ли у нас компонент редстоуна
- if not component.isAvailable("redstone") then
- print("Для работы программы требуется Красный камень(ввод/вывод) или Плата на красном камне")
- return
- else
- rs = component.redstone
- end
- --Задаем цвета
- local colors = {
- background = 0x8B8B83, --серый
- borders = 0x000000, --черный
- lime = 0x00FF00, --салатовый
- red = 0xFF0000, --красный
- }
- local xSize, ySize
- --Наша база имен с доступом
- local nicknames = {
- "newbie"
- }
- --Визуализация проверки данных
- local function visualScan(x, y, time)
- local xPos = x
- gpu.setBackground(colors.background)
- gpu.setForeground(colors.borders)
- gpu.set(xPos, y, "█")
- os.sleep(time)
- for i = 1, 10 do
- gpu.set(xPos, y, "█")
- xPos = xPos + 2
- os.sleep(time)
- end
- end
- --Проверка имени с базой данных
- local function checkNickname(name)
- for i = 1, #nicknames do
- if name == nicknames[i] then
- return true
- end
- end
- return false
- end
- --Указываем редстоун контролеру какой сигнал откуда и как выдавать
- local function redstone(arg)
- if arg then
- rs.setOutput(sides.top, 0) -- тут стоит инвертор так как под дверью красный факел
- os.sleep(5)
- rs.setOutput(sides.top, 15)
- end
- end
- --local width, height = gpu.getResolution()
- gpu.setResolution(34, 17) --задаем размеры нашего экрана
- xSize, ySize = 34, 17 -- заносим их в ранее созданные переменные
- gpu.setBackground(colors.background)
- --Просто функция для уменьшения строк кода
- local function fill()
- gpu.fill(1, 1, xSize, ySize, " ")
- end
- fill()
- --Собственно сам наш цикл
- while true do
- local e ={ event.pull()}
- if e[1] == "touch" then
- if checkNickname(e[6]) then
- visualScan(8, 8, 0.2)
- gpu.setBackground(colors.lime)
- fill()
- print(" Приветствую, " .. e[6])
- redstone(true)
- gpu.setBackground(colors.background)
- fill()
- term.clear()
- else
- visualScan(8, 8, 0.2)
- gpu.setBackground(colors.red)
- fill()
- print(" В доступе отказано, " .. e[6])
- os.sleep(2)
- gpu.setBackground(colors.background)
- fill()
- term.clear()
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement