View difference between Paste ID: vd2DcHJr and FRJRneKL
SHOW: | | - or go back to the newest paste.
1-
local tArg = {...}
1+
tArg = {...}
2
3-
local textscale = 0.5
3+
textscale = 0.5
4-
local monitorName, mon
4+
5
function displayHelp()
6-
if not monIsInUse then monIsInUse = {} end
6+
7-
if type(monIsInUse) ~= "table" then monIsInUse = {} end
7+
8
	print("monc <monitor> -s <textscale>")
9-
local function displayHelp()
9+
10
end
11
12
function setMonFuncs()
13
	if not monIsInUse then
14
		oldRedirect = term.redirect
15
		term.redirect = function( object )
16-
local function setMonFuncs()
16+
			oldRedirect(object)
17-
	if not monIsInUse[monitorName] then
17+
			oldRedirect(term.native())
18-
		local msx,msy = mon.getSize()
18+
19-
		oldTermWrite = term.write
19+
20-
		term.write = function( text )
20+
		monIsInUse = true
21-
		        oldTermWrite( text )
21+
22-
		        mon.write( text )
22+
23
24
function setRegFuncs()
25-
		oldCursorPos = term.setCursorPos
25+
	if monIsInUse == true then
26-
		term.setCursorPos = function( x, y )
26+
		term.redirect = oldRedirect
27-
		        oldCursorPos( x, y )
27+
		monIsInUse = false
28-
		        mon.setCursorPos( x, y )
28+
29
end
30
31-
		oldClear = term.clear
31+
32-
		term.clear = function()
32+
33-
		        oldClear()
33+
	Allsides = peripheral.getNames()
34-
				local cx,cy = mon.getCursorPos()
34+
35-
				for a = 1, msy do
35+
36-
					mon.setCursorPos(1,a)
36+
37-
					mon.write((" "):rep(msx))
37+
38
		setRegFuncs()
39-
				mon.setCursorPos(cx,cy)
39+
40-
		        --mon.clear()
40+
41
	if peripheral.getType(monitorName) == "monitor" then
42
		mon = peripheral.wrap(monitorName)
43-
		oldBlink = term.setCursorBlink
43+
44-
		term.setCursorBlink = function( boolean )
44+
45-
		        oldBlink( boolean )
45+
46-
		        mon.setCursorBlink( boolean )
46+
47
48
	if tArg[2] == "-s" then
49-
		oldSetTextColor = term.setTextColour
49+
50-
		term.setTextColor = function( colour )
50+
51-
			oldSetTextColor( colour )
51+
52-
			mon.setTextColor( colour )
52+
53
				mon.setTextScale(tonumber(tArg[3]))
54
			else
55-
		oldSetBackgroundColor = term.setBackgroundColour
55+
56-
		term.setBackgroundColor = function( bgcolu )
56+
57-
			oldSetBackgroundColor( bgcolu )
57+
58-
			mon.setBackgroundColor( bgcolu )
58+
59
				return
60
			end
61-
		oldClearLine = term.clearLine
61+
62-
		term.clearLine = function()
62+
63-
			oldClearLine()
63+
64-
			local cx,cy = mon.getCursorPos()
64+
65-
			mon.setCursorPos(1,cy)
65+
66-
			mon.write((" "):rep(msx))
66+
67-
			mon.setCursorPos(cx,cy)
67+
68
		argpos = 3
69
		mon.setTextScale(textscale)
70-
		oldScroll = term.scroll
70+
71-
		term.scroll = function( scrnum )
71+
72-
			oldScroll(scrnum)
72+
73-
			mon.scroll(scrnum)
73+
		program = tArg[progpos]
74
		if tArg[progpos] == "exit" then
75
			setRegFuncs()
76-
		oldBlit = term.blit
76+
77-
		term.blit = function(text,t,b)
77+
78-
			oldBlit(text,t,b)
78+
79-
			mon.blit(text,t,b)
79+
80
				for a = argpos, #tArg do
81
					arguments = arguments .. " " .. tArg[a]
82-
		oldIsColor = term.isColor
82+
83-
		term.isColor = function()
83+
84-
			return oldIsColor() and mon.isColor()
84+
85
		
86
		if arguments ~= nil and arguments ~= "" then
87-
		term.setTextColour = term.setTextColor
87+
88
			shell.run(program .. " " .. arguments)
89-
		term.setBackgroundColour = term.setBackgroundColor
89+
90
		else
91-
		monIsInUse[monitorName] = true
91+
92
			shell.run(program)
93
			setRegFuncs()
94
		end
95-
local function setRegFuncs()
95+
96-
	if #monIsInUse > 0 then
96+
97-
		if monIsInUse[monitorName] == true then
97+
98-
			term.write = oldTermWrite
98+
99-
			term.setCursorPos = oldCursorPos
99+
	error("no monitor given")
100-
			term.clear = oldClear
100+