模块:Terminal

From Limbo Wiki
欢迎您参与完善本页面~
欢迎正在阅读这个条目的您协助编辑本页面以做出您的改进。编辑前请先阅读入门指南,并了解像素塔基本设定。
林泊百科祝您在像素塔度过愉快的时光。

local out = require("Module:Out")
local p = {}

function p.run(frame)
	args = frame:getParent().args
	prompt = frame.args["prompt"]
	color = frame.args["color"]
	result = frame.args["result"]
	for i, cmd in ipairs(args) do
		if mw.ustring.sub(cmd, 1, 1) == "/" then
			-- 命令输入
			out.writeln(prompt .. out.color(mw.ustring.sub(cmd, 2), color))
		elseif mw.ustring.sub(cmd, 1, 1) == "@" then
			-- 控制命令 默认只有一个参数 忽略空格
			cut = mw.ustring.find(cmd, " ", 1, true)
			name = mw.ustring.sub(cmd, 2, cut - 1)
			arg = mw.ustring.sub(cmd, cut + 1)
			if name == "color" then
				color = arg
			elseif name == "result" then
				result = arg
			elseif name == "prompt" then
				prompt = arg
			end
		else
			-- 命令回显
			out.writeln(out.color(cmd, result))
		end
	end
end

p.main = out.create_main(p.run)

return p