모듈:Cubemapper
보이기
	
	
이 모듈은 큐브, 큐브/미니에서 지도를 출력하는 데 사용하는 모듈입니다. 일반적인 다른 큐브 형태의 게임에도 모듈을 적용할 수 있습니다. 모듈에서 내보내는 함수는 하나입니다.
map( position, highlight, block, rows, cols )[원본 편집]
- 큐브 지도를 출력합니다.
 
사용 방법:
{{#invoke:Cubemapper|map|position=위치|highlight=강조색|block=블록문자|rows=16|cols=16}}
인자:
- position
 - (필수) 큐브 지도에 나타낼 위치입니다.
 - highlight
 - (선택) 현재 위치를 강조할 때 사용할 HTML 색상 코드입니다. 지정하지 않으면 #FFA500(██)을 사용합니다.
 - block
 - (선택) 큐브 각 방을 나타낼 때 사용할 문자입니다. 지정하지 않으면 █을 사용합니다.
 - rows, cols
 - (선택) 큐브의 세로, 가로 크기입니다. 기본값은 16 x 16 큐브입니다.
 
| 위 설명은 모듈:Cubemapper/설명문서의 내용을 가져와 보여주고 있습니다. (편집 | 역사) 이 모듈에 대한 수정 연습과 시험은 연습장 (만들기 | 미러)과 시험장 (만들기)에서 할 수 있습니다. 분류는 /설명문서에 넣어주세요. 이 모듈에 딸린 문서.  | 
-----------------------------------------------------------------------------
-- Module: CubeMapper. Renders a map for cube themed games.
-- Author: 사용자:Peremen
-- Original implementation by Cyrus Hackford
-----------------------------------------------------------------------------
local p = {}
function ReverseTable(t)
    local reversedTable = {}
    local itemCount = #t
    for k, v in ipairs(t) do
        reversedTable[itemCount + 1 - k] = v
    end
    return reversedTable
end
function p.map(frame)
	-- Only position is mandatory
	if type(frame.args["position"]) ~= "string" then
		error("No position specified")
	end
	
	-- Optional arguments
	local position = tonumber(frame.args["position"])
	local highlight = frame.args.highlight or "#FFA500"
	local block = frame.args.block or "█"
	local rows = tonumber(frame.args.rows) or 16
	local cols = tonumber(frame.args.cols) or 16
	
	local a = { }
	
	for j=1, rows do
		local t = { }
		for k=0, (cols-1) do
			if position == ((rows * k) + j) then
				local cube_span = mw.html.create('span')
				cube_span
					:css('color', highlight)
					:wikitext(block)
				t[#t+1] = tostring(cube_span)
			else
				t[#t+1] = block
			end
		end
		a[#a+1] = table.concat(t, " ")
	end
	return table.concat(ReverseTable(a), "<br />")
end
return p