View difference between Paste ID: yaTbz4GY and eisFHX2m
SHOW: | | - or go back to the newest paste.
1
os.loadAPI("button")
2
os.loadAPI("radar")
3
4
local mon = peripheral.find("monitor")
5
6
local xMax, yMax = mon.getSize()
7
--#region
8
-- data that needs to be asynced
9
local roomAmount = 4
10
local occupied = 0
11
--#endregion
12
13
14
local checkInBtn = "Check In"
15
local checkOutBtn = "Check Out"
16
17
local currentRoom = 0
18
19
-- room number, player, isOccupied
20
21
local rooms = {["1"] = "", ["2"] = "", 
22
              ["3"] = "", ["4"] = ""}
23
24
function printm(str, x, y)
25
    mon.setCursorPos(x, y)
26
    mon.clearLine()
27
    mon.write(str)
28
end
29
30
function fillButtons()
31
    -- xmin xmax, ymin, ymax
32
    button.setTable(checkInBtn, checkIn, 11, 20, 4, 12)
33
    button.setTable(checkOutBtn, checkOut, 22, 31, 4, 12)    
34
    button.screen()
35
end
36
37
function drawText()
38
    printm("Rooms Available: ".. roomAmount - occupied, 2, 14)
39
    printm("Rooms Occupied: ".. occupied, 2, 15)
40
end
41
42
function getClosest()
43
    return radar.findClosest()
44
end
45
46
function getRoomAssignment()
47
    for key, obj in pairs(rooms) do
48
        print(key.. " "..tostring(obj))
49
        if obj == "" then
50
            rooms[key] = getClosest()
51
            currentRoom = key
52
            print(key)
53
            print("Room was assigned..".. key)
54
            return
55
        end
56
    end
57
end
58
59
function getClick()
60
    drawText()
61
    event, side, x, y = os.pullEvent("monitor_touch")
62
    button.checkxy(x, y)
63
end
64
65
-- check in function
66
function checkIn()
67
    if occupied < roomAmount then
68
        button.flash(checkInBtn)
69
        print("Rooms are empty")
70
        occupied = occupied + 1
71
        getRoomAssignment()
72
        printm(getClosest() .." is assigned Room ".. currentRoom, 1, yMax)
73
        sleep(3)
74
        mon.clearLine()
75
    end
76
end
77
78
function checkOut()
79
    occupied = occupied - 1
80
    button.flash(checkOutBtn)
81
    print("Checking Out!")
82
    button.screen()
83
end
84
85
86
mon.setBackgroundColor(colors.black)
87
mon.clear()
88
mon.setCursorPos(1, 1)
89
90
button.heading("Hello World!")
91
fillButtons()
92
while true do
93
    getClick()
94
end