Add 'player-sensor/sugoma.lua'
This commit is contained in:
parent
e0434f33d3
commit
4f6434d16e
77
player-sensor/sugoma.lua
Normal file
77
player-sensor/sugoma.lua
Normal file
|
@ -0,0 +1,77 @@
|
|||
-- Run this on a separate computer to display a log on an attached monitor.
|
||||
|
||||
-- This program expects a 6x6 monitor to be connected at the back,
|
||||
-- a bell at the bottom and an ender modem at the right.
|
||||
|
||||
local monitor = peripheral.wrap("back")
|
||||
local modem = peripheral.wrap("right")
|
||||
local bell_side = "bottom"
|
||||
local port = 12345
|
||||
|
||||
local height = 38
|
||||
|
||||
local messages = {}
|
||||
local totalMsgs = 0
|
||||
|
||||
modem.open(port)
|
||||
|
||||
function bell()
|
||||
redstone.setOutput(bell_side, true)
|
||||
sleep(0.1)
|
||||
redstone.setOutput(bell_side, false)
|
||||
end
|
||||
|
||||
function clear()
|
||||
monitor.clear()
|
||||
monitor.setCursorPos(1, 1)
|
||||
monitor.setTextScale(1)
|
||||
end
|
||||
|
||||
function writeLine(text)
|
||||
local x, y = monitor.getCursorPos()
|
||||
monitor.setCursorPos(1, y + 1)
|
||||
monitor.write(text)
|
||||
end
|
||||
|
||||
function refresh()
|
||||
clear()
|
||||
|
||||
monitor.setCursorPos(27, 1)
|
||||
monitor.setTextColor(colors.blue)
|
||||
monitor.write("Event log")
|
||||
monitor.setTextColor(colors.white)
|
||||
|
||||
monitor.setCursorPos(1, 2)
|
||||
|
||||
if table.getn(messages) == 0 then
|
||||
monitor.setCursorPos(22, height / 2)
|
||||
monitor.setTextColor(colors.lightGray)
|
||||
monitor.write("Nothing here yet ...")
|
||||
monitor.setTextColor(colors.white)
|
||||
else
|
||||
for k,v in pairs(messages) do
|
||||
writeLine(v)
|
||||
end
|
||||
monitor.setCursorPos(1, 1)
|
||||
monitor.setTextColor(colors.lightGray)
|
||||
monitor.write(totalMsgs.." total")
|
||||
monitor.setTextColor(colors.white)
|
||||
end
|
||||
end
|
||||
|
||||
refresh()
|
||||
|
||||
while true do
|
||||
local event, side, channel, replyChannel, message,
|
||||
distance = os.pullEvent("modem_message")
|
||||
|
||||
table.insert(messages, message)
|
||||
totalMsgs = totalMsgs + 1
|
||||
|
||||
while table.getn(messages) > height do
|
||||
table.remove(messages, 1)
|
||||
end
|
||||
|
||||
bell()
|
||||
refresh()
|
||||
end
|
Loading…
Reference in a new issue