모듈: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