View difference between Paste ID: n3V1yK91 and eJw8Udrc
SHOW: | | - or go back to the newest paste.
1
function newMonitoredVariable(name, value)
2
	Runtime:dispatchEvent{name="Variable"; variable=name, value=value}
3
	return function(...)
4
		if select('#', ...) == 0 then
5
			return value
6
		end
7
		local old = value
8
		value = ...
9
		Runtime:dispatchEvent{name="Variable"; variable=name, value=value, oldValue=old}
10
		return old
11
	end
12
end
13
14-
Runtime:addEventListener("Variable", function (event) _G[event.variable] = value end)
14+
Runtime:addEventListener("Variable", function (event) _G[event.variable] = event.value end)
15
16
set_fnord = newMonitoredVariable("fnord", 5)
17
18
print(fnord) -- prints 5
19
20
set_fnord("kumquat")
21
22
print(fnord) -- prints kumquat